【DG】主rac + 備rac dg 部署


DG】主rac + rac dg 部署

一.1  BLOG文檔結構圖

wps4189.tmp 

 

 

一.2  前言部分

 

一.2.1  導讀和注意事項

各位技術愛好者,看完本文后,你可以掌握如下的技能,也可以學到一些其它你所不知道的知識,~O(∩_∩)O~:

主庫為rac,備庫為rac的物理dg的搭建(重點)

dbca 靜默方式創建rac數據庫

如何將數據庫加入crsctl管理

rac庫修改歸檔路徑和歸檔模式

如何添加standby日志

簡單物理dg的維護

 

  Tips:

       ① 若文章代碼格式有錯亂,推薦使用搜狗、360QQ瀏覽器,也可以下載pdf格式的文檔來查看,pdf文檔下載地址:http://yunpan.cn/cdEQedhCs2kFz (提取碼:ed9b 

       ② 本篇BLOG中命令的輸出部分需要特別關注的地方我都用灰色背景和粉紅色字體來表示,比如下邊的例子中,thread 1的最大歸檔日志號為33thread 2的最大歸檔日志號為43是需要特別關注的地方;而命令一般使用黃色背景和紅色字體注;對代碼或代碼輸出部分的注釋一般采用藍色字體表示

 

  List of Archived Logs in backup set 11

  Thrd Seq     Low SCN    Low Time            Next SCN   Next Time

  ---- ------- ---------- ------------------- ---------- ---------

  1    32      1621589    2015-05-29 11:09:52 1625242    2015-05-29 11:15:48

  1    33      1625242    2015-05-29 11:15:48 1625293    2015-05-29 11:15:58

  2    42      1613951    2015-05-29 10:41:18 1625245    2015-05-29 11:15:49

  2    43      1625245    2015-05-29 11:15:49 1625253    2015-05-29 11:15:53

 

 

 

 

[ZFXXDB1:root]:/>lsvg -o

T_XDESK_APP1_vg

rootvg

[ZFXXDB1:root]:/>

00:27:22 SQL> alter tablespace idxtbs read write;

 

 

====》2097152*512/1024/1024/1024=1G 

 

 

 

 

 

 

 

 

本文如有錯誤或不完善的地方請大家多多指正,ITPUB留言或QQ皆可,您的批評指正是我寫作的最大動力。

 

 

 

一.2.2  相關參考文章鏈接

 

【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫(一): http://blog.itpub.net/26736162/viewspace-1448197/
【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫(二 ):  http://blog.itpub.net/26736162/viewspace-1448207/
【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫(三 ):  http://blog.itpub.net/26736162/viewspace-1481972/
【DATAGUARD】 基於同一個主機建立物理備庫和邏輯備庫 (四)--添加一個物理dg節點 :http://blog.itpub.net/26736162/viewspace-1484878/

【DATAGUARD】 將11g物理備庫轉換為Snapshot Standby :http://blog.itpub.net/26736162/viewspace-1525548/

【DG】 主rac + 備rac dg 部署 :http://blog.itpub.net/26736162/viewspace-1991449/

一.2.3  本文簡介

 

雖然之前已經多次安裝過dg了,但都是基於單實例的,無論是物理還是邏輯的,感覺都非常輕松,沒有碰到大的問題,但是最近同事安裝dg老是碰到問題,尤其是在執行duplicate命令的時候報錯,所以我想還是自己也搭建的試試吧,順便也寫寫文檔。

 

 

 

一.3  相關知識點掃盲(摘自網絡)

wps418A.tmp 

 

 

Physical Standby使用的是Media Recovery 技術,在數據塊級別進行恢復,這種方式沒有數據類型的限制,可以保證兩個數據庫完全一致。 Physical Standby數據庫只能在Mount 狀態下進行恢復,也可以是打開,但只能已只讀方式打開,並且打開時不能執行恢復操作。Logical Standby使用的是Logminer 技術,通過把日志內容還原成SQL 語句,然后SQL引擎執行這些語句,Logminer Standby不支持所有數據類型,可以在視圖DBA_LOGSTDBY_UNSUPPORTED 中查看不支持的數據類型,如果使用了這種數據類型,則不能保證數據庫完全一致。LogicalStandby數據庫可以在恢復的同時進行讀寫操作

不少未實際接觸過dg的初學者可能會下意識以為data guard是一個備份恢復的工具。我要說的是,這種形容不完全錯,dg擁有備份的功能,某些情況下它甚至可以與primary數據庫完全一模一樣,但是它存在的目的並不僅僅是為了恢復數據,應該說它的存在是為了 確保企業數據的高可用性,數據保護以及災難恢復 ( 注意這個字眼,災難恢復) dg提供全面的服務包括:創建,維護,管理以及監控standby數據庫,確保數據安全,管理員可以通過將一些操作轉移到standby數據庫執行的方式改善數據庫性能 ,構建高可用的企業數據庫應用環境。

在Data Gurad 環境中,至少有兩個數據庫,一個處於Open 狀態對外提供服務,這個數據庫叫作Primary Database。 第二個處於恢復狀態,叫作Standby Database。 運行時primary Database 對外提供服務,用戶在Primary Database 上進行操作,操作被記錄在聯機日志和歸檔日志中,這些日志通過網絡傳遞給Standby Database。 這個日志會在Standby Database 上重演,從而實現Primary Database Standby Database 的數據同步。
Oracle Data Gurad 對這一過程進一步的優化設計,使得日志的傳遞,恢復工作更加自動化,智能化,並且提供一系列參數和命令簡化了DBA工作。
如果是可預見因素需要關閉Primary Database,比如軟硬件升級,可以把Standby Database 切換為Primary Database 繼續對外服務,這樣即減少了服務停止時間,並且數據不會丟失。如果異常原因導致Primary Database 不可用,也可以把Standby Database 強制切換為Primary Database繼續對外服務,這時數據損失都和配置的數據保護級別有關系。因此Primary Standby 只是一個角色概念,並不固定在某個數據庫中。

 

 

問題:RAC DG 有什么區別

RACData Gurad, 高可用性體系中的二種工具,每個工具即可以獨立應用,也可以相互配合。 他們各自的側重點不同,適用場景也不同。

RAC 它的強項在於解決單點故障和負載均衡,因此RAC 方案常用於7*24 的核心系統,但RAC 方案中的數據只有一份,盡管可以通過RAID 等機制可以避免存儲故障,但是數據本身是沒有冗余的,容易形成單點故障。

Data Gurad 通過冗余數據來提供數據保護,Data Gurad 通過日志同步機制保證冗余數據和主數據之前的同步,這種同步可以是實時,延時,同步,異步多種形式。Data Gurad 常用於異地容災和小企業的高可用性方案,雖然可以在Standby 機器上執行只讀查詢,從而分散Primary 數據庫的性能壓力,但是Data Gurad 決不是性能解決方案。

 

---------------------------------------------------------------------------------------------------------------------

 

第二章 實驗部分(正式開始搭建)

 

 

 

創建物理備庫的方法很多,對於Oracle 11g而言,可以直接從active database來創建,也可以基於10g RMAN備份方式來創建。 

 

 

二.1  實驗環境介紹

 

項目

primary db

physical standby db

db 類型

rac

rac

db version

11.2.0.4.0

11.2.0.4.0

db 存儲

ASM

ASM

主機IP地址/hosts配置

22.123.124.31   ZFXXX3
22.123.124.33   ZFXXX3-vip
222.123.124.31  ZFXXX3-priv
22.123.124.32   ZFXXX4
22.123.124.34   ZFXXX4-vip
222.123.124.32  ZFXXX4-priv
22.123.124.35   ZFXXX
-scan

22.123.124.64   ZFXXX1
22.123.124.65   ZFXXX1-vip
222.123.124.64  ZFXXX1-priv
22.123.124.66   ZFXXX2
22.123.124.67   ZFXXX2-vip
222.123.124.66  ZFXXX2-priv
22.123.124.68   ZFXXX
-scan

OS版本及kernel版本

AIX 64位 7.1.0.0

AIX 64位 7.1.0.0

OS hostname

ZFXXX3
ZFXXX
4

ZFXXX1
ZFXXX
2

platform_name

AIX-Based Systems (64-bit)

AIX-Based Systems (64-bit)

db time zone

14

14

字符集

ZHS16GBK

ZHS16GBK

compatible

11.2.0.4.0

11.2.0.4.0

歸檔模式

Archive Mode

Archive Mode

ORACLE_SID

DGPRI

DGPHY

db_name/GLOBAL_DBNAME

TESTDG

TESTDG

db_unique_name

TESTDG

TESTDGPHY

TNS_NAME

TNS_DGPRI

TNS_DGPHY

磁盤組

+DATA

+DATA

歸檔路徑

GPFS方式共享路徑: /arch

GPFS方式共享路徑: /arch

ORACLE_HOME

/oracle/app/oracle/product/11.2.0/db

/oracle/app/oracle/product/11.2.0/db

dbid

2836886746

2836886746

注:標紅的選項是必填,且需要特別關注的項目

 

 

該環境中我主要是為了區分dg中各種參數配置的是tnsnamesoracle_siddbname還是db_unique_name,所以設置的值不同,一般情況這4者可以設置成一樣的,dgdb_unique_nameoracle_sidtns可以設置成一樣的。

 

 

二.2  主庫操作

二.2.1  先創建

 

dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname TESTDG  -sid DGPRI -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination '/arch' -storageType ASM -asmsnmpPassword lhr  -diskGroupName 'DATA' -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 1024  -nodeinfo ZFXXX3,ZFXXX4

 

注意:sid不能含有下橫線,如DG_PRI會報錯:

The SID name can only contain alphanumeric characters.

 

靜默方式創建一個rac主庫:

[ZFXXX3:root]:/>crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.LISTENER.lsnr

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.asm

               ONLINE  ONLINE       zfXXX3               Started            

               ONLINE  ONLINE       zfXXX4               Started            

ora.gsd

               OFFLINE OFFLINE      zfXXX3                                  

               OFFLINE OFFLINE      zfXXX4                                  

ora.net1.network

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.ons

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.registry.acfs

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       zfXXX4                                  

ora.cvu

      1        ONLINE  ONLINE       zfXXX4                                  

ora.oc4j

      1        ONLINE  ONLINE       zfXXX4                                  

ora.oradesdb.db

      1        ONLINE  ONLINE       zfXXX3               Open,Readonly      

      2        ONLINE  ONLINE       zfXXX4               Open,Readonly      

ora.scan1.vip

      1        ONLINE  ONLINE       zfXXX4                                  

ora.testdg.db

      1        OFFLINE OFFLINE                                                  

      2        OFFLINE OFFLINE                                                  

ora.zfXXX3.vip

      1        ONLINE  ONLINE       zfXXX3                                  

ora.zfXXX4.vip

      1        ONLINE  ONLINE       zfXXX4                                  

[ZFXXX3:root]:/>cat /etc/hosts

# IBM_PROLOG_BEGIN_TAG

# This is an automatically generated prolog.

# bos61D src/bos/usr/sbin/netstart/hosts 1.2

# Licensed Materials - Property of IBM

# COPYRIGHT International Business Machines Corp. 1985,1989

# All Rights Reserved

# US Government Users Restricted Rights - Use, duplication or

# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

# @(#)47        1.2  src/bos/usr/sbin/netstart/hosts, cmdnet, bos61D, d2007_49A2 10/1/07 13:57:52

# IBM_PROLOG_END_TAG

#

# COMPONENT_NAME: TCPIP hosts

#

# FUNCTIONS: loopback

#

# ORIGINS: 26  27

#

# (C) COPYRIGHT International Business Machines Corp. 1985, 1989

# All Rights Reserved

# Licensed Materials - Property of IBM

#

# US Government Users Restricted Rights - Use, duplication or

# disclosure restricted by GSA ADP Schedule Contract with IBM Corp.

#

#  /etc/hosts

#

# This file contains the hostnames and their address for hosts in the

# network.  This file is used to resolve a hostname into an Internet

# address. 

#

# At minimum, this file must contain the name and address for each

# device defined for TCP in your /etc/net file.  It may also contain

# entries for well-known (reserved) names such as timeserver

# and printserver as well as any other host name and address.

#

# The format of this file is:

# Internet Address      Hostname        # Comments

# Internet Address can be either IPv4 or IPv6 address.

# Items are separated by any number of blanks and/or tabs.  A '#'

# indicates the beginning of a comment; characters up to the end of the

# line are not interpreted by routines which search this file.  Blank

# lines are allowed.

 

# Internet Address      Hostname        # Comments

# 192.9.200.1           net0sample      # ethernet name/address

# 128.100.0.1           token0sample    # token ring name/address

# 10.2.0.2              x25sample       # x.25 name/address

# 2000:1:1:1:209:6bff:feee:2b7f         ipv6sample      # ipv6 name/address

127.0.0.1               loopback localhost      # loopback (lo0) name/address

::1                     loopback localhost      # IPv6 loopback (lo0) name/address

 

 

 

22.123.124.31   ZFXXX3

22.123.124.33   ZFXXX3-vip

222.123.124.31  ZFXXX3-priv

 

22.123.124.32   ZFXXX4

22.123.124.34   ZFXXX4-vip

222.123.124.32  ZFXXX4-priv

22.123.124.35   ZFXXX-scan

 

 

 

[ZFXXX3:root]:/>

[ZFXXX3:root]:/>oslevel

7.1.0.0

[ZFXXX3:root]:/>su - oracle

 

[ZFXXX3:oracle]:/oracle>dbca -silent -createDatabase -templateName General_Purpose.dbc -gdbname TESTDG  -sid DGPRI -sysPassword lhr -systemPassword lhr -datafileDestination 'DATA/' -redoLogFileSize 50 -recoveryAreaDestination '/arch' -storageType ASM -asmsnmpPassword lhr  -diskGroupName 'DATA' -responseFile NO_VALUE -characterset ZHS16GBK -nationalCharacterSet AL16UTF16 -sampleSchema true -automaticMemoryManagement true -totalMemory 1024  -nodeinfo ZFXXX3,ZFXXX4

Copying database files

1% complete

3% complete

30% complete

Creating and starting Oracle instance

32% complete

36% complete

40% complete

44% complete

45% complete

48% complete

50% complete

Creating cluster database views

52% complete

70% complete

Completing Database Creation

73% complete

76% complete

85% complete

94% complete

100% complete

Look at the log file "/oracle/app/oracle/cfgtoollogs/dbca/TESTDG/TESTDG.log" for further details.

[ZFXXX3:oracle]:/oracle>more /oracle/app/oracle/cfgtoollogs/dbca/TESTDG/TESTDG.log

Copying database files

DBCA_PROGRESS : 1%

DBCA_PROGRESS : 3%

DBCA_PROGRESS : 30%

Creating and starting Oracle instance

DBCA_PROGRESS : 32%

DBCA_PROGRESS : 36%

DBCA_PROGRESS : 40%

DBCA_PROGRESS : 44%

DBCA_PROGRESS : 45%

DBCA_PROGRESS : 48%

DBCA_PROGRESS : 50%

Creating cluster database views

DBCA_PROGRESS : 52%

DBCA_PROGRESS : 70%

Completing Database Creation

DBCA_PROGRESS : 73%

DBCA_PROGRESS : 76%

DBCA_PROGRESS : 85%

DBCA_PROGRESS : 94%

DBCA_PROGRESS : 100%

Database creation complete. For details check the logfiles at:

/oracle/app/oracle/cfgtoollogs/dbca/TESTDG.

Database Information:

Global Database Name:TESTDG

System Identifier(SID) Prefix:DGPRI

[ZFXXX3:oracle]:/oracle>

[ZFXXX3:oracle]:/oracle>crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.LISTENER.lsnr

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.asm

               ONLINE  ONLINE       zfXXX3               Started            

               ONLINE  ONLINE       zfXXX4               Started            

ora.gsd

               OFFLINE OFFLINE      zfXXX3                                  

               OFFLINE OFFLINE      zfXXX4                                  

ora.net1.network

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.ons

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

ora.registry.acfs

               ONLINE  ONLINE       zfXXX3                                  

               ONLINE  ONLINE       zfXXX4                                  

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       zfXXX4                                  

ora.cvu

      1        ONLINE  ONLINE       zfXXX4                                  

ora.oc4j

      1        ONLINE  ONLINE       zfXXX4                                  

ora.oradesdb.db

      1        ONLINE  ONLINE       zfXXX3               Open,Readonly      

      2        ONLINE  ONLINE       zfXXX4               Open,Readonly      

ora.scan1.vip

      1        ONLINE  ONLINE       zfXXX4                                  

ora.testdg.db

      1        ONLINE  ONLINE       zfXXX3               Open               

      2        ONLINE  ONLINE       zfXXX4               Open               

ora.zfXXX3.vip

      1        ONLINE  ONLINE       zfXXX3                                  

ora.zfXXX4.vip

      1        ONLINE  ONLINE       zfXXX4                                  

[ZFXXX3:root]:/>

 

 

 

二.2.2  主庫前期准備

二.2.2.1  force logging + archivelog

1. 創建一個用戶lhr用於測試

2. 修改主庫為force logging模式

3. 修改主庫為歸檔模式

 

select INST_ID, dbid,name,DB_UNIQUE_NAME,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;

 

 

[ZFXXX3:oracle]:/oracle>export ORACLE_SID=DGPRI1

[ZFXXX3:oracle]:/oracle>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 17 11:19:24 2016

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SYS@DGPRI1> create user lhr identified by lhr;

 

User created.

 

SYS@DGPRI1> grant dba to lhr;

 

Grant succeeded.

 

SYS@DGPRI1> set line 9999

SYS@DGPRI1> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    READ WRITE           NOARCHIVELOG NO  PRIMARY          NOT ALLOWED

TESTDG    READ WRITE           NOARCHIVELOG NO  PRIMARY          NOT ALLOWED

 

SYS@DGPRI1> alter database force logging;

 

Database altered.

 

SYS@DGPRI1> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    READ WRITE           NOARCHIVELOG YES PRIMARY          NOT ALLOWED

TESTDG    READ WRITE           NOARCHIVELOG YES PRIMARY          NOT ALLOWED

 

SYS@DGPRI1>

 

 

 

alter system set log_archive_dest_1='LOCATION=/arch' scope=spfile sid='DGPRI1';

alter system set log_archive_dest_1='LOCATION=/arch' scope=spfile sid='DGPRI2';

alter system set log_archive_dest_1='LOCATION=/arch' scope=spfile sid='*';

 

host srvctl stop database -d TESTDG -o immediate

host srvctl status database -d TESTDG

host srvctl start database -d TESTDG -o mount

 

alter database archivelog;

 

 

修改rac主庫為歸檔模式:

 

 

SYS@DGPRI1> alter system set log_archive_dest_1='LOCATION=/arch' scope=spfile sid='DGPRI1';

 

System altered.

 

SYS@DGPRI1> alter system set log_archive_dest_1='LOCATION=/arch' scope=spfile sid='DGPRI2';

 

System altered.

 

SYS@DGPRI1> host srvctl stop database -d TESTDG -o immediate

 

SYS@DGPRI1> host srvctl status database -d TESTDG

Instance DGPRI1 is not running on node zfXXX3

Instance DGPRI2 is not running on node zfXXX4

 

SYS@DGPRI1> host srvctl start database -d TESTDG -o mount

 

SYS@DGPRI1> archive log list;

ORA-03135: connection lost contact

SYS@DGPRI1> conn / as sysdba

Connected.

SYS@DGPRI1> alter database archivelog;

 

Database altered.

 

SYS@DGPRI1> set line 9999

SYS@DGPRI1> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    MOUNTED              ARCHIVELOG   YES PRIMARY          NOT ALLOWED

TESTDG    MOUNTED              ARCHIVELOG   YES PRIMARY          NOT ALLOWED

 

SYS@DGPRI1> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /arch

Oldest online log sequence     5

Next log sequence to archive   6

Current log sequence           6

SYS@DGPRI1> alter database open;

 

Database altered.

 

SYS@DGPRI1> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    READ WRITE           ARCHIVELOG   YES PRIMARY          NOT ALLOWED

TESTDG    MOUNTED              ARCHIVELOG   YES PRIMARY          NOT ALLOWED

 

SYS@DGPRI1>

 

 

 

 

啟動第二個節點:

 

[ZFXXX4:root]:/>ORACLE_SID=DGPRI2

[ZFXXX4:root]:/>su - oracle

[ZFXXX4:oracle]:/oracle>ORACLE_SID=DGPRI2

[ZFXXX4:oracle]:/oracle>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Wed Feb 17 12:26:42 2016

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SYS@DGPRI2> alter database open;

 

Database altered.

 

SYS@DGPRI2> set line 9999

SYS@DGPRI2> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    READ WRITE           ARCHIVELOG   YES PRIMARY          NOT ALLOWED

TESTDG    READ WRITE           ARCHIVELOG   YES PRIMARY          NOT ALLOWED

 

SYS@DGPRI2> archive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            /arch

Oldest online log sequence     1

Next log sequence to archive   1

Current log sequence           1

SYS@DGPRI2>

二.2.2.2  為主庫添加standby redo log

 

--為主庫添加standby redo log,簡要描述一下standby redo log的作用 

--實際上就是與主庫接收到的重做日志相對應,也就是說備庫調用RFS進程將從主庫接收到的重做日志按順序寫入到standby logfile 

--在主庫創建standby logfile是便於發生角色轉換后備用 

--sandby redo log創建原則: 

--a)、確保standby redo log的大小與主庫online redo log的大小一致   

--b)、如主庫為單實例數據庫:standby redo log組數=主庫日志組總數+1 

--c)、如果主庫是RAC數據庫:standby redo log組數=(每線程的日志組數+1)*最大線程數 

--d)、不建議復用standby redo log,避免增加額外的I/O以及延緩重做傳輸 

 

單實例:

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/oralg/standby_redo04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/oralg/standby_redo05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/oralg/standby_redo06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/oralg/standby_redo07.log') size 50m;

 

rac下:

alter database add standby logfile thread 1 group 5 size 50M ,group 6 size 50M ,group 7 size 50M ;

alter database add standby logfile thread 2 group 8 size 50M ,group 9 size 50M ,group 10 size 50M ;

 

 

 

SYS@DGPRI1> select * from v$standby_log;

 

no rows selected

 

SYS@DGPRI1> select group#,THREAD#,MEMBERS  from v$log ;

 

    GROUP#    THREAD#    MEMBERS

---------- ---------- ----------

         1          1          2

         2          1          2

         3          2          2

         4          2          2

 

SYS@DGPRI1>

SYS@DGPRI1> col member format a100

SYS@DGPRI1> select GROUP# ,STATUS , TYPE , MEMBER from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER

---------- ------- ------- ----------------------------------------------------------------------------------------------------

         2         ONLINE  +DATA/testdg/onlinelog/group_2.260.904043421

         2         ONLINE  +DATA/testdg/onlinelog/group_2.263.904043421

         1         ONLINE  +DATA/testdg/onlinelog/group_1.262.904043421

         1         ONLINE  +DATA/testdg/onlinelog/group_1.261.904043421

         3         ONLINE  +DATA/testdg/onlinelog/group_3.303.904043623

         3         ONLINE  +DATA/testdg/onlinelog/group_3.304.904043623

         4         ONLINE  +DATA/testdg/onlinelog/group_4.305.904043623

         4         ONLINE  +DATA/testdg/onlinelog/group_4.306.904043623

 

8 rows selected.

 

SYS@DGPRI1> alter database add standby logfile thread 1 group 5 size 50M ,group 6 size 50M ,group 7 size 50M ;

 

Database altered.

 

SYS@DGPRI1> alter database add standby logfile thread 2 group 8 size 50M ,group 9 size 50M ,group 10 size 50M ;

 

Database altered.

 

SYS@DGPRI1> select GROUP#,DBID,THREAD#,SEQUENCE#,BYTES,BLOCKSIZE,USED,ARCHIVED,STATUS from v$standby_log;

 

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS

---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ----------

         5 UNASSIGNED                                        1          0   52428800        512          0 YES UNASSIGNED

         6 UNASSIGNED                                        1          0   52428800        512          0 YES UNASSIGNED

         7 UNASSIGNED                                        1          0   52428800        512          0 YES UNASSIGNED

         8 UNASSIGNED                                        2          0   52428800        512          0 YES UNASSIGNED

         9 UNASSIGNED                                        2          0   52428800        512          0 YES UNASSIGNED

        10 UNASSIGNED                                        2          0   52428800        512          0 YES UNASSIGNED

 

6 rows selected.

 

SYS@DGPRI1>

SYS@DGPRI1> select   GROUP# ,STATUS , TYPE  ,  MEMBER from v$logfile;

 

    GROUP# STATUS  TYPE    MEMBER

---------- ------- ------- ----------------------------------------------------------------------------------------------------

         2         ONLINE  +DATA/testdg/onlinelog/group_2.260.904043421

         2         ONLINE  +DATA/testdg/onlinelog/group_2.263.904043421

         1         ONLINE  +DATA/testdg/onlinelog/group_1.262.904043421

         1         ONLINE  +DATA/testdg/onlinelog/group_1.261.904043421

         3         ONLINE  +DATA/testdg/onlinelog/group_3.303.904043623

         3         ONLINE  +DATA/testdg/onlinelog/group_3.304.904043623

         4         ONLINE  +DATA/testdg/onlinelog/group_4.305.904043623

         4         ONLINE  +DATA/testdg/onlinelog/group_4.306.904043623

         5         STANDBY +DATA/testdg/onlinelog/group_5.267.904048731

         5         STANDBY +DATA/testdg/onlinelog/group_5.294.904048731

         6         STANDBY +DATA/testdg/onlinelog/group_6.308.904048733

         6         STANDBY +DATA/testdg/onlinelog/group_6.309.904048733

         7         STANDBY +DATA/testdg/onlinelog/group_7.310.904048733

         7         STANDBY +DATA/testdg/onlinelog/group_7.311.904048733

         8         STANDBY +DATA/testdg/onlinelog/group_8.312.904048737

         8         STANDBY +DATA/testdg/onlinelog/group_8.313.904048737

         9         STANDBY +DATA/testdg/onlinelog/group_9.314.904048737

         9         STANDBY +DATA/testdg/onlinelog/group_9.315.904048739

        10         STANDBY +DATA/testdg/onlinelog/group_10.316.904048739

        10         STANDBY +DATA/testdg/onlinelog/group_10.317.904048739

 

20 rows selected.

 

SYS@DGPRI1> show parameter name

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cell_offloadgroup_name               string

db_file_name_convert                 string

db_name                              string      TESTDG

db_unique_name                       string      TESTDG

global_names                         boolean     FALSE

instance_name                        string      DGPRI1

lock_name_space                      string

log_file_name_convert                string

processor_group_name                 string

service_names                        string      TESTDG

SYS@DGPRI1>

 

 

 

二.2.2.3  修改主庫參數文件 

--使用下面的命令修改主庫參數(此時主庫應當使用spfile啟動參數) 

LOG_ARCHIVE_CONFIG = 'DG_CONFIG ( db_unique_name, db_unique_name, ... )'  主庫與備庫端采用相同設置。
LOG_ARCHIVE_DEST_n
 ='SERVICE=。。。。。   SERIVCE: 用於指定備用數據庫的TNSNAMES描述符
db_file_name_convert log_file_name_convert 參數值為路徑,可以直接寫db_unique_name 如果使用ASM,可以設置為*.db_file_name_convert =('+DATA','+RECOVERY')   

fal_server fal_client 參數值為TNSNAMES描述符

 

 

alter system set db_unique_name='TESTDG' scope=spfile; 

alter system set log_archive_config='DG_CONFIG=(TESTDG,TESTDGPHY)' sid='*'; 

alter system set log_archive_dest_1='LOCATION=/arch db_unique_name=TESTDG valid_for=(ALL_LOGFILES,ALL_ROLES)' sid='*'; 

alter system set log_archive_dest_2='SERVICE=TNS_DGPHY LGWR ASYNC db_unique_name=TESTDGPHY valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)' sid='*';   

alter system set log_archive_dest_state_1=enable sid='*';  

alter system set log_archive_dest_state_2=enable sid='*';   

alter system set log_archive_max_processes=4 sid='*'; 

alter system set remote_login_passwordfile='EXCLUSIVE' scope=spfile; 

 

--Add below item when DB turn to standby role 

alter system set db_file_name_convert='TESTDGPHY','TESTDG' scope=spfile; 

alter system set log_file_name_convert='TESTDGPHY','TESTDG' scope=spfile; 

alter system set standby_file_management='AUTO' sid='*';   

alter system set fal_server='TNS_DGPHY' sid='*';   

alter system set fal_client='TNS_DGPRI' sid='*';  

 

 

SYS@DGPRI1> show parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      +DATA/testdg/spfiledgpri.ora

SYS@DGPRI1>

SYS@DGPRI1>alter system set db_unique_name='TESTDG' scope=spfile; 

alter system set log_archive_config='DG_CONFIG=(TESTDG,TESTDGPHY)' sid='*'; 

alter system set log_archive_dest_1='LOCATION=/arch db_unique_name=TESTDG valid_for=(ALL_LOGFILES,ALL_ROLES)' sid='*'; 

alter system set log_archive_dest_2='SERVICE=TNS_DGPHY LGWR ASYNC db_unique_name=TESTDGPHY valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE)' sid='*';   

alter system set log_archive_dest_state_1=enable sid='*';  

alter system set log_archive_dest_state_2=enable sid='*';   

alter system set log_archive_max_processes=4 sid='*'; 

alter system set remote_login_passwordfile='EXCLUSIVE' scope=spfile; 

 

--Add below item when DB turn to standby role 

alter system set db_file_name_convert='TESTDGPHY','TESTDG' scope=spfile; 

alter system set log_file_name_convert='TESTDGPHY','TESTDG' scope=spfile; 

alter system set standby_file_management='AUTO' sid='*';   

alter system set fal_server='TNS_DGPHY' sid='*';   

alter system set fal_client='TNS_DGPRI' sid='*';  

 

SYS@DGPRI1>

 

System altered.

 

SYS@DGPRI1>

 

System altered.

 

SYS@DGPRI1> 

 

System altered.

 

SYS@DGPRI1>

 

 

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1>

System altered.

 

SYS@DGPRI1> SYS@DGPRI1> SYS@DGPRI1> SYS@DGPRI1>

SYS@DGPRI1>

SYS@DGPRI1>

SYS@DGPRI1>

SYS@DGPRI1>

SYS@DGPRI1>

 

 

二.3  配置主庫和備庫的監聽 

--為主庫和備庫配置監聽,整個DG的redo傳輸服務,都依賴於Oracle Net,因此需要為主備庫配置監聽且需要配置靜態監聽  

--配置方法多種多樣,可用netmgr,netca,以及直接編輯listener.ora 與tnsnames.ora文件 

--下面是配置之后的listener.ora 與tnsnames.ora文件內容 

more $ORACLE_HOME/network/admin/listener.ora

二.3.1  主庫

在主庫的第一個節點的監聽文件中加入如下內容:

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

)

 

SID_LIST_LISTENER =

(SID_LIST =

   (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

      (PROGRAM = extproc)

   )

  (SID_DESC =

    (GLOBAL_DBNAME = TESTDG)

    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

    (SID_NAME= DGPRI1)

  )

)

 

第二個節點加入:

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

)

 

SID_LIST_LISTENER =

(SID_LIST =

   (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

      (PROGRAM = extproc)

   )

  (SID_DESC =

    (GLOBAL_DBNAME = TESTDG)

    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

    (SID_NAME= DGPRI2)

  )

)

 

以第一個節點為例,其它類似:

[ZFXXX3:oracle]:/oracle>lsnrctl status

 

LSNRCTL for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 17-FEB-2016 16:50:02

 

Copyright (c) 1991, 2013, Oracle.  All rights reserved.

 

Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))

STATUS of the LISTENER

------------------------

Alias                     LISTENER

Version                   TNSLSNR for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production

Start Date                31-DEC-2015 15:02:50

Uptime                    48 days 1 hr. 47 min. 12 sec

Trace Level               off

Security                  ON: Local OS Authentication

SNMP                      OFF

Listener Parameter File   /oracle/app/11.2.0/grid/network/admin/listener.ora

Listener Log File         /oracle/app/grid/diag/tnslsnr/ZFXXX3/listener/alert/log.xml

 

 

將上邊所說的內容加入文件:/oracle/app/11.2.0/grid/network/admin/listener.ora ,然后重啟監聽器,lsnrctl stop , lsnrctl start,需要注意的是rac下是在grid用戶下修改監聽文件的。

 

 

 

二.3.2  備庫

監聽配置參考主庫的操作:

 

備庫第一個節點:

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

)

 

SID_LIST_LISTENER =

(SID_LIST =

  (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

      (PROGRAM = extproc)

   )

  (SID_DESC =

    (GLOBAL_DBNAME = TESTDG)

    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

    (SID_NAME= DGPHY1)

  )

)

 

 

備庫第二個節點:

LISTENER =

(DESCRIPTION_LIST =

    (DESCRIPTION =

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

    )

)

 

SID_LIST_LISTENER =

(SID_LIST =

  (SID_DESC =

      (SID_NAME = PLSExtProc)

      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

      (PROGRAM = extproc)

   )

  (SID_DESC =

    (GLOBAL_DBNAME = TESTDG)

    (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)

    (SID_NAME= DGPHY2)

  )

)

 

二.4  配置主庫和備庫的tnsname

[ZFXXX3:grid]:/oracle/app/11.2.0/grid/network/admin>exit

[ZFXXX3:root]:/>su - oracle

[ZFXXX3:oracle]:/oracle>cd $ORACLE_HOME/network/admin

[ZFXXX3:oracle]:/oracle/app/oracle/product/11.2.0/db/network/admin>ls

samples       shrept.lst    sqlnet.ora    tnsnames.b    tnsnames.ora

[ZFXXX3:oracle]:/oracle/app/oracle/product/11.2.0/db/network/admin>vi $ORACLE_HOME/network/admin/tnsnames.ora

 

 

 

注意:tns文件是在oracle用戶下配置,將主庫和備庫的一共4個節點的tnsnames.ora文件加入如下內容:

 

TNS_DGPRI =

  (DESCRIPTION =

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

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = TESTDG)

    )

  )

 

TNS_DGPHY =

  (DESCRIPTION =

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

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

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = TESTDG)

    )

  )

 

 

4個節點上分別測試:

[ZFXXX1:oracle]:/oracle>tnsping TNS_DGPHY

 

TNS Ping Utility for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 17-FEB-2016 17:50:00

 

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

 

Used parameter files:

/oracle/app/oracle/product/11.2.0/db/network/admin/sqlnet.ora

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 22.123.124.64)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 22.123.124.66)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDG)))

OK (80 msec)

[ZFXXX1:oracle]:/oracle>tnsping TNS_DGPRI

 

TNS Ping Utility for IBM/AIX RISC System/6000: Version 11.2.0.4.0 - Production on 17-FEB-2016 17:50:09

 

Copyright (c) 1997, 2013, Oracle.  All rights reserved.

 

Used parameter files:

/oracle/app/oracle/product/11.2.0/db/network/admin/sqlnet.ora

 

 

Used TNSNAMES adapter to resolve the alias

Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 22.123.124.31)(PORT = 1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 22.123.124.32)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = TESTDG)))

OK (0 msec)

[ZFXXX1:oracle]:/oracle>

 

 

二.5  配置備庫密碼文件 

 

--由於要求主庫與備庫sys使用相同的密碼,在此處,我們直接復制了主庫的密碼文件到備庫,將主庫第一個節點的密碼文件copy到其它3個節點並修改名稱,名稱為orapw+ORACLE_SID

 

[ZFXXX3:oracle]:/oracle>l $ORACLE_HOME/dbs/orapwDGPRI*

-rw-r-----    1 oracle   dba            1536 Feb 17 11:12 /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI1

[ZFXXX3:oracle]:/oracle>cp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI1 /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI2

[ZFXXX3:oracle]:/oracle>cp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI1 /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY1

[ZFXXX3:oracle]:/oracle>cp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI1 /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY2

[ZFXXX3:oracle]:/oracle>scp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI2 oracle@22.123.124.32:/oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI2

[ZFXXX3:oracle]:/oracle>scp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY1 oracle@22.123.124.64:/oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY1

[ZFXXX3:oracle]:/oracle>scp /oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY2 oracle@22.123.124.66:/oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY2

 

二.6  備庫操作

二.6.1  配置備庫路徑

11g一般創建如下路徑,若是asm的話只需要創建 /u01/app/oracle/admin/TESTDGPHY/adump

mkdir -p $ORACLE_BASE/admin/TESTDGPHY/adump

mkdir -p  $ORACLE_BASE/oradata/TESTDGPHY/

mkdir -p  $ORACLE_BASE/oradata/TESTDGPHY/standby_redo/

 

[ZFXXX1:oracle]:/oracle>mkdir -p  $ORACLE_BASE/admin/TESTDGPHY/adump

[ZFXXX1:oracle]:/oracle>

 

第二個節點創建:

[ZFXXX2:oracle]:/oracle>mkdir -p  $ORACLE_BASE/admin/TESTDGPHY/adump

[ZFXXX2:oracle]:/oracle>

 

 

11g如果不創建audit_file_dest的路徑會報如下的錯誤,而10g的話創建的路徑比較多,可以查看spfile內容進行創建:

RMAN-04014: startup failed: ORA-09925: Unable to create audit trail file

IBM AIX RISC System/6000 Error: 2: No such file or directory

Additional information: 9925

 

 

 

二.6.2  配置備庫pfile文件並啟動到nomount狀態

我們選擇備庫的第一個節點作為實施節點:

 

[ZFXXX1:root]:/>su - oracle

[ZFXXX1:oracle]:/oracle>cd $ORACLE_HOME/dbs

[ZFXXX1:oracle]:/oracle/app/oracle/product/11.2.0/db/dbs>l

total 42416

-rw-rw----    1 oracle   dba            1544 Dec 25 09:31 hc_oraESK1.dat

-rw-rw----    1 oracle   dba            1544 Feb 18 09:32 hc_oraESKDB1.dat

-rw-rw----    1 oracle   dba            1544 Jul 16 2015  hc_oraMCIS1.dat

-rw-rw----    1 oracle   dba            1544 Nov 18 2014  hc_oraNUW1.dat

-rw-rw----    1 oracle   dba            1544 Dec 23 2014  hc_oraTEST2.dat

-rw-rw----    1 oracle   dba            1544 Jan 29 16:17 hc_oralhr.dat

-rw-rw----    1 oracle   dba            1544 Jan 29 15:47 hc_oralhr1.dat

-rw-r--r--    1 oracle   dba            2851 May 15 2009  init.ora

-rw-r-----    1 oracle   dba             162 Jul 15 2015  initDBUA4155109.ora

-rw-r-----    1 oracle   dba              39 Dec 24 17:21 initoraESK1.ora

-rw-r--r--    1 oracle   dba              66 Feb 01 17:08 initoraESKDB1.ora

-rw-r-----    1 oracle   dba              42 Jul 15 2015  initoraMCIS1.ora

-rw-r-----    1 oracle   dba              40 Nov 06 2014  initoraNUW1.ora

-rw-r-----    1 oracle   dba              42 Nov 19 2014  initoraTEST2.ora

-rw-r--r--    1 oracle   dba             923 Jan 29 15:51 initoralhr.ora

-rw-r-----    1 oracle   dba             843 Jan 08 09:20 initoralhr.ora.bak.zfXXX1

-rw-r--r--    1 oracle   dba              80 Jan 29 15:47 initoralhr1.ora

-rw-r-----    1 oracle   dba            1536 Jul 15 2015  orapwDBUA4155109

-rw-r-----    1 oracle   dba            1536 Feb 17 17:59 orapwDGPHY1

-rw-r-----    1 oracle   dba            1536 Jan 08 16:16 orapworaESKDB1

-rw-r-----    1 oracle   dba            1536 Jul 15 2015  orapworaMCIS1

-rw-r-----    1 oracle   dba            1536 Nov 06 2014  orapworaNUW1

-rw-r-----    1 oracle   dba            1536 Nov 19 2014  orapworaTEST2

-rw-r-----    1 oracle   dba            1536 Jan 07 15:43 orapworalhr

-rw-r-----    1 oracle   dba        21610496 Jan 04 14:52 snapcf_oraESKDB1.f

 

[ZFXXX1:oracle]:/oracle>export ORACLE_SID=DGPHY1

[ZFXXX1:oracle]:/oracle>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu Feb 18 10:20:55 2016

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

Connected to an idle instance.

 

SYS@DGPHY1> startup nomount pfile=?/dbs/initDGPHY1.ora

ORACLE instance started.

 

Total System Global Area  271437824 bytes

Fixed Size                  2245464 bytes

Variable Size             213912744 bytes

Database Buffers           50331648 bytes

Redo Buffers                4947968 bytes

SYS@DGPHY1>

 

 

二.6.3  利用rmanduplicate復制主庫文件到備庫 

--對於從主庫克隆standby有多種方法,而且Oracle 11g支持從ative database直接克隆數據庫 

--為主庫生成控制文件,注,對於配置standby,不能直接使用copy方式復制控制文件到備庫 

 

我們選擇備庫的第一個節點作為實施節點,腳本需要修改的地方參考前邊的說明,懶人可以把TNSdb_unique_name設置成一樣的:

 

duplicate target database

for standby nofilenamecheck

from active database

DORECOVER

spfile

set db_unique_name='TESTDGPHY'

set log_archive_dest_1='LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'

set log_archive_dest_2='service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'

set standby_file_management='AUTO'

set fal_server='TNS_DGPRI'

set fal_client='TESTDGPHY'

set control_files='+DATA/TESTDGPHY/controlfile/crontal01.ctl','+DATA/TESTDGPHY/controlfile/control02.ctl'

set db_file_name_convert='TESTDG','TESTDGPHY'

set log_file_name_convert='TESTDG','TESTDGPHY'

set memory_target='1024M'

set audit_file_dest='/oracle/app/oracle/admin/TESTDGPHY/adump'

set db_create_file_dest = '+DATA'

set instance_number = '1'

;

 

若主庫比較大,也可以多開幾個channel來傳遞,如下腳本:

run {

allocate channel ch001 type disk;

allocate channel ch002 type disk;

allocate channel ch003 type disk;

allocate channel ch004 type disk;

allocate auxiliary channel ch005 type disk;

duplicate target database

for standby nofilenamecheck

from active database

DORECOVER

spfile

set db_unique_name='TESTDGPHY'

set log_archive_dest_1='LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'

set log_archive_dest_2='service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'

set standby_file_management='AUTO'

set fal_server='TNS_DGPRI'

set fal_client='TESTDGPHY'

set control_files='+DATA/TESTDGPHY/controlfile/crontal01.ctl','+DATA/TESTDGPHY/controlfile/control02.ctl'

set db_file_name_convert='TESTDG','TESTDGPHY'

set log_file_name_convert='TESTDG','TESTDGPHY'

set memory_target='1024M'

set audit_file_dest='/oracle/app/oracle/admin/TESTDGPHY/adump'

set db_create_file_dest = '+DATA'

set instance_number = '1'

;

release channel ch001;

release channel ch002;

release channel ch003;

release channel ch004;

release channel ch005;

}

 

 

[ZFXXX1:oracle]:/oracle>rman target sys/lhr@TNS_DGPRI auxiliary sys/lhr@TNS_DGPHY

 

Recovery Manager: Release 11.2.0.4.0 - Production on Thu Feb 18 14:29:29 2016

 

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

 

connected to target database: TESTDG (DBID=2836886746)

connected to auxiliary database: TESTDG (not mounted)

 

RMAN> duplicate target database

2> for standby nofilenamecheck

3> from active database

4> DORECOVER

5> spfile

6> set db_unique_name='TESTDGPHY'

7> set log_archive_dest_1='LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'

8> set log_archive_dest_2='service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'

9> set standby_file_management='AUTO'

10> set fal_server='TNS_DGPRI'

11> set fal_client='TESTDGPHY'

12> set control_files='+DATA/TESTDGPHY/controlfile/crontal01.ctl','+DATA/TESTDGPHY/controlfile/control02.ctl'

13> set db_file_name_convert='TESTDG','TESTDGPHY'

14> set log_file_name_convert='TESTDG','TESTDGPHY'

15> set memory_target='1024M'

16> set audit_file_dest='/oracle/app/oracle/admin/TESTDGPHY/adump'

17> set db_create_file_dest = '+DATA'

18> set instance_number = '1'

19> ;

 

Starting Duplicate Db at 2016-02-18 14:29:41

using target database control file instead of recovery catalog

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=44 device type=DISK

 

contents of Memory Script:

{

   backup as copy reuse

   targetfile  '/oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPRI1' auxiliary format

'/oracle/app/oracle/product/11.2.0/db/dbs/orapwDGPHY1'   targetfile

'+DATA/testdg/spfiledgpri.ora' auxiliary format

'/oracle/app/oracle/product/11.2.0/db/dbs/spfileDGPHY1.ora'   ;

   sql clone "alter system set spfile= ''/oracle/app/oracle/product/11.2.0/db/dbs/spfileDGPHY1.ora''";

}

executing Memory Script

 

Starting backup at 2016-02-18 14:29:41

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=71 instance=DGPRI1 device type=DISK

Finished backup at 2016-02-18 14:29:44

 

sql statement: alter system set spfile= ''/oracle/app/oracle/product/11.2.0/db/dbs/spfileDGPHY1.ora''

 

contents of Memory Script:

{

   sql clone "alter system set  db_unique_name =

''TESTDGPHY'' comment=

'''' scope=spfile";

   sql clone "alter system set  log_archive_dest_1 =

''LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'' comment=

'''' scope=spfile";

   sql clone "alter system set  log_archive_dest_2 =

''service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'' comment=

'''' scope=spfile";

   sql clone "alter system set  standby_file_management =

''AUTO'' comment=

'''' scope=spfile";

   sql clone "alter system set  fal_server =

''TNS_DGPRI'' comment=

'''' scope=spfile";

   sql clone "alter system set  fal_client =

''TESTDGPHY'' comment=

'''' scope=spfile";

   sql clone "alter system set  control_files =

''+DATA/TESTDGPHY/controlfile/crontal01.ctl'', ''+DATA/TESTDGPHY/controlfile/control02.ctl'' comment=

'''' scope=spfile";

   sql clone "alter system set  db_file_name_convert =

''TESTDG'', ''TESTDGPHY'' comment=

'''' scope=spfile";

   sql clone "alter system set  log_file_name_convert =

''TESTDG'', ''TESTDGPHY'' comment=

'''' scope=spfile";

   sql clone "alter system set  memory_target =

1024M comment=

'''' scope=spfile";

   sql clone "alter system set  audit_file_dest =

''/oracle/app/oracle/admin/TESTDGPHY/adump'' comment=

'''' scope=spfile";

   sql clone "alter system set  db_create_file_dest =

''+DATA'' comment=

'''' scope=spfile";

   sql clone "alter system set  instance_number =

1 comment=

'''' scope=spfile";

   shutdown clone immediate;

   startup clone nomount;

}

executing Memory Script

 

sql statement: alter system set  db_unique_name =  ''TESTDGPHY'' comment= '''' scope=spfile

 

sql statement: alter system set  log_archive_dest_1 =  ''LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'' comment= '''' scope=spfile

 

sql statement: alter system set  log_archive_dest_2 =  ''service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'' comment= '''' scope=spfile

 

sql statement: alter system set  standby_file_management =  ''AUTO'' comment= '''' scope=spfile

 

sql statement: alter system set  fal_server =  ''TNS_DGPRI'' comment= '''' scope=spfile

 

sql statement: alter system set  fal_client =  ''TESTDGPHY'' comment= '''' scope=spfile

 

sql statement: alter system set  control_files =  ''+DATA/TESTDGPHY/controlfile/crontal01.ctl'', ''+DATA/TESTDGPHY/controlfile/control02.ctl'' comment= '''' scope=spfile

 

sql statement: alter system set  db_file_name_convert =  ''TESTDG'', ''TESTDGPHY'' comment= '''' scope=spfile

 

sql statement: alter system set  log_file_name_convert =  ''TESTDG'', ''TESTDGPHY'' comment= '''' scope=spfile

 

sql statement: alter system set  memory_target =  1024M comment= '''' scope=spfile

 

sql statement: alter system set  audit_file_dest =  ''/oracle/app/oracle/admin/TESTDGPHY/adump'' comment= '''' scope=spfile

 

sql statement: alter system set  db_create_file_dest =  ''+DATA'' comment= '''' scope=spfile

 

sql statement: alter system set  instance_number =  1 comment= '''' scope=spfile

 

Oracle instance shut down

 

connected to auxiliary database (not started)

Oracle instance started

 

Total System Global Area    1068937216 bytes

 

Fixed Size                     2253216 bytes

Variable Size                608177760 bytes

Database Buffers             452984832 bytes

Redo Buffers                   5521408 bytes

 

contents of Memory Script:

{

   backup as copy current controlfile for standby auxiliary format  '+DATA/testdgphy/controlfile/crontal01.ctl';

   restore clone controlfile to  '+DATA/testdgphy/controlfile/control02.ctl' from

'+DATA/testdgphy/controlfile/crontal01.ctl';

}

executing Memory Script

 

Starting backup at 2016-02-18 14:29:59

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

copying standby control file

output file name=/oracle/app/oracle/product/11.2.0/db/dbs/snapcf_DGPRI1.f tag=TAG20160218T143003 RECID=2 STAMP=904141804

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 2016-02-18 14:30:01

 

Starting restore at 2016-02-18 14:30:01

allocated channel: ORA_AUX_DISK_1

channel ORA_AUX_DISK_1: SID=97 instance=DGPHY1 device type=DISK

 

channel ORA_AUX_DISK_1: copied control file copy

Finished restore at 2016-02-18 14:30:03

 

contents of Memory Script:

{

   sql clone 'alter database mount standby database';

}

executing Memory Script

 

sql statement: alter database mount standby database

RMAN-05529: WARNING: DB_FILE_NAME_CONVERT resulted in invalid ASM names; names changed to disk group only.

 

contents of Memory Script:

{

   set newname for tempfile  1 to

"+data";

   switch clone tempfile all;

   set newname for datafile  1 to

"+data";

   set newname for datafile  2 to

"+data";

   set newname for datafile  3 to

"+data";

   set newname for datafile  4 to

"+data";

   set newname for datafile  5 to

"+data";

   set newname for datafile  6 to

"+data";

   backup as copy reuse

   datafile  1 auxiliary format

"+data"   datafile

2 auxiliary format

"+data"   datafile

3 auxiliary format

"+data"   datafile

4 auxiliary format

"+data"   datafile

5 auxiliary format

"+data"   datafile

6 auxiliary format

"+data"   ;

   sql 'alter system archive log current';

}

executing Memory Script

 

executing command: SET NEWNAME

 

renamed tempfile 1 to +data in control file

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

executing command: SET NEWNAME

 

Starting backup at 2016-02-18 14:30:08

using channel ORA_DISK_1

channel ORA_DISK_1: starting datafile copy

input datafile file number=00001 name=+DATA/testdg/datafile/system.293.904043353

output file name=+DATA/testdgphy/datafile/system.456.904141809 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00002 name=+DATA/testdg/datafile/sysaux.292.904043353

output file name=+DATA/testdgphy/datafile/sysaux.457.904141825 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

channel ORA_DISK_1: starting datafile copy

input datafile file number=00005 name=+DATA/testdg/datafile/example.301.904043427

output file name=+DATA/testdgphy/datafile/example.458.904141839 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:07

channel ORA_DISK_1: starting datafile copy

input datafile file number=00003 name=+DATA/testdg/datafile/undotbs1.291.904043355

output file name=+DATA/testdgphy/datafile/undotbs1.459.904141847 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting datafile copy

input datafile file number=00006 name=+DATA/testdg/datafile/undotbs2.302.904043579

output file name=+DATA/testdgphy/datafile/undotbs2.460.904141849 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting datafile copy

input datafile file number=00004 name=+DATA/testdg/datafile/users.290.904043355

output file name=+DATA/testdgphy/datafile/users.461.904141851 tag=TAG20160218T143012

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01

Finished backup at 2016-02-18 14:30:51

 

sql statement: alter system archive log current

 

contents of Memory Script:

{

   backup as copy reuse

   archivelog like  "/arch/1_11_904043420.dbf" auxiliary format

"/arch/1_11_904043420.dbf"   archivelog like

"/arch/1_12_904043420.dbf" auxiliary format

"/arch/1_12_904043420.dbf"   archivelog like

"/arch/1_10_904043420.dbf" auxiliary format

"/arch/1_10_904043420.dbf"   archivelog like

"/arch/2_5_904043420.dbf" auxiliary format

"/arch/2_5_904043420.dbf"   archivelog like

"/arch/2_4_904043420.dbf" auxiliary format

"/arch/2_4_904043420.dbf"   ;

   catalog clone archivelog  "/arch/1_11_904043420.dbf";

   catalog clone archivelog  "/arch/1_12_904043420.dbf";

   catalog clone archivelog  "/arch/1_10_904043420.dbf";

   catalog clone archivelog  "/arch/2_5_904043420.dbf";

   catalog clone archivelog  "/arch/2_4_904043420.dbf";

   switch clone datafile all;

}

executing Memory Script

 

Starting backup at 2016-02-18 14:30:54

using channel ORA_DISK_1

channel ORA_DISK_1: starting archived log copy

input archived log thread=1 sequence=11 RECID=9 STAMP=904141813

output file name=/arch/1_11_904043420.dbf RECID=0 STAMP=0

channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting archived log copy

input archived log thread=1 sequence=12 RECID=12 STAMP=904141858

output file name=/arch/1_12_904043420.dbf RECID=0 STAMP=0

channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting archived log copy

input archived log thread=1 sequence=10 RECID=8 STAMP=904122715

output file name=/arch/1_10_904043420.dbf RECID=0 STAMP=0

channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:03

channel ORA_DISK_1: starting archived log copy

input archived log thread=2 sequence=5 RECID=11 STAMP=904141841

output file name=/arch/2_5_904043420.dbf RECID=0 STAMP=0

channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01

channel ORA_DISK_1: starting archived log copy

input archived log thread=2 sequence=4 RECID=10 STAMP=904141800

output file name=/arch/2_4_904043420.dbf RECID=0 STAMP=0

channel ORA_DISK_1: archived log copy complete, elapsed time: 00:00:01

Finished backup at 2016-02-18 14:31:02

 

cataloged archived log

archived log file name=/arch/1_11_904043420.dbf RECID=1 STAMP=904141862

 

cataloged archived log

archived log file name=/arch/1_12_904043420.dbf RECID=2 STAMP=904141862

 

cataloged archived log

archived log file name=/arch/1_10_904043420.dbf RECID=3 STAMP=904141862

 

cataloged archived log

archived log file name=/arch/2_5_904043420.dbf RECID=4 STAMP=904141863

 

cataloged archived log

archived log file name=/arch/2_4_904043420.dbf RECID=5 STAMP=904141863

 

datafile 1 switched to datafile copy

input datafile copy RECID=2 STAMP=904141863 file name=+DATA/testdgphy/datafile/system.456.904141809

datafile 2 switched to datafile copy

input datafile copy RECID=3 STAMP=904141863 file name=+DATA/testdgphy/datafile/sysaux.457.904141825

datafile 3 switched to datafile copy

input datafile copy RECID=4 STAMP=904141863 file name=+DATA/testdgphy/datafile/undotbs1.459.904141847

datafile 4 switched to datafile copy

input datafile copy RECID=5 STAMP=904141863 file name=+DATA/testdgphy/datafile/users.461.904141851

datafile 5 switched to datafile copy

input datafile copy RECID=6 STAMP=904141863 file name=+DATA/testdgphy/datafile/example.458.904141839

datafile 6 switched to datafile copy

input datafile copy RECID=7 STAMP=904141863 file name=+DATA/testdgphy/datafile/undotbs2.460.904141849

 

contents of Memory Script:

{

   set until scn  1182684;

   recover

   standby

   clone database

    delete archivelog

   ;

}

executing Memory Script

 

executing command: SET until clause

 

Starting recover at 2016-02-18 14:31:03

using channel ORA_AUX_DISK_1

 

starting media recovery

 

archived log for thread 1 with sequence 11 is already on disk as file /arch/1_11_904043420.dbf

archived log for thread 1 with sequence 12 is already on disk as file /arch/1_12_904043420.dbf

archived log for thread 2 with sequence 4 is already on disk as file /arch/2_4_904043420.dbf

archived log for thread 2 with sequence 5 is already on disk as file /arch/2_5_904043420.dbf

archived log file name=/arch/1_11_904043420.dbf thread=1 sequence=11

archived log file name=/arch/2_4_904043420.dbf thread=2 sequence=4

archived log file name=/arch/1_12_904043420.dbf thread=1 sequence=12

archived log file name=/arch/2_5_904043420.dbf thread=2 sequence=5

media recovery complete, elapsed time: 00:00:00

Finished recover at 2016-02-18 14:31:06

Finished Duplicate Db at 2016-02-18 14:31:13

 

RMAN>

 

二.6.4  創建備庫spfile並啟動備庫

由於備庫是rac,我們應該修改spfile到磁盤組,然后才能啟動rac2個節點:

[ZFXXX1:oracle]:/oracle>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu Feb 18 14:36:27 2016

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SYS@DGPHY1> select open_mode from v$database;

 

OPEN_MODE

--------------------

MOUNTED

 

SYS@DGPHY1> show parameter cluster

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

cluster_database                     boolean     TRUE

cluster_database_instances           integer     2

cluster_interconnects                string

SYS@DGPHY1> show  parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      /oracle/app/oracle/product/11.

                                                 2.0/db/dbs/spfileDGPHY1.ora

SYS@DGPHY1>

 

 

 

SYS@DGPHY1> create pfile='/tmp/aa.txt' from spfile;

 

File created.

 

 

這里修改pfile文件內容修改后的內容如下:

*.audit_file_dest='/oracle/app/oracle/admin/TESTDGPHY/adump'

*.audit_trail='db'

*.cluster_database=true

*.compatible='11.2.0.4.0'

*.control_files='+DATA/TESTDGPHY/controlfile/crontal01.ctl','+DATA/TESTDGPHY/controlfile/control02.ctl'

*.db_block_size=8192

*.db_create_file_dest='+DATA'

*.db_domain=''

*.db_file_name_convert='TESTDG','TESTDGPHY'

*.db_name='TESTDG'

*.db_recovery_file_dest='+DATA'

*.db_recovery_file_dest_size=4621074432

*.db_unique_name='TESTDGPHY'

*.diagnostic_dest='/oracle/app/oracle'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=DGPRIXDB)'

*.fal_client='TESTDGPHY'

*.fal_server='TNS_DGPRI'

*.log_archive_config='DG_CONFIG=(TESTDG,TESTDGPHY)'

*.log_archive_dest_1='LOCATION=/arch valid_for=(ALL_LOGFILES,ALL_ROLES) db_unique_name=TESTDGPHY'

*.log_archive_dest_2='service=TNS_DGPRI async lgwr register valid_for=(online_logfile,primary_role) db_unique_name=TESTDG'

*.log_archive_dest_state_1='ENABLE'

*.log_archive_dest_state_2='ENABLE'

*.log_archive_max_processes=4

*.log_file_name_convert='TESTDG','TESTDGPHY'

*.memory_target=1073741824

*.open_cursors=300

*.pga_aggregate_target=268435456

*.processes=150

*.remote_listener='ZFXXX-scan:1521'

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=805306368

*.standby_file_management='AUTO'

DGPHY2.instance_number=2

DGPHY1.instance_number=1

DGPHY2.thread=2

DGPHY1.thread=1

DGPHY2.undo_tablespace='UNDOTBS2'

DGPHY1.undo_tablespace='UNDOTBS1'

 

需要關注上邊藍色的部分。

 

 

創建spfile文件到磁盤組,並pfile文件中添加spfile的路徑

 

SYS@DGPHY1> create spfile='+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora'  from pfile='/tmp/aa.txt';

 

File created.

 

SYS@DGPHY1> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

[ZFXXX1:oracle]:/oracle>echo  "SPFILE='+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora'" >  $ORACLE_HOME/dbs/initDGPHY1.ora

[ZFXXX1:oracle]:/oracle>more $ORACLE_HOME/dbs/initDGPHY1.ora

SPFILE='+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora'

[ZFXXX1:oracle]:/oracle>

 

 

在第二個節點中,在pfile文件中添加spfile的路徑:

[ZFXXX2:oracle]:/oracle>echo  "SPFILE='+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora'" >  $ORACLE_HOME/dbs/initDGPHY2.ora

[ZFXXX2:oracle]:/oracle>more $ORACLE_HOME/dbs/initDGPHY2.ora

SPFILE='+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora'

 

刪除原spfile文件/oracle/app/oracle/product/11.2.0/db/dbs/spfileDGPHY1.ora

 

啟動2個節點后查看:

SYS@DGPHY1> startup force;

ORACLE instance started.

 

Total System Global Area 1068937216 bytes

Fixed Size                  2253216 bytes

Variable Size             608177760 bytes

Database Buffers          452984832 bytes

Redo Buffers                5521408 bytes

Database mounted.

Database opened.

SYS@DGPHY1> show parameter spfile

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

spfile                               string      +DATA/testdgphy/parameterfile/

                                                 spfiledgphy.ora

SYS@DGPHY1>

SYS@DGPHY1> set line 9999

SYS@DGPHY1> select name , open_mode, log_mode,force_logging,DATABASE_ROLE,switchover_status from gv$database;

 

NAME      OPEN_MODE            LOG_MODE     FOR DATABASE_ROLE    SWITCHOVER_STATUS

--------- -------------------- ------------ --- ---------------- --------------------

TESTDG    READ ONLY            ARCHIVELOG   YES PHYSICAL STANDBY NOT ALLOWED

TESTDG    READ ONLY            ARCHIVELOG   YES PHYSICAL STANDBY NOT ALLOWED

 

SYS@DGPHY1>

 

 

 

二.6.5  將備庫加入crsctl

srvctl stop database -d TESTDG -o immediate

srvctl status database -d DGPHY

srvctl start database -d TESTDG -o mount

 

 

srvctl add database -d TESTDGPHY -c RAC -o /oracle/app/oracle/product/11.2.0/db -p '+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora' -r physical_standby -n TESTDG

 

srvctl add instance -d TESTDGPHY -i DGPHY1 -n ZFXXX1

srvctl add instance -d TESTDGPHY -i DGPHY2 -n ZFXXX2

 

srvctl status database -d TESTDGPHY

srvctl start database -d TESTDGPHY

 

srvctl remove  database -d  TESTDGPHY

 

srvctl config database -d TESTDGPHY -a

 

dbca創建的數據庫會自動加入crsctl中,但通過rman創建的庫不會加入crsctl中,需要手動添加,將備庫加入crsctl后可以通過srvctl來管理數據庫了。

 

[ZFXXX2:oracle]:/oracle>crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.LISTENER.lsnr

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.asm

               ONLINE  ONLINE       zfXXX1               Started            

               ONLINE  ONLINE       zfXXX2               Started            

ora.gsd

               OFFLINE OFFLINE      zfXXX1                                  

               OFFLINE OFFLINE      zfXXX2                                  

ora.net1.network

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.ons

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.registry.acfs

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       zfXXX1                                  

ora.cvu

      1        ONLINE  ONLINE       zfXXX1                                  

ora.oc4j

      1        ONLINE  ONLINE       zfXXX1                                  

ora.ora2lhr.db

      1        ONLINE  ONLINE       zfXXX2               Open               

ora.oraeskdb.db

      1        ONLINE  ONLINE       zfXXX1               Open               

      2        ONLINE  ONLINE       zfXXX2               Open               

ora.oralhr.db

      1        ONLINE  ONLINE       zfXXX2               Open               

ora.scan1.vip

      1        ONLINE  ONLINE       zfXXX1                                  

ora.zfXXX1.vip

      1        ONLINE  ONLINE       zfXXX1                                  

ora.zfXXX2.vip

      1        ONLINE  ONLINE       zfXXX2                                  

[ZFXXX2:oracle]:/oracle>

[ZFXXX2:oracle]:/oracle>

 

[ZFXXX2:oracle]:/oracle>srvctl add database -h

 

Adds a database configuration to the Oracle Clusterware.

 

Usage: srvctl add database -d <db_unique_name> -o <oracle_home> [-c {RACONENODE | RAC | SINGLE} [-e <server_list>] [-i <inst_name>] [-w <timeout>]] [-m <domain_name>] [-p <spfile>] [-r {PRIMARY | PHYSICAL_STANDBY | LOGICAL_STANDBY | SNAPSHOT_STANDBY}] [-s <start_options>] [-t <stop_options>] [-n <db_name>] [-y {AUTOMATIC | MANUAL | NORESTART}] [-g "<serverpool_list>"] [-x <node_name>] [-a "<diskgroup_list>"] [-j "<acfs_path_list>"]

    -d <db_unique_name>      Unique name for the database

    -o <oracle_home>         ORACLE_HOME path

    -c <type>                Type of database: RAC One Node, RAC, or Single Instance

    -e <server_list>         Candidate server list for RAC One Node database

    -i <inst_name>           Instance name prefix for administrator-managed RAC One Node database (default first 12 characters of <db_unique_name>)

    -w <timeout>             Online relocation timeout in minutes

    -x <node_name>           Node name. -x option is specified for single-instance databases

    -m <domain>              Domain for database. Must be set if database has DB_DOMAIN set.

    -p <spfile>              Server parameter file path

    -r <role>                Role of the database (primary, physical_standby, logical_standby, snapshot_standby)

    -s <start_options>       Startup options for the database. Examples of startup options are OPEN, MOUNT, or 'READ ONLY'.

    -t <stop_options>        Stop options for the database. Examples of shutdown options are NORMAL, TRANSACTIONAL, IMMEDIATE, or ABORT.

    -n <db_name>             Database name (DB_NAME), if different from the unique name given by the -d option

    -y <dbpolicy>            Management policy for the database (AUTOMATIC, MANUAL, or NORESTART)

    -g "<serverpool_list>"   Comma separated list of database server pool names

    -a "<diskgroup_list>"    Comma separated list of disk groups

    -j "<acfs_path_list>"    Comma separated list of ACFS paths where database's dependency will be set

    -h                       Print usage

[ZFXXX2:oracle]:/oracle>echo $ORACLE_HOME

/oracle/app/oracle/product/11.2.0/db

[ZFXXX2:oracle]:/oracle>srvctl add database -d TESTDGPHY -c RAC -o /oracle/app/oracle/product/11.2.0/db -p '+DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora' -r physical_standby -n TESTDG -i DGPHY

[ZFXXX2:oracle]:/oracle>

[ZFXXX2:oracle]:/oracle>srvctl add instance -d TESTDGPHY -i DGPHY1 -n ZFXXX1

[ZFXXX2:oracle]:/oracle>srvctl add instance -d TESTDGPHY -i DGPHY2 -n ZFXXX2

[ZFXXX2:oracle]:/oracle>srvctl status database -d TESTDGPHY

Instance DGPHY1 is not running on node zfXXX1

Instance DGPHY2 is not running on node zfXXX2

[ZFXXX2:oracle]:/oracle>srvctl start database -d TESTDGPHY

[ZFXXX2:oracle]:/oracle>srvctl status database -d TESTDGPHY

Instance DGPHY1 is running on node zfXXX1

Instance DGPHY2 is running on node zfXXX2

[ZFXXX2:oracle]:/oracle>srvctl config database -d TESTDGPHY -a

Database unique name: TESTDGPHY

Database name: TESTDG

Oracle home: /oracle/app/oracle/product/11.2.0/db

Oracle user: oracle

Spfile: +DATA/TESTDGPHY/PARAMETERFILE/spfiledgphy.ora

Domain:

Start options: open

Stop options: immediate

Database role: PHYSICAL_STANDBY

Management policy: AUTOMATIC

Server pools: DGPHY

Database instances: DGPHY1,DGPHY2

Disk Groups:

Mount point paths:

Services:

Type: RAC

Database is enabled

Database is administrator managed

[ZFXXX2:oracle]:/oracle>

[ZFXXX2:root]:/>crsctl stat res -t

--------------------------------------------------------------------------------

NAME           TARGET  STATE        SERVER                   STATE_DETAILS      

--------------------------------------------------------------------------------

Local Resources

--------------------------------------------------------------------------------

ora.DATA.dg

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.LISTENER.lsnr

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.asm

               ONLINE  ONLINE       zfXXX1               Started            

               ONLINE  ONLINE       zfXXX2               Started            

ora.gsd

               OFFLINE OFFLINE      zfXXX1                                  

               OFFLINE OFFLINE      zfXXX2                                  

ora.net1.network

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.ons

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

ora.registry.acfs

               ONLINE  ONLINE       zfXXX1                                  

               ONLINE  ONLINE       zfXXX2                                  

--------------------------------------------------------------------------------

Cluster Resources

--------------------------------------------------------------------------------

