由于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