oracle维护表空间和数据文件(四)
25 462.8125 5 95
SYSAUX 821.25 41.9375 5 95
SYSTEM 710 1.125 0 100
TEMP 27 0 0 100
12 :三种方法扩展表空间
方法一: 自动扩充表空间
三种方式:
1: create database 指定 datafile 的时候可以增加选项 AUTOEXTEND ON NEXT 10M MAXSIZE 500M 这样数据库文件就能自动增长。
2: create tablespace 这个AUTOEXTEND ON NEXT 10M MAXSIZE 500M 也可以用在create tablespace。
3:ALTER TABLESPACE ADD DATAFILE
下面用第三种方式做实验:(修改的表空间必须实现,这个my_)
[sql]
SQL> alter tablespace MY_SPACE add datafile 'D:\APP\TOPWQP\ORADATA\ORCL\mytemp
001.DBF' size 20M autoextend on next 10M maxsize 100M;
表空间已更改。
增加以后可以到 dba_data_files;表中看是否为自动增加:
[sql]
desc dba_data_files;
col file_name format a20;
select file_name , tablespace_name,autoextensible from dba_data_files;
[sql]
SQL> select file_name , tablespace_name,autoextensible from dba_data_files;
FILE_NAME TABLESPACE_NAME AUT
-------------------- ------------------ ---
D:\APP\TOPWQP\ORADAT USERS YES
A\ORCL\USERS01.DBF
D:\APP\TOPWQP\ORADAT UNDOTBS1 YES
A\ORCL\UNDOTBS01.DBF
D:\APP\TOPWQP\ORADAT SYSAUX YES
A\ORCL\SYSAUX01.DBF
D:\APP\TOPWQP\ORADAT SYSTEM YES
A\ORCL\SYSTEM01.DBF
D:\APP\TOPWQP\ORADAT EXAMPLE YES
A\ORCL\EXAMPLE01.DBF
D:\APP\TOPWQP\ORADAT MY_SPACE YES
A\ORCL\MY_SPACE.DBF
D:\APP\TOPWQP\ORADAT TS_MYDB YES
A\ORCL\TS_MYDB.DBF
D:\APP\TOPWQP\ORADAT PENG NO
A\ORCL\PENG01.DBF
D:\APP\TOPWQP\ORADAT MY_SPACE YES
A\ORCL\MYTEMP001.DBF
已选择9行。
可以看到 刚增加的数据文件 是否为自动增长 autoextensible 这个属性显示 ;
如果不想新增加 数据文件的方式扩展表空间,可以使用: 如下命令 对原来的数据文件设置为自动扩展来扩展表空间(道理一样)
[sql]
alter database datafile '数据文件位置+数据文件名' autoextend on next 10M maxsize 100M
方法二:重新定义表空间中的数据文件的大小
手工的让数据文件 变大变小:使已经存在的数据文件变大变小,
example:
ALTER DATABASE DATAFILE ' ' RESIZE 200M
[sql]
这个需要考虑当前需要改变的数据文件的大小。
col file_name format a40;
col tablespace_name format a15;
select file_name, tablespace_name,byte from dba_data_files;
注意临时表空间在: DBA_TEMP_FILES 这个表中去找。
先查询出,然后执行,修改数据文件大小,然后再次进行查询。
如果修改的大小小于真实的数据文件的大小,这样oracle就会报错。
方法三: 增加 数据文件 到 表空间。 这样表空间 就增加了。
alter tablespace my_temp add datafile ' ' SIZE 200M
如何移动DATAFILE:
方法一:
使用alter tablespace 命令:
做之前必须做两个工作:
1:让tablespace offline
2:目标数据文件必须存在。
命令:
首先让这个文件离线:
alter tablespace tablespace_name offline;
然后移动文件
然后 执行如下命令:
ALTER TABLESPACE tablespace_name RENAME DATAFILE ' ' TO ' ';
相当于指针重新进行了指向了;
然后把表空间上线:
alter tablespace tablespace_name online;
删除表空间:
1: SYSTEM 表空间 不能删除
2: 有一个 active segments 不能删除。
命令: DROP TABLESAPCE tablespace_name INCLUDING CONTENTS AND DATAFILES;
有三种可选项。
如上命令可以执行, 相应的表空间中的 datafile也被干掉了。