一、前言
由于各种原因,在实际工作中可能会出现oracle服务器数据盘空间被占满的情况,这个时候单纯的添加新磁盘,后续表空间文件放新盘的方案已经不适用了,因为源盘已经占用满了,数据库服务会异常,且之前的表空间是自增长的,会一直顶死源盘),这个时候就必须得将这部分没到最大值的表空间文件一起迁移到新盘
二、实操
2.1、查看表空间情况
SELECT file_name, tablespace_name, status FROM dba_data_files
2.2、表空间下线
ALTER DATABASE DATAFILE '/opt/oracle/oradata/ORCLCDB/dzda01.dbf' OFFLINE;
2.3、表空间拷贝
cp -a -r /opt/oracle/oradata/ORCLCDB/dzda01.dbf /data/oracle/ORCLCDB/
2.4、修改表空间文件
ALTER DATABASE RENAME FILE '/opt/oracle/oradata/ORCLCDB/dzda01.dbf' TO '/data/oracle/ORCLCDB/dzda01.dbf';
2.5、表空间上线
ALTER DATABASE DATAFILE '/data/oracle/ORCLCDB/dzda01.dbf' ONLINE;
2.6、异常处理
# 停止数据库
SHUTDOWN IMMEDIATE;
# 启动数据库 挂起
STARTUP MOUNT;
# 修复
RECOVER DATAFILE '/data/oracle/ORCLCDB/dzda01.dbf';
# 打开数据库
ALTER DATABASE OPEN;
# 表空间上线,DZDA表空间
ALTER TABLESPACE DZDA ONLINE;
三、验证
3.1、数据库表空间插入数据
3.2、数据库表空间文件更新时间
3.3、数据库链接验证
四、结果
4.1、系统功能点击验证
4.2、系统功能是否正常
五、归档文件
5.1、归档情况查看
SHOW PARAMETER log_archive_dest_1;
5.2、当前生成归档文件
ALTER SYSTEM ARCHIVE LOG CURRENT;