tencent cloud

Feedback

Physical Migration Check Items

Last updated: 2024-04-09 10:09:51
    The following describes the pre-task check items of TencentDatabase for PostgreSQL physical migration:

    Database Connection Check

    For detailed check information, reasons, and solutions, see Source/Target Instance Connection Check.

    Version Check

    The major version of both the source and target instances needs to be consistent, and the kernel version of the target instance cannot be lower than the following versions.
    Major Version
    Kernel Version
    10
    v10.17_r1.5
    11
    v11.12_r1.5
    12
    v12.7_r1.5
    13
    v13.3_r1.4
    14
    v14.2_r1.11
    15
    v15.1_r1.4

    Source Instance Permission Check

    Check Details

    The account for the source instance migration needs to have LOGIN and REPLICATION permissions.
    The configuration of the pg_hba.conf file of the source instance must meet system requirements.

    Fix

    Users may not have the operation permissions. Please grant users permissions based on the permission requirements in the check details and run the verification task again.
    If an error similar to connect source with replication failed: pq: no pg_hba.conf entry for replication connection from host "xx.xx.xxx.xx", user "xxx" occurs, the configuration of the pg_hba.conf file of the source instance does not meet migration requirements. You can add host replication all 0.0.0.0/0 md5 to the pg_hba.conf file of the source instance, and then restart the instance or execute select pg_reload_conf(); to reload the configuration.
    Note:
    When there are permission and password conflicts between source and target instance database accounts, the system uses the source instance account configuration by default.
    If the source instance is a PostgreSQL instance from another cloud provider, please use the account with the highest permissions to migrate.

    Target Instance Table Existence Check

    Check Details

    Check if the target instance is empty.
    Note:
    The have user-created database account can be used on the target instance, but it cannot contain created databases or objects.

    Fix

    Existing databases or objects on the target instance need to be deleted.

    Target Database Space Check

    Check Details

    The disk space of the target instance needs to be at least larger than 110% of the disk space occupied by the source instance. Otherwise, an error will be reported.

    Fix

    To expand the disk space on the target end, see Modifying instance configuration.

    Key Parameter Check for the Instance

    Check Details

    wal_level of the source instance must be logical.
    block_size of the source and target instances must be the same.
    For instance of PostgreSQL lower than version 13, the value of wal_keep_segments in the source instance must be greater than or equal to 256.
    For PostgreSQL 13 and later versions, the value of wal_keep_size/wal_segment_size in the source instance must be greater than or equal to 256.
    wal_block_size of the source and target instances must be the same.
    segment_size of the source and target instances must be the same.
    max_connections of the target instance must be greater than or equal to max_connections of the source instance.
    max_wal_senders of the target instance must be greater than or equal to the max_wal_senders of the source.
    max_worker_processes of the target instance must be greater than or equal to max_worker_processes of the source.

    Fix

    Modify the parameters of the source or target instance according to the requirements in the check details.

    Plugin Conflict Check

    Check Details

    Check if the plugins installed on the source instance are supported by the target instance. If not, the system will report an error. Moreover, if the plugin versions on the source and target instances are inconsistent, the system will report a warning.

    Fix

    Ensure consistency of plugins between source and target instances by installing or upgrading plugin versions.

    Parameter Conflict Check

    Check Details

    In principle, the parameter values of the source and target instances need to be consistent. When the system detects inconsistent parameter values between the source and target, the usual approach is that use the target instance's parameter values and do not notify the user. Different approaches apply to the following parameters:
    Parameter Name
    Default Handling for Migration
    Verification Action
    data_checksums
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    enable_partitionwise_aggregate
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    enable_partitionwise_join
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    lc_ctype
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    max_locks_per_transaction
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    max_prepared_transactions
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    random_page_cost
    Use the parameter value of the source instance.
    There is no alert when the parameter values are different.
    max_connections
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_wal_senders
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_worker_processes
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    array_nulls
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    authentication_timeout
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_analyze_scale_factor
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_analyze_threshold
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_freeze_max_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_multixact_freeze_max_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_naptime
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_cost_delay
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_cost_limit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_insert_scale_factor
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_insert_threshold
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_scale_factor
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    autovacuum_vacuum_threshold
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    bytea_output
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    check_function_bodies
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    constraint_exclusion
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    cursor_tuple_fraction
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    DateStyle
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    deadlock_timeout
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    default_statistics_target
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    default_transaction_isolation
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    exit_on_error
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    extra_float_digits
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    from_collapse_limit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_effort
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_generations
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_pool_size
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_seed
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_selection_bias
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    geqo_threshold
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    idle_in_transaction_session_timeout
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    idle_session_timeout
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    IntervalStyle
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    jit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    jit_above_cost
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    jit_inline_above_cost
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    jit_optimize_above_cost
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    join_collapse_limit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    lc_monetary
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    lc_numeric
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    lc_time
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    local_preload_libraries
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    log_filename
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_logical_replication_workers
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_parallel_workers
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_replication_slots
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_standby_archive_delay
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    max_standby_streaming_delay
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    recursive_worktable_factor
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    search_path
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    statement_timeout
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    stats_fetch_consistency
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    TimeZone
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_cost_delay
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_cost_limit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_cost_page_dirty
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_cost_page_hit
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_cost_page_miss
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_freeze_min_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_freeze_table_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_multixact_freeze_min_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    vacuum_multixact_freeze_table_age
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.
    wal_level
    Use the parameter value of the target instance.
    There is an alert for the user to modify the parameter when parameter values are different. If the parameter is not modified, the default handling method for the migration will be adopted.

    Fix

    Modify the parameter values as needed.

    Target Instance Status Check

    Check Details

    TDE data encryption cannot be enabled for the target instance
    In the target instance, read-only groups are allowed, but associated read-only instances are not allowed.
    No user connections are allowed for the target instance.
    Note:
    During physical migration, ensure that the source instance is not an encrypted instance.

    Fix

    Currently, TDE instances and read-only instances are not supported.

    Glibc Version Compatibility Check

    Check Details

    Check the glibc version compatibility issue between the source instance and target instance.
    Note:
    The sorting rules for some UTF8 characters of glibc 2.28 have been changed. When versions are incompatible, the data sorting rules are different, resulting in a risk of unexpected sorting results.

    Fix

    Upgrade the glibc version.
    Contact Us

    Contact our sales team or business advisors to help your business.

    Technical Support

    Open a ticket if you're looking for further assistance. Our Ticket is 7x24 avaliable.

    7x24 Phone Support