單機上配置9i standby
2024-07-21 02:33:51
供稿:網友
成功完成9i standby配置(參考fenng的大作后補充修正版本)
環(huán)境:windows 2000+Oracle 9.2.0.4;主庫名為test,備庫名為pstandby
1、首先確認PRimary數(shù)據庫是否在歸檔模式下,假如不是請自己調整,這里略過。
SQL>; archive log list
數(shù)據庫日志模式 存檔模式
自動存檔 啟用
存檔終點 D:/oracle/oradata/test/Archive
最早的概要日志序列 45
下一個存檔日志序列 47
當前日志序列 47
2、激活Primary Database的Forced Logging
SQL>; ALTER DATABASE FORCE LOGGING;
3、設置Primary Database的本地歸檔地址,假如已經設置過無須重復;
SQL>; ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=D:/oracle/oradata/test/Archive' SCOPE=BOTH;
4、關閉primary database,復制主數(shù)據庫的數(shù)據文件(可以不包括在線日志和臨時文件)到備用庫的對應位置,本例為D:/oracle/oradata/pstandby(該目的目錄需要提前建立,類似需要提前建立的目錄還有d:/oracle/admin/pstandby/下的pfile目錄)
5、使primary database處于mount狀態(tài)時,為Standby 數(shù)據庫創(chuàng)建控制文件(注重這個控制文件的名字不要和Primary的控制文件名字重復 )
SQL>; ALTER DATABASE CREATE STANDBY CONTROLFILE AS 'D:/oracle/oradata/pstandby/PSTANDBY.CTL';
6、為Standby數(shù)據庫預備初始化參數(shù)文件名字
SQL>; CREATE PFILE='d:/oracle/admin/pstandby/pfile/initpstandby' FROM SPFILE;
7、修改Physical Standby Database和Primary Database的初始化參數(shù)文件(該步驟非凡重要)
備庫initpstandby.ora 一些可能出現(xiàn)錯誤的參數(shù)設置
*****************************************************************
*.control_files='D:/oracle/oradata/pstandby/PSTANDBY.CTL'
*.db_name='test'
*.instance_name='pstandby'
*.log_archive_dest_1='LOCATION=D:/oracle/oradata/pstandby/archive'
*.lock_name_space='pstandby'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
*.standby_archive_dest='D:/oracle/oradata/pstandby/archive'
*.db_file_name_convert=('D:/oracle/oradata/test','D:/oracle/oradata/pstandby')
*.log_file_name_convert=('D:/oracle/oradata/test','D:/oracle/oradata/pstandby')
*.fal_server='PRIMARY'
*.fal_client='STANDBY'
*************************************************************************
主庫inittest.ora 一些可能出現(xiàn)錯誤的參數(shù)設置
*************************************************************************
*.db_name='test'
*.instance_name='test'
*.log_archive_dest_1='LOCATION=D:/oracle/oradata/test/archive'
*.db_file_name_convert=('D:/oracle/oradata/test','D:/oracle/oradata/pstandby')
*.log_file_name_convert=('D:/oracle/oradata/test','D:/oracle/oradata/pstandby')
*.fal_server='PRIMARY'
*.fal_client='STANDBY'
*.lock_name_space='test'
*.standby_file_management=AUTO
*.remote_archive_enable=TRUE
***********************************************************************
8、為Standby Database創(chuàng)建一個Windows服務,并且在tnsnames.ora下增加網絡服務
C:/Documents and Settings/Administrator>;oradim -NEW -SID Pstandby -STARTMODE manual
tnsnames.ora文件
************************************************************************
TEST =
(DESCRipTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = JIWEI_Office)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test)
)
)
PSTANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = JIWEI_OFFICE)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = test) --此處不能為pstandby
)
)
****************************************************************************
9、為Standby Database重新生成一個新的SPFILE
可參考執(zhí)行如下操作:
C:/Documents and Settings/Administrator>;set oracle_sid=pstandby
C:/Documents and Settings/Administrator>;sqlplus /nolog
SQL>; connect / as sysdba
SQL>; CREATE SPFILE FROM PFILE='d:/oracle/admin/pstandby/pfile/initpstandby';
10、啟動物理Standby數(shù)據庫
C:/Documents and Settings/Administrator>;set oracle_sid=pstandby
C:/Documents and Settings/Administrator>;sqlplus /nolog
SQL>; connect / as sysdba
SQL>; STARTUP NOMOUNT;
SQL>; ALTER DATABASE MOUNT STANDBY DATABASE;
SQL>; ALTER DATABASE OPEN READ ONLY; (standby數(shù)據庫只能用read only的模式打開)
此處假如錯誤:
ERROR at line 1:
ORA-01154: database busy. Open, close, mount, and dismount not allowed now
請執(zhí)行備用庫的不完全恢復
SQL>; recover managed standby database cancel;
Media recovery complete.
SQL>; alter database open read only;
Database altered.
11、在Standby數(shù)據庫上,初始化Log Apply 服務:
SQL>; ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM session;(后臺會話,相當于nohup(&),即使網絡斷開也不會中斷而且可以立即返回到用戶執(zhí)行其他操作,但他仍然是守護的影子進程等待主數(shù)據庫傳送的日志一旦發(fā)現(xiàn)就自動恢復)
12、在Primary database上激活到standby的日志歸檔
SQL>; ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=Pstandby' SCOPE=BOTH;
SQL>; ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH;
13、在Primary database啟動遠程歸檔
SQL>; ALTER SYSTEM ARCHIVE LOG CURRENT;
14、安裝完的的驗證:
在standby database下, 查詢V$ARCHIVED_LOG
(其實也可以直接到相關目錄下查看Log是否創(chuàng)建):
SQL>; SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ---------- ----------
14 12-9? -05 12-9? -05
15 12-9? -05 12-9? -05
16 12-9? -05 12-9? -05
17 12-9? -05 12-9? -05
18 12-9? -05 12-9? -05
19 12-9? -05 12-9? -05
20 12-9? -05 12-9? -05
21 12-9? -05 12-9? -05
....
假如在配置過程中,發(fā)現(xiàn)無法傳送歸檔日志,并且在alter.log中有錯誤ORA-12154: TNS: 無法處理服務名
請查看tnsnames.ora文件配置,不要忘記啟動lsnrctl。