portal安装及全量迁移gs_mysync的使用
获取安装包
各系统版本和架构对应的下载链接如下:
本教程使用centos系统,在普通用户下安装
解压
#创建下载portal位置的文件夹/data/ccc0703,把权限给普通用户ccc0703
mkdir /data/ccc0703
chown ccc0703:ccc0703 -R ccc0703
#登录普通用户
su - ccc0703
# 下载安装包
cd /data/ccc0703
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/centos7/PortalControl-6.0.0-x86_64.tar.gz
#解压
tar -zxvf PortalControl-6.0.0-x86_64.tar.gz
查看下载结果
cd portal
ll
配置安装文件,执行安装迁移工具
vi config/toolspath.properties
#修改tools将要下载的位置
tools.version=6.0.0
system.name=centos7
system.arch=x86_64
chameleon.install.path=/data/ccc0703/portal/tools/chameleon/
chameleon.venv.path=/data/ccc0703/portal/tools/chameleon/chameleon-${tools.version}/
chameleon.path=~/.pg_chameleon/
chameleon.pkg.url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/${system.name}/chameleon-${tools.version}-${system.arch}.tar.gz
chameleon.pkg.path=/data/ccc0703/portal/pkg/chameleon/
chameleon.pkg.name=chameleon-${tools.version}-${system.arch}.tar.gz
debezium.path=/data/ccc0703/portal/tools/debezium/
confluent.path=/data/ccc0703/portal/tools/debezium/confluent-5.5.1/
confluent.install.path=/data/ccc0703/portal/tools/debezium/
connector.path=/data/ccc0703/portal/tools/debezium/plugin/
connector.mysql.path=/data/ccc0703/portal/tools/debezium/plugin/debezium-connector-mysql/
connector.opengauss.path=/data/ccc0703/portal/tools/debezium/plugin/debezium-connector-opengauss/
confluent.pkg.url=https://packages.confluent.io/archive/5.5/confluent-community-5.5.1-2.12.zip
connector.mysql.pkg.url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/replicate-mysql2openGauss-${tools.version}.tar.gz
connector.opengauss.pkg.url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/replicate-openGauss2mysql-${tools.version}.tar.gz
debezium.pkg.path=/data/ccc0703/portal/pkg/debezium/
confluent.pkg.name=confluent-community-5.5.1-2.12.zip
connector.mysql.pkg.name=replicate-mysql2openGauss-${tools.version}.tar.gz
connector.opengauss.pkg.name=replicate-openGauss2mysql-${tools.version}.tar.gz
datacheck.pkg.url=https://opengauss.obs.cn-south-1.myhuaweicloud.com/latest/tools/gs_datacheck-${tools.version}.tar.gz
datacheck.install.path=/data/ccc0703/portal/tools/
datacheck.path=/data/ccc0703/portal/tools/gs_datacheck-${tools.version}/
datacheck.pkg.path=/data/ccc0703/portal/pkg/datacheck/
datacheck.pkg.name=gs_datacheck-${tools.version}.tar.gz
datacheck.extract.jar.name=datachecker-extract-${tools.version}.jar
datacheck.check.jar.name=datachecker-check-${tools.version}.jar
#执行命令安装全部的迁移工具install_mysql_all_migration_tools
sh gs_rep_portal.sh install_mysql_all_migration_tools 1 &
#如果不需要全部安装可以参考官网的安装指令代替install_mysql_all_migration_tools
查看结果
portal在执行以上命令时不只安装了全量迁移工具,还有增量迁移等其他工具,那么portal启动confluent(内置kafka)作为运行其他工具时的准备动作。安装之后将自动运行准备动作指令。
#结束准备动作时的命令:
sh gs_rep_portal.sh stop_kafka a
需要启动的话用:sh gs_rep_portal.sh start_kafka a
配置迁移参数
本章以全量迁移为准
需要配置的文件有 (需要注意两个文件的一致性)
1. portal/config/migrationConfig.properties
vi /data/ccc0703/portal/config/migrationConfig.properties
snapshot.object=yes
mysql.user.name=portal_mysql
mysql.user.password=Huawei@123
mysql.database.host=192.168.0.219
mysql.database.port=12600
mysql.database.name=portal_db
opengauss.user.name=portal_mysql
opengauss.user.password=Huawei@123
opengauss.database.host=127.0.0.1
opengauss.database.port=15600
opengauss.database.name=portal_db
opengauss.database.schema=sch_portal_db
default.install.mysql.full.migration.tools.way=offline
default.install.mysql.incremental.migration.tools.way=offline
default.install.mysql.datacheck.tools.way=offline
default.install.mysql.reverse.migration.tools.way=offline
full.check.extract.source.jvm=-Xmx1G -Xms1G -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./check_result/result/heap_source.hprof
full.check.extract.sink.jvm=-Xmx1G -Xms1G -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./check_result/result/heap_sink.hprof
full.check.jvm=-Xmx1G -Xms1G -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./check_result/result/heap.hprof
incremental.check.extract.source.jvm=-Xmx1G -Xms1G -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled
incremental.check.extract.sink.jvm=-Xmx1G -Xms1G -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled
incremental.check.jvm=-Xmx1G -Xms1G -XX:MaxMetaspaceSize=512M -XX:MetaspaceSize=512M -XX:+UseG1GC -XX:MaxGCPauseMillis=100 -XX:+ParallelRefProcEnabled
zookeeper.port=127.0.0.1:2181
kafka.port=127.0.0.1:9092
confluent.port=127.0.0.1:8081
drop.logical.slot.on.stop=true
.....
2. portal/config/chameleon/config-example.yml
# global settings
pid_dir: '~/.pg_chameleon/pid/'
log_dir: '~/.pg_chameleon/logs/'
log_dest: file
log_level: info
log_days_keep: 10
rollbar_key: ''
rollbar_env: ''
dump_json: No
# type_override allows the user to override the default type conversion
# into a different one.
type_override:
# "tinyint(1)":
# override_to: boolean
# override_tables:
# - "*"
# specify the compress properties when creating tables
compress_properties:
compresstype: 0
compress_level: 0
compress_chunk_size: 4096
compress_prealloc_chunks: 0
compress_byte_convert: false
compress_diff_convert: false
# postgres destination connection
pg_conn:
host: "localhost"
port: "15600"
user: "portal_mysql"
password: "Huawei@123"
database: "portal_db"
charset: "utf8"
params:
# maintenance_work_mem: "1G"
# param1: value1
# param2: value2
sources:
mysql:
readers: 4
writers: 4
retry: 3
db_conn:
host: "ecs-6ac8"
port: "12600"
user: "portal_mysql"
password: "Huawei@123"
charset: 'utf8'
connect_timeout: 10
schema_mappings:
portal_db: sch_portal_db #上面配置文件的opengauss.database.schema与: 后面的一致
limit_tables:
- delphis_mediterranea.foo
skip_tables:
- delphis_mediterranea.bar
enable_compress: No
compress_tables:
- delphis_mediterranea.foo
grant_select_to:
- usr_readonly
lock_timeout: "120s"
my_server_id: 100
replica_batch_size: 10000
replay_max_rows: 10000
执行迁移
#安装
sh gs_mysync.sh install 1
#1是默认的workspace,如果想修改某个workspace的参数,比如workspace.id=2的计划的参数,请将/ops/portal/config替换为/ops/portal/workspace/2/config。
#其中workspace.id表示迁移任务id,取值为数字和小写字母的组合,不同的id区分不同的迁移任务,不同迁移任务可并行启动。若未设置workspace.id,则使用其默认值1。若使用已存在的workspace.id,并修改其中的配置,请在portal/workspace/${workspace.id}/config/路径下修改对应的配置文件
#启动
sh gs_mysync.sh start 1
若没有报错,则检查是否迁移完成
若有报错,则查看portal/workspace/1/logs/full_migration.log文件(见常见问题处理方式)
检查是否迁移完成
常见问题处理方式
查看日志
vi /data/ccc0703/portal/workspace/1/logs/full_migration.log
1、database不存在:
我们配置的文件在portal/config下,执行命令的workspace.id=1,可能是portal/workspace/1/config里的配置文件没有更新过来:
vi /data/ccc0703/portal/workspace/1/config/migrationConfig.properties
vi /data/ccc0703/portal/workspace/1/config/chameleon/default_1.yml
#检查以上两个配置文件的内容是否与之前配置的一致,如果不一致就修改后再启动
2、lower_case_table_names不一致
修改openGauss配置文件/data/ccc0703/om_cluster/install/data/dn/postgresql.conf,在其末尾加上dolphin.lower_case_table_names=0,然后重启openGauss,一定要重启!
重启openGauss后再执行迁移
3、注意
如果MySQL和openGauss不在同一台机器则需要openGauss配置文件的:
posgresql.conf中的listen_address=‘*’
pg_hba.conf末尾加上host all all 0.0.0.0/0 sha256 (注意与其他内容保持一致)
修改完需要重启openGauss
onf,在其末尾加上dolphin.lower_case_table_names=0,然后重启openGauss,一定要重启!
[外链图片转存中…(img-s1djqrlw-1720151344188)]
重启openGauss后再执行迁移
3、注意
如果MySQL和openGauss不在同一台机器则需要openGauss配置文件的:
posgresql.conf中的listen_address=‘*’
pg_hba.conf末尾加上host all all 0.0.0.0/0 sha256 (注意与其他内容保持一致)
可以参考
修改完需要重启openGauss