一、ora2pg部署
1.1 ora2pg简介
ora2pg是Oracle免费迁移的工具,可以将迁移到LightDB,简单使用并记录
1.2 安装perl依赖
[root@localhost ~]$ yum install -y perl perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker
加载的插件:langpacks、ulninfo
解决依赖关系
--> 运行事务检查
---> 包 perl.x86_64 4:5.16.3-294.el7_6 将被更新
---> 包 perl.x86_64 4:5.16.3-297.el7 将是一个更新
(省略中间……)
安装的依赖:
gdbm-devel.x86_64 0:1.10-8.el7
perl-ExtUtils-Install.noarch 0:1.58-297.el7
perl-ExtUtils-ParseXS.noarch 1:3.18-3.el7
perl-Locale-Maketext.noarch 0:1.23-3.el7
perl-模块-CoreList.noarch 1:2.76.02-297.el7
perl-Module-Load-Conditional.noarch 0:0.54-3.el7
perl-Params-Check.noarch 1:0.38-2.el7
perl-Test-Harness.noarch 0:3.28-3.el7
perl-version.x86_64 3:0.99.07-6.el7
systemtap-sdt-devel.x86_64 0:4.0-13.0.1.el7
更新:
perl.x86_64 4:5.16.3-297.el7
依赖更新:
perl-libs.x86_64 4:5.16.3-297.el7
完全的!
1.3 安装DBI模块
DBI,Database Independent Interface,是Perl语言连接数据库的接口,下载地址
下载DBI-1.643.tar.gz
然后解压安装
[root@node1 ora2pg]# tar -xzvf DBI-1.643.tar.gz
[root@node1 ora2pg]# cd DBI-1.643/
[root@node1 DBI-1.643]# perl Makefile.PL
[root@node1 DBI-1.643]# make && make install
1.4 安装DBD::Oracle模块
添加环境变量,需要在本机安装Oracle,在root下执行导出智能
[root@node1 DBD-Oracle-1.74]# export ORACLE_BASE=/oracle/app
[root@node1 DBD-Oracle-1.74]# export ORACLE_HOME=/oracle/app/product/19.3.0/db_1
[root@node1 DBD-Oracle-1.74]# export ORACLE_SID=orcl1
[root@node1 DBD-Oracle-1.74]# export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
安装DBD-Oracle驱动,下载地址:点开后面连接找到下载
下载DBD-Oracle-1.74.tar.gz
[root@node1 ora2pg]# tar -xzvf DBD-Oracle-1.74.tar.gz
[root@node1 ora2pg]# cd DBD-Oracle-1.74/ cd DBD-Oracle-1.74/
[root@node1 DBD-Oracle-1.74]# perl Makefile.PL
[root@localhost /usr/local/DBD-Oracle-1.74]$ make && make install
……略……
安装 /usr/local/share/man/man3/DBD::Oracle::Troubleshooting::Win64.3pm
安装 /usr/local/share/man/man3/DBD::Oracle::Troubleshooting::Cygwin.3pm
安装 /usr/local/share/man/man3/DBD::Oracle::Troubleshooting::Hpux.3pm
安装 /usr/local/share/man/man3/DBD::Oracle::GetInfo.3pm
将安装信息附加到 /usr/lib64/perl5/perllocal.pod
最后安装成功的信息如上所示
1.5 安装DBD::Pg模块
安装DBD-Pg驱动, ,下载出DBD -Pg-3.14.2.tar.gz
登录到lightdb用户,配置pg_config
cd $PGHOME/bin
ln -s lt_config pg_config
root用户配置环境变量并安装
导出 LIGHTDB_PORT=5432
导出 PGUSER=lightdb
导出 LIGHTDB_HOST=10.0.4.4
导出 POSTGRES_HOME=/home/lightdb/base/lightdb-x/13.3-22.1
导出 PGDATA=/home/lightdb/data
导出 PATH=${POSTGRES_HOME}/bin:${POSTGRES_HOME}/tools/iftop/bin:${POSTGRES_HOME}/tools/iotop/bin:${POSTGRES_HOME}/tools/linux-ftools/bin:${POSTGRES_HOME}/工具/vmtouch/bin:${PATH}
导出 LD_LIBRARY_PATH=${POSTGRES_HOME}/lib:${POSTGRES_HOME}/lib/ltext:${LD_LIBRARY_PATH}
[root@node1 ora2pg]# tar -zxvf DBD-Pg-3.15.1.tar.gz
[root@node1 ora2pg]# cd DBD-Pg-3.15.1/
[root@localhost /usr/local]$ perl Makefile.PL
[root@localhost /usr/local]$ 制作
[root@localhost /usr/local]$ make install
在 blib/arch 中找到的文件:将 blib/lib 中的文件安装到依赖于架构的库树中
安装 /usr/local/lib64/perl5/auto/DBD/Pg/Pg.so
安装 /usr/local/lib64/perl5/auto/DBD/Pg/Pg.bs
安装 /usr/local/lib64/perl5/DBD/Pg.pm
安装 /usr/local/lib64/perl5/Bundle/DBD/Pg.pm
安装 /usr/local/share/man/man3/Bundle::DBD::Pg.3pm
安装 /usr/local/share/man/man3/DBD::Pg.3pm
将安装信息附加到 /usr/lib64/perl5/perllocal.pod
最后安装成功的信息如上所示
1.6 安装ora2pg
[root@node1 ora2pg]# cd ora2pg
[root@node1 ora2pg]# ls
changelog doc INSTALL lib LICENSE Makefile.PL MANIFEST 打包 README 脚本
[root@node1 ora2pg]# perl Makefile.PL正在检查您的工具包是否完整...
[root@node1 ora2pg]# 制作
cp lib/Ora2Pg.pm blib/lib/Ora2Pg.pm
cp lib/Ora2Pg/GEOM.pm blib/lib/Ora2Pg/GEOM.pm
cp lib/Ora2Pg/PLSQL.pm blib/lib/Ora2Pg/PLSQL.pm
cp lib/Ora2Pg/Oracle.pm blib/lib/Ora2Pg/Oracle.pm
cp lib/Ora2Pg/MySQL.pm blib/lib/Ora2Pg/MySQL.pm
cp 脚本/ora2pg blib/脚本/ora2pg
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ora2pg
cp 脚本/ora2pg_scanner blib/脚本/ora2pg_scanner
/usr/bin/perl -MExtUtils::MY -e 'MY->fixin(shift)' -- blib/script/ora2pg_scanner
操纵 blib/man3/ora2pg.3
[root@node1 ora2pg]# 安装
安装 /usr/local/share/perl5/Ora2Pg.pm
安装 /usr/local/share/perl5/Ora2Pg/GEOM.pm
安装 /usr/local/share/perl5/Ora2Pg/PLSQL.pm
安装 /usr/local/share/perl5/Ora2Pg/Oracle.pm
安装 /usr/local/share/perl5/Ora2Pg/MySQL.pm
安装 /usr/local/share/man/man3/ora2pg.3
安装 /usr/local/bin/ora2pg_scanner
安装 /usr/local/bin/ora2pg
将默认配置文件 (ora2pg.conf.dist) 安装到 /etc/ora2pg
将安装信息附加到 /usr/lib64/perl5/perllocal.pod
1.7 查看软件是否安装成功
[root@node1 ora2pg]# ora2pg --help
用法:ora2pg [-dhpqv --estimate_cost --dump_as_html] [--option value]
-a | --allow str :允许导出的对象的逗号分隔列表。
也可以与 SHOW_COLUMN 一起使用。
如上,ora2pg 命令正确显示即安装成功
二、迁移数据库对象
2.1 编辑配置文件ora2pg.conf
用root账户,编辑配置文件ora2pg.conf
### Oracle 客户端的 ORACLE_HOME
ORACLE_HOME /oracle/app/product/19.3.0/db_1
### 源端连接串MySQL如:dbi:mysql:host=192.168.1.10;database=tpch;port=3306
ORACLE_DSN dbi:Oracle:host=10.0.4.4;sid=orcl1;port=1521
PG_VERSION 13
TRUNCATE_TABLE 1 #如果设置为 1,则在加载数据之前将添加 TRUNCATE TABLE 指令。这仅在 INSERT 或 COPY 导出类型期间可用。
PG_NUMERIC_TYPE 0
PG_INTEGER_TYPE 0 #指定0转换成bigint或bigint
#PG_INTEGER_TYPE 1 #指定1 转换成数字
EXPORT_SCHEMA 1 #ALTER SCHEMA fund60trans1 OWNER TO fund60trans1; SET search_path = fund60trans1,public;
DROP_IF_EXISTS 1 #CREATE SCHEMA IF NOT EXISTS fund60trans1;
PREFIX_PARTITION 1 #导出的分区表加上主表文件名
PREFIX_SUB_PARTITION 1 #同上,针对的对象是子分区
FILE_PER_CONSTRAINT 1 #将取出的约束定位一个文件中
FILE_PER_INDEX 1 #将导出的索引定位到一个文件中
FILE_PER_FKEYS 1 将导出的外部按键#安全的文件中
USE_WORDS 1 #acle 中的名字或列名有关键字,然后在 RES 中自动选择看双引号,询问表应用或更改 PG 的名称
TRANSACTION readonly #设置为只读事务,避免误操作Oracle端数据
DISABLE_UNLOGGED 1 #禁止转换未记录表,避免出现未记录表
#DEFAULT_NUMERIC 浮点数
工作 6
NLS_LANGAMERICAN_AMERICA.UTF8
2.2 编辑导出脚本
vim exp 添加如下内容
文件日期=`日期+“%Y%m%d_%H%M%S”`
如果 [ "$1" = "ora2pg" ]; 然后
如果 [ "$2" = "" ]; 然后
echo "用法:ora ora2pg <exp/imp>"
出口 0
菲
如果 [ "$2" = "exp" ]; 然后
回声“”
echo "首先编辑 ora2pg 配置文件 ora2pg.conf 以确保数据源正确"
echo "vim or a set data_type_list 参数设置导出对象类型"
回声“”
虽然是真的做
read -p "请输入模式名称[exit or EXIT]:" 模式
read -p "请输入架构密码[exit or EXIT]:" 密码
如果 [ -z "${schema}" ];那么
echo "用户名或密码为空,程序退出"
出口 0
菲
如果 [ -z "${password}" ];那么
echo "用户名或密码为空,程序退出"
出口 0
菲
if [ "$schema" = "exit" -o "$schema" = "EXIT" -o "$schema" = "exit" -o "$schema" = "EXIT" ]; 然后
echo "输入退出,程序退出"
exit 0 ###执行退出命令
菲
连接=`ora2pg -t SHOW_VERSION -c ora2pg.conf -u $schema -w $password`
回声$连接
ora28000_flag="ORA-28000"
ora01017_flag="ORA-01017"
oracle_logon_flag="甲骨文"
如果 [[ "$connect" =~ ^"${ora01017_flag}".* ]]; 然后
回声$连接
echo "ORA-01017: 用户名/密码无效;登录被拒绝"
elif [[ "$connect" =~ ^"${ora28000_flag}".* ]]; 然后
回声$连接
echo "ORA-28000: 账户被锁定"
elif [[ "$connect" =~ ^"${oracle_logon_flag}".* ]]; 然后
mkdir -p $模式
# 默认导出对象
data_type_list='表格
分割
复制
序列
代名词'
#程序
#功能
#包裹
#授予
#看法
对于 $data_type_list 中的 data_type
做
echo 'exporting' ${data_type}' 请稍候...'
# 添加 -P 10 指定并行
ora2pg -c ora2pg.conf -t SHOW_REPORT --estimate_cost -u $schema -w $password -n $schema -t$data_type -b $schema -o ${data_type}_${schema}_${filedate}.sql > ${data_type}_${schema}_${filedate}.log 2>&1 &
完毕
echo '后台导出...'
菲
完毕
elif [ "$2" = "imp" ]; 然后
回声“”
echo "确保已为导入数据库创建了目标 Lightdb 数据库和架构"
回声“”
虽然是真的
做
read -p "请输入超级用户 [exit or EXIT]:" 用户名
read -p "请输入超级用户密码[退出或退出]:" 密码
read -p "请输入数据库名称[exit or EXIT]:" db_name
read -p "请输入目标ip地址[exit or EXIT]:" ip
read -p "please input target lightdb port[exit or EXIT]:" 端口
read -p "请输入数据文件夹[exit or EXIT]:" data_folder
读取 -p "导入选项?[table_only/view_only/data_only/index_only/foreign_key_only/all/ | exit or EXIT]:" import_option
如果 [ -z "${用户名}" ];那么
echo "超级用户名为空,程序退出"
出口 0
菲
如果 [ -z "${password}" ];那么
echo "超级用户密码为空,程序退出"
出口 0
菲
如果 [ -z "${db_name}" ];那么
echo "目标数据库名为空,程序退出"
出口 0
菲
如果 [ -z "${ip}" ];那么
echo "目标数据库ip信息为空,程序退出"
出口 0
菲
如果 [ -z "${port}" ];那么
echo "目标数据库端口信息为空,程序退出"
出口 0
菲
如果 [ -z "${data_folder}" ];那么
echo "数据文件夹信息为空,程序退出"
出口 0
菲
如果 [ -z "${import_option}" ];那么
echo "导入选项参数为空,程序退出"
出口 0
菲
if [ "$import_option" = "exit" -o "$import_option" = "EXIT" -o "$username" = "exit" -o "$username" = "EXIT" -o "$password" = "exit" -o "$password" = "EXIT" -o "$db_name" = "exit" -o "$db_name" = "EXIT" -o "$ip" = "exit" -o "$ip" = "EXIT" -o "$port" = "exit" -o "$port" = "EXIT" -o "$data_folder" = "exit" -o "$data_folder" = "EXIT" ]; 然后
echo "输入退出,程序退出"
exit 0 ###执行退出命令
菲
#-v ON_ERROR_STOP=ON
#如果要单独导入数据,需要先删除外键
# 如果存在 act_fk_bytearr_depl,则更改表 act_ge_bytearray 删除约束;
# 然后再根据FKEYS_中的内容去创建
# ALTER TABLE act_ge_bytearray 添加约束 act_fk_bytearr_depl 外键 (deployment_id_) 参考 act_re_deployment(id_) ON DELETE NO ACTION NOT DEFERRABLE INITIALLY IMMEDIATE;
如果 [ "$import_option" = "data_only" ]; 然后
echo '导入数据开始于'`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}_${import_option} .log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^COPY_'` >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "分析详细" >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &
elif [ "$import_option" = "view_only" ]; 然后
echo '导入视图开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}_${import_option} .log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^VIEW_'` >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "分析详细" >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &
elif [ "$import_option" = "index_only" ]; 然后
echo '导入索引开始于'`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}_${import_option} .log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^INDEXES_'` >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "分析详细" >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &
elif [ "$import_option" = "foreign_key_only" ]; 然后
echo '导入外键开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^FKEYS_'` >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "分析详细" >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &
elif [ "$import_option" = "table_only" ]; 然后
echo '只导入表开始于'`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^TABLE_'` >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}_${import_option }.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "分析详细" >> imp_${db_name}_${data_folder}_${import_option}.log 2>&1 &
elif [ "$import_option" = "all" ]; 然后
echo '正在导入所有文件夹,请稍候...'
##如果要不导入表注释掉下两行...
echo '导入表开始于'`date +"%Y-%m-%d %H:%M:%S"`'...' > imp_${db_name}_${data_folder}.log 2>&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^TABLE_'` >> imp_${db_name}_${data_folder}.log 2>&1 &&
对于 `ls ${data_folder} 中的 sql_file | grep -v '^TABLE_' | grep -v '^FKEYS_'`
做
echo '导入 '${sql_file}' 开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder }.log 2>&1
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/${sql_file} >> imp_${db_name}_${data_folder}.log 2>&1
完毕 &&
echo '分析详细开始于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}.log 2> &1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -c "analyze verbose" >> imp_${db_name}_${data_folder}.log 2>&1 &&
echo '导入外键开始于'`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}.log 2 >&1 &&
PGPASSWORD=$password ltsql -U $username -h $ip -p $port -d $db_name -f ${data_folder}/`ls ${data_folder} | grep '^FKEYS_'` >> imp_${db_name}_${data_folder}.log 2>&1 &&
echo '导入完成于 '`date +"%Y-%m-%d %H:%M:%S"`'...' >> imp_${db_name}_${data_folder}.log 2>&1 &
菲
完毕
echo '导入完成'
菲
菲
2.3 导出对象
大多数情况下Oracle数据库中是有分区表的,则需要在ora2pg.conf中的data_type_list同时指定TABLE和PARTITION
[root@node1 ora2pg]# ./exp ora2pg exp
首先编辑 ora2pg 配置文件 ora2pg.conf 以确保数据源正确
vim ora set data_type_list 参数设置导出对象类型
请输入架构名称[exit or EXIT]:scott
请输入架构密码[exit or EXIT]:tiger
Oracle Database 19c 企业版 19.0.0.0.0 版
正在导出 TABLE 请稍候...
正在导出 COPY 请稍候...
正在导出 SEQUENCE 请稍候...
正在导出 SYNONYM 请稍候...
背景导出...
请输入架构名称[退出或退出]:
请输入架构密码[退出或退出]:
用户名或密码为空,程序退出
[root@node1 ora2pg]# cd scott
[root@node1 scott]# ls -ltr
共 32 个
-rw-r--r-- 1 根根 356 Jun 25 12:02 SEQUENCE_scott_20220625_120153.sql
-rw-r--r-- 1 根根 354 Jun 25 12:02 SYNONYM_scott_20220625_120153.sql
-rw-r--r-- 1 root root 784 Jun 25 12:02 PARTITION_scott_20220625_120153.sql
-rw-r--r-- 1 根根 1333 Jun 25 12:02 TABLE_scott_20220625_120153.sql
-rw-r--r-- 1 根根 354 Jun 25 12:02 INDEXES_TABLE_scott_20220625_120153.sql
-rw-r--r-- 1 根根 463 Jun 25 12:02 FKEYS_TABLE_scott_20220625_120153.sql
-rw-r--r-- 1 根 511 Jun 25 12:02 CONSTRAINTS_TABLE_scott_20220625_120153.sql
-rw-r--r-- 1 根根 3827 Jun 25 12:02 COPY_scott_20220625_120153.sql
2.4 自定义导入表结构
[root@node1 ora2pg]# ./exp ora2pg imp
确保已为导入数据库创建了目标 Lightdb 数据库和模式
请输入超级用户 [exit or EXIT]:scott
请输入超级用户密码[exit or EXIT]:scott
请输入数据库名称[exit or EXIT]:scott
请输入目标ip地址[exit or EXIT]:10.20.30.199
请输入目标lightdb端口[退出或退出]:5435
请输入数据文件夹[exit or EXIT]:scott
进口选项?[table_only/view_only/data_only/index_only/foreign_key_only/all/ | 退出或退出]:table_only
请输入超级用户[退出或退出]:
请输入超级用户密码[退出或退出]:
请输入数据库名称[exit or EXIT]:
请输入目标IP地址[退出或退出]:
请输入目标 lightdb 端口[退出或退出]:
请输入数据文件夹[退出或退出]:
进口选项?[table_only/view_only/data_only/index_only/foreign_key_only/all/ | 退出或退出]:
超级用户名为空,程序退出
查看导入日志
[root@node1 ora2pg]# 更多 imp_scott_scott_table_only.log
仅导入表开始于 2022-06-25 12:19:55...
放
放
ltsql:scott/TABLE_scott_20220625_120153.sql:11:注意:模式“scott”已经存在,正在跳过
创建模式
改变模式
放
创建表
创建表
创建表
创建表
创建表
创建表
创建表
放
放
放
2.5 自定义导入表数据
[root@node1 ora2pg]# ./exp ora2pg imp
确保已为导入数据库创建了目标 Lightdb 数据库和模式
请输入超级用户 [exit or EXIT]:scott
请输入超级用户密码[exit or EXIT]:scott
请输入数据库名称[exit or EXIT]:scott
请输入目标ip地址[exit or EXIT]:10.20.30.199
请输入目标lightdb端口[退出或退出]:5435
请输入数据文件夹[exit or EXIT]:scott
进口选项?[table_only/view_only/data_only/index_only/foreign_key_only/all/ | 退出或退出]:data_only
请输入超级用户[退出或退出]:
请输入超级用户密码[退出或退出]:
请输入数据库名称[exit or EXIT]:
请输入目标IP地址[退出或退出]:
请输入目标 lightdb 端口[退出或退出]:
请输入数据文件夹[退出或退出]:
进口选项?[table_only/view_only/data_only/index_only/foreign_key_only/all/ | 退出或退出]:
超级用户名为空,程序退出
查看导入日志
[root@node1 ora2pg]# 更多 imp_scott_scott_data_only.log
导入数据开始于 2022-06-25 12:23:24...
放
开始
放
放
放
截断表
复制 0
放
放
放
2.6 目标端数据确认
scott@scott=# 从订单中选择 *;
o_orderkey | o_orderdate | o_name
---------+----------+----------
1.00 | 2021-11-11 00:00:00 | 小明
2.00 | 2022-01-11 00:00:00 | 小港
3.00 | 2022-02-11 00:00:00 | 小菊
(3 行)
scott@scott=# \d 订单
分区表“scott.orders”
专栏 | 类型 | 整理 | 可空 | 默认
----------+--------------+------ -----+----------+---------
o_orderkey | 数字(20,2) | | 不为空 |
o_orderdate | 没有时区的时间戳| | 不为空 |
o_name | 字符变化(79) | | 不为空 |
分区键:RANGE (o_orderdate)
分区数:3(使用 \d+ 列出它们。)
总结
中过程考考数据类型可以基于PostgreSQL的数据库都考虑使用ora2pg的迁移方式进行迁移
不足:需要一定要量的睡眠时间