Alternative for standby database in standard edition_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4316 | 回复: 0   主题: Alternative for standby database in standard edition        下一篇 
shylone
注册用户
等级:下士
经验:199
发帖:90
精华:0
注册:2011-11-24
状态:离线
发送短消息息给shylone 加好友    发送短消息息给shylone 发消息
发表于: IP:您无权察看 2011-11-24 16:24:34 | [全部帖] [楼主帖] 楼主

<P></P><P>目标: 在标准版中对选择standby数据库进 Data Guard的高可用性的功能仅仅在企业版中使用 本文讨论了如何在标准版中对生产库创建一个重复(克隆)数据库。 它支持在企业版本中的(物理)standby数据库的一些特性: ++ 通过应用Primary数据库中的改变记录(归档日志)使得克隆的数据库能够与Primary保持一致性(物理Standby通过REDO应用来保持与Primary数据库的一致性) ++ 首先关闭应用进程以只读模式打开数据库来获得报告 Solution 这种替代的standby数据库并不支持Data Guard的高级性能如switch over,自动日志传送以及apply services(恢复管理) 等 NB: 1.Primary数据库的归档日志必须手动的传送到standby数据库实例的log_archive_dest里 standby_archive_dest参数在这种情况下已经没有了意义 2.如果打算将Primary数据库和standby数据库 如果计划将primary 和 standby数据库安装在相同的box,用一致的的DB_NAME以正常的程序设置一个克隆实例,那么该克隆实例也是可以用于生产的。 Eg: usage of parameter lock_name_space. 以下是创建一个“假的”standby数据库的步骤 对primary数据库进行备份 ++可以用任何一个备份方法进行该备份 Eg: RMAN/MANUAL/HOT/COLD. 备份primary数据库中的控制文件 ++ 在将数据库shutdown normal or shutdown immediate(clean shutdown)关闭后,进行冷拷贝 ++如果不能关掉数据库,可以使用控制文件的二进制备份 SQL>alter database backup controlfile to ''; ++也可以使用RMAN备份的控制文件但要牢记以下几点 NB:为standby 数据库使用的控制文件必须保证checkpoint_change#要高于恢复的数据文件,因为即将被使用的控制文件之前采取的时间戳能使你从备份中还原数据文件 为standby数据库创建一个新的实例,并启动到nomount状态 ++以下的参数必须保证在primary和standby中是一致的 DB_NAME,db_block_size,compatible etc. 这个standby实例和primary实例拥有不同的instance_name,但是有相同的DB_NAME 如果你想要在同一个节点上用相同的DB_NAME挂载两个数据库,如果他们在相同的ORACLE_HOME下(即使使用不同的instance_name,这也是适用的)就必须要使用lock_name_space ++standby中控制文件的参数应当指定到我们在第2步中备份的控制文件 SQL>startup nomount(pfile =) 使用primary数据库中的控制文件挂载standby数据库 ++ SQL>alter database mount(要牢记我们并没有创建一个实实在在的standby数据库,所以“STANDBY”关键字在alter database命令中是不需要的) 把数据文件恢复到standby数据库中的(使用RMAN或者手工恢复) ++如果你有一个不同的文件系统架构,那么你需要在使用RMAN 将文件恢复到不同的位置时使用"set newname"命令。如果使用手工将文件恢复到不同的位置时,要按照接下来的步骤在控制文件中重命名文件。 如果standby数据库的站点有不同的文件系统架构用以下命令重命名文件: SQL>alter database rename file to .开始进行恢复 SQL>recover database using backup controlfile until cancel 应用所有有效地归档日志 (应当至少几个归档日志使得控制文件和数据文件的checkpoint_change#相同。这样保证数据文件与控制文件的一致性) 如果通过reporting purpose read only mode打开数据库 取消恢复 SQL> alter database open read only 向临时表空间中添加临时文件 SQL> alter tablespace temp add tempfile '' size .. 这是因为在使用backup controlfile命令进行恢复时,会自动的从控制文件中删除临时文件的记录 现在,这个数据库可以为用户用来reporting. 要使用Primary数据库不断地产生的归档日志来保证standby数据库与primary数据库同步 ++复制新的归档日志到standby数据库的log_archive_dest下 ++先shutdown standby数据库再 startup mount ++通过“recover database using backup controlfile until cancel”命令应用可用的归档日志 ++一旦所有的归档日志被应用,再次以read only的模式打开数据库 如果为了实现灾难恢复而转移到这个新的standby数据库中) ++将primary数据库中最大数量的归档日志应用到standby数据库中 SQL>recover database ung backup controlfile until cancel ++ alter database open resetlogs; NB: 1) 如果在primary数据库中创建一个新的表空间,将会收到报错,并且向reporting server申请相应的日志 ORA-00283: recovery session canceled due to errors(恢复会话由于错误取消) ORA-01244: unnamed datafile(s) added to controlfile by media recovery通过介质恢复,存在未命名的数据文件被添加到控制文件中 ORA-01110: data file 5: '/home/jobin/tes1.dbf 基于这种情况,需要运行类似于下面的命令在standby数据库中创建一个空的数据文件 a) SQL>select name from v$datafile where name like '%UNNAMED%'; b) SQL>alter database create datafile '/home/oracle/product/ora101/dbs/UNNAMED00005' as '/oradata/dummy/test01.dbf'; /oradata/dummy是数据文件在standby数据库中的位置 此时,就可以重新进行恢复 2)可以在你mount状态下,用以下的查询语句找到在standby数据库中最后应用的归档日志 SQL>select max(fhrba_Seq) from x$kcvfh Errors ORA-1244; ORA-1110; ORA-283</P><P></P>



赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论