3、Oracle表空间管理

表空间的管理类型:

  • 数据字段管理的表空间(DMT
  • 本地化管理的表空间(LMT

查询表空间是否是本地化管理方式,可以使用以下语句:

创建表空间,oracle将完成两个工作,一个在数据字典控制文件,记录新建表空间的信息;另一个是在操作系统中创建指定大小的操作系统文件

 

 

  • 创建表空间(永久表空间permanent)

 create tablespace temp001 datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\temp001.DBF' size 100M autoextend on next 10M maxsize unlimited; 

1、修改表空间

-----(1).为【表空间】增加新的数据文件:

alter tablespace temp001 add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\temp002.DBF' size 50M;

-----(2).修改【数据文件】大小:

alter database temp001 datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\temp002.DBF' resize 50M;

 

-----(3).修改【数据文件】的自动扩展属性

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\users01.DBF' autoextend on maxsize 3G;

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\users01.DBF' autoextend off;

 

-----(4).修改【表空间】的状态offline离线、online在线、read only只读、read write读写

alter tablespace zl9BloodData offline;

alter tablespace zl9BloodData online;

 

-----(5).移动【数据文件】操作步骤:

------1.修改表空间为offline状态;

------2.复制数据文件到目标磁盘;

------3.使用alter tablespace rename语句修改数据文件的名称;

------4.将表空间的状态修改为online状态。

 

************************************************【生成SQL批量处理数据文件移动磁盘--WINDOWS环境下】************************************************

--前提条件开启归档模式

--archive log list;

-- 确定数据文件躲在表空间,【使表空间文件脱机】

select 'alter tablespace '|| TABLESPACE_NAME||' offline;' from dba_data_files;

 

--host move命令移动数据文件到目标位置

1 select 'host move ' || FILE_NAME || ' ' || REPLACE(FILE_NAME, 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\', 'E:\ORCL\') || ';'
2   from dba_data_files;

 

--③重命名表空间位置

1 select 'alter tablespace ' || TABLESPACE_NAME || ' rename datafile ' || chr(39) || FILE_NAME || chr(39) || ' to ' || chr(39) ||
2        REPLACE(FILE_NAME, 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\', 'E:\ORCL\') || chr(39) || ';'
3   from dba_data_files;

 

--④使表空间文件在线

select 'alter tablespace '||TABLESPACE_NAME||' offline;' from dba_data_files;

********************************************************************************************************************************************

 

2、删除表空间

drop tablespace temp001 including contents and datafiles;

 

 

 

  • 创建临时表空间(temporary)
create temporary tablespace ZLTOOLSTMP tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZLTOOLSTMP01.DBF' size 100M autoextend on next 10M maxsize 800M extent management local;

 

-----注:1、主要用来为排序汇总等操作提供临时的工作空间;

---------2、只能用于存储临时数据,不能存储永久性数据,例如不能创建表对象;

---------3、数据字典V$tempfile;

select * from v$tempfile;

---------4、盘区管理方式都是UNIFORM

----(1).为【临时表空间】添加数据文件

alter tablespace ZLTOOLSTMP add tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZLTOOLSTMP02.DBF' size 200M;

 

----(2).修改【临时文件】的大小

alter database tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZLTOOLSTMP02.DBF' resize 100M;

 

----(3).修改【临时文件】的状态

alter database tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZLTOOLSTMP02.DBF' offline;

alter database tempfile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\ZLTOOLSTMP02.DBF' online;

 

 

  • 创建撤销表空间(undo)
create undo tablespace undotbs01 datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\undotbs01.dbf' size 100M autoextend on;

 

1、修改撤销表空间

-----(1).为【撤销表空间】增加新的数据文件:

alter tablespace undotbs01 add datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\undotbs02.dbf' size 10M autoextend on;

 

-----(2).修改【撤销数据文件】的大小:

alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\undotbs02.dbf' resize 50M;

 

----(3).修改【撤销表空间】的状态:

alter tablespace undotbs01 offline;

 

 

2、删除撤销表空间

drop tablespace undotbs01 including contents and datafiles;

 

 

3、切换撤销表空间

alter system set undo_tablespace = undotbs02;

 

 

----【重要参数】撤销表空间

show parameter undo;

Undo_management参数:表示自动管理方式;

Undo_tablespace参数:指定当前使用的撤销表空间;

Undo_retention参数:设置撤销数据的保留时间,即用户事务结束后,在撤销表空间中保留撤销记录的时间。单位是s,默认值是900,即15min

----修改撤销记录保留的时间

Alter system set undo_retention = 600;

Select * from v$undostat;

 

posted @ 2016-05-17 00:08  囧囧友  阅读(342)  评论(0编辑  收藏  举报