一、官方阐明
官方描述:
背景信息
- 初始时,openGauss包罗两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的兼容数据库范例为O(即DBCOMPATIBILITY = A ),该兼容范例下将空字符串作为NULL处置处罚。
- CREATE DATABASE实际上通过拷贝模板数据库来创建新数据库。默认情况下,拷贝template0。请避免使用客户端或其他本领连接及操作两个模板数据库。
阐明:
- 模板数据库中没有用户表,可通过体系表PG_DATABASE查看模板数据库属性。
- 模板template0不允许用户连接;模板template1只允许数据库初始用户和体系管理员连接,普通用户无法连接。
- 数据库体系中会有多个数据库,但是客户端程序一次只能连接一个数据库。也不能在不同的数据库之间相互查询。一个openGauss中存在多个数据库时,需要通过-d参数指定相应的数据库实例进行连接。
官方文档地点:
创建和管理数据库
7-24日更新
今天刚好在翻官方的文档的时间,注意到opengauss兼容模式的具体内容,更新进来。
- DBCOMPATIBILITY [ = ] compatibility_type
指定兼容的数据库的范例,默认兼容O。
取值范围:A、B、C、PG。分别表示兼容O、MY、TD和POSTGRES。在B兼容性场景下,必须加载dolphin插件才允许被连接。详见dolphin限制。
阐明:
- A兼容性下,数据库将空字符串作为NULL处置处罚,数据范例DATE会被替换为TIMESTAMP(0) WITHOUT TIME ZONE。
- 将字符串转换成整数范例时,如果输入不正当,B兼容性会将输入转换为0,而别的兼容性则会报错。
- PG兼容性下,CHAR和VARCHAR以字符为计数单元,别的兼容性以字节为计数单元。例如,对于UTF-8字符集,CHAR(3)在PG兼容性下能存放3个中文字符,而在别的兼容性下只能存放1个中文字符。
详细见下面的连接
Create Database
PS:如果当前数据库不适用,请查看官方文档,向公众号寻求资助。
二、详细描述
高斯数据库兼容模式介绍:
MY:兼容mysql
O:兼容Oracle
TD:TDSQL
POSTGRES:PostgreSQL
可以通过实行下令查看当前版本兼容模式支持:
SELECT name, setting, unit, context
FROM pg_settings
WHERE name ~* 'compatibility'; | 大概
SELECT name, setting, unit, context
FROM pg_settings
WHERE name = 'dbcompatibility'; | 三、兼容模式使用
3.1 创建数据库的时间手工指定兼容模式
create database test dbcompatibility ='MY'; | 3.2 已经创建完数据库,修改兼容模式
alter system set dbcompatibility = 'MY'; | 修改完毕记得重启数据库
gs_ctl restart -D /path/to/your/data/directory | PS:
如果是docker的,就根据docker重启的方式来
dbcompatibility 的值根据当前数据库支持的方式来
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |