博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《卸甲笔记》-Oracle线下迁移到PPAS
阅读量:7118 次
发布时间:2019-06-28

本文共 15928 字,大约阅读时间需要 53 分钟。

迁移原则

1、尽量保持Oracle与PPAS一致,这会使得日后应用程序迁移更为简单

2、迁移前检查PPAS中是否有同名帐号及同名的Schema

a)如果有,建议考虑删除或改名b)如果没有,先手工建立与Oracle同名的帐号及Schema

3、用MTK迁移时,配置文件中目标数据库建议使用与Oracle同名的帐号(如本案例中使用scott),这样可以保持目标数据库中所有表和对象的主属用户都和Oracle中一致

一 环境准备

Oracle环境(OS:Linux)

a) IP:192.168.1.113,管理员用户 :sys,system,SID:prod
b) 普通用户scott,密码 scott
c) Oralce 源数据库分析
PPAS_Oracle
PPAS环境(OS:Linux,IP:192.168.1.116)
a) 安装PPAS

[root@test06 PPAS9.3GA]#tar zxvf ppasmeta-9.3.1.3-linux-x64.tar.gz[root@test06 PPAS9.3GA]# cd ppasmeta-9.3.1.3-linux-x64[root@test06 ppasmeta-9.3.1.3-linux-x64]# setenforce Permissive[root@test06 ppasmeta-9.3.1.3-linux-x64]# ./ppasmeta-9.3.1.3-linux-x64.run --mode textLanguage SelectionPlease select the installation language[1] English - English[2] Japanese - 日本語[3] Simplified Chinese - 简体中文[4] Traditional Chinese - 繁体中文[5] Korean - 한국어Please choose an option [1] : ----------------------------------------------------------------------------Welcome to the Postgres Plus Advanced Server Setup Wizard.--------------------------------------------------------------------------------------------------------------------------------------------------------Please specify the directory where Postgres Plus Advanced Server will be installed.Installation Directory [/opt/PostgresPlus/9.3AS]: ----------------------------------------------------------------------------Select the components you want to install.Database Server [Y/n] :YConnectors [Y/n] :YInfinite Cache [Y/n] :YMigration Toolkit [Y/n] :YPostgres Enterprise Manager Client [Y/n] :Ypgpool-II [Y/n] :YEDB*Plus [Y/n] :YSlony Replication [Y/n] :YPgBouncer [Y/n] :YIs the selection above correct? [Y/n]: Y----------------------------------------------------------------------------Additional DirectoriesPlease select a directory under which to store your data.Data Directory [/opt/PostgresPlus/9.3AS/data]: Please select a directory under which to store your Write-Ahead Logs.Write-Ahead Log (WAL) Directory [/opt/PostgresPlus/9.3AS/data/pg_xlog]: ----------------------------------------------------------------------------Configuration ModePostgres Plus Advanced Server always installs with Oracle(R) compatibility features and maintains full PostgreSQL compliance. Select your style preference for installation defaults and samples.The Oracle configuration will cause the use of certain objects  (e.g. DATE data types, string operations, etc.) to produce Oracle compatible results, create the same Oracle sample tables, and have the database match Oracle examples used in the documentation.Configuration Mode[1] Oracle Compatible[2] PostgreSQL CompatiblePlease choose an option [1] : ----------------------------------------------------------------------------……----------------------------------------------------------------------------Pre Installation SummaryFollowing settings will be used for installation:Installation Directory: /opt/PostgresPlus/9.3ASData Directory: /opt/PostgresPlus/9.3AS/dataWAL Directory: /opt/PostgresPlus/9.3AS/data/pg_xlogDatabase Port: 5444Database Superuser: enterprisedbOperating System Account: enterprisedbDatabase Service: ppas-9.3PgBouncer Listening Port: 6432Press [Enter] to continue :----------------------------------------------------------------------------Setup is now ready to begin installing Postgres Plus Advanced Server on your computer.Do you want to continue? [Y/n]: Y----------------------------------------------------------------------------Please wait while Setup installs Postgres Plus Advanced Server on your computer. Installing Postgres Plus Advanced Server 0% ______________ 50% ______________ 100% ######################################### Installing Database Server ... Installing pgAgent ... Installing Connectors ... Installing Migration Toolkit ... Installing EDB*Plus ... Installing Infinite Cache ... Installing Postgres Enterprise Manager Client ... Installing Slony Replication ... Installing pgpool-II ... Installing PgBouncer ... Installing StackBuilder Plus ... ----------------------------------------------------------------------------Setup has finished installing Postgres Plus Advanced Server on your computer.[root@test06 ppasmeta-9.3.1.3-linux-x64]# ps hf -u enterprisedb -o cmd/opt/PostgresPlus/9.3AS/bin/pgbouncer -d /opt/PostgresPlus/9.3AS/share/pgbouncer.ini/opt/PostgresPlus/9.3AS/bin/pgagent -l 1 -s /var/log/ppas-agent-9.3.log hostaddr=localhost port=5444 dbname=edb user=enterprisedb/opt/PostgresPlus/9.3AS/bin/edb-postgres -D /opt/PostgresPlus/9.3AS/data \_ postgres: logger process                                                 \_ postgres: checkpointer process                                           \_ postgres: writer process                                                 \_ postgres: wal writer process                                             \_ postgres: autovacuum launcher process                                    \_ postgres: stats collector process                                        \_ postgres: enterprisedb edb ::1[36172] idle

