Oracle 12c ORA-01516: nonexistent log file, data file, or temporary f
类别:Oracle数据库 作者:码皇 来源:DoveLauren 的BLOG 点击:
执行alter database move操作报错ORA-01516:SQL> alter database move datafile & 39; u01 app oracle oradata cdb pdb pdb_users01 dbf& 39; to & 39; u01 app pdb_user01 dbf& 39;;alter database
执行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 151601516, 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.dbf5.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 NO3 PDB READ WRITE NOSQL> 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只能在各自数据库使用自己的日志。
相关热词搜索: