从Oracle迁移到AntDB(一)-- ora2pg-install

ora2pg 工具安装说明
author: yafeishi
tags: AntDB,ora2pg,oracle
AntDB:github_url,基于postgresql的高性能分布式数据库

ora2pg 工具安装说明

前言

编写目的

本手册是对ADB产品ora2pg数据导出导入工具的操作说明,指导维护或开发人员了解该工具的使用维护。

适用范围

适用于使用ADB产品的人员。

产品简介

官方说明

Ora2pg数据导出导入工具是perl语言编写的免费工具,可以用于将数据从oracle侧迁移至adbql数据库兼容的模式。
Ora2pg可以从oracle侧抽取结构或数据,组装成sql脚本的形式,加载到adbql数据库。

Ora2Pg is a free tool used to migrate an Oracle database to a adbQL compatible schema. It connects your Oracle database, scan it automaticaly and extracts its structure or data, it then generates SQL scripts that you can load into adbQL.

工具版本号

Ora2pg版本号:ora2pg for adb 18.1
适用的ADB版本号:All

功能和用途

Ora2pg支持如下功能:
1. 导出全量数据库模式
2. 导出用户权限
3. 导出函数、存储过程、触发器
4. 支持数据类型转换
5. 支持oracle FDW
6. 支持oracle分区表

更多新功能可以参考官网说明。

系统运行环境

软件环境
项目
操作系统Red Hat Enterprise Linux Server release 6.3 (Santiago)+
内核版本2.6.32-279.el6.x86_64+
ora2pg版本17.3
ADB版本All
Oracle版本9以上

配置概述

安装概述

Ora2pg使用过程中需要使用oracle客户端,因此要求使用oracle系统用户进行安装。当然与ADB用户合设,也是允许的。
安装ora2pg需要使用sudo命令安装,因此需要配置ora2pg安装用户的sudo权限。
安装ora2pg工具,需要在系统提前安装完成如下软件包:
1. yum -y install cpan
2. yum -y install perl-Time-HiRes

升级概述

全新安装

配置概述

Ora2pg配置项概要说明:
具体配置项说明请参考 http://ora2pg.darold.net/documentation.html

配置项配置值配置说明
ORACLE_HOME/home/adb/oracle/instantclient_11_2Oracle客户端根目录
ORACLE_DSNdbi:Oracle:host=192.168.111.138;port=1521;sid=ADBOracle服务端连接串信息
ORACLE_USERcmbaseOracle用户
ORACLE_PWD123456Oracle密码
SCHEMAcmbase导出的模式
TYPETABLE,VIEW,SEQUENCE,GRANT,PARTITION导出的类型
ALLOW希望导出的对象
EXCLUDE不希望导出的对象
WHERErownum <= 10000当导出表的时候,运行添加一个where子句
INDEXES_SUFFIX_idx添加索引后缀信息
PREFIX_PARTITION1分区表是否以父表为前缀
FILE_PER_CONSTRAINT0是否每个约束一个文件
FILE_PER_INDEX0是否每个索引一个文件
FILE_PER_TABLE0是否每个表一个文件
DATA_TYPEOracle与pg数据类型
PG_NUMERIC_TYPE0Numeric类型转换
PG_INTEGER_TYPE0Numeric类型转换
DEFAULT_NUMERICfloatnumeric转换到pg默认的数据类型为float
DATA_LIMIT100000每次从oracle抽取的数据行数限制
LOG_ON_ERROR0当导入出错时,是否忽略错误继续导入
JOBS5多线程。并行导入pg时的线程数设置。线程数不超过CPU的核数。
ORACLE_COPIES1多线程。从oracle导出单张表数据时的线程数设置。线程数不超过CPU的核数。
PARALLEL_TABLES1多线程。从oracle导出数据时一次读取多少张表数据。一次读表的数量不超过CPU的核数。该配置与ORACLE_COPIES同时只能一个配置项生效。
DEFINED_PKTABLE:COLUMN TABLE:ROUND(COLUMN)与ORACLE_COPIES一起使用,定义单表以哪个字段取模并行导出。

安装步骤

环境准备

安装人员资格要求:熟悉Linux基本操作,有安装用户权限。
软件产品检查:检查设备的软件系统是否符合要求。
运行环境检查要点:检查设备当前CPU使用率、内存剩余等符合安装要求。
网络连通性检查要点:部署规划中涉及到所有节点网络连通,稳定。

安装操作
创建ora2pg安装目录并上传安装文件

注:本文把ora2pg、oracle客户端和ADB数据库安装在同一个用户的不同目录下。
举例:这里假设ADB安装用户为adb,根目录为/home/adb
以adb用户新建ora2pg、oracle客户端的根目录:

mkdir -p /home/adb/oracle/setup

以adb用户二进制方式上传ora2pg安装文件至上述目录

上传至如下目录:
- /home/adb/oracle/
- instantclient-basic-linux.x64-11.2.0.4.0.zip
- instantclient-sdk-linux.x64-11.2.0.4.0.zip
- instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

上传至如下目录:
/home/adb/oracle/setup
- YAML-0.84.tar.gz
- DBI-1.634.tar.gz
- DBD-Oracle-1.75_2.tar.gz
- DBD-Pg-3.5.3.tar.gz
- ora2pg-17.3-1.tar.bz2

安装文件的下载链接请参考下载链接。

安装oracle客户端

以adb用户进入oracle安装目录

cd /home/adb/oracle/

解压缩后生成instantclient_11_2目录,即为oracle精简客户端目录

