设为首页 加入收藏

TOP

Oracle dataGuard专题:利用冷备创建standby(二)
2014-11-24 02:38:01 来源: 作者: 【 】 浏览:2
Tags:Oracle dataGuard 专题 利用 冷备 创建 standby
ve_dest_state_1='enable'
*.log_archive_dest_state_2='enable'
*.STANDBY_ARCHIVE_DEST='/free/oracle/orabak'
*.STANDBY_FILE_MANAGEMENT='AUTO'
DB_FILE_NAME_CONVERT ----当primary和standby的数据文件路径不一致时使用
LOG_FILE_NAME_CONVERT ----当primary和standby的数据文件路径不一致时使用
LOCK_NAME_SPACE ----当主数据库和备用数据在同一台机上时设为备用数据库的SID
具体参数的说明请参考oracle在线文档

6. 设置primary database和standby database的tnsnames.ora,主备库两者的tnsnames.ora配置文件相同。
primary =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.60.144)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = primary) #这个primayr为主库的 service name
)
)

standby =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.60.253)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = standby) #这个standby为备库的service name
)
)

7. 启动standby database

SQL>startup nomount
SQL>alter database mount standby database; #执行此命令后备库会处于手动恢复状态。

8. 启动primary database
SQL>startup

9. 启动standby database到recover manage模式

SQL>alter database recover managed standby database disconnect;
#执行此命令后,备库会切换到自动恢复模式。
如果要启动到实时日志应用模式
SQL>alter database recover managed standby database using current logfile; #切换备库到适时应用日志模式,即real-time apply。执行这个命令后光标会停止在那里。
或者alter database recover managed standby database using current logfile disconnect from session; #执行这个命令后,会切断这个session,执行的功能与上面相同。

但是之前需要先创建standby logfile,使用如下命令创建standby logfile:

alter database add standby logfile group 4
‘/free/oracle/oradata/orcl st_redo4.log’ size 50M
同时还需要修改主库的参数LOG_ARCHIVE_DEST_2的配置
由于事先已经配置好了备库的LOG_ARCHIVE_DEST_2参数,这里无需在进行配置。
关于standby redo file文件,一些特性简单说明如下:
当dataguard运行在max protection 或max availability时,因为必须使用LGWR日志传输方式 即时的将日志传送到standby,因此需要用到standby redo log。
其实主库产生的日志会同步写到主库的redo log 和备库的standby redo log上。同时主库日志切换时,standby redo log也会进行日志切换,因此standby redo log中的信息是与主库的redo file是 适时同步的,在备库进行恢复的时候,是利用standby redo log进行的,因此也可以说standby redo log是主库和备库直接同步的一个桥梁。
创建的standby redo log大小必须和主库的redo大小相等,创建的组数量 建议比主库的redo file多一组,这样做的目的是日后备用,这也是oracle官方的建议。
但是根据我的测试,我创建四组standby redo log,真正利用的只有两组。
10. 切换standby database到read only模式

SQL> alter database recover managed standby database cancel; #首先取消备库的自动恢复模式
SQL>alter database open read only;
如果要切换回recover manage模式
SQL> alter database recover managed standby database disconnect from session;

三、功能切换
Switchover状态切换

首先在primary上操作:
1. 首先查看切换状态:
SQL>select switchover_status from v$database
switchover_status的值如果是To standby,可以直接switchover,如果是sessions active, 则需要在switchover的命令后面加上 。
2. 执行切换主库到备库:
SQL>alter database commit to switchover to physical standby;
3.关闭数据库:
SQL>shutdown immediate;
4. 启动到mount状态:
SQL>startup mount;
然后在standby上操作
1.查看切换状态:
SQL> select switchover_status from v$database;
switchover_status的值如果是To primary,可以直接switchover,如果是sessions active, 则需要在switchover的命令后面加上with session shutdown
2. 执行切换备库到主库:
SQL>alter database commit to switchover to primary;
3.关闭备库:
SQL>shutdown immediate;
4.重新启动备库
SQL>startup;
小窍门:要想顺利的实现switchover,最好在每台server上都同时设置好primary和standby的一些初始化参数,虽然其中一些参数只有在primary或者standby其中之一上起作用。
Failover状态切换
在备库上进行切换:
1.首先停止备库的自动恢复状态:
SQL>alter database recover managed standby database finish;
如果没有使用过standby redo log的话执行:
SQL>alter database recover managed standby database finish skip standby logfile;
2.切换备库到主库:
SQL>alter database commit to switchover to primary;
3. 关闭数据库:
SQL>shutdown immediate;

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

评论

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