欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

移动Oracle表空间数据文件方案

程序员文章站 2024-01-27 11:52:10
...

方案一:移动常规表空间(非系统表空间)数据文件 /**************数据库服务器某个磁盘空间不足时移动常规表空间数据文件********

方案一:移动常规表空间(非系统表空间)数据文件

/**************数据库服务器某个磁盘空间不足时移动常规表空间数据文件*****************/

1、使用范围:该操作在数据库正常运行(open状态)的条件下进行,但不能移动系统表空间里面的数据文件

2、步骤(windows系统下的操作):

1>准备工作:

C:\ sqlplus/nolog

SQL>connect sys/qazwsxedc@实例名 as sysdba;

2>使表空间脱机:

SQL>alter tablespace TABS offline normal;

3>将表空间数据文件复制到比较空闲的磁盘:

例如:将D:\YAG_DB\ABS.ora 复制到E:\NEW\ABS.ora

4>执行alter tablespace rename datafile命令:

SQL>alter tablespace ABS rename datafile 'D:\YAG_DB\ABS.ora ' to 'E:\NEW\ABS.ora';

执行完,,会显示表空间已经更改(此命令的实际是修改控制文件中表空间数据文件的指针)

5>使表空间联机:

SQL>alter tablespace ABS online;

6>此时可删除D:\YAG_DB\ABS.ora

7>重启数据库:

SQL>shutdown immediate

SQL>startup

方案二:移动常系统表空间数据文件

/****************数据库服务器某个磁盘空间不足时移动系统表空间数据文件*****************/

1、使用范围:该操作在数据库处于mount 状态才能进行,可移动系统表空间的数据文件

2、步骤(Linux系统中的操作):

1># su - Oracle --切换到oracle用户下

2># sqlplus /nolog

3>SQL>conn sys/pwd as sysdba

4>SQL>shutdown immediate --数据库在启动状态时,先关闭

5>SQL>startup mount --将数据库启动为mount状态

6>将要移动的系统表空间数据文件复制到比较空闲的分区目录

eg:# mv /home/app/oracle/oradata/ORACLE_SID/system01.dbf /data/YAG_DB/ORACLE_SID

7>使用alter database rename file 命令

SQL>alter database rename file '/home/app/oracle/oradata/ORACLE_SID/system01.dbf' to '/data/YAG_DB/ORACLE_SID/system01.dbf';

8>打开数据库

SQL>alter databse open

9>检查系统表空间的文件路径是否正确

SQL>select file#,name,status From v$datafile; --system系统表空间的文件路径name应为刚刚更改的路径

Linux-6-64下安装Oracle 12C笔记

RHEL6.4_64安装单实例Oracle 12cR1

Oracle 12C新特性之翻页查询

解读 Oracle 12C 的 12 个新特性