Oracle数据库表空间变更路径位置


前言

在单实例数据库中可能会遇到表空间文件本地存储空间不够放,如果添加了卷管理的可以对本地存储位置进行扩展,但没有的情况就需要迁移表空间到其他位置,今天就实际按理说一下具体操作,其实这里可以有两种这种情况的处理方法:
1、表空间不变更本地存储位置,新的dbf数据文件存放到新的位置上。
2、表空间整体迁移到新挂载的路径下


提示:以下是本篇文章正文内容,下面案例可供参考

一、数据库本地迁移

1.登录对应数据库

以下数据已脱敏

SQL>sqlplus / as sysdba

2.确认表空间以及要迁移的空间

[root@inlinkdb1 ~]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        3.7G     0  3.7G   0% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
tmpfs           3.7G  648K  3.7G   1% /run
tmpfs           3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/vda1        40G   12G   26G  33% /
tmpfs           756M     0  756M   0% /run/user/0
tmpfs           756M     0  756M   0% /run/user/1000
/dev/vdb1       689G  639G   16G  98% /oracle
/dev/vdb2       319G   13G  291G   5% /oracle2

如上所示/oracle目录已达到98%,现实现目标将/oracle目录的表空间迁移到/oracle2下

SQL> @/home/oracle/tbs

TABLESPACE_NAME 					     SUM_SPACE(M) SUM_BLOCKS USED_SPACE(M) USED_RATE(%) FREE_SPACE(M)
------------------------------------------------------------ ------------ ---------- ------------- ------------ -------------
SYSTEM								      350      44800	    340.06	  97.16 	 9.94
SYSAUX								     2350     300800	   2228.06	  94.81        121.94
***DATA 							    10240    1310720	   8833.75	  86.27       1406.25
USERS								 35071.25    4489120	  27328.37	  77.92       7742.88
WB_******							    10240    1310720	   7058.37	  68.93       3181.63
KETTLE_DATA							    61440    7864320	  29705.06	  48.35      31734.94
UNDOTBS1							     5770     738560	   2400.81	  41.61       3369.19
flexsche_data							    20480    2621440	   6667.19	  32.55      13812.81
****_DATA							     1024     131072	    144.87	  14.15        879.13
****_DATA							     3244     415232	    325.19	  10.02       2918.81
***_DATE							     1024     131072	      13.5	   1.32        1010.5

TABLESPACE_NAME 					     SUM_SPACE(M) SUM_BLOCKS USED_SPACE(M) USED_RATE(%) FREE_SPACE(M)
------------------------------------------------------------ ------------ ---------- ------------- ------------ -------------
****_DATA							     1024     131072	      9.87	    .96       1014.13
****_DATA							    10240    1310720	      4.12	    .04      10235.88
****_TEMP							     1024     131072			      0
****DATA_TEMP							     1024     131072			      0
TEMP								      795     101760			      0
****_TEMP							     1024     131072			      0
WB_****_TEMP						     1024     131072			      0
****_TEMP							     1024     131072			      0
****_TEMP							     1024     131072			      0
****_TEMP							     1024     131072			      0
KETTLE_TEMP							     3072     393216			      0

22 rows selected.

SQL> 

3.确认要迁移表空间位置

示例:USERS

SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME from dba_data_files where tablespace_name ='USERS';


FILE_NAME                                    FILE_ID TABLESPACE_NAME   
---------- ------------------------------  ---------- --------- ----
/oracle/app/oracle/oradata/****/users01.dbf     6       USERS          
/oracle/app/oracle/oradata/****/users02.dbf     7       USERS          

4.将表空间状态设为offline

SQL>alter tablespace USERS offline; 

Tablespace altered.

5.拷贝dbf数据文件到新路径

注:USERS现有所有dbf文件都要拷贝哦

[oracle@*****db1 ~]$  cp /oracle/app/oracle/oradata/****/users01.dbf /oracle2/datafile/******
[oracle@*****db1 ~]$  cp /oracle/app/oracle/oradata/****/users02.dbf /oracle2/datafile/******

6.数据库中修改表空间指向地址

SQL>alter database rename file '/oracle/app/oracle/oradata/****/users01.dbf' to '/oracle2/datafile/******/users01.dbf';

Database altered.
SQL>alter database rename file '/oracle/app/oracle/oradata/****/users02.dbf' to '/oracle2/datafile/******/users02.dbf';

Database altered.

7.表空间状态设为online

SQL> alter tablespace USERS online;

Tablespace altered. 

8.确认变更结果

SQL> select FILE_NAME,FILE_ID,TABLESPACE_NAME from dba_data_files where tablespace_name ='USERS';


FILE_NAME                               FILE_ID TABLESPACE_NAME   
---------- -------------------------  ---------- --------------
/oracle2/datafile/******/users01.dbf      6         USERS          
/oracle2/datafile/******/users02.dbf      7         USERS          

9.原路径位置删除dbf数据文件

[oracle@*****db1 ~]$  rm -rf /oracle/app/oracle/oradata/****/users01.dbf
[oracle@*****db1 ~]$  rm -rf /oracle/app/oracle/oradata/****/users02.dbf   
  • 4
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DBA狗剩儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值