0
点赞
收藏
分享

微信扫一扫

LightDB/Postgres 使用ora2pg 迁移Oracle到LightDB/Postgres

凌得涂 2022-06-28 阅读 86

一、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的迁移方式进行迁移

不足:需要一定要量的睡眠时间

举报

相关推荐

0 条评论