OceanBase使用OBLOADER、OBDUMPER进行导入导出

需求背景

需要定时给OB进行数据备份,并且在需要时可以全量导入,所以只能通过脚本来减少手动操作的繁琐。

脚本示例

导出脚本

#!/bin/bash

# 这一步不能省,如果不设置定时运行时可能会有问题
export JAVA_HOME=/usr/jdk1.8

OB_DUMPER_HOME=/usr/local/ob-loader-dumper-3.1.0-SNAPSHOT

# 用户可指定多个
arr=(USER1 USER2)
DATA_BASE=/obdata
DATA_FILE=OBDATA-`date +%Y%m%d`

DB_BACK_HOME=$DATA_BASE/$DATA_FILE

mkdir -p $DB_BACK_HOME

cd $OB_DUMPER_HOME/bin

for DB in ${arr[*]}
do
	mkdir  $DB_BACK_HOME/$DB
    ./obdumper -h192.168.12.10 -P2883 -uSYS -p "test123" --public-cloud -c test01 -t test02 -D $DB --sql --ddl --table='*' --view='*' --function='*' --procedure='*' --trigger='*' --sequence='*' --package='*' -f $DB_BACK_HOME/$DB  
done

cd $DATA_BASE

# 压缩之后,并删除相应文件
tar -zcvf  ${DATA_FILE}.tar.gz ${DATA_FILE} --remove-files

导入脚本

!/bin/bash

export JAVA_HOME=/usr/jdk1.8

OB_DUMPER_HOME=/usr/local/ob-loader-dumper-3.1.0-SNAPSHOT
arr=(USER1 USER2)
DATA_BASE=/obdata
DATA_FILE=OBDATA-PWE-20220520

cd $DATA_BASE
rm -rf  $DATA_BASE/$DATA_FILE
tar zxvf ${DATA_FILE}.tar.gz


DB_BACK_HOME=$DATA_BASE/$DATA_FILE

mkdir -p $DB_BACK_HOME

cd $OB_DUMPER_HOME/bin

for DB in ${arr[*]}
do
    ./obloader -h192.168.12.10 -P 3306 -u SYS --password='test123' --public-cloud -c test01 -t test02 -D $DB --sql --ddl --replace-data --table='*' --view='*' --function='*' --procedure='*' --trigger='*' --sequence='*' --package='*' -f $DB_BACK_HOME/$DB  
done

rm -rf  $DATA_BASE/$DATA_FILE

参考资料

https://www.oceanbase.com/docs/enterprise/oceanbase-database-cn/V3.2.3/10000000000355327

posted on 2022-07-20 06:38  白首码农  阅读(3720)  评论(0编辑  收藏  举报