更新时间:2024-03-07 GMT+08:00
分享

以MySQL为源设置GaussDB数据库GUC参数

MySQL为源库迁移到GaussDB时,可以设置目标库GaussDB的GUC参数,来增强MySQL迁移到GaussDB的兼容性,迁移涉及的GUC参数和影响范围可参见表1

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

表1 MySQL迁移至GaussDB设置的GUC参数

兼容B行为配置项

兼容性配置项

兼容性配置项名字

支持的数据库

是否建议打开

b_format_behavior_compat_options

enable_set_variables

仅限主备版会话变量生效。

主备版

b_format_version

5.7

数据库平台兼容性行为配置项。

505.0主备版/分布式

b_format_dev_version

S1

数据库平台迭代小版本兼容性行为配置项。

505.0主备版/分布式

S2

数据库平台迭代小版本兼容性行为配置项。

505.1主备版/分布式

  • S1兼容性配置项所影响的内容:
    • NEW()函数、last_day()函数、date_sub(date, INTERVAL expr unit)、datediff(expr1, expr2)、day()/dayofmonth()、dayname()
    • dayofweek()、dayofyear()、extract(unit FROM date)、from_days(days)、from_unixtime(unix_timestamp[,format])、get_format({DATE | TIME | DATETIME | TIMESTAMP}, {'EUR' | 'USA' | 'JIS' | 'ISO' | 'INTERNAL'})、 hour()、makedate(year,dayofyear)、microsecond()、minute()、month()、monthname()、 period_add(period, month_number)
    • TIMESTAMPDIFF、yearweek(date[, mode])、year()、weekofyear(date)、 weekday()、week(date[, mode])、utc_timestamp()、utc_time()、period_diff(p1,p2)、second().
    • quarter()、str_to_date(str, format)、subdate(expr, days)、time_format(time, format)、ifnull(expr1, expr2)、database()、current_date、current_time、current_timestamp
    • round(arg1, arg2)、localtime([precision])、localtimestamp、dbtimezone、timenow()、numtodsinterval(num, interval_unit)、numtoyminterval(num, interval_unit)
    • new_time(date, timezone1,timezone2)、sysdate([precision])、add_months(d,n)、months_between(d1, d2)、convert_tz(dt, from_tz, to_tz)
    • adddate(date, INTERVAL expr unit)、date_format(date, format)
  • S2兼容性配置项所影响的内容:
    • 包含s1控制的兼容性行为。
    • 影响如下功能:
      • AUTO_INCREMENT自动增长列在导入数据或者进行BATCH INSERT执行计划的插入操作时,对于混合0、NULL和确定值的场景,确定值插入时会立即更新自增计数,后续的0/NULL将在确定值的基础上自增。
      • like操作符对于匹配串末尾是转义符的场景不再报错。
      • 字符集、字符序的排序规则优先级将发生变更。
    • 影响如下语法:
      • CREATE TABLE table_name LIKE source_table语法。
      • CREATE TABLE table_name LIKE source_table和“CREATE TABLE table_name (LIKE source_table)”语法不支持指定INCLUDING和EXCLUDING选项,缺省等同于指定INCLUDING ALL。
      • 支持LOAD DATA语法,gs_loader中部分与LOAD DATA语法一致的语法功能会发生变化。
      • 支持set names指定collate子句。
      • 涉及ALTER TABLE,RENAME TABLE等更改表名的语法,影响场景如:新表名对应字符串开头为“#MySQL50#”,且其后有其他字符,“#MySQL50#”将被忽略。

操作步骤

主备版本

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

    su - omm

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

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

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

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

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

    GaussDB 8.0企业版设置为s1,GaussDB 8.100企业版设置为s2,版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系

分布式版本

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

    su - omm

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

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

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

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

    GaussDB 8.0企业版设置为s1,GaussDB 8.100企业版设置为s2,版本号对应参考自建GaussDB内核版本号与UGO界面显示GaussDB版本号对应关系

分享:

GaussDB数据库设置GUC参数对迁移的影响 所有常见问题

more