■创建数据文件的SQL语句及说明
CREATE TABLESPACE 创建一个表空间和组成它的数据文件
CREATE TEMPORARY TABLESPACE 创建一个临时表空间和组成它的临时数据文件(临时数据文件
是一种特殊类型的数据文件)
ALTER TABLESPACE ... ADD DATAFILE 创建并添加一个数据文件到表空间
ALTER TABLESPACE ... ADD TEMPFILE 创建并添加一个临时数据文件到临时表空间
CREATE DATABASE 创建一个数据库和关联的数据文件
■创建表空间
SQL> create tablespace myts04
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf' size 2m
3 autoextend on
4 next 1m
5 maxsize 5m
■向空间里添加数据文件并指定自动增长方式
SQL> alter tablespace myts02
2 add datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' size 4m
3 AUTOEXTEND ON
4 NEXT 4K
5 MAXSIZE 5M;
■更改原有数据文件为自动增长方式
SQL> ALTER DATABASE
2 DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf'
3 AUTOEXTEND ON
4 NEXT 2K
5 MAXSIZE 5M;
■取消自动增长方式
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_3.dbf'
3 autoextend off;
■改变原数据文件大小
SQL> alter database
2 DATAFILE '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' resize 5m;
也可以利用RESIZE子句来缩小数据文件,不过必须保证缩小后的数据文件足够容纳其中已有的数据
■在ARCHIVELOG模式下使数据文件脱胎机
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline;
■在NOARCHIVELOG模式中使数据文件脱机
要注意,这会使数据文件脱机并立即删除它,所以,很可能导致丢失数据文件,这种方法一般只用于临时表空间
的临时数据文件.
SQL> alter database
2 datafile '/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_2.dbf' offline drop;
在这之后,如果要使数据文件联机,必须进行介质恢复,否则会有错误提示.
■修改表空间中所有数据文件的可用性
ALTER TABLESPACE ... DATAFILE { ONLINE | OFFLINE }
ALTER TABLESPACE ... TEMPFILE { ONLINE | OFFLINE }
表空间本身的联机或脱机状态不改变()
■修改整个表空间的可用性
ALTER TABLESPACE ... { ONLINE | OFFLINE }
■同一个表空间的数据文件的重命名
当改变数据文件的位置和名称时,Oracle只是在控制文件和数据字典中改变了数据文件的指针,并没有物理
地创建新的数据文件,也没有重定位和重命名任何操作系统文件.DBA必须自己在操作系统层复制文件,并重
定位或重命名数据文件.
SETUP1 SQL> alter tablespace myts04 offline normal;
将表空间设置为脱机状态是为了关闭该表空间中所有的数据文件,以便在停止数据库服务时不会造成
数据出现问题
SETUP2 SQL> shutdown immediate
如果不停止数据库服务就重命名数据文件,会出现错误提示.
SETUP3 将数据文件myts04_1.dbf重新命名为myts04_01.dbf、myts04_2.dbf重新命名为myts04_02.dbf
SETUP4 SQL> startup
SETUP5 SQL> alter tablespace myts02
rename datafile
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_1.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_2.dbf'
to
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_01.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts04_02.dbf';
SETUP6 SQL> alter tablespace myts04 online;
■多个表空间的数据文件的重定位和重命名
SETUP1 SQL> alter tablespace myts01 offline normal;
SQL> alter tablespace myts02 offline normal;
SETUP2 SQL> shutdown immediate
SETUP3 将myts01表空间的数据文件myts01_1.dbf重新命名为myts01_01.dbf、
将myts02表空间的数据文件myts02_1.dbf重新命名为myts02_01.dbf、
SETUP4 SQL> startup
SETUP5 SQL> alter database
rename file
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_1.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_1.dbf'
to
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts01_01.dbf',
'/export/home/opt/product/10.1.0.3.0/oradata/ldfsys/myts02_01.dbf';
SETUP6 SQL> alter tablespace myts01 online;
alter tablespace myts02 online;
■查询数据文件信息
DBA_DATA_FILES
DBA_TEMP_FILES
DBA_EXTENTS
USER_EXTENTS
DBA_FREE_SPACE
USER_FREE_SPACE
V$DATAFILE
V$DATAFILE_HEADER
■查看数据文件与表空间
SELECT f.tablespace_name "表空间",
Decode(d.EXTENT_MANAGEMENT,'DICTIONARY','字典','本地') "表空间类型",
TRUNC(SUM(f.bytes/1024000),2 ) || 'MB' "自由空间",
MIN(f.bytes) "最小字节", MAX(f.bytes) "最大字节",
AVG(f.bytes) "平均字节",COUNT(f.tablespace_name) "分布在"
FROM dba_free_space f, dba_tablespaces d
Where f.tablespace_name = d.tablespace_name
GROUP BY f.tablespace_name ,d.EXTENT_MANAGEMENT