【AntDB数据库】AntDB数据库迁移(二)

导出导入数据

导出数据

编写配置文件

ora2pg 导出数据的配置文件如下:

cat > shcrm_so1_data.conf << EOF
ORACLE_HOME /home/postgres/oracle/instantclient_11_2  
ORACLE_DSN  dbi:Oracle:host=10.10.141.225;sid=shcrm1  
ORACLE_USER so1  
ORACLE_PWD  Csxt-123  
SCHEMA  so1 
TYPE COPY 
OUTPUT_DIR  /adbdata/ora2pg/data/so1
USER_GRANTS 1
FILE_PER_TABLE 1
SPLIT_FILE 1
DISABLE_SEQUENCE 1
STOP_ON_ERROR 0
ORACLE_COPIES 10
DATA_LIMIT  100000
SPLIT_LIMIT  10000000
WHERE expire_date >= to_date('2015/06/01 00:00:00','yyyy/MM/dd hh24:mi:ss') and expire_date < to_date('2016/07/01 00:00:00','yyyy/MM/dd hh24:mi:ss')
EOF

OUTPUT_DIR 指定了导出sql文件的存放目录。

WHERE 指定了导出时候对数据的过滤条件,如果需要全表数据导出,则去掉该参数。

创建相关目录

mkdir -p /adbdata/ora2pg/data/{so1,so2,party}/import_done

import_done 存放各个用户下,导入完成后的sql文件。

导出数据

在迁移涉及到的表数量比较多的时候,建议采用表的方式来记录迁移表的信息,方便查询表的迁移状态。

创建配置表

创建配置表用来存放迁移表的信息:

create table t_ora2adb_tableinfo
(
dbname text,
owner text,
tablename text,
batch_tag text,
o_cnt numeric,
a_cnt numeric,
o_cnt_time timestamp,
a_cnt_time timestamp,
o_minus_a numeric,
a_minus_o numeric,
o_size_m numeric,
a_size_m numeric,
is_export numeric,
export_time timestamp,
where_filter text
);

初始化配置表

insert into t_ora2adb_tableinfo
(dbname,owner,tablename,is_export)
select 'shhis',a.tableowner,a.tablename,0
from pg_tables a
where 1=1
and a.tableowner not in ('postgres','') 
and a.schemaname not in ('public','pg_catalog','information_schema')
and a.tablename like 'sec%';
;

更新配置表字段

字段is_export的值在初始化的时候设置为0,需要更新该字段为1或者更新其他字段,则通过update语句来操作:

update t_ora2adb_tableinfo set xx=xx where xx ..

编写导出脚本

vi ora2pg_export.sh
#!/bin/bash 
# ora2pg export 
# ora2pg config: shhis_data.conf
# sh ora2pg_export.sh owner tablenamelike tablecnt
# sh ora2pg_export.sh configfile username tablename  logdir tablecnt
 
function check_ora_conn
{
conn_tag=`sqlplus -S /nolog < ${logdir}/"ora2pg_"$tableowner_$t.log 2>&1 &
 echo "ora2pg to export table: $tableowner.$t"
done
}
# init parameter
configfile=$1
username=$2
tablelike=$3
logdir=$4
tablecnt=$5
tableowner="$username"
dbname="shcrm1"
# Make sure this option is correct,If the oracle database is not connected, the program will exit 
oraconn="$username/[email protected]/shcrm"
psqlconn="psql -d $dbname -U $tableowner -q -t"
check_ora2pg
check_ora2pgcfg
init_tablecnt
ora2pg_background

执行导出操作

sh ora2pg_export.sh /adbdata/ora2pg/conf/shcrm_so1_data.conf so1 ord_user_ext_f_210_201612 /adbdata/ora2pg/log 3

AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔电信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。

你可能感兴趣的:(国产数据库,AntDB,AISWare,AntDB,数据库,大数据)