分类: Oracle
2007-08-03 23:50:11
说明:
本文的第5—8节步骤参照了<
本文所配置的是physical standby database ,即直接从主库接受archivedlog然后做基于block的物理恢复,所以physical standby在物理文件一级完全等同于主库。
Logical standby database是把主库上传过来的archived log通过logminer技术,解析为sql语句,直接在logical standby上作基于sql的同步。
本文选择的保护模式是从9iR2开始的默认模式 maximum performace, 采用maximum protection和maximum Availability可以保证数据的零丢失,但代价是如果standby库出问题或standby库无法和primary库连接,则primary库也会down 掉(以保证不产生redo log)。
重要的进程
SQL> select PROCESS,STATUS from v$managed_standby;
PROCESS STATUS
------------------ ------------------------
ARCH CONNECTED
ARCH CONNECTED
RFS IDLE
RFS IDLE
RFS (remote file server process) :接受由primary数据库的lgwr或arch通过oracle net传来的reso 数据,写入standby redo logs或standby archived redo logs
MRP(managed Recovery Process): 管理恢复进程。
FAL(fetch archive log): 在primary和standby数据库的2端同时配置。Primary端是fetch archive log server,standby端是fetch archive log client. FAL是自动探测primary/standby数据库之间archived logs是否有有间隔的一个进程。
常见问题
至此,主副的配置已基本完成,可做以下实验来验证配置的准确性。
1. 在主库上新建一个表,看修改时候能马上传到副库上
2. 在主库上新建一个表空间,新增加一个datafile,看修改时候能马上传到副库上(应该是只要在副库上执行恢复模式,就能在副库上看到新建的表空间
3. 在主库上新建一个临时表空间,rename datafile 均不能应用到副库上.
4. 应当实时察看standby库的alert文件,就能清晰明了地知道主副更新的情况。这也是排错的重要方法,切记!!
5. 关于启动关闭顺序
启动的时候,先从库的listener,再启动从库,再启动主库的listener,再主库
关闭的时候,先关闭主库,再启动从库。
6. 关于failover和switchover (参照Rollingpig的总结)
-------------------------------------------- Rollingpig
我给个结论吧。在9i 的dataguad环境中:
1。Switch Over 必须是Primary 正常,并且是必须Primary 主动先Switch成 standby.然后standby 才能switch 成primary.
2。如果需要作成primary出问题,standby 能接管的话,必须作 failover ,而不是SwitchOver
Failover 和 Switchover 的区别
Failover :
将主数据库offline,备用数据库online,这种操作由系统和软件失败引起。
即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备用数据库运行在 guaranteed protection 模式。
原主数据库重新使用时必须重新启动实例。
其它的备用数据库也需重新启动实例。
Switchover :
故意将主数据库offline,而将另一备用数据库online,它能够切换到备用数据库而不需同步操作。如:可使用 Switchover 完成系统的平滑升级。
即使在备用数据库上不应用重做日志,也不会造成数据的丢失。
数据库不需重新启动实例。这使主数据库几乎能立即在备用数据库上恢复它的功能,因此可经常进行定期维护而不需中断操作。
Failover和Switchover的区别为:当Failover发生,备用数据库切换为主数据库之后,它丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式;而Switchover可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。
7. 察看主机当前的运行状态:
SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- ---------- -------------------- ----------------
PRIMARY MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY