由于asm管理的db包含的controlfile无法直接拷贝,因此给asm管理的db镜像controlfile就不能shutdown db之后拷贝控制文件,下面通过重新重建controlfile的办法来给asm管理的db增加controlfile的镜像



步骤如下:

1、SQL> show parameter spfile


NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

spfile string E:ORACLEPRODUCT10.2.0DB_1

DATABASESPFILETEST.ORA

打开SPFILETEST.ORA其参数如下:

test.__java_pool_size=4194304

test.__large_pool_size=4194304

test.__shared_pool_size=54525952

test.__streams_pool_size=0

*._awr_flush_threshold_metrics=TRUE

*.audit_trail='DB_EXTENDED'

*.control_files='+DG1/test/control01.ctl','+DG1/test/control02.ctl','+DG1/test/control03.ctl'

*.dispatchers='(PROTOCOL=TCP) (dispatchers=5)'

*.nls_date_format='yyyy/mm/dd hh24:mi:ss'

*.resource_manager_plan='OLAP_PLAN'

*.shared_servers=0

*.undo_retention=0

*.SPFILE='+DG1/TEST/spfileTEST.ora'

--====================================

从参数spfile得知这个db使用的真实spfile其实是+DG1/TEST/spfileTEST.ora

通过修改参数control_files来增加一个mirror可以修改成功,可发现最终修改的

是E:ORACLEPRODUCT10.2.0DB_1DATABASESPFILETEST.ORA中的参数control_files,

而SPFILE='+DG1/TEST/spfileTEST.ora里面的参数control_files却始终无法修改,

于是想了一个办法,首先创建pfile

2.SQL> create pfile from SPFILE='+DG1/TEST/spfileTEST.ora';


文件已创建。

之后手动编辑pfile文件,增加control_files的mirror:'+DG1/test/control04.ctl'

3.暂时隐藏E:ORACLEPRODUCT10.2.0DB_1DATABASESPFILETEST.ORA

使用E:ORACLEPRODUCT10.2.0DB_1DATABASEINITTEST.ORA来启动db到nomount

4.之后重建controlfile,此时mirror就被加上了

5.SQL> create spfile='+DG1/TEST/spfileTEST.ora' from pfile;


文件已创建。

6.还原E:ORACLEPRODUCT10.2.0DB_1DATABASESPFILETEST.ORA

最后mirror controlfile成功,感觉略显麻烦,不知道是否有更简单的办法。


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html