GaussDB for DWS gds線下遷移
線下集群通過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小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。