GaussDB(DWS) GDS导入容错详解(gaussdbdws8.1客户端安装步骤)
761
2022-05-29
线下集群通过gds工具至线上DWS迁移实施
迁移流程
迁移流程
迁移步骤
建议起始时间
耗时
备注
开始
迁移环境准备:
申请迁移中转服务器
配置DWS集群安全组
配置线下集群白名单
下载Gsql客户端和GDS软件包
上传工具包到中转服务器
解压GDS软件包
配置GDS加载服务器
数据迁移前准备:
线下集群元数据导出
手工整合元数据导出文件
上传集群迁移工具到中转机
配置dbinfo.conf
配置gds.conf
配置迁移表清单
将元数据导入DWS集群
生成迁移脚本
新建DWS目标表
查看建表日志
静态数据迁移实施:
再次配置data_migration工具的dbinfo.conf
再次在生成迁移脚本
创建导出外表
查看外表导出日志
修改导出外表脚本
向中转机导出线下集群数据
查看导出脚本执行日志
删除导出外表
查看导出数据
新建导入外表
查看外表导入日志
向DWS导入数据
查看导入数据日志
清理外表
查看外表清理日志
对新导入数据的表执行analyse
查看analyse日志
删除已导出数据(可选)
静态数据迁移实施后:
上传数据校验工具至线下集群
配置 dbinfo.conf
执行数据校验脚本
执行创建统计信息表语句
获取需要统计的表清单
执行数据统计
在DWS集群上执行校验
迁移后数据验证
迁移后业务验证
申请迁移中转机
迁移开始前一周内
0.5h
不中断数据导入修改
配置DWS集群安全组
迁移开始前一周内
0.1h
不中断数据导入修改
配置线下集群白名单
迁移开始前一周内
0.1h
不中断数据导入修改
下载Gsql客户端和GDS软件包
迁移开始前一周内
0.1h
不中断数据导入修改
上传工具包到中转服务器
迁移开始前一周内
0.1h
不中断数据导入修改
解压GDS软件包
迁移开始前一周内
0.1h
不中断数据导入修改
配置GDS加载服务器
迁移开始前一周内
0.2h
不中断数据导入修改
线下集群元数据导出
迁移开始前4小时
0.5h
不中断数据导入修改
上传集群迁移工具到中转机
迁移开始前4小时
0.1h
不中断数据导入修改
配置dbinfo.conf
迁移开始前4小时
0.1h
不中断数据导入修改
配置gds.conf
迁移开始前4小时
0.1h
不中断数据导入修改
配置迁移表清单
迁移开始前4小时
0.2h
不中断数据导入修改
将元数据导入DWS集群
迁移开始前4小时
0.2h
不中断数据导入修改
生成迁移脚本
迁移开始前4小时
0.2h
不中断数据导入修改
新建DWS目标表
迁移开始前4小时
0.5h
不中断数据导入修改
查看建表日志
迁移开始前4小时
0.2h
不中断数据导入修改
启动业务双写,同时对线下和线上集群发放业务
再次配置data_migration工具的dbinfo.conf
迁移开始
0.2h
再次在生成迁移脚本
迁移开始
0.2h
创建导出外表
迁移开始
1h
查看外表导出日志
迁移开始
0.2h
修改导出外表脚本
迁移开始
0.2h
向中转机导出线下集群数据
迁移开始
2h
查看导出脚本执行日志
迁移开始
删除导出外表
迁移开始
查看导出数据
迁移开始
新建导入外表
迁移开始
查看外表导入日志
迁移开始
向DWS导入数据
迁移开始
查看导入数据日志
迁移开始
清理外表
迁移开始
查看外表清理日志
迁移开始
对新导入数据的表执行
迁移开始
analyse
查看analyse日志
迁移开始
删除已导出数据(可选)
迁移结束
1. 数据迁移前环境准备
1.1 申请迁移中转服务器
在启动集群迁移前,需要准备迁移中转机,中转机要求网络可以和线上集群,线下集群互通;磁盘的容量>20T
中转机主要用途:
1) 部署GDS服务,作为GDS导入和导出服务器;
2) 部署Gsql客户端用于访问线下集群和DWS集群,执行迁移脚本
如果使用ECS服务区作为中转机,需要在DWS集群具有相同的区域、可用区购买弹性云服务器,可参考如下链接:
https://support.huaweicloud.com/mgtg-dws/dws_01_0128.html
https://support.huaweicloud.com/devg-dws/dws_04_prepare_for_gds_01.html
1.2 下载DWS Gsql客户端和GDS软件包
GDS服务
获取GDS工具前,需要确认下ECS操作系统类型,按照操作系统准备工具包,对于arm版本需要分别下载GDS和GSQL工具包,X86版本在GSQL工具包里已经包含了GDS
ARM版本:https://dws.obs.cn-north-1.myhuaweicloud.com/download/DWS-Gds-1_7_2.tar.gz
X86版本:https://support.huaweicloud.com/tg-dws/dws_07_0002.html
1.3 在中转服务器上创建迁移用户omm
如果中转服务器上没有omm用户,则需要执行该操作
useradd -g wheel omm -d /home/omm -p 'Bigdata123@'
1.4 上传软件包到中转服务器
使用omm用户,通过FTP工具将工具包上传到中转服务器/tmp目录
1.5 解压GDS软件包
以omm用户登录中转机服务器,在/tmp目录解压软件包
unzip dws_client_euler_kunpeng_x64.zip
chown -R omm:wheel *
1.6 配置GDS加载服务器
数据对象多,数据量大的情况下建议使用多负载机,部署多gds,进行数据的并行导出导入,最大限度利用磁盘空间及I/O、网络带宽(在不影响现网业务的情况下提升数据迁移效率)。注意:中转服务器上要保证gsql、gds、gs_dump三个命令可用,且安装包必须对应相同类型的平台,例如x86的程序不能运行在arm架构
1) 以omm用户登录中转服务器,创建gds路径
su - omm
mkdir -p /home/omm/dwsgds
mkdir -p /home/omm/c80gds
mkdir -p /home/omm/651gds
2) 将从DWS获取gds客户端及依赖包同步至对应路径下
cp -r bin /home/omm/dwsgds/
cp -r lib /home/omm/dwsgds/
cd gds/
cp gds /home/omm/dwsgds/bin
chown -R omm:wheel /home/omm/dwsgds/
3) 从老集群获取GDS和gs_dump客户端以及依赖包同步至对应路径下
对C80版本集群:
以omm用户登录线下集群
cd /opt/huawei/Bigdata/mppdb/core/
scp -r lib omm@ip:/home/omm/c80gds
cd /opt/huawei/Bigdata/mppdb/core/bin
scp gds omm@ip:/home/omm/c80gds/bin
scp gs_dump omm@ip:/home/omm/c80gds/bin
对651版本集群:
以omm用户登录线下集群
cd /opt/huawei/Bigdata/mppdb/core/
scp -r lib omm@ip:/home/omm/651gds
cd /opt/huawei/Bigdata/mppdb/core/bin
scp gds omm@ip:/home/omm/651gds/bin
scp gs_dump omm@ip:/home/omm/651gds/bin
4) 切换到中转机服务器
su - omm
chown -R omm:wheel /home/omm/c80gds/
chown -R omm:wheel /home/omm/651gds/
5) 配置环境变量
su - omm
vi ~/.bashrc
添加如下内容:
export PATH=/home/omm/gds/bin:/home/omm/c80gds/bin:/home/omm/c80gds/bin:$PATH
export LD_LIBRARY_PATH=/home/omm/gds/lib/:/home/omm/c80gds/lib/:/home/omm/c80gds/lib/:$LD_LIBRARY_PATH
保存退出
source ~/.bashrc
6) 确认环境变量生效
/home/omm/dwsgds/bin/gds -V
mkdir -p /home/omm/dwsgds/bin/log
/home/omm/c80gds/bin/gds -V
mkdir -p /home/omm/c80gds/bin/log
/home/omm/651gds/bin/gds -V
mkdir -p /home/omm/651gds/bin/log
7) 挂载数据盘
mkdir -p /srv/Bigdata/mppdb
mkfs.xfs -f /dev/vdb
mount /dev/vdb /srv/Bigdata/mppdb
chown -R omm:wheel /srv/
8) 将挂载的盘加入/etc/fstab配置文件
vi /etc/fstab
UUID= 1b8bb98e-1e01-4fbc-9a1b-eaa1227069f6 /srv/Bigdata/mppdb xfs defaults 1 1
vi /etc/fstab
通过blkid 查看需要挂载盘的uuid,例如:
/dev/vda1: UUID="7B46-32E0" TYPE="vfat" PARTLABEL="EFI System Partition" PARTUUID="6313f2d6-3e96-4df6-a2f5-bb41804d0ae5"
/dev/vda2: UUID="3ed3c819-430f-424c-ab61-1426d329b80d" TYPE="ext4" PARTUUID="02dc92ad-3898-4488-ae86-3229d422b090"
/dev/vdb: UUID="1b8bb98e-1e01-4fbc-9a1b-eaa1227069f6" TYPE="xfs"
9) 启动gds服务,根据负载机配置,每块数据盘对应启动3个gds服务(其中C80和651两个版本各启动一个导出,DWS版本启动一个导入)。
/home/omm/gds/bin/c80gds -d /srv/Bigdata/mppdb -p ip:10086 -H 0.0.0.0/0 -l /home/omm/c80gds/bin/log/gds10086.log -S 10GB -D -t 32
/home/omm/gds/bin/651gds -d /srv/Bigdata/mppdb -p ip:10086 -H 0.0.0.0/0 -l /home/omm/651gds/bin/log/gds10086.log -S 10GB -D -t 32
/home/omm/gds/bin/dwsgds -d /srv/Bigdata/mppdb -p ip:10087 -H 0.0.0.0/0 -l /home/omm/dwsgds/bin/log/gds10087.log -D -t 32
1.7 配置DWS集群安全组
迁移中转机会启动GDS和Gsql服务,与DWS集群通信,因此需要在DWS集群的安全组的开放对应服务的端口.
在集群的“基本信息”页面中,找到“安全组”参数,单击安全组名称进入安全组详情页面,选择入方向规则.
1) 在DWS上配置Gsql访问规则:
2) 在DWS上配置GDS服务的安全组入规则配置样例(有多个GDS服务端口的话,都需要配置上,例如10086,10087):
1.8 配置线上集群白名单
执行如下命令在线下集群所有CN的pg_hba.conf配置文件中增加一条客户端接入认证规则
source ${BIGDATA_HOME}/mppdb/.mppdbgs_profile
gs_guc set -Z coordinator -N all -I all -h "host all jack x.x.x.x/x sha256"
注:
l all表示允许客户端连接到任意的数据库。
l jack表示连接数据库的用户。
l x.x.x.x表示只允许IP地址为x.x.x.x的主机连接。在使用过程中,请根据用户的网络进行配置修改。
l sha256表示连接时jack用户的密码使用sha256算法加密。
2. 数据迁移前准备
2.1 线下集群元数据导出
在确认迁移集群范围后,使用dump.sh工具,登录线下集群,导出集群中所有数据库的元数据。
cd /srv/BigData/mppdb/data1
gs_dumpall -W Bigdata@123 -U omm -f MPPDB_backup.sql -p 25308 –s
2.2 手工整合元数据导出文件
修改MPPDB_backup.sql元数据文件,删除所有建表语句,然后将文件copy到中转服务器(注意:只保留创建数据库、用户、模式等信息,保证新集群能够正确创建这些信息),然后将文件copy到中转服务器
将cat MPPDB_backup.sql | grep -i 'CREATE SCHEMA' 和cat MPPDB_backup.sql | grep -i 'ALTER SCHEMA'的结果添加到MPPDB_backup.sql create database后,其余建表语句清除
scp MPPDB_backup.sql omm@ip:/home/omm/
2.3 上传集群迁移工具到中转机
使用ftp工具将data_migration.zip工具上传到加载机所在服务器的/home/omm目录下。
以omm用户登录加载机服务器,并以omm用户执行:
cd /home/omm
unzip data_migration.zip
cd data_migration
dos2unix *.sh
dos2unix table_list
chmod +x *.sh
chmod +x table_list
2.4 配置data_migration工具的dbinfo.conf
cd conf
vi dbinfo.conf
配置介绍:
sysuser='omm' #操作系统用户
old_cluster_ip='x.x.x.x' #旧集群CN IP
old_cluster_db='postgres' #旧集群要迁移的数据库
old_cluster_port='25308' #旧集群数据库连接端口
old_cluster_db_user='omm' #旧集群数据库用户
old_cluster_password='xxxxxx' #旧集群数据库密码
gds_ip_list=’x.x.x.x’ #gds加载机ip列表,空格分隔
gdspath=’ /srv/BigData/mppdb/data’ #gds加载机数据存储路径
new_cluster_db='lx_test' #新集群迁入的数据库
new_cluster_port='25308' #新集群数据库连接端口
new_cluster_db_user='omm' #新集群数据库用户
new_cluster_password='xxxxxxx' #新集群数据库密码
part_column='"time_stamp"' #时间戳
2.5 配置data_migration工具的gds.conf
vi gds.conf
配置介绍:
gds_write_server=#GDS导出服务器
gds_read_server="#GDS导入服务器
2.6 配置迁移表清单
cd /tmp/data_migration
vi table_list
参数格式:
按照schema加表名的格式填写注意:表名字必须加双引号
ombi."grey_evaluation_timeseries"
2.7 将元数据导入DWS集群
登录中转服务器,使用omm用户,向DWS集群导入元数据
source ~/.bashrc
gsql -d sqoop -p 8000 -h x.x.x.x -U dbadmin -W passwd -f MPPDB_backup.sql > export.log
2.8 在生成迁移脚本
进入data_migration目录,生成迁移脚本
cd /home/omm/data_migration
sh table_dump.sh table_list
执行成功后,生成以下路径
2.9 新建DWS目标表
进入new_cluster文件夹,执行创建目标表脚本,在DWS创建新表
cd /home/omm/data_migration/new_cluster/script
sh create_goal_table.sh
2.10 查看建表日志
进入new_cluster文件夹下的log目录打开create_goal_table.log,查看是否有报错
cd /home/omm/data_migration/new_cluster/log
vi create_goal_table.log
2.11 启动业务双写,同时对线下和线上集群发放业务
需要业务侧配合
3. 数据迁移实施
如下操作在中转机服务器上执行:
3.1 迁移表校验
业务双写启动一段时间后,开始准备要迁移的表,数据表迁移原则:
表类型
迁移方法
简单表,有timestamp字段
通过迁移脚本迁移
简单表,没有timestamp字段
全量导,需提前识别并停止业务更新
分区表,有timestamp字段,并且是分区键
通过迁移脚本迁移
分区表,没有timestamp字段
需提前识别
分区表,有timestamp字段,timestamp字段没有作为分区键
通过迁移脚本迁移
3.1.1 过滤没有数据业务表
在中转机上执行校验数据脚本
cd data_check/gen_tablelist/script
sh create_tabl_shell.sh
sh normal_count_table_shell.sh
通过日志查看线上和线下集群是否插入校验数据
/data_check/gen_table/log> tailf normal_count_table.log
Gsql链接DWS执行sql过滤出这段时间未入数据的表,将导出数据保留,同时将这些表从tablelist中删除,需要由业务排查没有双写的原因
select a.tablename from normal_table_count a where exists(select 1 from normal_table_count where tablename=a.tablename and date!=a.date) group by 1;
3.1.2过滤简单业务表
Gsql链接DWS执行sql,将导出数据保留,命名简单表
select relname from pg_class where parttype != 'p' and relkind='r' and relname not like '%pmk%'and relname not like '%pg%';
3.2 再次配置data_migration工具的dbinfo.conf(正式迁移数据)
要根据业务时间戳字段,修改如下参数
cd conf
vi dbinfo.conf
part_column='"time_stamp"' #时间戳
3.3 再次在生成迁移脚本
进入data_migration目录,生成迁移脚本
cd /home/omm/data_migration
sh table_dump.sh table_list
执行成功后,生成以下路径
3.4 创建导出外表
进入old_cluster文件夹下的script目录,在线下集群上创建导出外表
cd /home/omm/data_migration/old_cluster/script
sh create_exp_foreign_tab.sh
3.5 查看外表导出日志
进入old_cluster文件夹下的log目录打开create_exp_foreign_tab.log,查看是否有报错
cd /home/omm/data_migration/old_cluster/log
vi create_exp_foreign_tab.log
3.6 修改导出外表脚本
检查生成的导出外表sql,对简单表需要替换掉between后的语句(注意:简单表即非分区表,按照现场环境设置)
cd old_cluster/sql/
vi exp_data_cmd.sql
表类型
修改规则
简单表,有timestamp字段
:%s/where "0_0_pt_d" between '2018-10-29 00:00:00' and '2018-10-29 00:00:00'//g
简单表,没有timestamp字段
全量导,需提前识别并停止业务更新
分区表,有timestamp字段,并且是分区键
按timestamp字段过滤导出导入
分区表,没有timestamp字段
需提前识别
分区表,有timestamp字段,timestamp字段没有作为分区键
按timestamp字段过滤导出导入
3.7 向中转机导出线下集群数据
进入old_cluster文件夹下的script目录,执行数据导出脚本
cd /home/omm/data_migration/old_cluster/script
sh exp_data_script.sh
3.8 查看导出脚本执行日志
进入old_cluster文件夹下的log目录打开exp_data_script.log,查看是否有报错
cd /home/omm/data_migration/old_cluster/log
vi exp_data_script.log
3.9 删除导出外表
导出完成后,需要清理掉线下集群的外表
sh clear_exp_foreign_tab_script.sh
3.10 查看导出数据
进入gds加载机数据存储路径,查看数据是否成功导出3.11 新建导入外表
进入new_cluster文件夹,执行创建目标表脚本,在DWS创建新表
cd /home/omm/data_migration/new_cluster/script
sh create_imp_foreign_tab.sh
3.12 查看外表导入日志
进入new_cluster文件夹下的log目录打开create_imp_foreign_tab.log,查看是否有报错
cd /home/omm/data_migration/new_cluster/log
vi create_goal_table.log
3.13 向DWS导入数据
进入new_cluster文件夹,执行数据导入脚本,向DWS导入数据
cd /home/omm/data_migration/new_cluster/script
sh imp_data_script.sh
3.14 查看导入数据日志
进入new_cluster文件夹下的log目录打开imp_data_script.log,查看是否有报错
vi ../log/imp_data_script.log
3.15 清理外表
进入new_cluster文件夹,执行数据清理脚本,清理生成的外表
cd /home/omm/data_migration/new_cluster/script
sh clear_imp_foreign_tab_script.sh
3.16 查看外表清理日志
进入new_cluster文件夹下的log目录打开clear_imp_foreign_tab_script.log,查看是否有报错
cd /home/omm/data_migration/new_cluster/log
vi clear_imp_foreign_tab_script.log
3.17 对新导入数据的表执行analyse
进入new_cluster文件夹,执行数据清理脚本,清理生成的外表
cd /home/omm/data_migration/new_cluster/script
sh analyze_table_script.sh
3.18 查看analyse日志
进入new_cluster文件夹下的log目录打开analyze_table_script.log,查看是否有报错
cd /home/omm/data_migration/new_cluster/log
vi analyze_table.log
3.19 删除已导出数据(可选)
为了避免导出数据占用空间,可以在下次集群迁移前执行数据清理脚本
cd /home/omm/data_migration/script
sh script delete_local_data.sh
运行后进入Gds加载机挂载目录,查看数据是否删除。
附件: datamove.rar 19.92KB 下载次数:2次
DWS EI企业智能
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。