实验环境:

角色 IP hostname CDB name db_unique_name pdb name 版本
192.168.0.115 Node11 cdb1 cdb_p pdb1
12.2.0.1.0
192.168.0.244 Node12 cdb1 cdb_s pdb1
12.2.0.1.0

1. /etc/hosts配置

1192.168.0.115 Node11
1192.168.0.244 Node12

2. 主库force logging

sqlplus / as sysdba

SQL> alter database force logging;
SQL> select force_logging from v$database;

3. 主库添加standby redo logfile(连接到CDB$ROOT中执行)

SQL> select member from v$logfile;

/data/app/oracle/oradata/cdb1/redo03.log
/data/app/oracle/oradata/cdb1/redo02.log
/data/app/oracle/oradata/cdb1/redo01.log

Standby redo log组数公式>=(每个instance日志组个数+1)*instance个数

假如只有一个节点,这个节点有三组redolog,
所以Standby redo log组数>=(3+1)*1 == 4
所以至少需要创建4组Standby redo log

添加4(3+1)个standby logfile

alter database add standby logfile group 4 '/data/app/oracle/oradata/standbylog/standby_redo04' size 50m;
alter database add standby logfile group 5 '/data/app/oracle/oradata/standbylog/standby_redo05' size 50m;
alter database add standby logfile group 6 '/data/app/oracle/oradata/standbylog/standby_redo06' size 50m;
alter database add standby logfile group 7 '/data/app/oracle/oradata/standbylog/standby_redo07' size 50m; SQL> set pagesize 100
SQL> col member for a60
SQL> select group#,member from v$logfile order by group#;

4、主备 配置tnsnames.ora

LISTENER_CDB1 =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521)) CDB_P =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.115)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb1)
)
) CDB_S =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.244)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb1)
)
)

5. 主备配置 listener.ora

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1)
(SID_NAME = cdb1)
(ORACLE_HOME = /data/app/oracle/product/12.2.0.1.0/db_1)
#(PROGRAM = extproc)
#(ENVS = "EXTPROC_DLLS=ONLY:/data/app/oracle/product/12.2.0.1.0/db_1/bin/oraclr12.dll")
)
) LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.244)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
) ADR_BASE_LISTENER = /data/app/oracle

重启监听
  lsnrctl reload

测试
  tnsping cdb_p
  tnsping cdb_s

6. 打开归档

SQL> archive log list;
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;

7.修改pfile文件

create pfile='/data/app/oracle/product/12.2.0.1.0/db_1/dbs/cdb1pfile.ora' from spfile;

vim cdb1pfile.ora

*.db_name='cdb1'
*.db_unique_name='cdb_p'
*.log_archive_config='dg_config=(cdb_p,cdb_s)'
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=cdb_p'
*.log_archive_dest_2='service=cdb_s valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=cdb_s'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_file_management='auto'
*.fal_server='cdb_s' 如果主备库CDB名称不同,还需要加如下参数:
*.DB_FILE_NAME_CONVERT='cdb1','dave'
*.LOG_FILE_NAME_CONVERT='cdb1','dave'
SQL> shutdown immediate
SQL> create spfile from pfile='/data/app/oracle/product/12.2.0.1.0/db_1/dbs/cdb1pfile.ora';
SQL> startup

8. 拷贝密码文件到备库

cd $ORACLE_HOME/dbs
scp orapwcdb1 oracle@Node12:$ORACLE_HOME/dbs  

9. 拷贝pfile 到备库并修改

scp cdb1pfile.ora oracle@Node12:$ORACLE_HOME/dbs
vim cdb1pfile.ora *.db_unique_name='cdb_s'
*.log_archive_config='dg_config=(cdb_p,cdb_s)'
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=cdb_s'
*.log_archive_dest_2='service=cdb_s valid_for=(online_logfiles,primary_role) lgwr affirm sync db_unique_name=cdb_p'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_file_management='auto'
*.fal_server='cdb_s' 注意修改控制文件的路径,也使用新路径。
注意参数:*.db_recovery_file_dest='/data/app/oracle/flash_recovery_area' ,文件夹若不存在,则手动新建。

根据编辑好的pfile生成spfile

create spfile from pfile='/data/app/oracle/product/12.2.0.1.0/db_1/dbs/cdb1pfile.ora';

启动到 nomount 状态

startup nomount

9.开始进行Active duplicate

主:
rman target sys/Sjtsoft123@cdb_p auxiliary sys/Sjtsoft123@cdb_s nocatalog RMAN> duplicate target database for standby from active database nofilenamecheck;
duplicate target database for standby from active database nofilenamecheck dorecover;
备:
duplicate 完成之后,备库是mount的。
SQL> select open_mode from v$database;
SQL> show pdbs
SQL> alter database open;
SQL> alter pluggable database pdb1 open;
SQL> select open_mode,log_mode,open_mode ,database_role from v$database; OPEN_MODE LOG_MODE OPEN_MODE DATABASE_ROLE
-------------------- ------------ -------------------- ----------------
READ ONLY ARCHIVELOG READ ONLY PHYSICAL STANDBY

10. 备库启动real-time apply:

SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY alter database recover managed standby database using current logfile disconnect from session; SQL> select open_mode from v$database; OPEN_MODE
--------------------
READ ONLY WITH APPLY

11. 验证DG

主:
SQL> alter pluggable database pdb1 open;
SQL> alter session set container=pdb1;
SQL> create table cndba as select * from dba_users;
SQL> select count(*) from cndba;
SQL> alter system switch logfile; 
备:
SQL> alter session set container=pdb1;
SQL> select count(*) from cndba;

END!

12. 查看日志
主:
  tail -100f /data/app/oracle/diag/rdbms/cdb_p/cdb1/trace/alert_cdb1.log
从:
  tail -100f /data/app/oracle/diag/rdbms/cdb_s/cdb1/trace/alert_cdb1.log

Oracle12c-ADG搭建的更多相关文章

  1. CentOS 7 下oracle 11G R2 ADG 搭建

    本文记录ADG搭建操作步骤,首先在虚拟机CentOS中安装并配置好oracle 11g R2(具体安装步骤在我的另一篇博客中),然后拷贝一份虚拟机,修改新虚拟机的主机名和ip配置,这时候主库和备库是一 ...

  2. Oracle ADG搭建

    Oracle Active Data Guard搭建 一:安装 1.基础环境配置 1.1.开启强制日志记录 DG日志发送方式中ARCH进程和LGWR进程的ASYNC模式都是基于日志同步的,所以我们必须 ...

  3. CC++初学者编程教程(13) 基于Oracle linux 的Oracle12c环境搭建

    1设置虚拟机选项 2 设置文件夹共享 3启动文件夹共享向导 4 设置共享文件夹 5 启用共享 6 关闭虚拟机设置 7 开启虚拟机 8 登陆帐户 9 看见虚拟机桌面 10 安装vmwaretools 1 ...

  4. Oracle 11g RAC to RAC ADG搭建(一)采用rman备份恢复方式

    (一)基础环境   主库 备库 操作系统 RedHat6.7 RedHat6.7 服务器名称 primarydb1primarydb2 standbydb1standbydb2 IP地址规划 192. ...

  5. CENTOS6.6上搭建单实例ORACLE12C

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...

  6. RAC 主库配置单实例ADG

    1.主库准备工作 2.物理备库准备工作 3.创建物理备库 写在前面: 最终实现环境:11.2.0.4版本 2节点RAC + 1节点DG 本文旨在弄清楚整个搭建过程中涉及到的基础概念: 本文安装maxi ...

  7. Oracle 11g Dataguard 配置,维护与详解 (ADG)

    一.前言: 本手册主要记录如何配置,还介绍了配置原因,以及注意要点,已经主备切换,以及故障转移等重要操作步骤,我希望这个文章可以作为进行dataguard配置的一个参考手册. 二.前提 1.主库是归档 ...

  8. Oracle12c Data Guard搭建手册

    Oracle12c Data Guard搭建手册 注:本文来源: 红黑联盟 < Oracle12c Data Guard搭建手册 > Oracle 12c 的DataGuard 是在CDB ...

  9. 11g adg 环境搭建实施手册-0908

    11g adg 环境搭建实施手册-0908 2017年8月30日 9:16 11g adg 环境搭建实施手册-0824 2017年8月24日 10:18 ####################### ...

  10. Oracle ADG环境搭建

    部署 环境介绍 1,软件安装前基础部署 (两台做同样操作) 1.1,关闭selinux和防火墙 因为centos7里面没有/etc/sysconfig/iptables这个配置文件所以我们首先用yum ...

随机推荐

  1. 前端入门系列之CSS

    CSS (Cascading Style Sheets) 是用来样式化和排版你的网页的 —— 例如更改网页内容的字体.颜色.大小和间距,将内容分割成多列或者加入动画以及别的装饰型效果. CSS是什么 ...

  2. [Android] 分析一个CalledFromWrongThreadException崩溃

    1 问题描述 问题本身比较清晰简单,但推敲的过程中发现了不少有意思的东西. 在C++ SDK回调JNI至Java Observer函数中,直接操作了UI界面textView.setText(msg), ...

  3. Mac10.14.6安装Python3

    换了台新电脑, 记录一下Python3的安装过程. 1.检查现有版本的python. 因为Mac的系统以来python2, 所以python肯定是有的, 因为依赖, 所以安装了python3, 也不可 ...

  4. appium desired_caps参数大全

    appium desired_caps参数大全 --------------------------------------------------------- 常用参数记录 ----------- ...

  5. 快速创建一个SpringBoot项目并整合Mybatis

    2019-09-15 一.Maven环境搭建 1.导入jar坐标 <project xmlns="http://maven.apache.org/POM/4.0.0" xml ...

  6. Java的设计模式(2)--单例模式

    保证一个类仅有一个实例,并提供一个访问它的全局访问点. 好处:    (1)频繁使用的对象,可以省略new操作花费的时间,这对于那些重量级对象而言,是非常客观的一笔开销.    (2)由于new的次数 ...

  7. VC++类型转换

    一.其他数据类型转换为字符串 短整型(int) itoa(i,temp,10):///将i转换为字符串放入temp中,最后一个数便是十进制 itoa(i,temp,2):///按二进制方式转换 长整型 ...

  8. Python——类和对象(一)

    一.定义类 在面向对象的程序设计中有两种重要概念: 类:可以理解为一个种类,一个模型,是一种抽象的东西. 实例.对象:可以理解为一种具体制作或者存在的东西. 定义类的语法格式如下: class 类名: ...

  9. Git 版本恢复命令reset

    reset命令有3中方式: git reset -mixed: 此为默认方式,不带任何参数的git reset, 使用这种方式,项目会回退到某个版本,只保留源码,回退commit和index的信息. ...

  10. java-TheadPoolExecutor

    Executor的两极调度模型 第一级:java多线程程序把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定数量的线程: 第二级:操作系统内核将这些线程映射到处 ...