Zero down time upgrade with OGG -from 11g to 12c.
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.的更多相关文章
- Oracle 收集统计信息11g和12C在差异
Oracle 基于事务临时表11g和12C下,能看到临时表后收集的统计数据,前者记录被清除,后者没有,这是一个很重要的不同. 关于使用企业环境12C,11g,使用暂时表会造成时快时慢.之前我有帖子ht ...
- Oracle 11g与12c的审计详解
最近遇到一些脚本诱发的审计相关BUG,感觉有必要重新梳理一下11g与12c的审计模式,于是根据官网修正了一下以前的一篇笔记这里发出来. 一.审计功能的开启: SQL> show paramete ...
- 11g与12c启动,关闭RAC
oracle11g 关闭,启动顺序 1.关闭数据库(oracle)srvctl stop database -d rac 2.关闭集群(root)crsctl stop cluster -all 3. ...
- 11g,12c Oracle Rac安装
安装 Oracle 12cR1 RAC on Linux 7 本文介绍如何在Oracle Linux 7上安装2节点Oracle 12cR1 Real Application Cluster(RAC) ...
- 11G、12C安装结束需要做的一些操作
修改spfile参数:修改前,先备份 create pfile from spfile; alter system set memory_target=0 scope=spfile;alter sys ...
- 本地Oracle客户端11g升级12c导致PowerCenter无法连接ODBC数据源
问题: 本地Oracle客户端由11g-32bit升级为12c-64bit时,在PowerCenter Designer使用原来的ODBC连接导入数据库表时,发生如下错误: 原因: 原oracle11 ...
- 解决11g r2,12c使用wm_concat报错问题
创建type CREATE OR REPLACE TYPE zh_concat_im AUTHID CURRENT_USER AS OBJECT ( CURR_STR ), STATIC FUNCTI ...
- 11G、12C Data Guard Physical Standby Switchover转换参考手册
Switchover转换 Step 1: switchover 切换先前检查 (1)确保主备两端log_archive_config和db_unique_name参数都已经正确设置. 需要注意的是 ...
- 单机11g ogg 双向DML复制
环境说明: Linux为Linux 2.6.32-573.el6.x86_64 Oracle为 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Pr ...
随机推荐
- javascript异步编程 Async/await
Async/await Async/await 在学习他之前应当补充一定的 promise 知识 它是一种与 promise 相配合的特殊语法,目前被认为是异步编程的终级解决方案 值得我们每一个人学习 ...
- Spring Security 学习笔记-securityContext过滤器过滤链学习
web.xml配置委托代理filter,filter-name默认与filter bean的名字保持一致. <filter> <filter-name>springSecuri ...
- 2019前端学习路线心得-黑马程序员pink老师
在规划之前先给大家分享几点心得哈: 1. 学习,特别是在线学习,是非常辛苦的事情,为了少走弯路, 所以一定要系统学习,多借鉴与前辈们总结出来的经验. 2. 不要相信任何说 一周掌握 css, 一周学完 ...
- python 下载bilibili视频
说明: 1.清晰度的选择要登录,暂时还没做,目前下载的视频清晰度都是默认的480P 2.进度条仿linux的,参考了一些博客修改了下,侵删 3.其他评论,弹幕之类的相关爬虫代码放在了https://g ...
- Android7_安卓的知识体系梳理
最近梳理了一下安卓的知识体系,先构建一个整体性的认知,也作为以后的学习路线的依据. [一.从原理角度出发]1.Activity生命周期和启动模式2.View的事件体系与工作原理3.四大组件的工作过程4 ...
- (转)hibernate缓存机制详细分析
在本篇随笔里将会分析一下hibernate的缓存机制,包括一级缓存(session级别).二级缓存(sessionFactory级别)以及查询缓存,当然还要讨论下我们的N+1的问题. 随笔虽长,但我相 ...
- 33.python之操作系统,进程,线程
转载:https://www.cnblogs.com/yuanchenqi/articles/6248025.html 操作系统 一 为什么要有操作系统? 现代计算机系统是由一个或者多个处理器,主存, ...
- cookies 与session
cookies :存放在浏览器(客户端)的用户信息 - 优点: 可以将数据存在客户端一方: - 缺点: 不安全,可以存放多份,导致服务端占用空间过大 session :存放在服务端的用户信息 - 优点 ...
- VBA工程密码破解
如何破解VBA密码呢? 见过网上很多关于破解VBA工程密码的方式,最常见的如下这种,但其实对于很多版本是不可行的. 基本都会提示“请先对VBA编码设置一个保护密码...” Sub VBAPassw ...
- arrayBuffer读取本地文件
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...