背景
目前xugu 迁移工具还不能支持个性化的sql 批量导出导入需求,因此需要写一个批量导出导入的脚本进行支持。
一、windows 版 xg-fetl 脚本bat
1、windows版xg-fetl 支持sql个性化的 批量导出脚本bat,文件名:xg-fetl_export.bat
@echo off
setlocal enabledelayedexpansion
rem rem是bat脚本中的注释
rem tables 就是批量表名
set "tables=test1 test2 test3 test4 test5 test6"
rem D:\test 为导出目录,全英文; SYSDBA.%%i 为指定表; 其余需要改for循环中的sql语句
for %%i in (%tables%) do (
java -jar xg-fetl.jar selectexp D:\test SYSDBA.%%i "select * from SYSDBA.%%i limit 100"
)
endlocal
2、windows版xg-fetl 支持sql个性化的 批量导入脚本bat,文件名:xg-fetl_import.bat
@echo off
rem 为注释行
REM 需要在目标端建立同样的表名及表结构
setlocal enabledelayedexpansion
REM 定义表名数组
set "tables=test1 test2 test3 test4 test5 test6"
REM D:\test\SYSDBA.%%i 为含XX.exp的目录,目录要全英文; SYSDBA.%%i 为指定表
for %%i in (%tables%) do (
java -jar xg-fetl.jar impt D:\test\SYSDBA.%%i SYSDBA.%%i
)
endlocal
二、linux 版xg-fetl脚本shell
1. linux 版xg-fetl 根据自定义sql 批量导出脚本 xg-fetl_export.sh
#!/bin/bash
tables=(table1 table2 table3)
for tab_name in ${tables[@]}; do
# /data/xg-fetl/sysdba 为导出数据目录; SYSDBA.${tab_name} 为表的变量名
java -jar xg-fetl.jar selectexp /data/xg-fetl/sysdba SYSDBA.${tab_name} "select * from SYSDBA.${tab_name} limit 100"
done
2. linux 版xg-fetl 根据自定义sql 批量导入脚本 xg-fetl_import.sh
#!/bin/bash
tables=(table1 table2 table3)
for tab_name in ${tables[@]}; do
# 需要在目标端建立同样的表名及表结构; SYSDBA.${tab_name} 为表的变量名
java -jar xg-fetl.jar impt /data/xg-fetl/sysdba/SYSDBA.${tab_name} SYSDBA.${tab_name}
done