把Oracle迁移到PostgreSQL

Oracle_migration工具集简介

oracle_migration工具集的功能是:迁移Oracle表结构和主键到PostgreSQL,以及迁移Oracle数据到PostgreSQL。数据类型转换共包含6个工具:

  • init_foreign_server: 初始化插件,在PostgreSQL中创建Oracle Foreign Server对象,为建立外部表初始化环境
  • export_oracle: 连接Oracle数据库,导出包含表结构和主键的DDL,导出过程中自动做数据类型名称转换
  • import_postgres: 连接PostgreSQL数据库,导入包含Oracle表结构和主键的DDL,生成相同表结构的外部表和同名相同结构的本地表
  • sync_table:同时连接Oracle数据库和PostgreSQL数据库,同步表数据,同步前自动同步表结构变化和主键变化
  • add_table:同时连接Oracle数据库和PostgreSQL数据库,自动同步PostgreSQL中已有schema范围内Oracle新增表DDL
  • analyse_result:同时连接Oracle数据库和PostgreSQL数据库,比较两边同名表记录数目,打印出记录数目不一致的地方

Oracle_migration工具集安装

工具集通过Oracle Client Library远程访问Oracle,然后抽取数据到PostgreSQL。所以先要安装好Oracle Client Library软件包和Postgresql Server软件。这里做简要说明(关键是要配置好环境变量) 。

安装Oracle Client Library

  • 下载oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
  • root# rpm -ivh oracle-instantclient11.2-basic-11.2.0.3.0-1.x86_64.rpm
  • 检查/usr/lib/oracle/11.2/client64/lib路径下是否存在libclntsh.so.11.1
  • 将/usr/lib/oracle/11.2/client64/lib路径写入系统配置,找到目录/etc/ld.so.conf.d/,创建文件oraclient.conf, 打开oraclient.conf,把lib路径写入此文件并保存
  • 写入配置文件后,运行sudo ldconfig使得配置生效

安装Postgresql Server

  • 选择Postgresql Server安装包,麒麟机一般是postgres-server-linux7-x64,如果是CentOS6.7则需要安装postgres-server-linux6-x64
  • 进入安装包后,直接运行./install.sh可以按照提示自动安装PostgreSQL,关于PostgreSQL的安装配置可以参阅PostgreSQL的用户操作手册
  • 假设安装根目录是/home/postgres/postgresinstall,那么在/usr/pgsql-14/bin下面可以找到PostgreSQL的各种工具集
  • 把/usr/pgsql-14/bin写入PATH环境变量

vi ~/.bashrc 在bashrc中最后一行写入: export PATH=/usr/lib/oracle/11.2/client64/lib:$PATH