天天看點

oracle 10g data guard,Oracle 10g Dataguard實施

一、實施最大性能的實體Standby

1、先建立主庫orcl

2、主庫需要配置db_unique_name參數,如果從來沒有配置過,需要停庫進行修改。

确認SPFILE中

DB_UNIQUE_NAME=orcl1

DB_NAME=orcl

LOG_ARCHIVE_CONFIG='dg_confg=(orcl1,

orcl2)' #即log_archive_config='dg_config=(主庫唯一名,從庫唯一名)'

LOG_ARCHIVE_MAX_PROCESSES=4; #适當增加歸檔程序數量

LOG_ARCHIVE_DEST_1='location=/arc1

VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl1'

LOG_ARCHIVE_DEST_2='service=orcl2

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=orcl2'

3、在從庫上建立參數檔案

*.background_dump_dest='/u01/oracle/admin/orcl2/bdump'

*.core_dump_dest='/u01/oracle/admin/orcl2/cdump'

*.user_dump_dest='/u01/oracle/admin/orcl2/udump'

*.compatible='10.2.0.1.0'

*.db_name=orcl

*.db_unique_name='orcl2'

*.control_files='/u01/app/oracle/oradata/orcl1/control01.ctl'

*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

*.db_block_size=8192

*.sga_target=160m

*.pga_aggregate_target=20m

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.standby_file_management='AUTO'

*.log_archive_config='dg_config=(orcl1,orcl2)'

*.log_archive_dest_10='location=/arch2

VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl2'

*.standby_archive_dest='/arc1'

#在oracle 11g

r2裡standby_archive_dest已經廢棄

*.db_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl2/')

*.log_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl2/')

4、從主庫拷貝密碼檔案

scp

host1:/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl

host2:/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl2

5、配置net

netmgr

靜态注冊orcl1,orcl2

6、備份主庫

rman target

/

CONFIGURE

CHANNEL DEVICE TYPE DISK FORMAT

'/home/oracle/orcl1/%d_%I_%s_%p.bkp';

BACKUP AS

COMPRESSED BACKUPSET DATABASE INCLUDE CURRENT CONTROLFILE FOR

STANDBY PLUS ARCHIVELOG;

7、拷貝備份片到從庫

scp

host1:/home/oracle/orcl1/*

host2:/home/oracle/orcl2/

8、在主庫使用RMAN對備庫進行還原

DUPLICATE

TARGET DATABASE FOR STANDBY;

執行結束後,從庫會被啟動到MOUNT模式,資料同步是ARCHIVELOG檔案級别的。

9、其它步驟

注意:如果沒有在從庫配置

*.db_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl2/')

*.log_file_name_convert=('/u01/app/oracle/oradata/orcl/','/u01/app/oracle/oradata/orcl2/')

則有可能報RMAN-05001: auxiliary file

name/u01/app/oracle…… conflicts with a file used by thetarget

database錯誤

此時需要DUPLICATE TARGET DATABASE FOR STANDBY

NOFILENAMECHECK;

确認環節:(在主庫中執行)

col dest_name for a30

col error for a20

select dest_name,status,error,target,process from

v$archive_dest;

檢視一下結果集的各目标狀态是否正常。

從庫進入管理恢複模式:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT

FROM SESSION;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE

CANCEL;

在這之後可以将從庫open

ALTER DATABASE OPEN;

10、将DataGuard從“最大性能模式”更新成為“最高可用模式(最高可用實體standby)”

(1)主庫調整LOG粒度

ALTER SYSTEM SET log_archive_dest_1='service=orcl2 lgwr sync

affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=orcl2'

(2)添加standby logfile用來接收從主庫傳過來的LOG

ALTER DATABASE ADD STANDBY LOGFILE 'XXX' SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE 'XXX' SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE 'XXX' SIZE 50M;

ALTER DATABASE ADD STANDBY LOGFILE 'XXX' SIZE 50M;

建議比主庫的LOGFILE多一組

(3)設定從庫的歸檔路徑

ALTER SYSTEM SET log_archive_dest_3='location=/arc3

valid_for=(STANDBY_LOGFILES,STANDBY_ROLE)

db_unique_name=orcl2'

(4)主庫設定為最高可用模式

alter database set standby database to maximize

availability;

(5)确認資料庫保護模式

select protection_mode,database_role,protection_level from

v$database;

(6)從庫進入管理恢複模式

開啟實體standby的日志實時應用(從庫):

alter database recover managed standby database using current

logfile disconnect from session;

停止日志應用:

alter database recover managed standby database cancel;

打開資料庫

alter database open;

這樣就可以用從庫充當主資料庫使用了。