背景
集群切换服务器IP地址,重启网络提示空间不足,经排查发现Oracle数据库数据存储在系统路径下,将空间占满,应是安装时配置错误导致,需修改路径腾出空间。
1. 修改系统表空间位置
1.1 查看表空间信息
select TABLESPACE_NAME,FILE_NAME from dba_data_files;
1.2 关闭数据库
SQL> shutdown immediate;
1.3 复制system表空间对应数据文件去新路径
cp /u01/app/oracle/oradata/orcl/system01.dbf /home/oracle/tablespace/
1.4 给新复制的文件修改为原文件所属用户和用户组
chown chown oracle.oinstall system01.dbf
1.5 以mount启动数据库
SQL> startup mount
1.6 修改system表空间对应数据文件去新路径
SQL> alter database rename file '/u01/app/oracle/oradata/orcl/system01.dbf' to '/home/oracle/tablespace/system01.dbf';
1.7 启动数据库
SQL> alter database open;
1.8 确认修改完成
select TABLESPACE_NAME,FILE_NAME from dba_data_files;
2. 修改非系统表空间位置(未实操)
2.1 查看表空间信息
select TABLESPACE_NAME,FILE_NAME from dba_data_files;
2.2 修改表空间为离线状态
alter tablespace EMR offline; //'EMR'修改为对应的表空间名称
2.3 复制表空间对应文件到新的位置
cp /opt/Oracle/11g/dbs/TS_PARTITION_000 /oradata/DTCDB/tbs/TS_PARTITION_000;
2.4 修改表空间数据文件路径
ALTER TABLESPACE TS_PARTITION_000 RENAME DATAFILE ‘/opt/oracle/11g/dbs/TS_PARTITION_000’ TO ‘/oradata/DTCDB/tbs/TS_PARTITION_000’; //猜测'TS_PARTITION_000' 修改为对应的表空间的名字
2.5 修改表空间为在线状态
ALTER TABLESPACE EMR ONLINE; //'EMR'修改为对应的表空间名称
2.6 删除表空间对应的原来的数据库文件
rm -rf /opt/oracle/11g/dbs/TS_PARTITION_000
2.7 确认修改后的表空间文件存储位置
select file_name from sys.dba_data_files;