使用duplicate database 创建物理standby database

本文详细介绍了Oracle数据库故障切换与日志应用的过程,包括如何使用duplicate创建standby database,设置log_archive_dest_2及fal_server参数,以及在主备库之间进行日志切换、归档日志验证等关键步骤。同时,文章提供了配置过程总结,包括参数说明、相关视图和新标签等,旨在帮助用户理解并实施Oracle数据库的故障恢复策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


piece handle=/u01/app/oracle/duplicate/al_t775282475_s98_p1 tag=TAG20120215T041426
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:06
archive log filename=/u01/app/oracle/duplicate/log1_55_769179320.arc thread=1 sequence=55
channel clone_default: deleting archive log(s)
archive log filename=/u01/app/oracle/duplicate/log1_55_769179320.arc recid=2 stamp=775264007
archive log filename=/u01/app/oracle/duplicate/log1_56_769179320.arc thread=1 sequence=56
channel clone_default: deleting archive log(s)
archive log filename=/u01/app/oracle/duplicate/log1_56_769179320.arc recid=1 stamp=775264007
media recovery complete, elapsed time: 00:00:11
Finished recover at 14-FEB-12
Finished Duplicate Db at 14-FEB-12
 
2.8 应用Redo日志
alter database recover managed standby database disconnect from session;
 
 
3.测试验证
 
3.1 在备库查看归档日志
SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;
 SEQUENCE# FIRST_TIM NEXT_TIME
---------- --------- ---------
        55 15-FEB-12 15-FEB-12
        56 15-FEB-12 15-FEB-12
        57 15-FEB-12 15-FEB-12
        58 15-FEB-12 15-FEB-12
        59 15-FEB-12 15-FEB-12
        60 15-FEB-12 15-FEB-12
        61 15-FEB-12 15-FEB-12
        62 15-FEB-12 15-FEB-12
        63 15-FEB-12 15-FEB-12
        64 15-FEB-12 15-FEB-12
        65 15-FEB-12 15-FEB-12
11 rows selected.
 
3.2 在主库上切换日志
alter system switch logfile;
 
3.3 在备库查看归档日志
 
SQL> select sequence#, first_time, next_time from v$archived_log order by sequence#;
 SEQUENCE# FIRST_TIM NEXT_TIME
---------- --------- ---------
        55 15-FEB-12 15-FEB-12
        56 15-FEB-12 15-FEB-12
        57 15-FEB-12 15-FEB-12
        58 15-FEB-12 15-FEB-12
        59 15-FEB-12 15-FEB-12
        60 15-FEB-12 15-FEB-12
        61 15-FEB-12 15-FEB-12
        62 15-FEB-12 15-FEB-12
        63 15-FEB-12 15-FEB-12
        64 15-FEB-12 15-FEB-12
        65 15-FEB-12 15-FEB-12
 SEQUENCE# FIRST_TIM NEXT_TIME
---------- --------- ---------
        66 15-FEB-12 15-FEB-12
12 rows selected.
归档日志数由11个变成了12个,说明主库上的归档日志已经传送到备库.
 
3.4 查看备库的日志应用情况
SQL> select sequence#,applied from v$archived_log order by sequence#;
 SEQUENCE# APP
---------- ---
        55 YES
        56 YES
        57 YES
        58 YES
        59 YES
        60 YES
        61 YES
        62 YES
        63 YES
        64 YES
        65 YES
 SEQUENCE# APP
---------- ---
        66 YES
12 rows selected.
 
3.5 查看主库的保护模式
sql> select protection_mode from v$database;
protection_mode
--------------------
maximum performance
 
 
配置过程总结:
1.使用duplicate创建standby database不用单独创建standby的控制文件,步骤相对简单些.
2.log_archive_dest_2中的service参数中需要填写的是tnsnames.ora文件中配置的别名,而不是服务名.fal_server配置的也是tnsnames.ora文件中配置的别名,而不是服务名(service_name).一开始的时候log_archive_dest_2中的service填写的是服务名,主库的日志文件无法传送到目的库,最后修改为tns中配置的别名就没问题了.
 
3.如果在主库执行 alter database clear unarchived logfile或alter database open resetlogs ,则dataguard要重建.
4.在连续恢复模式下工作之前,需要保证之前所有的归档日志己经应用到备用库上。因为在连续恢复模式的情况下,oracle不会应用之前的归档日志,而只会应用后面陆续到来的归档日志.
5.出现归档日志gap时,需要找出相应的归档日志,然后将这些归档日志copy到备用节点的standby_archive_dest和log_archive_dest目录下面。需要注意的是log_archive_dest目录下也需要copy。然后ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;
6.新建表、表空间、datafile都能通过日志应用到备库,但新建一个临时表空间,rename datafile 均不能应用到备库上.
7.应当实时察看standby库的alert文件,就能清晰明了地知道主备更新的情况。这也是排错的重要方法,切记!!
8.failover和switchover
Failover:将主数据库offline,备用数据库online,这种操作由系统和软件失败引起。 即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备用数据库运行在guaranteed protection 模式。原主数据库重新使用时必须重新启动实例。其它的备用数据库也需重新启动实例。
Switchover:故意将主数据库offline,而将另一备用数据库online,它能够切换到备用数据库而不需同步操作。如:可使用 Switchover 完成系统的平滑升级.即使在备用数据库上不应用重做日志,也不会造成数据的丢失。 数据库不需重新启动实例。这使主数据库几乎能立即在备用数据库上恢复它的功能,因此可经常进行定期维护而不需中断操作。Failover和Switchover的区别为:当Failover发生,备用数据库切换为主数据库之后,它丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式;而Switchover可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。
9.相关视图
DBA_LOGSTDBY_EVENTS (Logical Standby Databases Only)
DBA_LOGSTDBY_LOG (Logical Standby Databases Only)
DBA_LOGSTDBY_NOT_UNIQUE (Logical Standby Databases Only)
DBA_LOGSTDBY_PARAMETERS (Logical Standby Databases Only)
DBA_LOGSTDBY_PROGRESS (Logical Standby Databases Only)
DBA_LOGSTDBY_SKIP (Logical Standby Databases Only)
DBA_LOGSTDBY_SKIP_TRANSACTION (Logical Standby Databases Only)
DBA_LOGSTDBY_UNSUPPORTED (Logical Standby Databases Only)
V$ARCHIVE_DEST
V$ARCHIVE_DEST_STATUS
V$ARCHIVE_GAP
V$ARCHIVED_LOG
V$DATABASE
V$DATAFILE
V$DATAGUARD_STATUS
V$LOG
V$LOGFILE
V$LOG_HISTORY
V$LOGSTDBY (Logical Standby Databases Only)
V$LOGSTDBY_STATS (Logical Standby Databases Only)
V$MANAGED_STANDBY (Physical Standby Databases Only)
V$STANDBY_LOG
 
参数说明:
以下两个参数若不做主备库切换,只需要在备库的参数文件中配置即可.
db_file_name_convert='主库目录,备库目录'
如:
db_file_name_convert='/u02/app/oracle/oradata/oracl/', '/u02/app/oracle/oradata/oraclbak/'
 
在主库目录'/u02/app/oracle/oradata/oracl/下创建的数据文件会自动传输到备库的目录'/u02/app/oracle/oradata/oraclbak/',如主库上创建的数据文件不在'/u02/app/oracle/oradata/oracl/下,则传过来的数据文件会保留在'/u02/app/oracle/oradata/oracl/', 这里有点不明白ORACLE为什么这么处理.
 
 
 
log_file_name_convert='主库目录,备库目录'
 
 
 
--The End--

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14385647/viewspace-749827/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/14385647/viewspace-749827/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值