b) PPAS pg_hba.conf文件基础配置

-bash-4.1$ vim /opt/PostgresPlus/9.3AS/data/pg_hba.confhost    all             all             0.0.0.0/0               md5

c) 重新启动PPAS服务

[root@test06 data]# /etc/init.d/ppas-9.3 restartRestarting Postgres Plus Advanced Server 9.3: waiting for server to shut down.... doneserver stoppedwaiting for server to start.... doneserver startedPostgres Plus Advanced Server 9.3 restarted successfully

d) Oracle Client安装

[root@test06 ppasmeta-9.3.1.3-linux-x64]# rpm -ql oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64package oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64 is not installed[root@test06 oralceclient]# lsoracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm[root@test06 oralceclient]# rpm -ivh oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64.rpm Preparing...                ########################################### [100%]   1:oracle-instantclient11.########################################### [100%][root@test06 oralceclient]# rpm -ql oracle-instantclient11.2-basic-11.2.0.1.0-1.x86_64/usr/lib/oracle/11.2/client64/bin/adrci/usr/lib/oracle/11.2/client64/bin/genezi/usr/lib/oracle/11.2/client64/lib/libclntsh.so.11.1/usr/lib/oracle/11.2/client64/lib/libnnz11.so/usr/lib/oracle/11.2/client64/lib/libocci.so.11.1/usr/lib/oracle/11.2/client64/lib/libociei.so/usr/lib/oracle/11.2/client64/lib/libocijdbc11.so/usr/lib/oracle/11.2/client64/lib/ojdbc5.jar/usr/lib/oracle/11.2/client64/lib/ojdbc6.jar/usr/lib/oracle/11.2/client64/lib/xstreams.jar

e) JDK确认(1.6以上)

[root@test06 ppasmeta-9.3.1.3-linux-x64]# rpm -qa|grep javajava-1.7.0-openjdk-devel-1.7.0.45-2.4.3.3.el6.x86_64java-1.7.0-openjdk-1.7.0.45-2.4.3.3.el6.x86_64tzdata-java-2013g-1.el6.noarchgcc-java-4.4.7-4.el6.x86_64java_cup-0.10k-5.el6.x86_64java-1.5.0-gcj-1.5.0.0-29.1.el6.x86_64java-1.6.0-openjdk-1.6.0.0-1.66.1.13.0.el6.x86_64libvirt-java-0.4.9-1.el6.noarchjava-1.6.0-openjdk-devel-1.6.0.0-1.66.1.13.0.el6.x86_64libvirt-java-devel-0.4.9-1.el6.noarch[root@test06 ppasmeta-9.3.1.3-linux-x64]# which java/usr/bin/java[root@test06 ppasmeta-9.3.1.3-linux-x64]# ll /usr/bin/javalrwxrwxrwx. 1 root root 22 Jun 13  2016 /usr/bin/java -> /etc/alternatives/java

