问题:如何在不影响primary database的情况下将standby数据库打开?
解答:
1.首先需要关闭两台db之间的archive log传送:
1.1 登陆到primary,用system或sys用户登陆:
sql>alter system set log_archive_dest_2='';
|
1.2 传送最新的arch文件:
sql>alter system switch logfile;
|
2.登陆到standby database,用sys用户登陆:
sql>shutdown immediate;
sql>startup nomount
sql>alter database mount standby database;
sql>alter database backup controlfile to trace;
sql>shutdown immediate; -- 目的是为了打开trace文件
sql>exit
|
现在,我们需要在udump目录下找到刚才产生的trace文件,找到reset log部分。将相关创建control 文件的sql copy出来,并存成cre_ctl_.sql文件。
修改init.ora文件。可使用primary database的init文件,但要注意将log_archive_dest_2等与standby有关的参数进行修改。
sql>startup nomount pfile=init.ora;
sql>alter database mount standby database;
sql>@cre_ctl.sql
|
现在,我们已经创建了新的control文件。
sql>recover database using backup controlfile until cancel;
sql>alter database open resetlogs;
|
至此,standby 数据库正式打开。