频道栏目
首页 > 资讯 > Oracle > 正文

Oracle 12c ORA-01516: nonexistent log file, data file, or temporary file "10"

15-12-09        来源:[db:作者]  
收藏   我要投稿
执行alter database move操作报错ORA-01516:
SQL> alter database move datafile '/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf' to '/u01/app/pdb_user01.dbf';
alter database move datafile '/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf' to '/u01/app/pdb_user01.dbf'
*
ERROR at line 1:
ORA-01516: nonexistent log file, data file, or temporary file "10"
 
 
[oracle@ora12c ~]$ oerr ora 1516
01516, 00000, "nonexistent log file, data file, or temporary file \"%s\""
// *Cause:  An attempt was made to use ALTER DATABASE to rename
//          a log file, data file, or temporary file; or to change attributes
//          of a data file or temporary file (for example, resize, autoextend,
//          online or offline); or to re-create or move a data file.
//          The attempt failed because the specified file
//          is not known to the database's control file
//          or is not of a type supported by the request.
// *Action: Specify the name or number of an existing file
//          of the correct type, as appropriate.
//          Check the relevant V$ table for a list of possible files.
 
查看file 10是否存在:
 
[oracle@ora12c backup]$ du -sh /u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf
5.1M/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf
 
文件10存在。
 
这个时候想到log file、temporary file难道只能在con_name为自己数据库可用?带着疑问做测试。
 
SQL> show con_name
 
CON_NAME
------------------------------
CDB$ROOT
 
首先用alter pluggable database move命令来看看是否在CDB数据库中能否一定PDB文件。
SQL> alter pluggable database move datafile '/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf' to  '/u01/app/pdb_user01.dbf' ;
 
alter pluggable database move datafile '/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf' to  '/u01/app/pdb_user01.dbf' ;
 
                                                                                          *
ERROR at line 1:
ORA-01916: keyword ONLINE, OFFLINE, RESIZE, AUTOEXTEND or END/DROP expected
 
显然,在CDB中不支持alter pluggable database move命令
 
接下来在pdb中执行alter pluggable database move操作
SQL> show pdbs        
 
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB  READ WRITE NO
SQL> alter session set container=pdb;
 
Session altered.
 
SQL> alter database move datafile '/u01/app/oracle/oradata/cdb/pdb/pdb_users01.dbf' to '/u01/app/pdb_user01.dbf';
 
Database altered.
 
 
SQL> select name,status from v$datafile where file#=10;
 
NAME                                                                             STATUS
-------------------------------------------------------------------------------- -------
/u01/app/pdb_user01.dbf                                                          ONLINE
 
成功!
 
总结:尽管oracle 12c日志文件共享,但是cdb和各个pdb只能在各自数据库使用自己的日志。
相关TAG标签
上一篇:MySQL 日志之--慢查询日志(slow-query-log)
下一篇:ORACLE RAC的crsd.log频繁的出现警告处理
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站