首页 > Linux操作系统 > Linux操作系统 > 管理表空间,个人总结
表空间分类
1.system 表空间(数据库必须,数据字典,SYSTEM还原段,随数库据创建)
2.非SYSTEM表空间(用于分开存储段,易于空间管理,控制 分配给用户的空间量)
创建表空间命令
create tablespace ts01
datafile '/u01/oradata/SID/te01.dbf' size 100M
autoextend on next 10M maxsize 500M;
我们只用本地管理表空间
本地管理表空间
create tablespace ts01
datafile '/u01/oradata/SID/te01.dbf' size 100M
extent management local uniform. size 12k;
SYSTEM表空间是LOCAL MANAGEMENT 那么 其它的表空间肯定是LOCAL MANAGEMENT
UNDO TABLESPACE 还原表空间
1.用来存储还原(回退)段.
2.不能包含任何其它对象.
3.其中区要在本地管理.
4.只能用DATAFILE 和 EXTENT MANAGEMENT子句.
create undo tablespace ud01
datafile '/u01/oradata/SID/ud01.dbf' size 100M;
TEMPTABLESPACE 临时表空间
1.用来存储排序操作.
2.不能包含永久对象.
3.建议在本地管理
create temporary tablespace temp01
tempfile 'u01/oradata/SID/temp01.dbf' size 500M;
extent management local uniform. size 4M;
uniform. 指定 按照大小统一为SIZE字节数的各个区来管理表空间.
缺省的临时表空间
指定数据库范围内的缺省的临时表空间.
避免使用SYSTEM 表空间存储 临时数据.
可以使用以下命令进行创建.
1.CREATE DATABASE
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE 'u01/oradata/SID/temp01.bdf' size 400M;
2.先创建一个临时表空间
然后 改变数据库
ALTER DATABASE
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp01;
只读表空间
ALTER TABLESPACE temp read only;
导致检查点操作.
数据只用于读操作(没有COMMIT ROLLBACE的话数据库会HALT掉等他完成后 再进行数据库的修改)
可以从表空间删除对象. (只是改变数据字内而不够成亲的表空间的文件,避免更新位图 )
使临时表空间脱机.
不能脱机的表空间
1.SYSTEM表空间
2.缺省的临时表空间.
3.具有活动的还原段的表空间.
alter tablespace userdata offline;
作用:
1.使数据库一部分不可用,但允许正常访问正常的数据库部分,
2.执行脱 机表空间备分,
3.在数据库打开时恢复表空间或数据文件.
4.在数据库打开时移动数据文件.
alter tablespace userdata online;
查表空间用的情况的方法
DBA_DATA_FILES 查一共有 多少表空间 select sum(bytes) from DBA_DATA_FILES group by tablespace_name;
DBA_FREE_SPACE 查还有多少表空间没用 select sum(bytes) from DBA_FREE_SPACE group by tablespace_name;
调整表空间的大小
二种文式:
1.更改数据文件的大小.
使用AUTOEXTEND ON自动调整
使用ALTER DATABASE手动调整
2.使用 ALTER TABLESPACE 添加数据文件.
自动的:
使数据文件变成自动调整的方法
为新的数据文件指定AUTOEXTEND ON
1. CREATE DATABASE的时候
2. CREATE TABLESPACE temp datafile '/u01/oradata/SID/tmp.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
3. ALTER TABLESPACE temp datafile '/u01/oradata/SID/tmp.dbf' size 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;
修改旧的数据文件指定 AUTOEXTEND ON
4. ALTER DATABASE datafile '/u01/oradata/SID/tmp.dbf' AUTOEXTEND ON NEXT 10M MAXSIZE 500M; 这个不用size 100M了因为 这是已有的数据文件 已经设过了.
手动的:
ALTER DATABASE datafile '/u01/oradata/SID/tmp.dbf' resize 200M;
删除表空间:
不能删的:(这点与不能OFFLINE相似 但是少一个临时表空间)
1.SYSTEM表空间.
2.具有活动的还原段的表空间.
drop tablespace data01 including contents and datafiles;
重要:!!!记住在哪查TEMPFILE的信息 dba_temp_files; V$tempfile; (不是在DBA_DATA_FILES vDATAFILE中查)
管理表空间练习
create tablespace data01 datafile '/u01/oradata/ora9/data01.dbf'size 10M extent management local uniform. size 100k
create tablespace index01 datafile '/u01/oradata/ora9/index01.dbf'size 10M autoextend on next 500k maxsize 20m uniform. size 4k
查看表空间有多大
select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;
使表空间变大 在表空间中添加数据文件
alter tablespace data01 add datafile'/u01/oradata/ora9/data03.dbf' size 500k;
alter tablespace index01 rename datafile '/u01/oradata/ora9/index01.dbf' to '/u01/u06/oradata/ora9/index01.dbf'
重定向表空间数据文件.
1. alter tablespace index01 offline;
2. cp '/u01/oradata/ora9/index01.dbf' '/u01/u06/oradata/ora9/index01.dbf'
3. alter tablespace index01 rename datafile'/u01/oradata/ora9/index01.dbf' to '/u01/u06/oradata/ora9/index01.dbf'
4. alter tablespace index01 online;
create undo tablespace undo001 datafile'/u01/oradata/ora9.undo00101.dbf' size 10m;
create temporary tablespace temp001 tempfile '/u01/oradata/ora9/temp00101.dbf' size 100M uniform. size 128k;
查找数据文件是否自动扩展 select file_name,autoextensible from dba_data_files;
1. 三种方法创建自动扩展的数据文件(创建数据库.创建表空间,在表空间中添加数据文件)
alter tablespace data01 add datafile'/u01/oradata/ora9/data03.dbf' size 500k autoextend on next 10k maxsize 600k;
2.将已有的不自动扩展的数据文件 改成自动扩展的数据文件.
alter database datafile '/u01/oradata/ora9/data01.dbf' autoextend on next 100K maxsize 500k;
手动调整数据文件的大小
alter database datafile '/u01/oradata/ora9/data01.dbf' resize 5M;(当初我们设了10M 参考第一行)
但我们设成5M的时候没有报错 因为 我们没有用掉5M, 但如果我们改成极端值1K 会报错的.
如:
alter database datafile '/u01/oradata/ora9/data01.dbf' resize 1k
*
ERROR at line 1:
ORA-03214: File Size specified is smaller than minimum required
删除表空间:
drop tablespace index01 including contents and datafiles;
重要:!!!记住在哪查TEMPFILE的信息 dba_temp_files; V$tempfile; (不是在DBA_DATA_FILES vDATAFILE中查)
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23877751/viewspace-667621/ ,如需转载,请注明出处,否则将追究法律责任。