更改或删除Oracle表空间的数据文件

2024-12-03 06:07:26
推荐回答(3个)
回答1:

1、创建用户表空间:
CREATE TABLESPACE test_data
//创建表空间test_data
LOGGING
DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST_DATA01.DBF'
//创建的数据文件
SIZE 32M
//初始大小
AUTOEXTEND ON
//数据文件自动扩容
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
2、删除表空间,同时删除数据文件:
drop tablespace test_data including contents and datafiles;
3、创建用户临时表空间:
CREATE TEMPORARY TABLESPACE test_temp
TEMPFILE 'D:\oracle\product\10.2.0\oradata\orcl\test_temp01.dbf'
SIZE 32M
AUTOEXTEND ON
NEXT 32M MAXSIZE 2048M
EXTENT MANAGEMENT LOCAL;
4、创建用户并指定表空间:
CREATE USER xiaoming IDENTIFIED BY xm123
//创建用户xiaoming,设置密码为xm123
DEFAULT TABLESPACE TEST_DATA
//指定默认表空间为test_data
TEMPORARY TABLESPACE TEST_TEMP;
//指定临时表空间为test_temp
指定默认表空间以后,用户xiaoming创建的表都在这个表空间下,除非额外指定;
当然,要给用户xiaoming授权才能创建表。

回答2:

你数据库版本是多少10G之前的我是无能为力,只能用非常笨重的方法,就是先EXP该表空间,然后删除重建,在IMP进去
10GR2的话
确认表空间有几个数据文件
select file_name,file_id from dba_data_files where tablespace_name='表空间名'
确认表空间未被存储占用:
select segment_name,file_id,blocks from dba_extents where file_id=表空间号;
--表空间号(select file#,name from v$datafile; )这么查
如果是没有查询结果说明你可以做下面的操作了
alter tablespace 表空间名 drop datafile ‘绝对路径'

回答3:

alter database rename datafile 'xxxxx/data02.ora' to 'xxxxx/data2.ora' 修改名字或移动数据文件位置
alter database datafile 'xxxxx/data03.ora' resize 100M 缩小数据文件大小
删除数据文件通常对于已经存在数据的情况你需要先把存在该数据文件里的数据转移后清空才能删除