更新时间:2026-10-27 GMT+08:00
分享

GaussDB PG兼容模式

兼容模式设置

  1. 源库为PostgreSQL时,支持往GaussDB的PG兼容模式迁移。
  2. 创建PG兼容模式的数据库。
  1. 使用具有创建数据库权限的用户登录GaussDB数据库。
  2. 执行以下命令,创建PG兼容模式的GaussDB数据库。

    create database databasename dbcompatibility = 'PG';

  3. 执行以下命令,若datcompatibility兼容性一列为PG,则创建成功。

    select * from pg_database where datname = 'databasename';

GUC参数设置

当使用PG兼容模式时,可以设置GUC参数提高GaussDB的兼容性,迁移涉及的GUC参数和影响范围可参见表1。

GaussDB数据库提供了许多运行参数,配置这些参数可以影响数据库系统的行为。在修改这些参数时请确保用户理解了这些参数对数据库的影响,否则可能会导致无法预料的结果。

表1 GaussDB(PG兼容模式)的GUC参数

兼容PG行为配置项

兼容性配置项

兼容性配置项名字

支持的数据库

是否建议打开

behavior_compat_options

display_leading_zero

浮点数显示配置项-小数点前0显示。

集中式版/分布式版

是

bind_procedure_searchpath

未指定模式名的存储过程中的数据库对象的搜索路径配置项。

集中式版/分布式版

是

correct_to_number

控制to_number()结果兼容性的配置项。

集中式版/分布式版

是

return_null_string

控制函数lpad()和rpad()结果为空字符串''的显示配置项。

集中式版/分布式版

是

allow_procedure_compile_check

控制存储过程中select语句和open cursor语句的编译检查。

集中式版/分布式版

是

plsql_compile_check_options

plsql_expression_check

GaussDB的PL/SQL编译检查开关,设置为plsql_expression_check后,创建函数/存储过程/包时会检查能否正常编译。

集中式版

是

操作步骤

集中式版

  1. 连接GaussDB数据库,切换至GaussDB的安装用户。

    su - omm

    "omm"为示例用户,切换时以实际安装用户为准。

  2. 执行以下命令,设置参数。

    gs_guc reload -Z coordinator -Z datanode -N all -I all -c "behavior_compat_options='display_leading_zero,bind_procedure_searchpath,correct_to_number,return_null_string,allow_procedure_compile_check'";

    gs_guc reload -Z coordinator -Z datanode -N all -I all -c "plsql_compile_check_options='plsql_expression_check'";

    • 以上GUC参数设置均以 PostgreSQL 为源、GaussDB 集中式版 V2.0 - 8.200 企业版为目标库,其他链路的 GUC 参数,请参考预检查功能中提示的参数名称和参数值,分别替换掉上述命令中等号前后的内容。
    • GUC 参数 plsql_compile_check_options 的值 plsql_expression_check 结构迁移全部完成后,需要设置为空。

    gs_guc reload -Z coordinator -Z datanode -N all -I all -c "plsql_compile_check_options=''";

分布式版

  1. 连接GaussDB数据库,切换至GaussDB的安装用户。

    su - omm

    "omm"为示例用户,切换时以实际安装用户为准。

  2. 执行以下命令设置参数。

    gs_guc reload -Z coordinator -Z datanode -N all -I all -c "behavior_compat_options='display_leading_zero,bind_procedure_searchpath,correct_to_number,return_null_string,allow_procedure_compile_check'";

    以上GUC参数设置均以 PostgreSQL 为源、GaussDB 分布式版 V2.0 - 8.200 企业版为目标库,其他链路的 GUC 参数,请参考预检查功能中提示的参数名称和参数值,分别替换掉上述命令中等号前后的内容。

相关文档