Linux下用rpm安装的oracle,其表空间默认在/opt/oracle目录下,但是大多数Linux服务器的系统盘只有100G或者50G,那么用一段时间以后,就会出现磁盘空间不足的问题。
就算是你把pdb等其他自己新建的库的dbf文件指向了非系统盘,但oracle系统自己的system和sysaux表空间也会持续增加,直到磁盘装不下。
于是,不得不迁移表空间文件。网上大多数文章都说sysaux表空间无法迁移,经验证18c是可以迁移的。
迁移的方法参考:
https://www.cnblogs.com/skyay/p/7271444.html
里面写了两种方法,由于我是迁移系统表空间,system和sysaux的文件,无法Offline表空间,于是只能用第二种方法。
步骤:
shutdown immediate;
//启动到mount状态下
startup mount;
sqlplus /nolog
conn as sysdba
//重命名文件,特别注意,这里网上文章说Linux下,会自动复制文件,但实践证明不会,这里会报标题错误,提示文件不存在,因此需要手动复制或者移动文件到to后面的路径下。记得备份好文件哟。
alter database rename file '/opt/oracle/oradata/ORCLCDB/system01.dbf' to '/data/oradata/system/system01.dbf';
alter database rename file '/opt/oracle/oradata/ORCLCDB/sysaux01.dbf' to '/data/oradata/system/sysaux01.dbf';
//rename成功后,打开数据库
alter database open;
标题的报错,就是因为需要手动把文件移动到目标位置。