?
?
第二部分物理standby(2)創(chuàng)建示例? 2007.12.06
?
??? 為了最大的降低硬件需求,此處創(chuàng)建的data guard 處于同一臺機器,但其創(chuàng)建過程與多機并無區(qū)別。做為演示用的示例足夠了,我們分兩階段配置,分別是配置primary 數(shù)據(jù)庫和配置standby 數(shù)據(jù)庫,如下:
?
?
一、Primary數(shù)據(jù)庫配置及相關(guān)操作
?
1、確認主庫處于歸檔模式
?
???
SQL> archive log list;
??? 數(shù)據(jù)庫日志模式?????存檔模式
??? 自動存檔?????????? 啟用
??? 存檔終點?????????? E:\ora10g\oradata\jssweb
??? 最早的聯(lián)機日志序列? 148
??? 下一個存檔日志序列? 150
??? 當前日志序列?????? 150
2、將primary 數(shù)據(jù)庫置為FORCE LOGGING 模式
?
??? 通過下列語句:
???
SQL> alter database force logging;
??? 數(shù)據(jù)庫已更改。
3、創(chuàng)建standby 數(shù)據(jù)庫控制文件
???
SQL> alter database create standby controlfile as 'd:\backup\jsspdg01.ctl';
??? 數(shù)據(jù)庫已更改。
?
4、創(chuàng)建primary 數(shù)據(jù)庫客戶端初始化參數(shù)文件
??? 注:主要此處修改項較多,為了方便,我們首先創(chuàng)建并修改pfile,然后再通過pfile 重建spfile,你當然也可以通過alter system set 命令直接修改spfile 內(nèi)容。
???
SQL> create pfile from spfile;
??? 文件已創(chuàng)建。
?
??? 將該初始化參數(shù)文件復(fù)制一份,做為standby 數(shù)據(jù)庫的客戶端初始化參數(shù)文件
??? SQL> host copy e:\ora10g\product\10.2.0\db_1\database\initjssweb.ora d:\backup\initjsspdg.ora
??? 已復(fù)制1 個文件。
??? 修改客戶端初始化參數(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
?
??? 通過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
?
??? 通過tnsping 測試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ù)庫配置及相關(guān)操作
1、通過ORADIM 創(chuàng)建新的OracleService
2、創(chuàng)建密碼文件,注意保持sys 密碼與primary 數(shù)據(jù)庫一致。
?
???
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ù)制文件,不做過多描述
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
??? 注意同時修改*_dest 的路徑。
?
??? 通過該pfile 創(chuàng)建spfile
???
SQL> create spfile from pfile='D:\backup\initjsspdg.ora';
??? 文件已創(chuàng)建。
6、啟動standby 到mount
?
???
SQL> startup mount;
??? ORACLE 例程已經(jī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ù)庫裝載完畢。
?
7、啟動redo 應(yīng)用
?
???
SQL> alter database recover managed standby database disconnect from session;
??? 數(shù)據(jù)庫已更改。
8、查看同步情況
?
??? 首先連接到primary 數(shù)據(jù)庫
???
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ù)庫
???
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)用
??? 通過下列語句暫停redo 應(yīng)用。
??? SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
??? 數(shù)據(jù)庫已更改。
??? 注意,此時只是暫時redo 應(yīng)用,并不是停止Standby 數(shù)據(jù)庫,standby 仍會保持接收只不過不會再應(yīng)用接收到的歸檔,直到你再次啟動redo 應(yīng)用為止。
?
??? 哈哈,成功鳥!現(xiàn)在你是不是想知道怎么把standby 變成primary 呢?接著往下看~~~~~~~~~
-The End-