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

发布时间:2020-07-02 13:29:10 作者:DoveLauren
阅读:7637
开发者专用服务器限时活动,0元免费领! 查看>>

执行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只能在各自数据库使用自己的日志。

亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读:
  1. 知乎没有告诉你:年入百万有多难
  2. 从入门到精通真不难:Python最佳学习路线(视频学习教程)分享

开发者交流群:

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

ora-01516 ora- dat

上一篇:探索C++对象模型(二)

下一篇:8. 流程控制

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》
开发者交流群×