更改或删除Oracle表空间的数据文件
建立表空间后,可以指定该表空间由哪些数据文件组成。如:data01.ora,data02.ora,data03.ora。现要把data03.ora去掉(缩小表空间),并将...
建立表空间后,可以指定该表空间由哪些数据文件组成。
如:data01.ora,data02.ora,data03.ora。
现要把data03.ora去掉(缩小表空间),并将data02.ora改名成data2.ora,怎样操作? 展开
如:data01.ora,data02.ora,data03.ora。
现要把data03.ora去掉(缩小表空间),并将data02.ora改名成data2.ora,怎样操作? 展开
3个回答
展开全部
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授权才能创建表。
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授权才能创建表。
展开全部
你数据库版本是多少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 ‘绝对路径'
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 ‘绝对路径'
追问
如果有数据了,就不能删除了吧?
追答
YES
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
alter database rename datafile 'xxxxx/data02.ora' to 'xxxxx/data2.ora' 修改名字或移动数据文件位置
alter database datafile 'xxxxx/data03.ora' resize 100M 缩小数据文件大小
删除数据文件通常对于已经存在数据的情况你需要先把存在该数据文件里的数据转移后清空才能删除
alter database datafile 'xxxxx/data03.ora' resize 100M 缩小数据文件大小
删除数据文件通常对于已经存在数据的情况你需要先把存在该数据文件里的数据转移后清空才能删除
追问
alter tablespace zhzx resize datafile 'I:\ORACLE\PRODUCT\10.2.0\ORADATA\ME\DATA03.ORA' 500M;
确认该空间使用了小于100M的大小。但是这条语句报错:ORA-02237: 无效的文件大小。
追答
你要确认分配的extents的总共大小,只要extent被分配给表空间,系统就认为空间被使用
也就是说你要缩小文件的大小,就要确认该文件extent 分配了多大,然后通过,resize 收回未分配extent 的空间,或者收缩未使用的extent
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |