首页 > 开发 > 综合 > 正文

DataGuard - MSN教程

2024-07-21 02:07:34
字体:
来源:转载
供稿:网友
  • 网站运营seo文章大全
  • 提供全面的站长运营经验及seo技术!

  • 你说:
    很简单的

    你说:
    特别是用了rman以后

    catherine(在北京)说:
    现在怎么做

    你说:
    先把standby的昨天晚上起来的那个数据库停了

    catherine(在北京)说:
    ok

    你说:
    停了?

    catherine(在北京)说:
    还没完,怎么这么慢

    你说:
    shutdown immediate?

    catherine(在北京)说:
    是的

    你说:
    还没停?

    你说:
    不管他了,shutdown abort好了

    你说:
    反正也不要这个库了

    catherine(在北京)说:
    停了

    catherine(在北京)说:
    现在呢

    你说:
    你是要把redo改为1m吗?

    catherine(在北京)说:
    是的

    catherine(在北京)说:
    怎么改?

    你说:
    你先作restore吧,待会儿再改

    你说:
    在standby上

    你说:
    $oracle_home/bin/rman target /

    catherine(在北京)说:
    继续

    你说:
    sorry

    你说:
    先要mount数据库

    你说:
    还是得先改redo

    catherine(在北京)说:
    是改主库的啰

    你说:
    改redo要到primary上改

    你说:


    catherine(在北京)说:
    怎么改,快点呀

    你说:
    你简单些用图形界面改吧

    你说:
    算了算了

    你说:
    还是命令行吧

    你说:
    等会儿

    你说:
    你先select * from v$log

    catherine(在北京)说:
    孙鹏的机器服务名都没配置,命令行吧

    你说:
    select *  from v$logfile;

    你说:
    看一下当前的group#和member

    catherine(在北京)说:
    当前group是8

    你说:
    是8,9,10三个是吧

    你说:
    行那就加1,2,3三组1m的

    catherine(在北京)说:
    member:   /global/oradata/ctsdb/redo08.log

    你说:
    等会儿,我告诉你sql

    catherine(在北京)说:


    你说:
    alter database
        add logfile group 1
        ('/global/oradata/ctsdb/redo01.log') size 1024k

    你说:
    alter database
        add logfile group 2
        ('/global/oradata/ctsdb/redo02.log') size 1024k

    你说:
    alter database
        add logfile group 3
        ('/global/oradata/ctsdb/redo03.log') size 1024k

    你说:
    这样就加了三组

    catherine(在北京)说:
    加好了

    catherine(在北京)说:
    然后呢

    你说:
    三组都加完了?

    catherine(在北京)说:


    你说:
    然后作alter system archive log current;

    你说:
    要让新加的redo成为current的,才可以删除老的redo

    你说:
    select group#,status from v$log;

    你说:
    可以看现在各个组的redo的状态

    catherine(在北京)说:
    8是active, 9,10 是inactive

    你说:
    再作一次archive

    你说:
    再看

    catherine(在北京)说:
    8,9.10都是inactive了

    你说:
    ok

    你说:
    删掉这三组

    你说:
    alter database drop logfile group 8;

    你说:
    应该是这样

    你说:
    alter database drop logfile group 9;

    你说:
    alter database drop logfile group 10;

    catherine(在北京)说:
    删除了

    你说:
    好,我们还要创建standby redo也改成1m

    你说:
    原来也是3m

    catherine(在北京)说:
    但v$logfile里有group4,5,6,7

    你说:
    呵呵,这个就是standby redo

    catherine(在北京)说:
    是什么

    catherine(在北京)说:


    你说:primary端的是为了预备以后角色切换时候用的

    catherine(在北京)说:啊,我要把,4,5.6.7都改成1m?

    你说:
    其实standby redo只需要在standby上有就可以了

    catherine(在北京)说:
    o

    你说:
    这几个可以先删除再重新创建

    catherine(在北京)说:
    今天可以不处理吧?

    你说:
    不可以

    你说:
    反正standby那边也要用的啊

    catherine(在北京)说:
    那就先删除了?

    你说:
    alter database drop standby logfile group 4;

    你说:
    语法里要加一个standby

    catherine(在北京)说:
    都删除了,然后怎么加

    你说:
    alter database add standby logfile group 4 ('/global/oradata/ctsdb/stdby_redo04.log') size 1024k;

    你说:
    一样的,也就是加一个standby关键字

    你说:
    对了,你还要先去/global/oradata/ctsdb/目录下删除物理的stdby_redo04.log文件

    你说:
    先把那四个文件从目录里面删掉,否则创建应该是会报文件亿存在的,因为drop redo的sql并不帮着删除物理文件

    catherine(在北京)说:
    幸亏我键盘敲的慢

    你说:
    敲得快也没事儿啊,最多报个错也无所谓嘛

    catherine(在北京)说:
    都加完了

    catherine(在北京)说:
    是否可以恢复了

    你说:
    没有

    catherine(在北京)说:
    :(

    你说:
    现在生成standby controlfile

    你说:
    alter database create standby controlfile as '/tmp/s.ctl';

    catherine(在北京)说:
    然后呢

    你说:
    生成完了以后把这个/tmp/s.ctl文件ftp到standby上去

    你说:
    也可以ftp到tmp目录中,反正待会儿要改名子

    你说:
    同时还需要ftp的是新生成的那几个log文件

    catherine(在北京)说:
    是放到$oracle_home/

    你说:
    1,2,3,4,5,6,7

    catherine(在北京)说:
    dbs下是吗

    你说:
    不用

    你说:
    可以全部放到/global/oradata/ctsdb/下面

    你说:
    还没好?

    你说:
    你可以趁着这个时间,先检查一下primary和standby上的监听

    你说:
    用lsnrctl status和lsnrctl status listener_dg

    你说:
    来检查,如果两边这两个监听都是启动的那就行了

    catherine(在北京)说:
    传完了

    你说:


    你说:
    现在可以恢复了

    你说:
    先进standby的sqlplus

    你说:
    现在是不是standby的/global/oradata/ctsdb/目录下有你刚传过来的所有文件?

    你说:
    包括1,2,3,4,5,6,7这7组log,还有一个s,ctl

    catherine(在北京)说:
    是的

    你说:
    好,把s.ctl改名为正常的控制文件名,覆盖原来的

    catherine(在北京)说:
    演示时你不在不行啊

    你说:
    应该是control01.ctl,control02.ctl,control03.ctl

    你说:
    我一会儿过去

    catherine(在北京)说:
    cp就可以吧

    你说:


    catherine(在北京)说:
    好乐得

    你说:
    进sqlplus

    你说:
    startup nomount;

    你说:
    alter database mount standby database;

    catherine(在北京)说:
    没恢复呢?

    你说:
    是啊

    你说:
    先mount才能恢复啊

    catherine(在北京)说:
    好了

    catherine(在北京)说:
    现在可以恢复了?

    你说:
    进rman,就是最初的那条语句

    你说:
    $oracle_home/bin/rman target /

    你说:
    然后执行restore database;

    你说:
    然后就等着吧

    你说:
    等到结束以后

    你说:
    在sqlplus中执行:alter database recover managed standby database parallel 4 disconnect from session;

    你说:
    其中parallel 4 可以省略

    catherine(在北京)说:
    restore估计多长时间啊

    你说:
    然后在peimary端设置archive_lag_target参数值到60,就是一分钟归档一次了

    你说:
    20分钟差不多吧

    你说:
    因为这个备份是昨天传的,所以恢复完了以后,数据库还是昨天的状态

    catherine(在北京)说:
    那跟主库不一致了

    你说:
    这时候你用alertf监控standby的alertlog,可以看到它会自动到primary上取归档,然后作恢复,直到跟主库一致为止

    catherine(在北京)说:


    你说:
    这也是为什么昨天我说要建完再作初始化的原因,因为这个恢复总还是要时间的,象今天这样又在网络上传归档,那就可能时间还要长一些
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表