折雨的天空
Oracle 19c在create pluggable database的时候出现错误:ORA-01276: Cannot add file
2021-10-4 我好笨


以前一直使用默认的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就可以创建用户,表空间等其他操作了。













发表评论:
昵称

邮件地址 (选填)

个人主页 (选填)

内容