unzip instantclient-basic-linux.x64-11.2.0.4.0.zip
unzip instantclient-sdk-linux.x64-11.2.0.4.0.zip
unzip instantclient-sqlplus-linux.x64-11.2.0.4.0.zip

新建tnsnames.ora文件


mkdir -p /home/adb/oracle/instantclient_11_2/network/admin
vim /home/adb/oracle/instantclient_11_2/network/admin/tnsnames.ora

编辑tnsnames.ora,增加对oracle数据库的监听配置
注:以下只是举例,实际配置以现场情况为准

ADB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.111.138)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = adb.cos01.com)
    )
  )

添加adb用户针对oracle客户端的环境变量

export ORACLE_HOME=/home/adb/oracle/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME

让环境变量生效

source /ome/adb/.bash_profile

测试oracle连接

sqlplus system/manager@adb
SQL> select * from v$version;

返回信息,表示oracle客户端安装成功。

配置sudo权限及安装必备软件包
配置sudo权限

以root用户编辑/etc/sudoers文件,在root下方添加一行adb用户

adb ALL=(ALL) ALL

保存退出即可。
安装必备软件包

以root用户执行安装:
yum -y install cpan
yum -y install perl-Time-HiRes
解压3个tar包

以adb用户进入setup目录并解压

cd /home/adb/oracle/setup
tar -zxvf YAML-0.84.tar.gz
tar -zxvf DBI-1.634.tar.gz
tar -zxvf DBD-Oracle-1.75_2.tar.gz
安装3个tar包

为root用户配置环境变量

vim /root/.bash_profile

添加或调整如下3个变量

export ORACLE_HOME=/home/adb/oracle/instantclient_11_2
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME
export PATH=$PATH:$ORACLE_HOME/bin:$ORACLE_HOME

让变量生效

Source /root/.bash_profile

以root用户进入解压后的目录,分别安装

cd /home/adb/oracle/setup/YAML-0.84/
perl Makefile.PL 
make;make install

cd /home/adb/oracle/setup/DBI-1.634/
perl Makefile.PL 
make;make install

cd /home/adb/oracle/setup/DBD-Oracle-1.75_2/
perl Makefile.PL 
make;make install
验证安装情况

编写checkperl.pl脚本

#!/usr/bin/perl
use strict;
use ExtUtils::Installed;

my $inst=ExtUtils::Installed->new();

my @modules = $inst->modules();

foreach(@modules){
        my $ver = $inst->version($_) || "???";
        printf("%-12s -- %s\n",$_,$ver);
}

执行该脚本

perl checkperl.pl

正常显示perl各模块的版本信息。

安装ora2pg工具
以adb用户进入ora2pg安装目录
cd /home/adb/oracle/setup
解压缩安装文件
tar xf ora2pg-17.3-1.tar.bz2
以root用户进入解压目录
cd /home/adb/oracle/setup/ora2pg-17.3/
开始安装
perl Makefile.PL
make && make install
安装验证

以adb用户执行下述命令,查看是否返回ora2pg的版本信息,如正确返回版本号,说明ora2pg安装成功。

ora2pg -v
Ora2Pg for ADB v18.1
配置操作
Ora2pg的配置
拷贝配置文件模板至/home/adb/oracle/目录
cp /home/adb/oracle/setup/ora2pg-17.3/ora2pg.conf.dist /home/adb/oracle/ora2pg.conf
编辑配置文件/home/adb/oracle/ora2pg.conf

具体配置可以参考 配置概述 的配置说明。

ORACLE的配置

从oracle导出数据时,连接用户需要有dba权限,否则部分数据导出失败。

使用维护

ora2pg.conf配置示例
ORACLE_DSN  dbi:Oracle:host=192.168.111.138;port=1521;sid=ADB
ORACLE_USER cmbase
ORACLE_PWD  123456
SCHEMA      channel
TYPE        TABLE,VIEW,SEQUENCE,GRANT,PARTITION
PKEY_IN_CREATE      1
INDEXES_SUFFIX      _idx
ora2pg配置项检查

show_report模式

ora2pg -c /home/adb/oracle/ora2pg.conf -n cmbase -t show_report -o /home/adb/oracle/cmbase_struct.sql

show_report模式不会实际去执行导出,但是可以检测oracle连接信息、导出的信息提供一个报告。

从oracle抽取数据
ora2pg -c /home/adb/oracle/ora2pg.conf -n cmbase -o /home/adb/oracle/cmbase_struct.sql &
导入数据至ADB
psql -d adb -h 192.168.111.138 -p 5432 -U cmbase -f /home/adb/oracle/cmbase_struct.sql &

注意事项

  1. 为了提高数据迁移效率,ora2pg提供了一些性能调优参数。 比如 DATA_LIMIT、ORACLE_COPIES、PARALLEL_TABLES等,实际操作过程中,请合理设置这些参数。
  2. LOG_ON_ERROR参数可以控制从oracle抽取数据生成的sql文件,当导出时遇到问题,是否退出执行或忽略错误继续执行。

下载链接

Ora2pg最新工具下载链接URL

https://github.com/ADBSQL/adb-ora2pg

oracle精简客户端工具下载链接URL

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

安装ora2pg工具必备的系统软件包下载链接URL

http://search.cpan.org/~mstrout/YAML-0.84/lib/YAML.pm

http://search.cpan.org/~timb/DBI-1.634/DBI.pm

http://search.cpan.org/~pythian/DBD-Oracle-1.74/

参考链接

Ora2pg工具安装配置使用说明链接URL:

http://ora2pg.darold.net/documentation.html

http://blog.csdn.net/kiwi_kid/article/details/50846593

转载于:https://my.oschina.net/yafeishi/blog/1629359

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值