更改或删除Oracle表空间的数据文件
发布网友
发布时间:2022-04-07 19:20
我来回答
共4个回答
懂视网
时间:2022-04-07 23:42
Oracle更改表空间文件位置:
set oracle_sid=orcl;
sqlplus /nolog
conn sys/password as sysdba;
shutdown immediate;
复制(移动)数据文件至新路径
startup mount;
alter database rename file ‘c:oracle_data est_data01.dbf’ to ‘d:oracle_data est_data01.dbf‘;
alter database open;
进行检查测试!
Oracle更改表空间文件位置
标签:
热心网友
时间:2022-04-07 20:50
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\proct\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授权才能创建表。
热心网友
时间:2022-04-07 22:08
你数据库版本是多少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 ‘绝对路径'追问如果有数据了,就不能删除了吧?
追答YES
热心网友
时间:2022-04-07 23:42
alter database rename datafile 'xxxxx/data02.ora' to 'xxxxx/data2.ora' 修改名字或移动数据文件位置
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