设为首页 加入收藏

TOP

Oracle dataGuard专题:利用冷备创建standby(三)
2014-11-24 02:38:01 来源: 作者: 【 】 浏览:1
Tags:Oracle dataGuard 专题 利用 冷备 创建 standby

4. 启动数据库
SQL>startup;
Active状态切换:
Active是从8i延续过来的,其实不建议采用:
在备库上执行切换:
1:alter database recover managed standby database cancel;
2:alter database activate standby database;
3:shutdown immediate

总结一下Failover 和 Switchover 的区别:
在9i 的dataguad环境中:
1:执行Switch Over 必须是Primary 正常,并且是必须Primary 主动先Switch成 standby.然后standby 才能switch 成primary。
2:如果需要作成primary出问题,standby 能接管的话,必须作 failover ,而不是SwitchOver。
Failover :
将主数据库offline,备用数据库online,这种操作由系统和软件失败引起。 即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备用数据库运行在 guaranteed protection 模式。
原主数据库重新使用时必须重新启动实例。
其它的备用数据库也需重新启动实例。
Switchover :
故意将主数据库offline,而将另一备用数据库online,它能够切换到备用数据库而不需同步操作。如:可使用 Switchover 完成系统的平滑升级。 即使在备用数据库上不应用重做日志,也不会造成数据的丢失。
数据库不需重新启动实例。这使主数据库几乎能立即在备用数据库上恢复它的功能,因此可经常进行定期维护而不需中断操作。
Failover和Switchover的区别为:
当Failover发生,备用数据库切换为主数据库之后,它丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式;而Switchover可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。
四、相关视图
v$archive_dest
v$archive_dest_status
v$log_history
v$archvied_log
v$managed_standby
v$archive_gap

五、常见问题

1. 日志无法传送
SQL>select dest_name,status,error from v$archive_dest;
察看相应的归档路径的状态是否valid,否则根据error信息进行处理
2. 无法使用alter database重命名data file
在standby上,当设置standby_file_management为auto时,不允许下列操作
alter database rename
alter database add/drop logfile
alter database add/drop standby logfile member
alter database create datafile as
3. switchover失败
SQL>alter database commit to switchover to physical standby
错误:ORA-01093:alter database close only permitted with no session connected
可以察看引起该错误的活动session
SQL> select sid,process,program from v$session where type='USER' and
sid<>(select distinct sid from v$mystat);
然后根据查出的sid结合v$session视图最后用
alter system kill session ‘sid,serial’ 来kill掉进程,断开该session
或者使用如下命令来做switchover
SQL>alter database commit to switchover to physical standby with session shutdown;
4. 在standby database的read only模式下做report时出现错误:
ora-01220:file base sort illegal before database is open.
可能原因:standby database没有temporary tablespace
5:当主机和备机在运行过程中,把备机停下来,主机的归档日志将不能传到备机,当把备机服务起来后,主机的归档日志也不能传到备机,需要把主机的所有服务都重启一次才可以传日志。
请问为什么需要把主机要重启一次呢?有没有不需要重启主机就可以解决此问题呢?
发生这种情况时,核查几处:
(1). show parameter log_archive_dest;
(2). select REOPEN_SECS,MAX_FAILURE from V$ARCHIVE_DEST;
察看是否是因为由于备机没有开机,造成primary node无法正常传送archived log,并且达到了最大允许的失败次数。如果是这样,可以通过alter system set log_archive_dest...来重置属性值,恢复日志的正常传送。
也可以手工传送相关的日志到备机,
对于物理standby:ALTER DATABASE REGISTER LOGFILE '/xxx/xxx/arcr_xxx.arc'
对于逻辑standby: ALTER DATABASE REGISTER LOGICAL LOGFILE '/xxx/xxx/arcr_xxx.arc'

(3). 执行SELECT MESSAGE FROM V$DATAGUARD_STATUS; 察看相关信息,还有根据dataguard的不同类型来察看相关的view来确定当前的状态,具体参见dataguard的官方文档。

本文出自 “技术成就梦想” 博客

首页 上一页 1 2 3 下一页 尾页 3/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Oracle中TO_DATE TO_CHAR格式 下一篇oracle分组排序取第一条数据

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: