DataGuard-MSN教程

发表于:2007-05-25来源:作者:点击数: 标签:
你说: 很简单的 你说: 特别是用了RMAN以后 Catherine(在北京)说: 现在怎么做 你说: 先把standby的昨天晚上起来的那个 数据库 停了 Catherine(在北京)说: ok 你说: 停了? Catherine(在北京)说: 还没完,怎么这么慢 你说:

你说:
很简单的

你说:
特别是用了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(在北京)说:

你说:
这也是为什么昨天我说要建完再作初始化的原因,因为这个恢复总还是要时间的,象今天这样又在网络上传归档,那就可能时间还要长一些


原文转自:http://www.ltesting.net