f) JDBC配置

[root@test06 ext]# cp /usr/lib/oracle/11.2/client64/lib/ojdbc6.jar /usr/lib/jvm/jre-1.7.0/lib/ext/[root@test06 ext]# lsdnsns.jar              localedata.jar  ojdbc6.jar      sunjce_provider.jar  zipfs.jargnome-java-bridge.jar  meta-index      pulse-java.jar  sunpkcs11.jar

二、迁移测试

在PPAS中建立测试用户及数据库

[root@test06 ppasmeta-9.3.1.3-linux-x64]# su – enterprisedb-bash-4.1$ psqlpsql.bin (9.3.1.3)Type "help" for help.edb=# create user scott password 'scott' createrole createuser createdb login;CREATE ROLEedb=# create database scott owner scott;CREATE DATABASE

MTK配置文件toolkit.properties

/opt/PostgresPlus/9.3AS/etc/toolkit.properties[root@test06 etc]# vim toolkit.propertiesSRC_DB_URL=jdbc:oracle:thin:@192.168.1.113:1521:prodSRC_DB_USER=scottSRC_DB_PASSWORD=scottTARGET_DB_URL=jdbc:edb://localhost:5444/scottTARGET_DB_USER=scottTARGET_DB_PASSWORD=scott

运行/runMTK.sh进行数据迁移

[root@test06 etc]# cd /opt/PostgresPlus/9.3AS/bin/[root@test06 bin]# ./runMTK.sh  scottSource database connectivity info...conn =jdbc:oracle:thin:@192.168.1.113:1521:produser =scottpassword=******Target database connectivity info...conn =jdbc:edb://localhost:5444/scottuser =scottpassword=******Connecting with source Oracle database server...Connecting with target EnterpriseDB database server...Importing redwood schema scott...Creating Schema...scott Creating Tables...Creating Table: BONUSCreating Table: DEPTCreating Table: EMPCreating Table: SALGRADECreated 4 tables.Loading Table Data in 8 MB batches...Loading Table: BONUS ...[BONUS] Table Data Load Summary: Total Time(s): 0.04 Total Rows: 0Loading Table: DEPT ...[DEPT] Migrated 4 rows.[DEPT] Table Data Load Summary: Total Time(s): 0.01 Total Rows: 4Loading Table: EMP ...[EMP] Migrated 14 rows.[EMP] Table Data Load Summary: Total Time(s): 0.049 Total Rows: 14Loading Table: SALGRADE ...[SALGRADE] Migrated 5 rows.[SALGRADE] Table Data Load Summary: Total Time(s): 0.008 Total Rows: 5Data Load Summary: Total Time (sec): 0.371 Total Rows: 23 Total Size(MB): 0.0Creating Constraint: PK_DEPTCreating Constraint: PK_EMPCreating Constraint: FK_DEPTNOSchema scott imported successfully.Creating User: SCOTTError Creating User SCOTT (由于已经在目标端数据库创建了一个名为scott的用户,所以重新创建同名Scott用户时出错,如果目标端没有scott用户则不会出现错误。)One or more schema objects could not be imported during the migration process. Please review the migration output for more details.Migration logs have been saved to /root/.enterprisedb/migration-toolkit/logs******************** Migration Summary ********************Tables: 4 out of 4Constraints: 3 out of 3Users: 0 out of 1Total objects: 8Successful count: 7Failure count: 1List of failed objects======================Users--------------------1. SCOTT*************************************************************

查看迁移日志

[root@test06 etc]#  ll /root/.enterprisedb/migration-toolkit/logs/*-rw-r--r--. 1 root root 2229 Jun 15 11:13 /root/.enterprisedb/migration-toolkit/logs/mtk_20160615111238.log

PPAS数据验证

-bash-4.1$ psql -h localhost -p 5444 -U scott -d scottPassword for user scott: psql.bin (9.3.1.3)Type "help" for help.scott=# \d scott.*            Table "scott.bonus" Column |         Type          | Modifiers --------+-----------------------+----------- ename  | character varying(10) |  job    | character varying(9)  |  sal    | numeric               |  comm   | numeric               |              Table "scott.dept" Column |         Type          | Modifiers --------+-----------------------+----------- deptno | numeric(2,0)          | not null dname  | character varying(14) |  loc    | character varying(13) | Indexes:    "pk_dept" PRIMARY KEY, btree (deptno)Referenced by:    TABLE "emp" CONSTRAINT "fk_deptno" FOREIGN KEY (deptno) REFERENCES dept(deptno) MATCH FULL                 Table "scott.emp"  Column  |            Type             | Modifiers ----------+-----------------------------+----------- empno    | numeric(4,0)                | not null ename    | character varying(10)       |  job      | character varying(9)        |  mgr      | numeric(4,0)                |  hiredate | timestamp without time zone |  sal      | numeric(7,2)                |  comm     | numeric(7,2)                |  deptno   | numeric(2,0)                | Indexes:    "pk_emp" PRIMARY KEY, btree (empno)Foreign-key constraints:    "fk_deptno" FOREIGN KEY (deptno) REFERENCES dept(deptno) MATCH FULL       Index "scott.pk_dept" Column |     Type     | Definition --------+--------------+------------ deptno | numeric(2,0) | deptnoprimary key, btree, for table "scott.dept"        Index "scott.pk_emp" Column |     Type     | Definition --------+--------------+------------ empno  | numeric(4,0) | empnoprimary key, btree, for table "scott.emp"    Table "scott.salgrade" Column |  Type   | Modifiers --------+---------+----------- grade  | numeric |  losal  | numeric |  hisal  | numeric | scott=# select * from scott.emp ; empno | ename  |    job    | mgr  |      hiredate      |   sal   |  comm   | deptno -------+--------+-----------+------+--------------------+---------+---------+--------  7369 | SMITH  | CLERK     | 7902 | 17-DEC-80 00:00:00 |  800.00 |         |     20  7499 | ALLEN  | SALESMAN  | 7698 | 20-FEB-81 00:00:00 | 1600.00 |  300.00 |     30  7521 | WARD   | SALESMAN  | 7698 | 22-FEB-81 00:00:00 | 1250.00 |  500.00 |     30  7566 | JONES  | MANAGER   | 7839 | 02-APR-81 00:00:00 | 2975.00 |         |     20  7654 | MARTIN | SALESMAN  | 7698 | 28-SEP-81 00:00:00 | 1250.00 | 1400.00 |     30  7698 | BLAKE  | MANAGER   | 7839 | 01-MAY-81 00:00:00 | 2850.00 |         |     30  7782 | CLARK  | MANAGER   | 7839 | 09-JUN-81 00:00:00 | 2450.00 |         |     10  7788 | SCOTT  | ANALYST   | 7566 | 19-APR-87 00:00:00 | 3000.00 |         |     20  7839 | KING   | PRESIDENT |      | 17-NOV-81 00:00:00 | 5000.00 |         |     10  7844 | TURNER | SALESMAN  | 7698 | 08-SEP-81 00:00:00 | 1500.00 |    0.00 |     30  7876 | ADAMS  | CLERK     | 7788 | 23-MAY-87 00:00:00 | 1100.00 |         |     20  7900 | JAMES  | CLERK     | 7698 | 03-DEC-81 00:00:00 |  950.00 |         |     30  7902 | FORD   | ANALYST   | 7566 | 03-DEC-81 00:00:00 | 3000.00 |         |     20  7934 | MILLER | CLERK     | 7782 | 23-JAN-82 00:00:00 | 1300.00 |         |     10(14 rows)

Oracle端数据

SQL> select segment_name from dba_segments where owner='SCOTT';SEGMENT_NAME--------------------------------------------------------------------------------PK_EMPPK_DEPTSALGRADEEMPDEPTSQL> conn scott/scottConnected.SQL> desc emp; Name                       Null?    Type ----------------------------------------- -------- ---------------------------- EMPNO                       NOT NULL NUMBER(4) ENAME                            VARCHAR2(10) JOB                            VARCHAR2(9) MGR                            NUMBER(4) HIREDATE                        DATE SAL                            NUMBER(7,2) COMM                            NUMBER(7,2) DEPTNO                         NUMBER(2)SQL> select * from emp;     EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM---------- ---------- --------- ---------- ---------- ---------- ----------    DEPTNO----------      7369 SMITH      CLERK          7902 17-12?-80         800    20      7499 ALLEN      SALESMAN          7698 20-2? -81        1600    300    30      7521 WARD       SALESMAN          7698 22-2? -81        1250    500    30     EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM---------- ---------- --------- ---------- ---------- ---------- ----------    DEPTNO----------      7566 JONES      MANAGER          7839 02-4? -81        2975    20      7654 MARTIN     SALESMAN          7698 28-9? -81        1250       1400    30      7698 BLAKE      MANAGER          7839 01-5? -81        2850    30     EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM---------- ---------- --------- ---------- ---------- ---------- ----------    DEPTNO----------      7782 CLARK      MANAGER          7839 09-6? -81        2450    10      7788 SCOTT      ANALYST          7566 19-4? -87        3000    20      7839 KING       PRESIDENT        17-11?-81        5000    10     EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM---------- ---------- --------- ---------- ---------- ---------- ----------    DEPTNO----------      7844 TURNER     SALESMAN          7698 08-9? -81        1500      0    30      7876 ADAMS      CLERK          7788 23-5? -87        1100    20      7900 JAMES      CLERK          7698 03-12?-81         950    30     EMPNO ENAME      JOB           MGR HIREDATE         SAL       COMM---------- ---------- --------- ---------- ---------- ---------- ----------    DEPTNO----------      7902 FORD       ANALYST          7566 03-12?-81        3000    20      7934 MILLER     CLERK          7782 23-1? -82        1300    1014 rows selected.

转载地址:http://lwdel.baihongyu.com/

你可能感兴趣的文章
解析Java对象的equals()和hashCode()的使用 转载http://blog.csdn.net/terry84fun/article/details/4752042...
查看>>
centos内核引导参数
查看>>
人机交互的第二次超级无敌贼厉害的最终版王思祺的作业
查看>>
c++——类 继承
查看>>
洛谷 2827 蚯蚓——相邻两个比较的分析
查看>>
算法46----移除K位数字
查看>>
thinkPHP小记
查看>>
ABP前端使用阿里云angular2 UI框架NG-ZORRO分享
查看>>
神秘的subsys_initcall【转】
查看>>
linux RTC 驱动模型分析【转】
查看>>
【Alpha】Scrum Meeting 3
查看>>
枚举和实用类
查看>>
python 里面的%s和%r的区别
查看>>
SpringMVC的数据转换、格式化和数据校验
查看>>
【面积原理】计算级数和
查看>>
django的cookie和session
查看>>
nfs匹配nginx服务
查看>>
Django REST框架 -序列化
查看>>
LeetCode222
查看>>
JAVA中重写equals()方法为什么要重写hashcode()方法说明
查看>>