本文共 2684 字,大约阅读时间需要 8 分钟。
今天创建了一些表空间,准备做data guard来看看效果。
为了方便起见,我用gridcontrol来做,主库也开了Omf,省去了好多步骤。
一路点下来,就等gc的那个状态变成对号了,结果装了近20分钟,alert日志开始报错。
******************** WARNING ***************************
alter system set encryption wallet open identified by oracle123;
然后行这次应该没问题了吧,第二遍
简单清理了一下,继续
但是过了一会,还是同样的错误,还是大红叉。
ORA-01516: nonexistent log file, datafile, or tempfile "/u01/app/oracle/oradata/disk_5/indx.dbf" (DBD ERROR: OCIStmtExecute)
然后我看到后台再反复重启有关共享服务器的进程,我想是不是也有一定的影响,
我先没关共享。看看这个数据文件先,
来到相应的目录
[oracle@oel1 disk_5]$ cd indx.dbf
奇怪的事情就发生了,我是眼睁睁的看着那个文件,但是就是ll不出来,
我想这还蹊跷,如果是drop tablespace xxx 没有including contents and datafiles cascade constraint 可能数据文件还不会立即删除,会保留相应的句柄,但是这个表空间我没做drop操作啊。
我查了下状态
SQL> select tablespace_name,status from dba_data_files;
TABLESPACE_NAME STATUSINDX AVAILABLE
查看datafile也看不出什么蹊跷。
可能是什么其他的地方吧。
我用如下的sql导处数据文件的状态。
select f.tablespace_name||'|'||f.file_name||'|'||f.autoextensible||'|'||f.bytes/1024/1024||'M' ||'|'|| t.initial_extent||'|'||t.next_extent||'|'||t.extent_management||'|'||t.segment_space_management||'|'||t.bigfile from dba_tablespaces t,dba_data_files f where t.tablespace_name=f.tablespace_name;
结果如下:
TBS1|/u01/app/oracle/oradata/disk_1/tbs01.dbf|NO|5M|1048576|1048576|LOCAL|AUTO|N
SYSAUX|/u01/app/oracle/oradata/disk_4/sysaux01.dbf|NO|325M|65536||LOCAL|AUTO|NO
SYSTEM|/u01/app/oracle/oradata/disk_4/system01.dbf|NO|325M|65536||LOCAL|MANUAL|NO
EXAMPLE|/u01/app/oracle/oradata/disk_5/example.dbf|YES|400M|1048576|1048576|LOCAL|AUTO|NO
INDX|/u01/app/oracle/oradata/disk_5/indx.dbf |NO|40M|65536||LOCAL|AUTO|NO
最后一行的 indx.dbf后面还有个空格,原来是这个文件导致的!!!
我有个好习惯,之前执行的语句都保留了下来,一翻,验证了我的想法。
create tablespace example datafile '/u01/app/oracle/oradata/disk_5/example.dbf' size 400M autoextend on maxsize 4g extent management local uniform. size 1M;
create tablespace indx datafile '/u01/app/oracle/oradata/disk_5/indx.dbf 'size 40M;
接下来该处理这个问题了。
10--文件号是10
SQL> alter database datafile 10 offline;
Database altered.
SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf ' to '/u01/app/oracle/oradata/disk_5/indx.dbf'
貌似我写的文件空格不够标准???
SQL> select '|'||file_name||'|' from dba_data_files where file_id=10;
'|'||FILE_NAME||'|'
SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf 'to '/u01/app/oracle/oradata/disk_5/indx.dbf1';
还是不行,晕了,这个问题还真是费劲啊。
这样做,
[oracle@oel1 disk_5]$ ll[oracle@oel1 disk_5]$ mv indx* indx.dbf1
SQL> alter database datafile 10 offline;
Database altered.
SQL> alter database rename file '/u01/app/oracle/oradata/disk_5/indx.dbf ' to '/u01/app/oracle/oradata/disk_5/indx.dbf1'
Database altered.
第5遍开始做dg
这次很快。中途抛了几个ORA错误提提神,影响不啊,最后终于看到了一个对号。
查看后台,正常了。
MRP0: Background Managed Standby Recovery process started (STDBY)
转载地址:https://jeanron100.blog.csdn.net/article/details/102506238 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!