事情的经过是这样的:
1、asm的+DATA空间告警了,通过resize一些dbf解除了告警。为了不让告警产生,我把新增的数据文件暂时放在了+FRA目录下面。表面上主库跑得很正常,但是大错就此铸成(历史书经常用这句话)
2、为什么说大错呢?主库的数据文件换了目录,DG库的spfile里面的db_file_name_convert没有这个转化,所以dbf无法创建成功。
3、归档文件一直传过来,但无法应用日志,所以接下来,开始出现新的告警:当归档使用空间达到设置总空间80%时,进行预警。只好通过ALTER SYSTEM SET db_recovery_file_dest_size='130G' SCOPE=BOTH;来解决。可能过了一段时间又继续告警,就继续增加。
4、加了三次,总感觉哪里不对劲。于是尝试去删除归档,出现看到了归档日志还未apply,无法删除(具体出错信息忘了截图了)。至于,原因已经找到了
尝试去主库修改db_file_name_convert:
文档里是这样的:alter system set db_file_name_convert='/u01/app/oracle/oradata/fsscdbadg','+DATA/fsscdb/datafile' sid='*' scope=spfile;
改成:
alter system set db_file_name_convert='/u01/app/oracle/oradata/fsscdbadg','+DATA/fsscdb/datafile','/u01/app/oracle/oradata/fsscdbadg','+FRA/fsscdb/datafile' sid='*' scope=both;
ORA-02096: 此选项的指定初始化参数不可修改
alter system set db_file_name_convert='/u01/app/oracle/oradata/fsscdbadg','+DATA/fsscdb/datafile','/u01/app/oracle/oradata/fsscdbadg','+FRA/fsscdb/datafile' sid='*' scope=spfile;
System alterd.
看来需要重启了。主库不敢动,先放着吧
备库:
1、备份spfilefsscdbadg.ora,修改里面的db_file_name_convert
2、shutdown immediate; startup mount; alter database open read only;
出现:ERROR at line 1:
ORA-10458: standby database requires recovery
ORA-01157: cannot identify/lock data file 94 - see DBWR trace file
ORA-01111: name for data file 94 is unknown - rename to correct file
ORA-01110: data file 94:
'/u01/app/oracle/product/11.2.0/dbhome_1/dbs/UNNAMED00094'

可是这个目录下,明明没有UNNAMED00094,各方百度,找到这个:http://blog.chinaunix.net/uid-20687159-id-5844098.html
ALTER SYSTEM SET db_file_name_convert='+DATA/fsscdb/datafile','/u01/app/oracle/oradata/fsscdbadg','+FRA/fsscdb/datafile','/u01/app/oracle/oradata/fsscdbadg','+DATA/fsscdb/tempfile','/u01/app/oracle/oradata/fsscdbadg' SCOPE=SPFILE;
shutdown immediate;
startup mount;
alter system set standby_file_management=manual;
alter database create datafile 94 as '/u01/app/oracle/oradata/fsscdbadg/tbs_fssc94.dbf'; --指定正确位置
alter system set standby_file_management=auto;
alter database open;
recover managed standby database using current logfile disconnect;
理论上这个操作是可以了,归档开始同步。

看着归档开始同步,整个石头都落地了!8月9号的,距离今天有6天了。
---------期间碰到一个插曲也纪录一下--------------
ALTER SYSTEM SET db_recovery_file_dest_size='160G' SCOPE=BOTH
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use
然后通过show parameter spfile查看,居然是空的。
alter system set spfile = '/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilefsscdbadg.ora';
不确定为什么spfile不见了,只能再次指定。




