Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置

# ver:1.5 第五次修改
# modify: 2013.8.16
# author: koumm

Oracle 11g Dataguard 物理备库配置系列文档

Oracle 11g Dataguard 物理备库配置(一)之duplicate创建
Oracle 11g Dataguard 物理备库配置(二)之Active Dataguard测试
Oracle 11g Dataguard 物理备库配置(三)之Dataguard broker配置
Oracle 11g Dataguard 物理备库配置(四)之broker snapshot standby测试

Oracle 11g Dataguard 物理备库配置(五)之broker switchover测试

Oracle 11g Dataguard 物理备库配置(六)之broker fastfailover测试

Oracle 11g Dataguard 配置学习小结

http://koumm.blog.51cto.com/703525/1280139

说明:
本文安装配置了Oracle 11g Dataguard通过duplicate方式创建物理备库。
比起上次配置有以下不同点:
1. 主备库目录结构不同。
2. 采用duplicate方式创建物理备库。

一、环境介绍

1. 主数据库环境

操作系统版本  : OEL5.8 x64
数据库版本    : Oracle 11.2.0.3 x64
数据库名      : orcl
数据库SID     : orcl
db_unique_name: orcl
instance_name : orcl
DGMGRL        : orcl_DGMGRL

2. 备库环境

操作系统版本  : OEL5.8 x64
数据库版本    : Oracle 11.2.0.3 x64 (只安装oracle数据库软件,no netca dbca)
数据库名      : slave
数据库SID     : slave
db_unique_name: slave
instance_name : slave
DGMGRL        : slave_DGMGRL

3. DataGuard启动顺序

启动顺序:先启备库,后启主库
关闭顺序:先关主库,后关备库

二、主数据库环境准备

1. 主库环境对比

充分利用主数据库原来环境,仅量不对主库参数配置做过多的修改。

重新创建口令文件

# su - oracle
$ orapwd file='/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl' password=oracle entries=10 force=y

2. 修改配置lisener监听文件

说明:添加dgmgrl静态监听配置,为后面的dg broker配置打基础。

$ cat /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.200)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = orcl)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = orcl_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = orcl)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

#其中的GLOBAL_DBNAME具有固定的格式:<db_unique_name>_DGMGRL.<db_domain>。

4. 修改配置tnsname.ora文件

说明:ORCL是主库的服务名,DG是备库的服务名。

$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.200)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

SLAVE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = slave)
    )
  )

5. 修改配置成规档模式

1)、检查数据库是否处于归档状态

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

2)、将主库设置为 FORCE LOGGING 模式

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

FOR FLASHBACK_ON
--- ------------------
YES YES

6. 修改主库参数文件

SQL> 
alter system set instance_name='orcl' scope=spfile;  
alter system set db_unique_name='orcl' scope=spfile;  
alter system set local_listener='orcl' scope=spfile;
alter system set log_archive_config='DG_CONFIG=(orcl,slave)';  
alter system set log_archive_dest_1='LOCATION=/u01/archivelog/ valid_for=(all_logfiles,all_roles) db_unique_name=orcl' scope=spfile; 
alter system set log_archive_dest_2='SERVICE=slave lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=slave' scope=spfile;  
alter system set log_archive_format='arch_%r_%t_%s.arc' scope=spfile;
alter system set fal_client='orcl' scope=spfile; 
alter system set fal_server='slave' scope=spfile;  
alter system set standby_file_management=AUTO;  
alter database add standby logfile group 4 '/u01/app/oracle/oradata/orcl/standby_redo04.log' size 50M;  
alter database add standby logfile group 5 '/u01/app/oracle/oradata/orcl/standby_redo05.log' size 50M;  
alter database add standby logfile group 6 '/u01/app/oracle/oradata/orcl/standby_redo06.log' size 50M;  
alter database add standby logfile group 7 '/u01/app/oracle/oradata/orcl/standby_redo07.log' size 50M;

SQL> shutdown immediate;
SQL> startup;

三、备库配置

1. 备库环境

操作系统版本  : OEL5.8 x64
数据库版本    : Oracle 11.2.0.3 x64 (只安装oracle数据库软件,no netca dbca)
数据库名      : slave
数据库SID     : slave
db_unique_name: slave
instance_name : slave
DGMGRL        : slave_DGMGRL

2. 修改配置lisener监听文件

$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = slave)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = slave)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = slave_DGMGRL)
      (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)
      (SID_NAME = slave)
    )
  )

ADR_BASE_LISTENER = /u01/app/oracle

其中的GLOBAL_DBNAME具有固定的格式:<db_unique_name>_DGMGRL.<db_domain>。

3. 修改配置tnsname.ora文件

说明:ORCL是主库的服务名,DG是备库的服务名。

$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.200)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

SLAVE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.233.150)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = slave)
    )
  )

测试服务名连通性:

tnsping orcl
tnsping slave

3. 创建11g数据库基本目录

# su - oracle

mkdir -p /u01/app/oracle/admin/slave/{adump,dpdump,pfile,scripts}  
mkdir -p /u01/app/oracle/oradata/slave  
mkdir -p /u01/app/oracle/fast_recovery_area/slave
mkdir -p /u01/archivelog

4. 拷贝主库口令文件并改名

注:10g DG环境只要求密码相同,11g DG则要求与主库完全一致。
否则报无权限错误。

$ cd /u01/app/oracle/product/11.2.0/db_1/dbs/
$ scp oracle@192.168.233.150:/u01/app/oracle/product/11.2.0/db_1/dbs/orapworcl  $ORACLE_HOME/dbs/
$ mv orapworcl orapwslave

测试远程登录

$ sqlplus sys/oracle@orcl as sysdba;
$ sqlplus sys/oracle@slave as sysdba;

5. 启动到nomount状态

$ echo 'db_name=slave' > $ORACLE_HOME/dbs/initslave.ora  
$ sqlplus /nolog
SQL> conn / as sysdba;
SQL> startup nomount;

四、 开始在RMAN duplicate数据库

1. RMAN同进连接主库与备库

$ rman target sys/oracle@orcl auxiliary sys/oracle@slave

恢复管理器: Release 11.2.0.3.0 - Production on 星期五 8月 16 21:14:10 2013
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

已连接到目标数据库: ORCL (DBID=1351417842)
已连接到辅助数据库: SLAVE (未装载)

2. 开始duplicate数据库

RMAN>

run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate auxiliary channel stby type disk;
duplicate target database for standby nofilenamecheck from active database 
dorecover
spfile
parameter_value_convert 'orcl','slave'
set instance_name='slave' 
set db_unique_name='slave'
set local_listener='slave'
set db_file_name_convert='/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/slave/'
set log_file_name_convert='/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/slave/'
set control_files='/u01/app/oracle/oradata/slave/control01.ctl','/u01/app/oracle/oradata/slave/control02.ctl','/u01/app/oracle/oradata/slave/control03.ctl'
set log_archive_dest_1='LOCATION=/u01/archivelog/ valid_for=(all_logfiles,all_roles) db_unique_name=slave'
set log_archive_dest_2='SERVICE=orcl lgwr async valid_for=(online_logfile,primary_role) db_unique_name=orcl'
set log_archive_max_processes='5'
set standby_file_management='AUTO'
set fal_client='slave'
set fal_server='orcl';
release channel c1;
release channel c2;
release channel stby;
}

RMAN> quit
恢复管理器完成。

3. 查看备库状态

说明:duplicate数据库之后,备库只是处于mount状态,查看备库状态。

$ sqlplus / as sysdba

# 查看备库状态

SQL> select open_mode,database_role,db_unique_name from v$database;

OPEN_MODE            DATABASE_ROLE    DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED              PHYSICAL STANDBY slave

4. 将备库置与应用日志模式状态

SQL> alter database recover managed standby database using current logfile disconnect from session;  
Database altered.

5. 验证物理备库日志应用

1)主库上操作

SQL> conn / as sysdba;
SQL> create user abc identified by abc ;
SQL> grant dba to abc;
SQL> conn abc/abc
SQL> create table abc ( id integer , name char(10));
SQL> insert into abc values ( 0 , 'aaa' );
SQL> commit;

SQL> conn / as sysdba;

SQL> archive log list;
数据库日志模式          存档模式
自动存档                启用
存档终点                /u01/archivelog/
最早的联机日志序列      8
下一个存档日志序列      10
当前日志序列            10

2)备库上验证

SQL> archive log list
数据库日志模式         存档模式
自动存档               启用
存档终点               /u01/archivelog/
最早的联机日志序列     9
下一个存档日志序列     0
当前日志序列           10

SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;

SEQUENCE# FIRST_TIME     NEXT_TIME      APPLIED
---------- -------------- -------------- ---------
         7 16-8月 -13     16-8月 -13     YES
         8 16-8月 -13     16-8月 -13     YES
         9 16-8月 -13     16-8月 -13     IN-MEMORY

经过测试,Oracle 11g dataguard物理备库创建成功。

转载于:https://blog.51cto.com/koumm/1275237

Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置相关推荐

  1. oracle dataguard in-memory,Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置

    Oracle 11g Dataguard Duplicate物理备库配置(一)之物理备库创建配置 # ver:1.5 第五次修改 # modify: 2013.8.16 # author: koumm ...

  2. Oracle 11g Dataguard 物理备库配置(四)之broker snapshot standby测试

    Oracle 11g Dataguard 物理备库配置系列文档 Oracle 11g Dataguard 物理备库配置(一)之duplicate创建 Oracle 11g Dataguard 物理备库 ...

  3. Oracle 11g Dataguard 物理备库配置(三)之Dataguard broker配置

    Oracle 11g Dataguard 物理备库配置系列文档 Oracle 11g Dataguard 物理备库配置(一)之duplicate创建 Oracle 11g Dataguard 物理备库 ...

  4. oracle11g dataguard物理备库搭建

    Dataguard 环境: 操作系统:Redhat6.4 Primary数据库: IP 地址:192.168.1.122 数据库SID:ora11g DB_UNIQUE_NAME:ora11g_pri ...

  5. oracle11g增加备库,oracle11g dataguard物理备库搭建(关闭主库cp数据文件到备库)

    Dataguard 环境: 操作系统:Redhat6.4 Primary数据库: IP 地址:192.168.1.122 数据库SID:ora11g DB_UNIQUE_NAME:ora11g_pri ...

  6. oracle归档日志保留时间,Oracle 11g Data Guard 备库归档日志清理脚本(保留一周归档)...

    #!/bin/sh #clean archived log #author jiadingyi #version 1.0 2015/11/04 #设置数据库环境变量 TMP=/tmp export T ...

  7. oracle 查看日志组切换状态_Oracle 11g ADG 快照备库切换步骤

    作者 | JiekeXu 来源 | JiekeXu之路(ID: JiekeXu_IT) 转载请联系授权 | (微信ID:xxq1426321293) 大家好,我是 JiekeXu,很高兴又和大家见面了 ...

  8. Oracle 11g dataguard三种模式以及实时查询(Real-time query)功能设置

    之前我们讨论过<Linux Oracle 11g dataguard物理standby 配置过程>, 但是在实际过程中会遇到不同的问题,首先我们讨论下ORACLE DATAGUARD的三种 ...

  9. Oracle 11g Data Guard 物理备库快速配置指南(下)

    第二部分 作者介绍 作者 Jed Walker 是科罗拉多 Centennial Comcast 媒体中心的数据操作经理(Manager of Databse Operation).他从1997年开始 ...

最新文章

  1. C语言 读取字符串数组中的字符串并获取字符串的长度
  2. Go go-metrics
  3. ZYAR20A 亚克力2驱 蓝牙 298寻迹避障机器人 —— 接线过程
  4. tcppwebbrower 关闭安全警报_【安全常识】燃气泄漏报警器,您的安全保护神!
  5. ICE专题:实现简单的聊天室(一)
  6. es6 --- 正确获取Generator函数内部的this对象使其可以使用new
  7. 认证授权方案之授权揭秘 (上篇)
  8. Summer Training day4上帝与集合的正确用法 欧拉函数+降幂公式
  9. 开放计算架构:蚂蚁金服是如何用一套架构容纳所有计算的?
  10. 苹果回应移除部分屏幕时间控制应用:因为隐私和安全
  11. jquery modile 笔记
  12. SQL Server将一列的多行内容拼接成一行的实现方法
  13. webgis之qgis缓存
  14. loadlibrary函数失败,错误码:126
  15. malloc和calloc
  16. C语言学习书籍推荐《明解C语言》下载
  17. 给你一个小时,怎样有序撬启Web测试?
  18. jquery后代选择器 和子选择器区别
  19. 英语每日听写练习 Day 19
  20. iOS开发者账号申请

热门文章

  1. 深入理解计算机系统 系统软件 硬件 文件 进程 虚拟内存
  2. 【Java 并发编程】线程操作原子性问题 ( 问题业务场景分析 | 使用 synchronized 解决线程原子性问题 )
  3. 【错误记录】Android Studio 编译时 Kotlin 代码编译报错 ( Not enough information to infer type variable T )
  4. 【Android Protobuf 序列化】Protobuf 服务器与客户端通信 ( TCP 通信中使用 Protobuf )
  5. 【错误记录】Flutter 报错 ( Android Studio 中 main.dart 左侧不显示设备栏 )
  6. [Spring cloud 一步步实现广告系统] 12. 广告索引介绍
  7. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)
  8. 在QT中结构体快速从二进制文件中读取数据
  9. POJ 1860 Currency Exchange
  10. [FJOI2007]轮状病毒