Oracle表空间设置和管理浅析
前言
表空间是 oracle 特有的一种逻辑结构,是管理和组织 oracle 数据文件一种方式,一个oracle 数据库能够有一个或多个表空间,而一个表空间则对应一个或多个物理的数据库文件。oracle 的表空间分为永久空间和临时表空间,同时又分为 smallfile tablespace和 bigfile tablespace。表空间管理是 oracle dba的一项重要日常工作。
今天小编就从永久表空间管理和临时表空间管理两个维度,详细介绍 oracle表空间管理的具体操作。
永久表空间管理
1.1 创建表空间
参数说明:
- extent management local autoallocate:区大小由系统自动分配。
- blocksize 8k:块大小为8k。
- segment space management auto:段管理是自动的。
- flashback on:开启闪回。
1.2 修改表空间
1、修改数据文件大小
sql> alter database datafile '/u01/app/oracle/oradata/tsh1/users01.dbf' resize 10m;
2、增加表空间数据文件
alter tablespace users add datafile '/u01/app/oracle/oradata/tsh1/users02.dbf' size 20m autoextend on next 1280k maxsize unlimited;
注:日常工作中建议通过增加数据文件的方式给表空间扩容,因为对于在线业务系统来说,通过修改数据文件大小的方式,对业务会产生一定的影响。
1.3 重命名表空间
1) 设置表空间脱机
sql> alter tablespace users offline normal;
2) 用一个操作系统实用程序重新命名此文件如unix的cp或mv,或者windows的copy命令
$cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf
3) 在数据文件在线之前使用以下命令重命名数据库中的数据文件
sql> alter tablespace users rename datafile '/u01/app/oracle/oradata/tsh1/users01.dbf' to '/u02/app/oracle/oradata/tsh1/users01.dbf'
4)设置表空间online
sql> alter tablespace users online ;
1.4 设置表空间只读
1) 设置表空间只读
sql> alter tablespace users read only;
2) 设置表空间再次可写
sql> alter tablespace users read write;
1.5 设置表空间脱机、联机
1)设置表空间脱机
sql> alter tablespace users offline normal;
2)设置表空间联机
sql> alter tablespace users online;
1.6 删除表空间
sql> drop tablespace users including contents and datafiles;
1.7 修改表空间为默认永久表空间
1)修改表空间为默认永久表空间
sql>alter database default tablespace users;
2)查询当前数据库默认的永久表空间
sql>select property_value from database_properties where property_name='default_permanent_tablespace';
临时表空间管理
2.1 创建临时表空间
sql> create temporary tablespace temp tempfile '/u01/app/oracle/oradata/tsh1/temp01.dbf' size 31m autoextend on next 640k maxsize unlimited extent management local uniform size 1m;
参数说明:
- extent management local uniform size 1m:区管理为本地管理,且区大小为1m。
2.2 修改临时表空间
sql> alter database tempfile '/u01/app/oracle/oradata/tsh1/temp01.dbf' resize 60m;
2.3 删除临时表空间
sql> drop tablespace temp including contents and datafiles;
2.4 临时表空间组管理
2.4.1 创建临时表空间组
sql> create temporary tablespace temp tempfile '/u01/app/oracle/oradata/tsh1/temp01.dbf' size 31m autoextend on next 640k maxsize unlimited tablespace group tmpgrp1;
说明:
增加一个名为tmpgrp1的临时表空间组。
2.4.2 给临时表空间组增加表空间
sql> alter tablespace temp02 tablespace group tmpgrp2;
2.4.3 将一个组设置为默认临时表空间
sql> alter database default temporary tablespace tmpgrp1;
表空间管理涉及的视图
为了管理oracle数据库的表空间,要熟悉几个关键的字典视图:
- dbadatafiles
- dba_tablespaces
- dbafreespace
- dba_segments
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。
上一篇: 深入了解IOC
下一篇: linux每日命令(3):ln命令