以前一直使用默认的rpm安装,创建PDB数据库是不会有这样的问题。
但是RPM安装的oracle所有信息都保存在opt/oracle目录下,这会导致系统盘空间不足。
于是,把opt/oracle/oradata目录下的数据文件,redo等文件全部移到数据盘。
移动的时候,是在cdb环境下操作的,一切正常。
但是在重新创建信息的pdb数据库的时候,就报错了,报错:
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file ORA-01110: data file 6: '/opt/oracle/oradata/ORCLCDB/pdbseed/temp01.dbf'
我知道这个文件没有了。因为我已经移走了,但是通过:
select name from v$datafile
看到的文件路径都是更改后的,后来想起,我是在CDB操作的,而创建PDB的时候,是会使用默认的PDB来做克隆的(之前不知道)。
于是,切换到PDB里面,把临时文件的指向改到新地址就可以愉快的创建PDB了。
具体操作如下:
[#zeyu#]
#打开PDB数据库 alter pluggable database ORCLPDB1 open;
#把PDB数据库启动为restricted 模式 alter pluggable database ORCLPDB1 close immediate instances=all; alter pluggable database ORCLPDB1 open read write restricted;
#查看临时表空间 select file_name,tablespace_name from dba_temp_files; #修改临时表空间地址(to后面的地址为你的实际地址,请修改) alter database rename file '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/temp01.dbf' to '/data/oradata/ORCLCDB/ORCLPDB1/temp01.dbf'; #这句是修改默认字符集,12c以后默认都是Utf8,不修改字符集,可以跳过下面这一句 alter database character set internal_use zhs16gbk; alter pluggable database ORCLPDB1 close immediate; #启动pdb确认 alter pluggable database ORCLPDB1 open instances=all; #切换到cdb,保存PDB的信息 alter session set container=CDB$ROOT; alter pluggable database all save state;
[/#zeyu#]
至此,修改默认ORCLPDB的操作就完成了,下面就是创建新的PDB数据库,从默认PDB克隆创建。
create pluggable database newpdb from ORCLPDB1;
创建完成后,进入PDB就可以创建用户,表空间等其他操作了。
------------正 文 已 结 束, 感 谢 您 的 阅 读 (折雨的天空)--------------------
转载请注明本文标题和链接:《Oracle 19c在create pluggable database的时候出现错误:ORA-01276: Cannot add file》
发表评论