Dataguard配置
環境描述
主服務器
操作系統:win2003
計算機名稱:primary
IP地址:192.168.1.1
Oracle版本9i
數據庫實例:wbi
備服務器
操作系統:win2003
計算機名稱:standby
IP地址:192.168.1.2
Oracle版本:9i
數據庫實例:wbi
配置過程
1、在主備服務器安裝oracle,只安裝程序不安裝數據庫。
2、在主庫使用DCA工具創建數據庫,實例名稱wbi,除字符集使用ZHS16GBK外,其他使用默認參數。
3、在從庫C:\oracle\admin\wbi下創建文件夾:bdump、cdump、create、pfile、udump
在從庫C:\oracle\oradata創建文件夾wbi
4、在主庫
SQL> select file_name from dba_data_files; 查詢數據文件
SQL> select member from v$logfile; 查詢聯機日誌文件
SQL> shutdown immediate; 關閉數據庫
拷貝數據文件、聯機日誌文件以及C:\oracle\ora92\database\PWDwbi.ora到備庫相應位置
5、在主庫
SQL> startup mount; 啓動實例但不打開數據庫
SQL> alter database archivelog; 配置爲歸檔模式
SQL> alter database open; 打開數據庫
SQL>alter system set log_archive_dest_1='location=c:\oracle\ora92\database\arch
ive' scope=both; 修改歸檔路徑
SQL> alter system set log_archive_start=true scope=spfile; 開啓自動歸檔
SQL> shutdown immedicate; 重啓數據庫
SQL> startup;
6、在主庫創建從庫控制文件
SQL> alter database create standby controlfile as 'c:\control01.ctl';拷貝該文件到從庫C:\oracle\oradata\wbi目錄下
7、在主從庫使用NCA工具配置監聽程序以及本地NET服務名
主庫tnsnames.ora文件
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
從庫tnsnames.ora
# TNSNAMES.ORA Network Configuration File: C:\oracle\ora92\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = wbi)
)
)
8、啓動主從庫OracleOraHome92TNSListener監聽服務
9、在主庫創建spfile
SQL> create pfile='c:\initwbi.ora' from spfile;
添加如下內容
*.STANDBY_ARCHIVE_DEST='C:\oracle\ora92\database\archive'
*.FAL_SERVER='PRIMARY'
*.FAL_CLIENT='STANDBY'
*.standby_file_management='AUTO'
SQL> shutdown immediate;
SQL> create spfile from pfile='c:\initwbi.ora';(用於主庫切換成從庫後使用)
SQL> startup;
修改initwbi.ora中的控制文件路徑
*.control_files='C:\oracle\oradata\wbi\CONTROL01.CTL'
把該文件複製到從庫C:\oracle\ora92\database目錄下
複製主庫C:\oracle\ora92\database中的密鑰文件PWDwbi.ora到從庫該目錄
10、創建從庫實例名
C:\Documents and Settings\Administrator>oradim -new -sid wbi -pfile c:\oracle\ora92\database\initwbi.ora
建立註冊表
路徑:HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOME0
新建字符串值 數值名稱:oracle_sid 數值數據:wbi
重啓從庫。
11、在從庫
SQL> startup nomount;啓動實例
SQL> alter database mount standby database;設置備庫爲standby模式
SQL> alter database recover managed standby database disconnect from session;開啓日誌應用服務
12、在主庫
SQL> alter system set log_archive_dest_2='service=standby mandatory reopen=60';在主庫設置到備庫的歸檔
13、驗證dataguard
在主庫
SQL> alter system switch logfile;手動歸檔
在從庫
是否能正常接收歸檔日誌
SQL> select sequence#,first_time,next_time from v$archived_log order by sequence#;
查看新的歸檔日誌是否正常用於恢復
select sequence#,applied from v$archived_log order by sequence#;
14、在備庫查詢數據
SQL> alter database recover managed standby database cancel;
SQL> alter database open read only;
查詢完畢後恢復爲恢復模式。
SQL>alter database recover managed standby database disconnect from session ;