Updated on 2024-06-11 GMT+08:00

Setting GUC Parameters for GaussDB When the Source Database Type Is MySQL

When migrating data from MySQL to GaussDB, you can set the GUC parameters of GaussDB to enhance the compatibility. For details about the GUC parameters involved in the migration and the impact scope, see Table 1.

GaussDB provides many operation parameters. Configurations of these parameters affect the behavior of the database system. Before changing these parameters, learn the impact of these parameters on the database. Otherwise, unexpected results may occur.

Table 1 GUC parameters for migrating data from MySQL to GaussDB

Configuration item (Compatible with B Mode)

Compatibility Configuration Item

Compatibility Configuration Item Name

Supported Database

Enable

b_format_behavior_compat_options

enable_set_variables

Takes effect only for primary/standby session variables.

Primary/Standby

Yes

b_format_version

5.7

Specifies database platform compatibility configuration items.

505.0 primary/standby and distributed

Yes

b_format_dev_version

S1

Specifies the compatible minor version of the database platform.

505.0 primary/standby and distributed

Yes

S2

Specifies the compatible minor version of the database platform.

505.1 primary/standby and distributed

Yes

  • The S1 compatibility configuration item affects the following content:
    • NEW() function, last_day() function, date_sub(date, INTERVAL expr unit), datediff(expr1, expr2), day()/dayofmonth(), and 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)
  • The S2 compatibility configuration item affects:
    • Compatibility behaviors controlled by s1.
    • The following functions:
      • When data is imported to the AUTO_INCREMENT column or the BATCH INSERT execution plan is inserted, if 0, NULL, and determined values are used together, the auto-increment count is updated immediately when the determined value is inserted, the subsequent 0 or NULL increases automatically based on the determined value.
      • The like operator does not report an error when an escape character is at the end of the matching string.
      • The priorities of the sorting rules for character sets and character orders are changed.
    • The following syntax:
      • The CREATE TABLE table_name LIKE source_table syntax is supported.
      • The syntaxes CREATE TABLE table_name LIKE source_table and CREATE TABLE table_name (LIKE source_table) cannot specify INCLUDING and EXCLUDING options. By default, INCLUDING ALL is specified.
      • The LOAD DATA syntax is supported. Some syntax functions in gs_loader that are consistent with the LOAD DATA syntax will change.
      • The collate clause can be specified by set names.
      • The syntax for changing table names, such as ALTER TABLE and RENAME TABLE, is involved. For example, if the character string corresponding to the new table name starts with #MySQL50# and is followed by other characters, #MySQL50# will be ignored.

Procedure

Primary/Standby

  1. Connect to the GaussDB database and switch to the GaussDB installation user.

    su - omm

    In the preceding command, omm is an example. Change it to the actual installation user.

  2. Run the following commands to configure the GUC parameters:

    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'";

    Set b_format_dev_version to s1 for GaussDB 8.0 Enterprise Edition and s2 for GaussDB 8.100 Enterprise Edition. For details about the version numbers, see What Is the Mapping Between the GaussDB Versions Displayed on the UGO Console and Self-built GaussDB Versions?

Distributed

  1. Connect to the GaussDB database and switch to the GaussDB installation user.

    su - omm

    In the preceding command, omm is an example. Change it to the actual installation user.

  2. Run the following commands to configure the GUC parameters:

    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'";

    Set b_format_dev_version to s1 for GaussDB 8.0 Enterprise Edition and s2 for GaussDB 8.100 Enterprise Edition. For details about the version numbers, see What Is the Mapping Between the GaussDB Versions Displayed on the UGO Console and Self-built GaussDB Versions?

What Are the Impacts of GUC Parameter Settings of GaussDB on Migration? FAQs

more