9i下創建standby database 步驟
2024-07-21 02:07:02
供稿:網友
最近,對oracle 9i下的data guard進行了測試,發現9i作standby時更方便了
先整理出來,如下:
操作環境:windows 2000 professional + serveice pack 4
數據庫:oracle 9201
主庫sid:pormals
從庫sid:pormals
oracle安裝采用omf結構
1.主從兩機的操作系統和相同pack
2.在主從庫上建立數據庫,選擇只安裝software
3.在主庫上,通過dbca建立數據庫,除了字符集選擇 zhs16gbk外,全部使用缺省方式
4.在從庫上,手工創建和主庫相同目錄
5.關閉主庫數據庫,備份數據文件到從庫
確定需要copy過去的數據文件以及redo log
sqlplus /nolog
sql> conn / as sysdba;
sql> select file_name from dba_data_files;
確定所要copy數據文件
sql> select member from v$logfile;
確定所要copy聯機日至文件
sql> shutdown immediate;
copy 上面選出的所有文件到從庫上相應的目錄.
6.打開主庫數據庫,修改為歸檔方式(oracle9i用戶操作)
手工創建歸檔目錄c:/oracle/arch
sqlplus /nolog
sql> conn / as sysdba;
connected.
sql> startup mount;
sql> alter database archivelog;
sql> archive log start;
sql> archive log list;
sql> alter database open;
sql> alter system set log_archive_dest_1='location=c:/oracle/arch';
sql> alter system set log_archive_format='%t_%s.dbf' scope=spfile;
sql> alter system set log_archive_start=true scope=spfile;
重新啟動數據庫,使修改結果生效
sql> shutdown immediate;
察看歸檔模式
sql> startup
sql> archive log list;
7.在主庫上制作從庫control file
sqlplus /nolog
sql> conn / as sysdba;
sql> alter database create standby controlfile as 'c:/oracle/control01.ctl';
copy主庫c:/oracle/control01.ctl 到從庫 c:/oracle/oradata/poramals/目錄下
8.配置主庫listener.ora和tnsnames.ora文件
可以用net manager配置或者直接編輯c:/oracle/ora92/network/admin/listener.ora和tnsname.ora文件
也即正常為主庫配置偵聽和連接到主庫(primary)、主庫到從庫(standby)的網絡服務名
9.配置從庫listener.ora和tnsnames.ora文件
可以用net manager配置或者直接編輯c:/oracle/ora92/network/admin/listener.ora和tnsname.ora文件
也即正常為從庫配置偵聽和連接到從庫到主庫(primary)、直接到從庫(standby)的網絡服務名
10.啟動主從庫的listener
分別在主從庫上執行如下命令
lsnrctl start
看主從庫listener是否正常啟動
11 檢查主從庫tnsnames.ora配置
主庫 tnsping standby
從庫 tnsping primary
看分別到主從庫的服務名是否配置正確
12.在主庫上創建pfile,因為9i缺省使用spfile
sqlplus /nolog
sql> conn / as sysdba;
connected.
sql> create pfile='c:/oracle/ora92/database/initporamls.ora' from spfile;
13.copy 剛才創建的c:/oracle/ora92/database.ora/initpormals.ora 到從庫相應目錄
14.修改從庫剛才copy的initpormals.ora文件
主要修改添加:
修改control_files使它符合你的控制文件的實際路徑
添加:
standby_archive_dest=’location=c:/oracle tarch’
fal_server=’primary’
fal_client=’standby’
standby_file_management=’auto’
其中standby_file_management不是必須要,但是為了后面主庫添加文件,從庫能自動處理,加上這個參數,避免麻煩。
同時收工建立從庫的相關歸檔日志路徑c:/oracle tarch。
15.copy 主庫的c:/oracle/ora92/database/pwdpormals.ora到從庫相應目錄
16.創建從庫實例名 dos>oradim -new -sid pormals
17.啟動從庫
sqlplus /nolog
sql> startup nomount;
sql> alter database mount standby database;
將從庫置為standby模式
sql> alter database recover managed standby database disconnect from session;
18.在主庫上設置到從庫的歸檔
sql> alter system set log_archive_dest_2='service=standby mandatory reopen=60';
sql> select *from v$log;
切換當前聯機日志
sql> alter system switch logfile;
sql> select *from v$log;
察看從庫后臺日志
c:/oracle/admin/pormals/bdump/pormals_arler.
看當前歸檔日志是否已經正常完成恢復
至此data guard配置完成。
19.測試一下
在主庫上
sql> create user test identified by 密碼;
sql> grant connect ,resource to test ;
sql> conn test/密碼@primary;
sql> create table test(name varchar2(20));
sql> insert into test values('hi,data guard');
sql> commit;
sql> conn / as sysdba
sql> alter system switch logfile;
察看從庫日志
c:/oracle/admin/poramls/bdump/pormals_alert.ora
看當前歸檔日志是否已經正常完成恢復
已只讀方式打開從庫察看是否insert into test values('hi,data guard');已經生效。
在從庫上
sql> conn / as sysdba;
sql> alter database recover managed standby database cancel;
sql> alter database open read only;
sql> conn test/密碼
sql> select * from test;
察看是否insert into test values('hi,data guard');已經生效。
如果生效說明已經完全正常工作,data guard到此完全配置完畢。
再次置從庫在恢復模式
sql> alter database recover managed standby database disconnect from session;
注:
1、關于啟動關閉順序
啟動的時候,先從庫的listener,然后啟動從庫,然后啟動主庫的listener 接著是主庫 關閉的時候正好相反,先關閉主庫,然后是從庫。
2、一些常用的view
v$archive_dest_status 這里面會紀錄到standby 的狀態和恢復到那個日志
v$archive_gap 這里面會紀錄當前從庫mrp進程恢復需要的膽識還沒有傳到從庫得日志
v$archived_log 這里面會紀錄所有已經歸檔到從庫的日志,并且記錄該日志是否已經恢復
v$database 會紀錄系統的保護狀態和是否處于force logging狀態
v$managed_standby (physical standby databases only) 會紀錄當前從庫的一些進程情況和進程的process id,如rfs,mrp等
v$standby_log (physical standby databases only) 會紀錄當前從庫的standby redo log的一些情況。