High level steps upgrade from 11g to 12c database:

1)    Check network between source and target.

2)    Prepare goldengate Software.

3)    Setup extract and datapump for source site.

4)    Setup replict for target side.

5)    Start extract.

6)    Export and import initial load.

7)    Start the replicat.

This hands-on lab will demonstrate how to migrate the ‘TEST’ schema from Oracle database 11.2.0.4 to Oracle database 12.2.0.1.0 pdb with zero down time.

1)    Check network between source and target. For example, ping 10.182.242.176

2)    Prepare GoldenGate Software, we are using DIPC remote agent in this tutorial

Unzip it, the structure like following

./dicloud

|---- gghome11g

|---- gghome

|---- oci11g

|---- oci

The gghome11g is for the 11g source database, and the gghome is for the 12c target database.

Setup the tnsnames for source database and target database.

$mkdir –p ./dicloud/oci11g/network/admin/

$mkdir –p ./dicloud/oci/network/admin/

Prepare the tnsname.ora file.

src =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.182.242.176)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

tar =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 10.182.211.15)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = tar)

)

)

The environment parameters for ogg source like following:

export ORACLE_HOME=/home/oracle/ogg/dicloud/oci11g

export LD_LIBRARY_PATH=$ORACLE_HOME:/lib:/usr/lib

export TNS_ADMIN='/home/oracle/ogg/dicloud/oci11g/network/admin/'

The environment parameters for ogg target like following:

export ORACLE_HOME=/home/oracle/ogg/dicloud/oci

export LD_LIBRARY_PATH=$ORACLE_HOME:/lib:/usr/lib

export TNS_ADMIN='/home/oracle/ogg/dicloud/oci/network/admin/'

After setting above environment parameters, you can run the ./ggsci command under the gghome or gghome11g.

For Source

For Target

Setting for Source Database:

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database archivelog;

SQL>alter database open;

SQL>alter system switch logfile;

SQL>archive log list;

SQL>SELECT supplemental_log_data_min, force_logging FROM v$database;

SQL>alter database add supplemental log data;

SQL>alter database force logging;

SQL>SELECT supplemental_log_data_min, force_logging FROM v$database;

SQL> alter system set enable_goldengate_replication = true scope=both;

SQL>create user ogg identified by ogg;

SQL>GRANT DBA to ogg;

SQL>BEGIN

dbms_goldengate_auth.grant_admin_privilege (

grantee => 'ogg',

privilege_type => 'CAPTURE',

grant_select_privileges => TRUE

);

END;

/

--create test user

SQL>create user test identified by test default tablespace users quota unlimited on users;

SQL>grant create table, create session, execute on dbms_lock to test;

OGG setting for Source:

GGSCI> view param extsrc

extract extsrc

userid ogg@src,password ogg

exttrail ./dirdat/es

table TEST.*;

GGSCI> add extract extsrc, integrated tranlog, begin now

GGSCI > add exttrail ./dirdat/es, extract extsrc

GGSCI> dblogin userid ogg@src, password ogg

GGSCI> register extract extsrc database

GGSCI> add schematrandata TEST

GGSCI> info trandata TEST.*

GGSCI> view param pumsrc

extract pumsrc

passthru

rmthost 10.182.209.212,mgrport 7910

rmttrail ./dirdat/rs

table TEST.*;

GGSCI> add extract pumsrc, exttrailsource ./dirdat/es

GGSCI> add rmttrail ./dirdat/rs, extract pumsrc

Prepare the target PDB:

sqlplus / as sysdba

SQL>create pluggable database tar admin user adm identified by adm

file_name_convert=('/u01/app/oracle/oradata/dbaas/pdbseed', '/u01/app/oracle/oradata/dbaas/tar');

SQL>alter session set container=tar;

SQL>create user ogg identified by ogg;

SQL>GRANT DBA to ogg;

SQL>create bigfile tablespace users datafile '/u01/app/oracle/oradata/dbaas/tar/users.dbf' size 100m autoextend on maxsize 5G;

SQL>BEGIN

dbms_goldengate_auth.grant_admin_privilege

(

grantee => 'ogg',

privilege_type => 'APPLY',

grant_select_privileges => TRUE

);

END;

/

OGG setting for the target:

GGSCI > view param repsrc

replicat repsrc

userid ogg@tar, password ogg

discardfile repsrc.dsc, append

DBOPTIONS ENABLE_INSTANTIATION_FILTERING

map TEST.*, target TEST.*;

GGSCI > dblogin userid ogg@tar, password ogg

GGSCI > add replicat repsrc, integrated ,exttrail ./dirdat/rs

For the source database without Patch 17030189. You can apply follow workaround now. Or later back to this step if the capture abended with the errors mentioned the patch 17030189.

There is a script "prvtlmpg.plb" under gghome11g directory. Need to run this script in the source database.

sqlplus / as sysdba

SQL>@prvtlmpg.plb

Open a new terminal to run the sample application in source database. This PL/SQL block simulate a running application.

SQL>conn test/test

SQL>create table tmp_check (s integer);

SQL>declare

i pls_integer:=0;

begin

loop

insert into tmp_check values(i);

commit;

i:=i+1;

dbms_lock.sleep(2);

end loop;

end;

/

--Please note that the above PL/SQL is running forever. You can press ‘Ctrl’ + ‘c’ from your keyboard to stop it.

Start the OGG capture.

GGSCI>start EXTRACT EXTSRC

GGSCI>start EXTRACT PUMSRC

Check the status.

GGSCI>info all

Create the directory for exporting.

sqlplus / as sysdba

SQL>create directory ogg_dir as ‘/home/oracle/migration’;

Export Schema ‘TEST’ from the source database.

expdp \' / as sysdba\' directory=ogg_dir dumpfile=test_%U.dmp schemas=test statistics=none parallel=2

Move the dump files from source to target.

scp *.dmp <target_ip>:<target directory>

Create directory for importing.

sqlplus / as sysdba

SQL> alter session set container=tar;

SQL> create directory ogg_dir as ‘/home/oracle/migration’;

Import the schema ‘TEST’ to the target PDB.

impdp system/oracle@tar directory=ogg_dir dumpfile=test_%U.dmp parallel=2

After the above import successfully. Start the replicate to sync the source and target data.

GGSCI>start REPLICAT REPSRC

Stop the running PL/SQL application.

Check the records in Source database.

SQL>conn test/test

SQL>select * from tmp_check order by 1;

Check the records in Target database. The results should be the same as the results from the Source database.

SQL>conn test/test@tar

SQL>select * from tmp_check order by 1;

Summary

With OGG, it is easy to achieve zero down time migration + upgrade from Oracle 11g to Oracle 12c.We use DBOPTIONS ENABLE_INSTANTIATION_FILTERING - Tells Replicat to filter records per table based on Data Pump system table data, no SCN record or used in the data initialization. However, in real case, you need to consider more according to your specific environment.

Zero down time upgrade with OGG -from 11g to 12c.的更多相关文章

  1. Oracle 收集统计信息11g和12C在差异

    Oracle 基于事务临时表11g和12C下,能看到临时表后收集的统计数据,前者记录被清除,后者没有,这是一个很重要的不同. 关于使用企业环境12C,11g,使用暂时表会造成时快时慢.之前我有帖子ht ...

  2. Oracle 11g与12c的审计详解

    最近遇到一些脚本诱发的审计相关BUG,感觉有必要重新梳理一下11g与12c的审计模式,于是根据官网修正了一下以前的一篇笔记这里发出来. 一.审计功能的开启: SQL> show paramete ...

  3. 11g与12c启动,关闭RAC

    oracle11g 关闭,启动顺序 1.关闭数据库(oracle)srvctl stop database -d rac 2.关闭集群(root)crsctl stop cluster -all 3. ...

  4. 11g,12c Oracle Rac安装

    安装 Oracle 12cR1 RAC on Linux 7 本文介绍如何在Oracle Linux 7上安装2节点Oracle 12cR1 Real Application Cluster(RAC) ...

  5. 11G、12C安装结束需要做的一些操作

    修改spfile参数:修改前,先备份 create pfile from spfile; alter system set memory_target=0 scope=spfile;alter sys ...

  6. 本地Oracle客户端11g升级12c导致PowerCenter无法连接ODBC数据源

    问题: 本地Oracle客户端由11g-32bit升级为12c-64bit时,在PowerCenter Designer使用原来的ODBC连接导入数据库表时,发生如下错误: 原因: 原oracle11 ...

  7. 解决11g r2,12c使用wm_concat报错问题

    创建type CREATE OR REPLACE TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR ), STATIC FUNCTI ...

  8. 11G、12C Data Guard Physical Standby Switchover转换参考手册

    Switchover转换   Step 1: switchover 切换先前检查 (1)确保主备两端log_archive_config和db_unique_name参数都已经正确设置. 需要注意的是 ...

  9. 单机11g ogg 双向DML复制

    环境说明: Linux为Linux 2.6.32-573.el6.x86_64 Oracle为 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Pr ...

随机推荐

  1. 11-28-----vertor和list使用场景

    1.vector拥有一段连续的内存空间,因此支持随机访问,如果需要高效的随机访问,而不子啊胡插入和删除的效率,使用vector, 2.list拥有一段不连续的内存空间,如果需要高效的插入和删除,而不关 ...

  2. hihocoeder1384

    hihocoeder1384 算法竞赛进阶指南上的题目 我们肯定是吧最大值和最小值匹配,次大值和次小值匹配以此类推 首先,类似于区间覆盖的思想,我们对于一个\(L\),找到最大的满足条件的\(R\) ...

  3. 0006 列表(ul、ol、dl)

    1. 列表标签(重点) 学习目标 理解 无序列表的应用场景 自定义列表的应用场景 应用 无序列表语法 自定义列表语法 问? 前面我们知道表格一般用于数据展示的,但是网页中还是有很多跟表格类似的布局,如 ...

  4. [梁山好汉说IT] 容器概念在北宋社会的应用

    [梁山好汉说IT] 容器概念在北宋社会的应用 0x00 摘要 如何对没有软件开发经验的人解释容器? 集装箱真的能够完美解释容器嘛? 除了集装箱还有其他常见实体能够解释容器嘛? 我找到了一个能够 和集装 ...

  5. Visual Studio 2017 安装心得

    既然VS2017已经发布了,就想安装一下试试,先卸载VS2015, 网上有个完全卸载的东东,https://github.com/Microsoft/VisualStudioUninstaller/r ...

  6. 【他山之石】IntelliJ Idea 内存设置

    最近一次使用idea,删掉target目录内容,准备让项目重新编译的时候,整个mac系统崩溃然后黑屏重启了.紧接着就是重启后自动恢复原先打开的程序,结果再次黑屏重启.最开始以为是系统问题,还怀疑过最近 ...

  7. ansible批量部署mysql

    1.1 将mysql软件包同步到客户端服务器,做安装前期准备 Ps:mysql安装包线拖到ansible服务端的/ansible/roles/mysql/files目录下 vim /ansible/r ...

  8. 跌宕起伏的java帝国史,剖析谷歌甲骨文长达8年的版权战争

    这篇博文是我在B站上发的一个科普java的视频文案整理,本来发过一次了,但是有几种不严谨的地方只能删掉重新发了一下,内容如标题,感兴趣的码农朋友可以观看视频的版本,欢迎提提意见啥的,感谢~https: ...

  9. 「BZOJ1722」「Usaco2006 Mar」Milk Team Select产奶比赛 解题报告

    Milk Team Select 产奶比赛 Description Farmer John's N (\(1 \le N \le 500\)) cows are trying to select th ...

  10. 如何在Pypi发布上传你自己的Python库

    Pypi上传包 准备 Windows环境 *以下教程只能在Windows上执行,MACOS系统不能使用 注册账号 你需要在Pypi上注册一个账号. 安装必要的库 setuptools 原则上安装了pi ...