Oracle表空间迁移

背景

集群切换服务器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;

你可能感兴趣的:(Oracle表空间迁移)