【赵渝强老师】openGauss的数据库

在OpenGauss中,数据库本身也是数据库对象。不同的数据库在逻辑上彼此分离,除数据库之外的其他数据库对象(例如:表、索引等等)都属于它们各自的数据库。通过下面的语句可以查看OpenGauss数据库服务器中已存在的数据库。

视频讲解如下
【赵渝强老师】openGauss的数据库

(1)登录OpenGauss。

powershell 复制代码
bin/gsql -d postgres

(2)查看OpenGauss中已有的数据库。

powershell 复制代码
openGauss=# \l

# 输出的信息如下:
                         List of databases
   Name    |  Owner   | Encoding |......
-----------+----------+----------+------
 finance   | postgres | UTF8     |......
 postgres  | postgres | UTF8     |......
 school    | postgres | UTF8     |......
 scott     | postgres | UTF8     |......
 template0 | postgres | UTF8     |......
 template1 | postgres | UTF8     |......
           |          |          |......
(6 rows)

其中:

  • 创建数据库时实际上通过拷贝一个已有数据库进行工作的。在默认情况下,将拷贝名为template1的标准系统数据库。所以该数据库是创建新数据库的"模板"。如果为template1数据库增加对象,这些对象将被拷贝到后续创建的用户数据库中。这种行为允许对数据库中标准对象集合的进行修改。例如,如果把过程语言PL/Perl安装到template1中,那么在创建用户数据库后不需要额外的操作就可以使用该语言。

  • 系统里还有名为template0的第二个标准系统数据库。这个数据库包含和template1初始内容一样的数据,但只包含openGauss版本预定义的标准对象。在数据库集群被初始化之后,不应该对template0做任何修改。在创建数据库时通过指示使用template0取代template1进行拷贝,可以创建一个"纯净的"用户数据库,它不会包含任何template1中的站点本地附加物。

创建openGauss数据库主要通过SQL命令"create database"完成,下面是具体的操作步骤。

(1)查询现有数据库的集合,可以检查系统目录pg_database。

powershell 复制代码
openGauss=# select datname from pg_database;

# 输出的信息如下:
  datname  
-----------
 template1
 school
 finance
 template0
 scott
 postgres
(6 rows)

(2)使用SQL命令"create databas"创建数据库。

powershell 复制代码
openGauss=# create database mydemodb;

这里需要注意以下几点:

  • 第一个数据库总是由initdb命令在初始化数据存储区域时创建的,这个数据库被称为postgres。因此要创建第一个"普通"数据库时,需要连接到openGauss数据库服务器上。

  • 在数据库集群初始化期间也会创建第二个数据库template1,。当在集群中创建一个新数据库时,实际上就是克隆了template1。这就意味着对template1所做的任何修改都会体现在所有后续创建的数据库中。因此应避免在template1中创建对象,除非想把它们传播到每一个新创建的数据库中。

  • 创建一个新的数据库,实际上是在$PDATA/base目录下创建了一个目录,如下图所示。

(3)重新查询现有数据库的集合。

powershell 复制代码
openGauss=# select oid,datname from pg_database;

# 输出的信息如下:
  oid  |  datname  
-------+-----------
     1 | template1
 16384 | school
 16420 | finance
 14809 | template0
 16470 | scott
 16525 | mydemodb
 14814 | postgres
(7 rows)
相关推荐
IvorySQL5 小时前
PostgreSQL 日报|恢复期 COPY TO 未日志表修复(10 月 21 日)
数据库·postgresql·区块链
贝猫说python6 小时前
大模型比赛2.3智能体开发(工具调用智能问答助手)
数据库·oracle
许彰午8 小时前
28-ORA-01110数据文件读取错误
数据库·oracle
凯凯姜8 小时前
MySQL 联合索引设计与索引失效
数据库·mysql
猫咪很可爱8 小时前
Oracle TEMP 表空间不足(ORA-01652)问题分析与优化实践
数据库·oracle
九零HTTP10 小时前
10月21号-CSDN配菜-IP池的5个坑
服务器·数据库·tcp/ip
Data-Miner10 小时前
需要做财务数据分析,有什么好用的工具?从准备到出报告的实操指南
大数据·数据库·数据分析
袋鼠云数栈11 小时前
让 SQL 解析不再重复造轮子:SqlParserX 正式开源
数据库·人工智能·sql·开源·数据治理
这个DBA有点耶11 小时前
期货 CTP 系统 Oracle RAC 迁移国产库实战:读写分离架构设计与性能对标
数据库·架构·dba
数据库安全11 小时前
AI数据访问安全 |如何控制AI访问权限,防止越权
数据库·安全