时间: 2021-08-13 作者:daque
在oracle数据库中,dataguard最重要的功效即是容灾。它不妨分为物理standby和论理standby两种。物理standby重要用在主库的存档日记上面;论理standby重要运用的是主库的存档日记索取的sql语句。正文重要阐明的是dataguard在假造机上的摆设,囊括standby参数的文献的关系摆设等。
1.情况筹备
假造机本子:vmware gsx
操纵体例 :redhat linux 4
primary长机
ip:192.168.111.131
db_name:wellcomm
db_unique_name:wellcomm
ip:192.168.111.131
db_name:wellcomm
db_unique_name:wellcommb
2.树立primary长机为force logging形式
alter database force logging;
3.在primary 上头创造备用日记(为切换而用)
alter database add standby logfile group 4 ('/u01/oracle/oradata/wellcomm/stdredo01.log') size 50m;
alter database add standby logfile group 5 ('/u01/oracle/oradata/wellcomm/stdredo02.log') size 50m;
alter database add standby logfile group 6 ('/u01/oracle/oradata/wellcomm/stdredo03.log') size 50m;
4.窜改primary库的参数
alter system set db_unique_name='wellcomm' scope=spfile;
alter system set log_archive_config='dg_config=(wellcomm,wellcommb)';
alter system set log_archive_dest_1='location=/u01/oracle/oradata/wellcomm/arch valid_for=(all_logfiles,all_roles) db_unique_name=wellcomm';
alter system set log_archive_dest_2='service=wellcommb lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=wellcommb';
alter system set log_archive_dest_state_1=enable;
alter system set log_archive_dest_state_2=enable;
alter system set log_archive_max_processes=10;
5.克隆primary数据库
shutdown immediate
startup mount
backup database;
创造standby的遏制文献
alter database create standby controlfile as '/u01/oracle/controlbak.ctl';
创造standby的参数文献并按standby长机的摆设窜改
create pfile='/u01/oracle/initwellcommb.ora' from spfile;
6.在standby长机上回复数据库(rman办法);
将5步的文献拷备到对应场所(ftp)
startup mount pfile='';
窜改参数文献
db_name='ora10g1'
db_unique_name='ora10g3'
log_archive_config='dg_config=(wellcomm,wellcommb)'
log_archive_dest_1='location=/u01/oracle/oradata/wellcommb/arch valid_for=(all_logfiles,all_roles) db_unique_name=wellcommb' log_archive_dest_2='service=wellcomm lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=wellcomm'
log_archive_dest_state_1=enable
log_archive_dest_state_2=enable
remote_login_passwordfile='exclusive'
log_archive_max_processes=10
restore database;
7.监听摆设和tns效劳摆设
(1)primary 长机上摆设
listener.ora文献实质如次:
sid_list_listener =
(sid_list =
(sid_desc =
(global_dbname = wellcomm )
(oracle_home = /u01/oracle/product/10.2.0/db_1)
(sid_name = wellcomm )
)
)
listener =
(description_list =
(description =
(address = (protocol = tcp)(host = 192.168.111.131)(port = 1521))
)
)
tnsnames.ora文献实质如次:
wellcomm =
(description =
(address = (protocol = tcp)(host = wangwang)(port = 1521))
(connect_data = (server = dedicated) (service_name = wellcomm) ) ) wellcommb = (description = (address = (protocol = tcp)(host = 192.168.111.132)(port = 1521))
(connect_data =
(server = dedicated)
(service_name = wellcommb)
)
)
(2)在standby长机上摆设
listener.ora文献实质如次:
sid_list_listener =
(sid_list =
(sid_desc =
(global_dbname = wellcommb)
(oracle_home = /u01/oracle/product/10.2.0/db_1)
(sid_name = wellcommb)
)
)
listener =
(description_list =
(description =
(address = (protocol = tcp)(host = wangkang)(port = 1521))
)
)
tnsnames.ora文献实质如次:
wellcomm =
(description =
(address = (protocol = tcp)(host = 192.168.111.131)(port = 1521))
(connect_data =
(service = dedicated)
(service_name = wellcomm)
)
)
wellcommb =
(description =
(address = (protocol = tcp)(host = 192.168.111.132)(port = 1521))
(connect_data =
(server = dedicated )
(service_name = wellcommb)
)
)
重启监听
lsnrctl stop
lsnrctl start
8.在standby长机上启用运用redo
alter database recover managed standby database disconnect from session;
(废除:alter database recover managed standby database cancel;)
9.确认从primary到standby的redo传输及运用
(1)在primary长机上实行日记文献切换(最佳屡次)
alter system switch logfile;
(2)查问primary的存档日记
select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;
(3)查问standby的存档日记及其运用
select sequence#,applied,first_time,next_time from v$archived_log order by sequence#;
提防applied字段表露yes则表白该存档日记已被standby数据库运用了。