ORACLE如何修改用户表空间

本文详细介绍了如何在Oracle数据库中修改用户表空间,包括增加表空间尺寸、扩大文件大小、移动表空间数据文件、合并空闲块、删除表空间等操作。同时提供了检查表空间使用情况和调整表空间容量的实用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述:
  
ORACLE如何修改用户表空间
产生原因:需要对用户表空间进行修改
解决方法:
  
  软件在建立帐套时,表空间使用了默认设定,表空间可以自动增加。如果用户为了提升速度进行了优化,关闭了此选项,则在年结前也应该检查一下表空间的使用情况,如果已经使用空间小于剩余空间,也应该进行扩充。
查看表空间使用情况:
SELECT * FROM DBA_FREE_SPACE

举例:
在实际操作中请根据实际数据库路径等信息作适当的调整,切记不可生搬硬套!
另外,请在调整之前,对oracle 作一全备份!

假设表空间名称为GS_ORADB_001,数据文件‘C:\ORADATA\GS_ORADB_001.DBF',
索引表空间名称为GS_ORADB_IDX_001,数据文件‘C:\ORADATA\GS_ORADB_IDX_001.DBF'

ORACLE8i:
首先在DOS命令行方式中执行
C:\>SVRMGRL

SVRMGRL>CONNECT INTERNAL
SVRMGRL>SHUTDOWN
SVRMGRL>STARTUP MOUNT

ORACLE9i:
首先在DOS命令行方式中执行
C:\>SQLPLUS /NOLOG

SQL>CONNECT / AS SYSDBA
SQL >SHUTDOWN
SQL >STARTUP MOUNT

1、增加表空间尺寸
增加一个数据文件:
SQL>ALTER TABLESPACE GS_ORADB_001 ADD DATAFILE ‘C:\ORADATA\GS_ORADB_ADD_001.DBF' SIZE 500M; 
2、扩大原有文件大小:
SQL>ALTER DATABASE DATAFILE ‘C:\ORADATA\GS_ORADB_001.DBF' RESIZE 1000M; 
3、移动表空间数据文件
假如要求将C:\ORADATA 下GS_ORADB_001.DBF移至D:\ORADATA 下,并把文件名改为GS_ORADB_ALT_001.DBF
步骤:
3.1、将实例处于关闭状态
首先在DOS命令行方式中执行(ORACLE9i)
C:\>SQLPLUS /NOLOG

SQL>CONNECT / AS SYSDBA
SQL >SHUTDOWN
SQL >STARTUP MOUNT

3.2、把数据文件C:\ORADATA 下GS_ORADB_001.DBF移动到D:\ORADATA下,并把文件名改为GS_ORADB_ALT_001.DBF
3.3、再到SQLPLUS 环境中
SQL>ALTER DATABASE RENAME FILE ‘C:\ORADATA\GS_ORADB_001.DBF' TO ‘D:\ORADATA\GS_ORADB_ALT_001.DBFF'; 

SQL>ALTER TABLESPACE GS_ORADB_001 RENAME DATAFILE ‘C:\ORADATA\GS_ORADB_001.DBF' TO ‘D:\ORADATA\GS_ORADB_ALT_001.DBFF'; 

SQL>ALTER DATABASE OPEN; 

4、查看剩余空间
SQL>SELECT TABLESPACE_NAME,SUM(BYTES),MAX(BYTES) FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME; 
注意:空闲数据块总和sum(bytes) 够用并不意味每个空闲块都满足分配需要,所以当表空间不够分配扩展块的时候,还要查看最大空闲数据块max(bytes)的大小。

5、合并空闲块
如果表空间上的数据对象经常发生类似drop-create 的变动,加之未采用统一的扩展块尺寸,使那些采用较大扩展块的数据对象不能利用较小的空间碎片,造成空间浪费。可通过将较小的空闲块合并成较大的空闲块的方法,减少空间浪费。
SQL>ALTER TABLESPACE GS_ORADB_001 COALESCE;

6、删除表空间
删除表空间及其包含的所有数据
SQL>DROP TABLESPACE GS_ORADB_001 INCLUDING CONTENTS;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值