Oracle10g物理DG詳細配置方法及步驟
--測試環境:
OS:Redhat linux(64)
Primary:
IP:192.168.94.198
SID:dgdb1
Hostname:dg1
DB_UNIQUE_NAME:dgdb1
Database:10.2.0.1(64)
Standby:
IP:192.168.94.199
SID:dgdb1
Hostname:dg2
DB_UNIQUE_NAME:dgdb1_s
Database:10.2.0.1(64)
--實施DG前的準備工作
--開啟資料庫logging及資料庫archivelog
--開啟資料庫logging
SQL> alter database force logging;
--檢查資料庫是否開啟archivelog
SQL> archive log list;
--如果資料庫未開啟archivelog,則要開啟archivelog
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database archivelog;
--檢查資料庫是否開啟archivelog
SQL> archive log list;
--建立相應目錄(根據具體情況,primary和standby端要一致)
--Standby:
mkdir –p /export/home/oracle/product/10.2.0/oradata/dgdb1
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/adump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/bdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/cdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/udump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/dpdump
mkdir –p /export/home/oracle/product/10.2.0/admin/dgdb1/pfile
mkdir –p /export/home/oracle/archive
mkdir -p /export/home/oracle/bak
--primary:
mkdir –p /export/home/oracle/archive
mkdir -p /export/home/oracle/bak
--修改或新增listener.ora 和tnsnames.ora(或者用GUI工具配置)
--注意:listener.ora 中新增的部分在括號內而非括號外
--primary端:
--listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
--tnsnames.ora
dgdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
dgdb1_s =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
--standby端:
--listener.ora:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = dgdb1)
(ORACLE_HOME = /export/home/oracle/product/10.2.0)
(SID_NAME = dgdb1)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
--tnsnames.ora
dgdb1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
dgdb1_s =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.94.199)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dgdb1)
)
)
--具體實施DG的步驟:
--在primary上生成pfile,並修改新增相應引數,生成standby需要的pfile
--primary端:
oracle$>sqlplus / as sysdba
SQL> CREATE PFILE='/export/home/oracle/standby.ora' FROM SPFILE;
--編輯生成的pfile檔案('/export/home/oracle/standby.ora'),新增如下引數:
*.db_unique_name='dgdb_s'
*.fal_server='dgdb1'
*.fal_client='dgdb_s'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1,dgdb_s)'
*.log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb_s'
*.LOG_ARCHIVE_DEST_2='SERVICE=dgdb1 LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1'
*.LOG_ARCHIVE_DEST_STATE_1='ENABLE'
*.LOG_ARCHIVE_DEST_STATE_2='ENABLE'
*.standby_archive_dest='/export/home/oracle/archive'
*.standby_file_management='AUTO'
--修改完後複製到standby端
Oracle$Scp /export/home/oracle/standby.ora oracle@192.168.94.199:/export/home/oracle/
--在standby端使用pfile啟動例項
--在primary端用命令建立資料庫密碼檔案,並接複製至standby端相同路徑下(如已存在,可直接複製)
--primary端手工建立資料庫密碼檔案
Oracle$orapwd file=... password=...
--primary端複製資料庫密碼檔案至standby端
Oracle$Scp /export/home/oracle/product/10.2.0/database/PWDdgdb1.ora oracle@192.168.94.199:/export/home/oracle/product/10.2.0/database
--standby端:
Oracle$set oracle_sid=dgdb1
Oracle$sqlplus / as sysdba
SQL> startup nomount pfile=’/export/home/oracle/standby.ora’
SQL> CREATE SPFILE FROM PFILE='/export/home/oracle/standby.ora';
--在primary端修改相應引數
--primary端:
Oracle$sqlplus / as sysdba
SQL> ALTER SYSTEM SET STANDBY_FILE_MANAGEMENT = AUTO scope=both;
SQL> ALTER SYSTEM SET fal_server='dgdb1_s' scope=both;
SQL> ALTER SYSTEM SET fal_client='dgdb1' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(dgdb1_s,dgdb1)' scope=both;
SQL> ALTER SYSTEM SET log_archive_dest_1='LOCATION=/export/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dgdb1' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=dgdb1_s LGWR ASYNC=40960 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dgdb1_s' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1='ENABLE' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' scope=both;
SQL> ALTER SYSTEM SET standby_archive_dest='/export/home/oracle/archive' scope=both;
--在primary端開始使用rman備份資料庫
--primary端:
Oracle$rman target /
RMAN>backup full format='/u01/app/oracle/bak/ora10g_%d_%T_%s' database include current controlfile for standby plus archivelog format='/u01/app/oracle/bak/arch_%d_%T_%s';
--備份完畢後,把相應備份檔案複製到叢庫的相應目錄(目錄必須一致)
Oracle$Scp /export/home/oracle/bak/* oracle@192.168.94.199:/export/home/oracle/bak/
--使用duplicate 還原standby資料庫
--primary端:
Oracle$rman target / auxiliary sys/system@dgdb1_s
RMAN> duplicate target database for standby nofilenamecheck dorecover;
--收尾工作及開啟dg
--standby端建立standby log(至少比redo多一組):
Oracle$sqlplus / as sysdba
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 4 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo04.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 5 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo05.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 6 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo06.log') size 50M;
SQL> ALTER DATABASE ADD STANDBY LOGFILE GROUP 7 ('/export/home/oracle/product/10.2.0/oradata/dgdb1/redo07.log') size 50M;
--開啟服務(standby端):
SQL> alter database recover managed standby database disconnect from session;
--測試服務是否正常
--standby端(看歸檔日誌號):
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--primary端(強制一個日誌切換):
SQL> alter system switch logfile;
--standby端(看歸檔日誌號):
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--standby端(看應用歸檔日誌的號):
SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
--實現primary、standby的切換:
--primary端:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
--primary端(上一步的結果必須是”TO STANDBY”才可以)
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;
--OR(上一步結果為”SESSIONS ACTIVE”,且解決不掉)
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;
--Primary端:
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT;
--standby端:
SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;
--standby端(上一步的結果必須是”TO STANDBY”才可以):
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
--OR(上一步結果為”SESSIONS ACTIVE”,且解決不掉)
SQL>ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
--開啟新的primary:
SQL>ALTER DATABASE OPEN;
--OR(最後一次啟動後以read only模式開啟過)
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP;
--在新standby上重新啟動log apply services(如果必要):
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
--OR(後臺模式 )
SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
--OR(實時應用redo)
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;
--新primary端(開始傳送redo 資料到新standby端):
SQL> ALTER SYSTEM SWITCH LOGFILE;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8484829/viewspace-2118627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DG物理standby,switchover步驟
- DG物理standby,failover步驟AI
- 配置PLSQL Developer詳細步驟SQLDeveloper
- Oracle Stream配置詳細步驟Oracle
- centos下svn的安裝及配置詳細步驟CentOS
- Github配置ssh key詳細步驟Github
- DG學習筆記(4)_建立物理Standby步驟及注意事項筆記
- CentOS7安裝及配置 Zabbix全步驟,超詳細教程CentOS
- 如何配置web伺服器的詳細步驟Web伺服器
- Oracle Stream配置詳細步驟(使用者模式)Oracle模式
- Linux Oracle 11g Dataguard配置詳細步驟LinuxOracle
- Oracle 高階複製配置步驟詳細說明Oracle
- 抖音去水印詳細原理步驟及介面編寫
- Virtualbox7安裝及使用詳細步驟
- IOS之GCD詳細步驟iOSGC
- 重灌系統Win10詳細步驟和方法Win10
- LVM建立的詳細步驟LVM
- docker安裝portainer詳細步驟DockerAI
- MySQL的安裝步驟(詳細)MySql
- mysql建立master/slave詳細步驟MySqlAST
- 【BUILD_ORACLE】Oracle RAC配置ASM Filter Driver(ASMFD)(二)詳細配置步驟UIOracleASMFilter
- 將Hibernate配置到Weblogic JNDI上的詳細步驟Web
- linux安裝mysql的步驟和方法詳細說明LinuxMySql
- CentOS 7 安裝MongoDB詳細步驟CentOSMongoDB
- 安裝fbprophet模組詳細步驟
- 曲折的gcc升級詳細步驟GC
- Linux安裝JDK詳細步驟LinuxJDK
- NFS伺服器搭建詳細步驟NFS伺服器
- MyBatis的逆向工程詳細步驟操作MyBatis
- IN2003下JDK的詳細安裝配置步驟JDK
- Oracle10g RAC 關閉及啟動步驟Oracle
- nginx快取使用詳解,nginx快取使用及配置步驟Nginx快取
- CentOS 7上安裝WordPress詳細步驟CentOS
- Linux安裝jdk的詳細步驟。LinuxJDK
- CentOS 7.4安裝redis 4.0詳細步驟CentOSRedis
- CentOS 6.5下Redis安裝詳細步驟CentOSRedis
- mysql 主從複製搭建詳細步驟MySql
- MySQL 升級詳細步驟 (包括 Percona)MySql