目录
一、建立表空间(本地管理方式)
1.1普通表空间
1.2大文件表空间
1.3临时表空间(处理排序sql等产生的临时数据)
二、维护表空间
2.1脱机/联机表空间
2.2改变读写状态
2.3改名称
2.4设置默认表空间
2.5删除表空间
三、管理数据文件
3.1数据文件管理策略
3.2改变表空间的数据文件
四、UNDO表空间
4.1UNDO表空间
4.2UNDO参数
4.3建立UNDO表空间
create tablespace tablespace_name
datafile '路径' size 50M
[autoextend on
next xxm
maxsize xxxm]
(blocksize 16k) --此处可选,用于创建一个非标准块(数据块)的表空间。
extent management local [autoallocate|uniform size 512k]
segment space management [manual|auto];
autoallocate:对区进行自动管理。默认
unifrom:所有区具有相同的大小。
manual:手动方式,以可用列表的方式管理段中的已用数据块和空闲数据块。默认
auto:自动方式,以位图来管理已用数据块和空闲数据块。(此时将忽略pctfree、pcfused等参数的设置)
create bigfile tablespace tablespace_name datafile 'd:\XXX\yyy.dbf' size 10m;
create temporary tablespace tablespace_name
tempfile '路径' size 50
[autoextend on
next xxm
maxsize xxxm]
extent management local uniform size 512k; --临时表空间使用tempfile,其不能指定autoallocate。
(tablespace group group_name) --添加词句可隐士创建临时表空间组。
alter tablespace temp01 tablespace group gourp2;--用修改方式添加临时表空间组。
alter tablespace tablespace_name offline [normal|temporary|immediate|for recover];--使表空间脱机
alter tablespace tablespace_name online;--使表空间恢复联机
normal:正常方式,先将脏缓存写入数据文件,然后脱机。默认方式。
temporary:临时切换至脱机,oracle忽略一些错误,将表空间设置为脱机,恢复时候可能需要进行数据库恢复。
immediate:直接切换至脱机状态i,恢复时必须进行数据库恢复。
for recover:
脱机优先顺序normal,temporary,immediate.只有当前一种方式无法脱机时才考虑后一种。
alter tablespace tablespace_name read only;
alter tablespace tablespace_name read write;
alter tablespace old_name rename to new_name; --offline状态不可修改名称。
alter database default tablespace tablespace_name;--这样建立用户时,将默认时候该表空间,否则使用system表空间。
drop tablespace tablespace_name including contents [and datafiles];--datafiles指相应的数据文件。若不指定则需要
手动删除对应的数据文件。
v$tablespace 从控制文件中获取的表空间名称和编号信息
dba_tablespace 所有表空间的描述信息
dba_segments 所有表空间的段的描述信息
dba_extents 所有表空间中区的描述信息
v$datafile 从控制文件中获取的数据文件的基本信息。
dba_data_files 数据文件及所属表空间的描述信息
dba_temp_files 临时数据文件及所属表空间的描述信息
v$temp_space_pool 本地管理方式的临时表空间的缓存信息
v$temp_extent_map本地管理方式的临时表空间中所有区的描述信息
v$sort_segment 包含实例所创建的排序区的描述信息
v$sort_user 包含描述排序区的用户使用情况的信息
1、对可能并发访问的数据文件分散存储在不同磁盘中,这样可以减少磁盘I/O冲突对戏itongxingneng造成的影响。
2、分离存放数据文件和日志文件,避免磁盘损坏时使得数据库恢复变得困难。(在日志文件管理中提到了复合重做日志文件
,那么是允许其中的重做日志与数据文件一同存放的。)
alter tablespace tablespace_name
add datafile '路径' size 50m
[autoextend on
next 25m
maxsize unlimited]; --为表空间添加数据文件。
alter tablespace tablespace_name
add tempfile '路径' size 50m
[autoextend on
next 25m
maxsize unlimited]; --为表空间添加临时文件。
alter database datafile '路径'
autoextend on
next 512k
maxsize 250m; --修改数据文件
alter database datafile '路径'
autoextend off; --取消数据文件的自动增长
alter database datafile '路径'
resize 500m; --修改数据文件大小(缩小时需保证大小能够容纳已有数据)
alter database datafile '路径' [offline|online]; --修改数据文件的联机/脱机状态,因为脱机状态的数据文件
被丢失的可能性比较大,所以数据库必须运行这归档模式下。
(1)alter tablespace tablespace_name offline normal;--使表空间脱机
(2)在操作系统中移动数据文件。
(3)alter database rename file
'数据文件1原路径',
'数据文件2原路径',
to
'数据文件1新路径',
'数据文件2新路径';
(4)alter tablespace tablespace_name online;
或者(对于属于多个表空间的数据文件进行处理)
1、关闭数据库
2、移动数据文件
3、启动,加载不打开数据库。mount状态。
4、修改数据文件名称。
5、打开数据 open状态。
回退数据,当执行DML操作时,用于保存事务修改之前的旧值。其中包含修改数据块的位置以及修改前的数据。oracle11g
已经完全弃用回退段,而是用UNDO表空间来管理UNDO数据。
(1)回退事务。当事务执行撤销操作时,以UNDO数据写回原位置。
(2)读一致性。oracle自动完成这项工作,即修改后,事务未提交,其他用户访问该数据时,则访问UNDO段的数据。
(3)事务恢复。oracle自动完成这项工作,当实例故障后,重启oracle,则oracle重做所有未应用的记录。然后打开数据库
,回退未提交事务。
show parameter undo;
undo_management:管理方式auto自动管理,manual手动管理
undo_retention :undo数据最大保留时间。默认900(单位秒)
undo_tablespace:所使用的UNDO表空间名。(oracle默认undotbs1作为UNDO表空间)
alter system set xxx=600;--通过修改系统参数的方式修改以上参数。
create undo tablespace undotbs02
datafile '路径' size 5m
autoextend on;
alter tablespace undotbs02
add datafile '路径' size 100m
autoextend on
next 1m
maxsize unlimited; --为表空间增加数据文件
UNDO表空间其他状态修改等于普通表空间一样。
v$undostat: 所有undo表空间的统计信息。
v$rollstat: UNDO表空间各UNDO段的信息。
v$transaction: UNDO段的事务信息。
dba_undo_extents:查看UNDO表空间中每个区所对应的事务的提交时间。