3、Oracle表空间管理

表空间的管理类型:

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

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

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

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

 create tablespace temp001 datafile 'D:APPADMINISTRATORORADATAORCL emp001.DBF' size 100M autoextend on next 10M maxsize unlimited; 

1、修改表空间

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

alter tablespace temp001 add datafile 'D:APPADMINISTRATORORADATAORCL	emp002.DBF' size 50M;

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

alter database temp001 datafile 'D:APPADMINISTRATORORADATAORCL	emp002.DBF' resize 50M;

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

alter database datafile 'D:APPADMINISTRATORORADATAORCLusers01.DBF' autoextend on maxsize 3G;

alter database datafile 'D:APPADMINISTRATORORADATAORCLusers01.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:APPADMINISTRATORORADATAORCL', '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:APPADMINISTRATORORADATAORCL', '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:APPADMINISTRATORORADATAORCLLTOOLSTMP01.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:APPADMINISTRATORORADATAORCLLTOOLSTMP02.DBF' size 200M;

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

alter database tempfile 'D:APPADMINISTRATORORADATAORCLLTOOLSTMP02.DBF' resize 100M;

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

alter database tempfile 'D:APPADMINISTRATORORADATAORCLLTOOLSTMP02.DBF' offline;

alter database tempfile 'D:APPADMINISTRATORORADATAORCLLTOOLSTMP02.DBF' online;
  • 创建撤销表空间(undo)
create undo tablespace undotbs01 datafile 'D:APPADMINISTRATORORADATAORCLundotbs01.dbf' size 100M autoextend on;

1、修改撤销表空间

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

alter tablespace undotbs01 add datafile 'D:APPADMINISTRATORORADATAORCLundotbs02.dbf' size 10M autoextend on;

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

alter database datafile 'D:APPADMINISTRATORORADATAORCLundotbs02.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;
生命不息,折腾不止;不计后果,不问前程!
原文地址:https://www.cnblogs.com/jionjionyou/p/5500083.html