共计 2302 个字符,预计需要花费 6 分钟才能阅读完成。
本篇内容介绍了“怎么解决 Oracle12c 中空格引发的 ORA-01516 问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
2019 年 1 月 29 日,zabbix 显示一个索引表空间告警,所以登录服务器查看:
10:02:22 SQL col file_name for a50
10:02:42 SQL select file_id,tablespace_name,file_name,bytes/1024/1024/1024 G from dba_data_files where tablespace_name= ts order by 1;
Enter value for ts: TBS_LOGIDX
old 1: select file_id,tablespace_name,file_name,bytes/1024/1024/1024 G from dba_data_files where tablespace_name= ts order by 1
new 1: select file_id,tablespace_name,file_name,bytes/1024/1024/1024 G from dba_data_files where tablespace_name= TBS_LOGIDX order by 1
FILE_ID TABLESPACE_NAME FILE_NAME G
———- ———————– ————————————————– ———-
2 TBS_LOGIDX /u01/app/oracle/oradata/DLOG/tbs_logix01.dbf 31.9999847
18 TBS_LOGIDX /u01/app/oracle/oradata/DLOG/tbs_logix02.dbf 31.9570313
19 TBS_LOGIDX /u01/app/oracle/oradata/DLOG/tbs_unvidx03.dbf 31.9570313
3 rows selected.
Elapsed: 00:00:00.01
一看就蒙了,之前不知道谁在加数据文件的时候,名字搞错了。万幸这是一套 12.2 的数据库,可以在线重命名数据文件,方法跟在线移动数据文件的位置一样,之前发过一篇博客简单介绍过:
http://blog.itpub.net/31480688/viewspace-2214095/
下面用这个方法修改一下数据文件名
10:05:03 SQL alter /*source only*/ database move datafile /u01/app/oracle/oradata/DLOG/tbs_unvidx03.dbf to /u01/app/oracle/oradata/DLOG/tbs_logix03.dbf
alter /*source only*/ database move datafile /u01/app/oracle/oradata/DLOG/tbs_unvidx03.dbf to /u01/app/oracle/oradata/DLOG/tbs_logix03.dbf
*
ERROR at line 1:
ORA-01516: nonexistent log file, data file, or temporary file /u01/app/oracle/oradata/DLOG/tbs_unvidx03.dbf in the current container
结果报数据文件不存在。操作系统文件检查文件是存在的
oracle@ORADB-14417: /u01/app/oracle/oradata/DLOG$ ls -lrt tbs_unvi*
-rw-r—– 1 oracle oinstall 1073750016 Jan 29 10:13 tbs_unvidx01.dbf
-rw-r—– 1 oracle oinstall 34313609216 Jan 29 10:13 tbs_unvidx03.dbf
查询 v$datafile 数据文件是存在的
10:07:29 SQL select name,status from v$datafile where file#=19;
NAME
——————–
STATUS
———————
/u01/app/oracle/oradata/DLOG/tbs_unvidx03.dbf
ONLINE
1 row selected.
Elapsed: 00:00:00.02
Oracle 数据库从来不是华山一条路,而是条条大路通罗马,解决方法也很简单,指定 file_id 也是可以的。
10:14:09 SQL alter /*source only*/ database move datafile 19 to /u01/app/oracle/oradata/DLOG/tbs_logix03.dbf
Database altered.
Elapsed: 00:11:41.37
通过 toad 可以看到此过程加的锁
时间上还是比较久的
最后在 CRT 里鼠标选中的时候发现了问题
“怎么解决 Oracle12c 中空格引发的 ORA-01516 问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!