oracle dg库数据文件空间不足

来源:这里教程网 时间:2026-03-03 19:26:06 作者:
dg库磁盘空间不足,但是其他目录还有空间处理办法,如果该实例数据量不大,可以直接从新搭建即可,但是如果实例数据很大,尽量还是修复下;
方法1:
当还有可用空间的时候,此时dg库还在正常运作,这个时候可以使用此方法:
1、把主库所有可以扩展的数据文件关闭自动扩展;
2、修改dg库参数:
在dataguard的配置中,db_file_name_convert是比较常用的参数。
如果备库中参数db_create_file_dest未设置,则数据文件路径转换是由参数db_file_name_convert决定;
当参数db_file_name_convert和db_create_file_dest都设置时,则只有db_create_file_dest生效。db_create_file_dest的优先级要高于db_file_name_convert。同样在ADG搭建时,如果设置了db_create_file_dest,则db_file_name_convert同样不生效。
同时,如果db_create_file_dest设置为+DATA1,那么无法在其他磁盘组(如+DATA2)创建数据文件,如:
alter tablespace TEST add datafile '+DATA2'size 31G;
则无法成功。
综上:
1)你可以直接修改从库的参数db_create_file_dest来改变以后新添加的数据文件目录,但是此时新文件的名字就给主库名字不一样了!
SQL> alter system set  db_create_file_dest="/opt/app/oracle/archivelog/PSRACDBG/datafile/";
System altered.
2)不设置db_create_file_dest参数,单独修改db_file_name_convert参数来改变新文件在dg库的目录;注意最后的要带'/';  注意此参数需要重启数据库!
alter system  set  db_file_name_convert  =  '+DATADG/psdb/datafile/', '/opt/app/oracle/archivelog/PSRACDBG/datafile/', '+DATADG/psdb/', '/opt/app/oracle/archivelog/PSRACDBG/datafile/';
方法2:(经测试软连接的方式适用于oracle所有的数据文件,包括system表空间)
可以通过做软连接的方式把文件先移动到别的目录,当dg库磁盘一点都没有的时候,只能使用这个
1、关闭数据库
shu immediate
2、把文件cp到目标新目录下
cp   /data/datafile/datafile.dbf    /data2/datafile/datafile.dbf
3、把原路径的文件重命名
mv  /data/datafile/datafile.dbf  /data/datafile/datafile.dbf_bak
4、做软连接(注意位置先源端后目标端)
ln -s /data2/datafile/datafile.dbf  /data/datafile/
5、启动数据库,如果可以正常启动再把原来文件删除
startup
6、如果可以正常启动,做几次checkpoint没问题,就可以删除原来的文件
rm   /data/datafile/datafile.dbf
总结:如果dg库存放数据文件的目录空间吃紧,需要更换数据文件目录的时候,建议直接修改参数db_create_file_dest即可,最简单便捷!

相关推荐