ora.LISTENER_SCAN1.lsnr

      1        ONLINE  ONLINE       zfXXX1                                  

ora.cvu

      1        ONLINE  ONLINE       zfXXX1                                  

ora.oc4j

      1        ONLINE  ONLINE       zfXXX1                                  

ora.ora2lhr.db

      1        ONLINE  ONLINE       zfXXX2               Open               

ora.oraeskdb.db

      1        ONLINE  ONLINE       zfXXX1               Open               

      2        ONLINE  ONLINE       zfXXX2               Open               

ora.oralhr.db

      1        ONLINE  ONLINE       zfXXX2               Open               

ora.scan1.vip

      1        ONLINE  ONLINE       zfXXX1                                  

ora.testdgphy.db

      1        ONLINE  ONLINE       zfXXX1               Open,Readonly      

      2        ONLINE  ONLINE       zfXXX2               Open,Readonly      

ora.zfXXX1.vip

      1        ONLINE  ONLINE       zfXXX1                                  

ora.zfXXX2.vip

      1        ONLINE  ONLINE       zfXXX2                                  

[ZFXXX2:root]:/>

 

 

二.6.6  啟動備庫到open read only狀態

 

[ZFXXX1:oracle]:/oracle>sqlplus / as sysdba

 

SQL*Plus: Release 11.2.0.4.0 Production on Thu Feb 18 16:16:32 2016

 

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

 

 

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

Data Mining and Real Application Testing options

 

SYS@DGPHY1> set line 9999

SYS@DGPHY1> select GROUP#,THREAD#,SEQUENCE#,BYTES,BLOCKSIZE,MEMBERS,STATUS from v$log;

 

    GROUP#    THREAD#  SEQUENCE#      BYTES  BLOCKSIZE    MEMBERS STATUS

---------- ---------- ---------- ---------- ---------- ---------- ----------------

         1          1         17   52428800        512          2 CLEARING

         2          1         18   52428800        512          2 CURRENT

         3          2         13   52428800        512          2 CURRENT

         4          2         12   52428800        512          2 CLEARING

 

SYS@DGPHY1>

 

SYS@DGPHY1> set line 9999

SYS@DGPHY1> select dbid,name,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;

 

      DBID NAME      CURRENT_SCN PROTECTION_MODE      DATABASE_ROLE    FOR OPEN_MODE            SWITCHOVER_STATUS

---------- --------- ----------- -------------------- ---------------- --- -------------------- --------------------

2836886746 TESTDG        1182683 MAXIMUM PERFORMANCE  PHYSICAL STANDBY YES READ ONLY            NOT ALLOWED

2836886746 TESTDG        1182683 MAXIMUM PERFORMANCE  PHYSICAL STANDBY YES READ ONLY            NOT ALLOWED

 

SYS@DGPHY1>

SYS@DGPHY1> select GROUP#,DBID,THREAD#,SEQUENCE#,BYTES,BLOCKSIZE,USED,ARCHIVED,STATUS from v$standby_log;

 

    GROUP# DBID                                        THREAD#  SEQUENCE#      BYTES  BLOCKSIZE       USED ARC STATUS

---------- ---------------------------------------- ---------- ---------- ---------- ---------- ---------- --- ----------

         5 2836886746                                        1         18   52428800        512    1556992 YES ACTIVE

         6 UNASSIGNED                                        1          0   52428800        512          0 YES UNASSIGNED

         7 UNASSIGNED                                        1          0   52428800        512          0 YES UNASSIGNED

         8 UNASSIGNED                                        2          0   52428800        512          0 NO  UNASSIGNED

         9 2836886746                                        2         13   52428800        512    1239040 YES ACTIVE

        10 UNASSIGNED                                        2          0   52428800        512          0 YES UNASSIGNED

 

6 rows selected.

 

SYS@DGPHY1>

SYS@DGPHY1>

 

 

二.6.7  校驗實時同步功能

為了實時查詢,啟用管理恢復

SYS@DGPHY1>  alter database recover managed standby database using current logfile disconnect;

 

Database altered.

 

SYS@DGPHY1> select INST_ID, dbid,name,DB_UNIQUE_NAME,current_scn,protection_mode,database_role,force_logging,open_mode,switchover_status from gv$database;

 

   INST_ID       DBID NAME      DB_UNIQUE_NAME  CURRENT_SCN PROTECTION_MODE      DATABASE_ROLE    FOR OPEN_MODE            SWITCHOVER_STATUS

---------- ---------- --------- --------------- ----------- -------------------- ---------------- --- -------------------- --------------------

         1 2836886746 TESTDG    TESTDGPHY           1219930 MAXIMUM PERFORMANCE  PHYSICAL STANDBY YES READ ONLY WITH APPLY NOT ALLOWED

         2 2836886746 TESTDG    TESTDGPHY           1219930 MAXIMUM PERFORMANCE  PHYSICAL STANDBY YES READ ONLY WITH APPLY NOT ALLOWED

 

SYS@DGPHY1>

SYS@DGPHY1>

 

SYS@DGPHY1> col name for a100        

SYS@DGPHY1> set linesize 9999  pagesize 9999        

SYS@DGPHY1> SELECT dest_id,        

  2         THREAD#,        

  3         NAME,        

  4         sequence#,        

  5         archived,        

  6         applied,        

  7         a.NEXT_CHANGE#        

  8  FROM   v$archived_log a        

  9  WHERE  a.sequence# >= 12        

10  AND    resetlogs_change# = (SELECT d.RESETLOGS_CHANGE# FROM v$database d) 

11  ORDER  BY a.THREAD#,        

12            a.sequence#,  

13       a.dest_id;  

 

   DEST_ID    THREAD# NAME                                SEQUENCE# ARC APPLIED   NEXT_CHANGE#

---------- ---------- ----------------------------------  --------- --- --------- ------------

         2          1 /arch/1_13_904043420.dbf        13   YES YES            1206723

         2          1 /arch/1_14_904043420.dbf        14   YES YES            1206725

         2          1 /arch/1_15_904043420.dbf        15   YES YES            1213882

         2          1 /arch/1_16_904043420.dbf        16   YES YES            1214395

         2          1 /arch/1_17_904043420.dbf        17   YES YES            1218112

         1          2 /arch/2_12_904043420.dbf        12   YES IN-MEMORY      1218115

 

7 rows selected.

 

SYS@DGPHY1>

 

 

主庫切換日志,建表測試:

 

SYS@DGPRI1> ALTER SYSTEM SWITCH LOGFILE;

 

System altered.

 

SYS@DGPRI1> ALTER SYSTEM SWITCH LOGFILE;

 

System altered.

 

SYS@DGPRI1> ALTER SYSTEM SWITCH LOGFILE;

 

System altered.

 

SYS@DGPRI1>

 

 

SYS@DGPRI1> create table lhr.test as select * from user_tables;

 

Table created.

 

SYS@DGPRI1> select count(1) from lhr.test;

 

  COUNT(1)

----------

      1014

 

SYS@DGPRI1>

 

 

--在備庫端查詢日志應用情況

 

SYS@DGPHY1> col name for a100

SYS@DGPHY1> set linesize 9999  pagesize 9999

SYS@DGPHY1> SELECT dest_id,

  2         THREAD#,

  3         NAME,

  4         sequence#,

  5         archived,

  6         applied,

  7         a.NEXT_CHANGE#

  8  FROM   v$archived_log a

  9  WHERE  a.sequence# >= 12

10  AND    resetlogs_change# = (SELECT d.RESETLOGS_CHANGE# FROM v$database d)

11  ORDER  BY a.THREAD#,

12            a.sequence#,

13       a.dest_id;

 

   DEST_ID    THREAD# NAME                                                      SEQUENCE# ARC APPLIED   NEXT_CHANGE#

---------- ---------- -------------------------------------------------------- ---------- --- --------- ------------

         1          1 /arch/1_12_904043420.dbf                                         12 YES YES            1182687

         2          1 /arch/1_13_904043420.dbf                                         13 YES YES            1206723

         2          1 /arch/1_14_904043420.dbf                                         14 YES YES            1206725

         2          1 /arch/1_15_904043420.dbf                                         15 YES YES            1213882

         2          1 /arch/1_16_904043420.dbf                                         16 YES YES            1214395

         2          1 /arch/1_17_904043420.dbf                                         17 YES YES            1218112

         1          1 /arch/1_18_904043420.dbf                                         18 YES YES            1221758

         1          1 /arch/1_19_904043420.dbf                                         19 YES YES            1221764

         1          1 /arch/1_20_904043420.dbf                                         20 YES YES            1221770

         1          2 /arch/2_12_904043420.dbf                                         12 YES YES            1218115

         1          2 /arch/2_13_904043420.dbf                                         13 YES IN-MEMORY      1221775

                   

11 rows selected.

 

SYS@DGPHY1> select count(1) from lhr.test;

 

  COUNT(1)

----------

      1014

 

SYS@DGPHY1>

 

可以看到數據已經實時同步了,至此,物理備庫搭建完成,至於備庫的維護操作還有很多內容,參考我的其它blog

二.7  實驗總結

實驗過程中需要注意的幾項內容:

主庫修改參數一定要加 sid='*'

監聽必須配置好

執行duplicate命令的時候,如果是rac庫需要添加參數:set instance_number = '1',否則報錯:

RMAN-03015: error occurred in stored script Memory Script

RMAN-04014: startup failed: ORA-29760: instance_number parameter not specified

 

 

---------------------------------------------------------------------------------------------------------------------

 

About Me

 

...........................................................................................................................................................................................

本文作者:小麥苗,只專注於數據庫的技術,更注重技術的運用

ITPUB BLOG:http://blog.itpub.net/26736162

本文地址:http://blog.itpub.net/26736162/viewspace-1991449/

本文pdf版:http://yunpan.cn/cdEQedhCs2kFz (提取碼:ed9b)

QQ:642808185 若加QQ請注明所正在讀的文章標題

2016-02-16 10:00~ 2016-02-19 19:00 在中行完成

<版權所有,文章允許轉載,但須以鏈接方式注明源地址,否則追究法律責任!>

...........................................................................................................................................................................................

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM