?
?
第二部分物理standby(2)創(chuàng)建示例? 2007.12.06
?
??? 為了最大的降低硬件需求,此處創(chuàng)建的data guard 處于同一臺(tái)機(jī)器,但其創(chuàng)建過(guò)程與多機(jī)并無(wú)區(qū)別。做為演示用的示例足夠了,我們分兩階段配置,分別是配置primary 數(shù)據(jù)庫(kù)和配置standby 數(shù)據(jù)庫(kù),如下:
?
?
一、Primary數(shù)據(jù)庫(kù)配置及相關(guān)操作
?
1、確認(rèn)主庫(kù)處于歸檔模式
?
???
SQL> archive log list;
??? 數(shù)據(jù)庫(kù)日志模式???? 存檔模式
??? 自動(dòng)存檔?????????? 啟用
??? 存檔終點(diǎn)?????????? E:\ora10g\oradata\jssweb
??? 最早的聯(lián)機(jī)日志序列? 148
??? 下一個(gè)存檔日志序列? 150
??? 當(dāng)前日志序列?????? 150
2、將primary 數(shù)據(jù)庫(kù)置為FORCE LOGGING 模式
?
??? 通過(guò)下列語(yǔ)句:
???
SQL> alter database force logging;
??? 數(shù)據(jù)庫(kù)已更改。
3、創(chuàng)建standby 數(shù)據(jù)庫(kù)控制文件
?
??? SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';
??? 數(shù)據(jù)庫(kù)已更改。
?
4、創(chuàng)建primary 數(shù)據(jù)庫(kù)客戶端初始化參數(shù)文件
?
??? 注:主要此處修改項(xiàng)較多,為了方便,我們首先創(chuàng)建并修改pfile,然后再通過(guò)pfile 重建spfile,你當(dāng)然也可以通過(guò)alter system set 命令直接修改spfile 內(nèi)容。
??? SQL> create pfile from spfile;
??? 文件已創(chuàng)建。
?
??? 將該初始化參數(shù)文件復(fù)制一份,做為standby 數(shù)據(jù)庫(kù)的客戶端初始化參數(shù)文件
??? SQL> host copy e:\ora10g\product\10.2.0\db_1\database\initjssweb.ora d:\backup\initjsspdg.ora
??? 已復(fù)制1 個(gè)文件。
??? 修改客戶端初始化參數(shù)文件,增加下列內(nèi)容:
???
DB_UNIQUE_NAME=jssweb
??? LOG_ARCHIVE_CONFIG='DG_CONFIG=(jssweb,jsspdg)'
??? LOG_ARCHIVE_DEST_1='LOCATION=E:\ora10g\oradata\jssweb\
??? VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jssweb'
??? LOG_ARCHIVE_DEST_2='SERVICE=jsspdg LGWR ASYNC
??? VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jsspdg'
??? LOG_ARCHIVE_DEST_STATE_1=ENABLE
??? LOG_ARCHIVE_DEST_STATE_2=ENABLE
??? REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
??? #--------配置standby 角色的參數(shù)用于角色轉(zhuǎn)換
??? FAL_SERVER=jsspdg
??? FAL_CLIENT=jssweb
??? DB_FILE_NAME_CONVERT='oradata\jsspdg','oradata\jssweb'
??? LOG_FILE_NAME_CONVERT='oradata\jsspdg','oradata\jssweb'
??? STANDBY_FILE_MANAGEMENT=AUTO
?
??? 通過(guò)pfile 重建spfile
???
SQL> shutdown immediate
??? ... ...
??? SQL> create spfile from pfile='initjssweb.ora';
??? 文件已創(chuàng)建。
?
5、復(fù)制數(shù)據(jù)文件到standby 服務(wù)器(方式多樣,不詳述)
??? 注意需要復(fù)制所有數(shù)據(jù)文件,備份的控制文件及客戶端初始化參數(shù)文件
?
6、配置listener 及net service names(方式多樣,不詳述)
?
??? 完之后重啟listener:
???
E:\ora10g>lsnrctl stop
??? E:\ora10g>lsnrctl start
?
??? 通過(guò)tnsping 測(cè)試tnsnames 是否正確有效:
??? E:\ora10g>tnsping jssweb
??? ... ...
??? Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jss)(PORT = 1521))
??? (CONNECT_
??? DATA = (SERVER = DEDICATED) (SERVICE_NAME = jssweb)))
??? OK (30 毫秒)
???
E:\ora10g>tnsping jsspdg
??? ... ...
??? Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = jss)(PORT = 1521))
??? (CONNECT_
??? DATA = (SERVER = DEDICATED) (SERVICE_NAME = jsspdg)))
??? OK (10 毫秒)
?
?
二、StandbStandby數(shù)據(jù)庫(kù)配置及相關(guān)操作
1、通過(guò)ORADIM 創(chuàng)建新的OracleService
2、創(chuàng)建密碼文件,注意保持sys 密碼與primary 數(shù)據(jù)庫(kù)一致。
?
??? E:\ora10g>orapwd file=e:\ora10g\product\10.2.0\db_1\database\PWDjsspdg.ora password=verysafe entries=30
3、創(chuàng)建目錄
?
??? E:\ora10g\product\10.2.0\admin\jsspdg>mkdir adump
4、復(fù)制文件,不做過(guò)多描述
5、修改初始化參數(shù)文件
??? 增加下列參數(shù):
??? db_unique_name=jsspdg
??? LOG_ARCHIVE_CONFIG='DG_CONFIG=(jssweb,jsspdg)'
??? DB_FILE_NAME_CONVERT='oradata\jssweb','oradata\jsspdg'
??? LOG_FILE_NAME_CONVERT='oradata\jssweb','oradata\jsspdg'
??? LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
??? LOG_ARCHIVE_DEST_1='LOCATION=E:\ora10g\oradata\jsspdg\
??? VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=jsspdg'
??? LOG_ARCHIVE_DEST_STATE_1=ENABLE
??? #---下列參數(shù)用于角色切換
??? LOG_ARCHIVE_DEST_2='SERVICE=jssweb LGWR ASYNC
??? VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=jssweb'
??? LOG_ARCHIVE_DEST_STATE_2=ENABLE
??? REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
??? FAL_SERVER=jssweb
??? FAL_CLIENT=jsspdg
??? STANDBY_FILE_MANAGEMENT=AUTO
??? 注意同時(shí)修改*_dest 的路徑。
?
??? 通過(guò)該pfile 創(chuàng)建spfile
??? SQL> create spfile from pfile='D:\backup\initjsspdg.ora';
??? 文件已創(chuàng)建。
?
6、啟動(dòng)standby 到mount
?
??? SQL> startup mount;
??? ORACLE 例程已經(jīng)啟動(dòng)。
??? Total System Global Area 167772160 bytes
??? Fixed Size 1289484 bytes
??? Variable Size 62915316 bytes
??? Database Buffers 96468992 bytes
??? Redo Buffers 7098368 bytes
??? 數(shù)據(jù)庫(kù)裝載完畢。
?
7、啟動(dòng)redo 應(yīng)用
?
??? SQL> alter database recover managed standby database disconnect from session;
??? 數(shù)據(jù)庫(kù)已更改。
8、查看同步情況
?
??? 首先連接到primary 數(shù)據(jù)庫(kù)
???
SQL> show parameter instance_name;
???
NAME????????????????? TYPE??????? VALUE
???
--------------------- ----------- ------------------------------
???
instance_name???????? string????? jssweb
?
???
SQL> alter system switch logfile;
???
系統(tǒng)已更改。
?
???
SQL> select max(sequence#) from v$archived_log;
???
MAX(SEQUENCE#)
???
--------------
???
51
?
??? 連接到standby 數(shù)據(jù)庫(kù)
???
SQL> show parameter instance_name;
???
NAME????????????????? TYPE??????? VALUE
???
--------------------- ----------- ------------------------------
???
instance_name???????? string????? jsspdg
?
???
SQL> select max(sequence#) from v$archived_log;
???
MAX(SEQUENCE#)
???
--------------
???
51
?
9、暫停應(yīng)用
??? 通過(guò)下列語(yǔ)句暫停redo 應(yīng)用。
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
??? 數(shù)據(jù)庫(kù)已更改。
??? 注意,此時(shí)只是暫時(shí)redo 應(yīng)用,并不是停止Standby 數(shù)據(jù)庫(kù),standby 仍會(huì)保持接收只不過(guò)不會(huì)再應(yīng)用接收到的歸檔,直到你再次啟動(dòng)redo 應(yīng)用為止。
?
??? 哈哈,成功鳥(niǎo)!現(xiàn)在你是不是想知道怎么把standby 變成primary 呢?接著往下看~~~~~~~~~