鼠扑 发表于 2024-9-6 07:00:48

opengauss数据库兼容模式

一、官方阐明
官方描述:
背景信息



[*] 初始时,openGauss包罗两个模板数据库template0、template1,以及一个默认的用户数据库postgres。postgres默认的兼容数据库范例为O(即DBCOMPATIBILITY = A ),该兼容范例下将空字符串作为NULL处置处罚。
[*] CREATE DATABASE实际上通过拷贝模板数据库来创建新数据库。默认情况下,拷贝template0。请避免使用客户端或其他本领连接及操作两个模板数据库。
      
    https://img-blog.csdnimg.cn/img_convert/7152ef1a1cafc6e663a972a4da37d549.gif
     阐明:

[*]模板数据库中没有用户表,可通过体系表PG_DATABASE查看模板数据库属性。
[*]模板template0不允许用户连接;模板template1只允许数据库初始用户和体系管理员连接,普通用户无法连接。
   
[*] 数据库体系中会有多个数据库,但是客户端程序一次只能连接一个数据库。也不能在不同的数据库之间相互查询。一个openGauss中存在多个数据库时,需要通过-d参数指定相应的数据库实例进行连接。
 官方文档地点:
创建和管理数据库
7-24日更新
今天刚好在翻官方的文档的时间,注意到opengauss兼容模式的具体内容,更新进来。


[*] DBCOMPATIBILITY [ = ] compatibility_type
指定兼容的数据库的范例,默认兼容O。
取值范围:A、B、C、PG。分别表示兼容O、MY、TD和POSTGRES。在B兼容性场景下,必须加载dolphin插件才允许被连接。详见dolphin限制。
      
    https://img-blog.csdnimg.cn/img_convert/861f66b78ea55c976abb7b1ba2a6a297.png
     阐明:

[*]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企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: opengauss数据库兼容模式