你说: 很简单的
你说: 特别是用了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(在北京)说: 哦
你说: 这也是为什么昨天我说要建完再作初始化的原因,因为这个恢复总还是要时间的,象今天这样又在网络上传归档,那就可能时间还要长一些 
|