一、實施最大性能的實體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;
這樣就可以用從庫充當主資料庫使用了。