GaussDB创建不同兼容模式的数据库

使用UGO迁移工具时要考虑GaussDB数据库兼容性。

检查已创建数据库的兼容模式:

gaussdb=# select datname,datcompatibility from pg_database;

  datname  | datcompatibility 
-----------+------------------
 template1 | A
 template0 | A     --兼容Oracle
 templatem | M     --兼容MySQL
 postgres  | A
 db4ora    | A
 db4mysqlm | M
 db4mysqlb | B     --兼容MySQL
 db4pg     | PG    --兼容postgresql
(9 rows)

创建Oracle兼容模式的数据库

UGO对于Oracle、PostgreSQL和SQL Server迁移到GaussDB的自动转换方案均基于GaussDB的Oracle兼容模式设计。如果源库是Oracle、PostgresQL或者SQL Server,请参考以下步骤创建目标库。

Oracle兼容模式(集中式部署):

create database db4ora dbcompatibility = 'A';

Oracle兼容模式(分布式部署):

create database db4ora dbcompatibility = 'ORA';

检查是否创建成功:

select datname,datcompatibility from pg_database where datname='db4ora';

创建MySQL兼容模式的数据库

如果源库是原生MySQL,请参考以下步骤创建目标库。

MySQL兼容模式(集中式部署):

create database db4mysqlm dbcompatibility = 'M';
create database db4mysqlb dbcompatibility = 'B';

MySQL兼容模式(分布式部署):

create database db4mysql dbcompatibility = 'MySQL';

检查是否创建成功:

select datname,datcompatibility from pg_database where datname='db4mysql';

创建GoldenDB兼容模式的数据库

如果源库是GoldenDB,请参考以下步骤创建目标库。

源库为GoldenDB迁移到GaussDB集中式时,暂时仅支持迁移到B兼容模式。

GoldenDB兼容模式(集中式部署):

create database db4golden dbcompatibility = 'B';

GoldenDB兼容模式(分布式部署):

create database db4golden dbcompatibility = 'MySQL';

创建PostgreSQL兼容模式的数据库

UGO不支持PostgreSQL迁移至GaussDB PG兼容模式。建议仅在全新业务系统中使用PG兼容模式。

PostgreSQL兼容模式(集中式部署):

create database db4pg dbcompatibility = 'PG';

References
【1】https://support.huaweicloud.com/intl/zh-cn/ugo_faq/ugo_04_0037.html
【2】https://support.huaweicloud.com/devg-dws/dws_04_0042.html

### 如何在 GaussDB创建数据库GaussDB 中,创建数据库是通过 `CREATE DATABASE` 语句实现的。以下是创建数据库的语法及其关键点说明: ```sql CREATE DATABASE database_name [ WITH [ ENCODING = 'encoding' ] [ TEMPLATE = template ] [ LC_COLLATE = lc_collate ] [ LC_CTYPE = lc_ctype ] [ DBCOMPATIBILITY = 'compatibility_mode' ] [ OWNER = user_name ] [ TABLESPACE = tablespace_name ] [ ALLOW_CONNECTIONS = { true | false } ] [ CONNECTION_LIMIT = connlimit ] [ IS_TEMPLATE = { true | false } ] ]; ``` - **database_name**: 指定要创建数据库名称[^1]。 - **ENCODING**: 设置数据库的字符集编码,默认为 UTF-8,推荐使用此编码以支持全球化需求[^3]。 - **TEMPLATE**: 指定用于创建数据库的模板数据库,默认为 `template1`。 - **LC_COLLATE 和 LC_CTYPE**: 定义数据库的排序规则和字符分类规则,通常与操作系统环境匹配。 - **DBCOMPATIBILITY**: 设置数据库兼容模式,可选值包括 `TD`(Teradata)、`ORA`(Oracle)、`MYSQL` 和 `PG`(PostgreSQL),默认为 `MYSQL`。 - **OWNER**: 指定数据库的所有者,默认为执行该命令的用户。 - **TABLESPACE**: 指定数据库的表空间,默认为 `pg_default`。 - **ALLOW_CONNECTIONS**: 控制是否允许连接到该数据库,默认为 `true`。 - **CONNECTION_LIMIT**: 限制可以同时连接到该数据库的最大连接数,默认为 `-1`(无限制)。 - **IS_TEMPLATE**: 指定该数据库是否可以用作其他数据库的模板,默认为 `false`。 #### 示例代码 以下是一个创建数据库的具体示例: ```sql CREATE DATABASE my_database WITH ENCODING = 'UTF8' DBCOMPATIBILITY = 'PG' OWNER = my_user TABLESPACE = my_tablespace; ``` 上述代码创建了一个名为 `my_database` 的数据库,使用 UTF-8 编码、PostgreSQL 兼容模式,并指定所有者和表空间[^1]。 #### 注意事项 1. 不建议直接使用集群默认的 `postgres` 数据库进行业务操作,应根据实际需求创建新的数据库。 2. 推荐用户自定义的 Database 数量不超过 10 个,以避免对升级、备份等运维操作效率的影响[^3]。 3. 创建数据库时需要重点关注字符集编码(ENCODING)和兼容性(DBCOMPATIBILITY)两个配置项。 #### 查看数据库列表 创建完成后,可以通过以下方法查看数据库系统中的数据库列表: - 使用 `\l` 元命令: ```sql gaussdb=# \l ``` - 查询系统表 `pg_database`: ```sql gaussdb=# SELECT datname FROM pg_database; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GottdesKrieges

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值