背景
目前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: est 为导出目录,全英文; SYSDBA.%%i 为指定表; 其余需要改for循环中的sql语句 for %%i in (%tables%) do ( java -jar xg-fetl.jar selectexp D: est 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: estSYSDBA.%%i 为含XX.exp的目录,目录要全英文; SYSDBA.%%i 为指定表 for %%i in (%tables%) do ( java -jar xg-fetl.jar impt D: estSYSDBA.%%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