虛擬機器下搭建Linux Oracle10g DataGuard

dukewyh發表於2012-07-16
實驗環境:Linux RedHat 5, VMware Server 1.0.6

準備條件:
1.在一臺虛擬機器上安裝好作業系統,並安裝Oracle 10g 軟體,作為主庫,詳細過程不在此描述。
2.複製虛擬機器檔案,在VMware中新建備庫。
3.在主庫中透過執行dbca建立pdb資料庫

下面開始正式搭建步驟:

1.設定主庫為強制記錄日誌和歸檔模式:

SQL> alter database force logging;
Database altered.

檢視歸檔模式:

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/arch
Oldest online log sequence     7
Next log sequence to archive   9
Current log sequence           9

並且配置好主備庫的監聽和tnsnames.ora

2.在主庫上建立standby redologs(一般standby redo要比online redo多一組),此日誌主要目的是為了當primary庫切換為standby庫的時候,做為standby庫也能正常執行。
SQL> alter database add standby logfile group 4('/u01/oracle/oradata/pdb/sbredo04.log  ') size 100m;

3.修改主庫引數檔案pfile
新增如下內容:
db_unique_name=pdb
log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=pdb'
log_archive_dest_2='SERVICE=sdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sdb'
log_archive_config='dg_config=(pdb,sdb)'
log_archive_dest_state_2=enable
log_archive_dest_state_1=enable
fal_server=sdb
fal_client=pdb
db_file_name_convert='/u01/oracle/oradata/pdb','/u01/oracle/oradata/sdb'
log_file_name_convert='/u01/oracle/oradata/pdb ','/u01/oracle/oradata/sdb'
standby_file_management=auto

4.啟動資料庫,建立備庫控制檔案
SQL> alter database create standby controlfile as '/u01/oracle/oradata/pdb/sdbcontrol1.ctl';
Database altered.

5.複製備庫控制檔案和pfile到備庫,並且在備庫dbs目錄下建立密碼檔案
建立密碼檔案:

[oracle@ocp dbs]$ orapwd file=orapwpdb password=oracle

6.在主庫執行

SQL>alter database begin backup;

然後複製所有的資料檔案到備庫目錄下

然後執行:
SQL>alter database end backup;

7.修改備庫的引數檔案,新增以下內容,並在備庫系統中建立引數檔案中指定的所有目錄:

log_archive_dest_1='location=/u01/arch valid_for=(all_logfiles,all_roles) db_unique_name=sdb'
db_unique_name=sdb
log_archive_dest_2='SERVICE=pdb LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdb'
log_archive_config='dg_config=(sdb,pdb)'
log_archive_dest_state_2=enable
log_archive_dest_state_1=enable
fal_server=pdb
fal_client=sdb
db_file_name_convert='/u01/oracle/oradata/pdb','/u01/oracle/oradata/sdb'
log_file_name_convert='/u01/oracle/oradata/pdb','/u01/oracle/oradata/sdb'
standby_file_management=auto

8.用pfile啟動備庫到mount狀態

SQL>startup mount pfile=‘u01/oracle/product/10gr2/db10g/dbs/initpdb.ora';
9.在備庫中執行:

alter database recover managed standby database disconnect from session

10.這個時候可以去測試日誌是否可以傳送過去了

在備庫檢視歸檔日誌:

SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#; 

在主庫上切換日誌:

SQL> alter system switch logfile; 

再在備庫上執行:
SQL>   select sequence#, first_time, next_time from v$archived_log order by sequence#;  

來測試日誌是否從主庫傳送到備庫


總結:
透過以上步驟,DataGuard 環境便搭建完成。需要注意的是,要保證主備庫的listener和tnsnames都配置正確。






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15592508/viewspace-735623/,如需轉載,請註明出處,否則將追究法律責任。

相關文章