Oacle数据库存储管理
在物理上,数据库中的数据存储在数据文件中,而在逻辑上数据库的数据存储在表空间中。通过使用表空间可以有效地部署不同类型的数据,加强数据管理,从而提高数据库的运行性能。
-
管理表空间
根据表空间对盘区的管理方式比较控件可以分为数据字典管理的表空间和本地化管理的表空间。要创建本地管理方式的表空间,可以在create tablespace语句中显示的使用extent management子句指定local关键字。
1.表空间的建立
本地管 理表空间中区的分配管理方式:使用extent management子句指定关键字AUTOALLOCATE 由Oracle负责对区的分配进行自动管理。默认的设置。UNIFORM 表空间中所有区都具有统一的大小。
本地管理表空间中段的存储管理方式:在创建本地管理方式的表空间中,除了需要选择去的分配管理方式外,还可以选择表空间中段的存储管理方式。段的存储管理主要是指Oracle用户管理对已用数据块和空闲数据库的机制。
在create tablespace语句中,可以使用segment space management子句来设置段的存储方式。
手动方式:使用segment space management manul可以将段的存储管理方式设置为手动方式,Oracle将使用可用列表来管理段中的空闲数据块。手动方式是默认的方式。
自动方式:使用segment space management auto子句来设置。Oracle将使用位图来管理已用数据快和空间数据块。Oracle通过位图中的单元的取值来判段段中的块是否可用。
2.件表空间的建立
一个大文件表空间对应一个单一的数据文件或者临时文件,但是文件可以达到四个G的数据块大小。
经历大文件表空间是使用create bigfile tablespace语句完成的需要注意当执行该语句建立大文件表空间时,不能使用segment space management manual子句,只能指定一个数据文件。
3.表空间的建立
通过在表空间中分配临时存储空间,Oracle能够使带有排序等操作的SQL语句获得更高的执行效率,在数据库中创建用户时必须为用户指定一个表空间作为临时表空间使用。该用户所生成的所有临时数据将存储在这个表空间中。
一个临时表空间可以被多个数据库用户共享使用。建立临时表空间是使用create temporary tablespace命令完成的。
-
维护表空间
1.表空间可用性
当建立留空间时,表空间集齐所有数据文件都处于online状态,此时该表空间及其数据文件都是可以访问的,再多表空间数据库中可以通过将某个表空间设置为脱机状态,是数据库的某部分暂时无法被用户访问。
设置表空间为脱机状态是可以使用如下四个参数来控制脱机方式Normal、temporary、Immediate、for recover
2.表空间读写状态
通过在alter table space语句中使用read only就是可以将表空间设置只读状态。
将表空间恢复为读写状态,是需要在alter table speeds语句中使用reader。哦reader write子就是将表空间恢复为读写状态。
- 改变表空间名称:在alter tablespace 子句中使用rename子句
- 设置默认表空间:使用alter database default tablespace语句可以设置数据库的默认表空间
- 删除表空间:删除表空间将使用drop tablespace,语句执行该语句的用户必须具有drop tablespace系统权限。
-
管理数据文件
数据文件在创建数据库或者表空间的是建立表空间创建后,dba可以根据需要为表空间添加新的数据文件,或者更改已有数据文件的大小、名称和位置。
为普通表空间添加新的数据文件,可以使用alter table space ….add datafile语句。执行该语句得用户必须具有alter tablespace系统权限。
设置数据文件为自动增长:建立表空间时,可以使用AUTOEXTEND指定数据文件是否为自动增长。MAXSIZE表示,当数据文件为自然增长是允许数据文件自然的最大限度。
改变数据文件可用性:使用alter database语句可以改变表空间中单独的数据文件的可用性,使用alter tablespace语句可以在改变表空间的所有数据文件的可用性。
-
管理UNDO表空间
UNDO表空间用于存放UNDO数据,当执行DML操作是Oracle会将这些操作旧数据写入到UNDO段。使用UNDO表空间管理UNDO数据
- 建立UNDO表空间:create UNDO tablespace …
- 修改UNDO表空间:
与普通表空间一样,可以通过alter tablespace语句对UNDO表空间进行修改。UNDO表空间的大部分设置都有Oracle本身自动管理,用户对撤销表空间可以执行的操作,有添加新的数据文件,移动数据文件,修改数据文件中的offline和online状态