9、表空间和数据文件




一、建立表空间(本地管理方式)
1.1普通表空间
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等参数的设置)


1.2大文件表空间

1.3临时表空间(处理排序sql等产生的临时数据)
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;--用修改方式添加临时表空间组。

2.1脱机/联机表空间
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.只有当前一种方式无法脱机时才考虑后一种。

2.2改变读写状态
alter tablespace tablespace_name read only;
alter tablespace tablespace_name read write;

2.3改名称
alter tablespace old_name rename to new_name; --offline状态不可修改名称。

2.3设置默认表空间
alter database default tablespace tablespace_name;--这样建立用户时,将默认时候该表空间,否则使用system表空间。

2.5删除表空间
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    包含描述排序区的用户使用情况的信息


3.1数据文件管理策略
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];    --修改数据文件的联机/脱机状态,因为脱机状态的数据文件

被丢失的可能性比较大,所以数据库必须运行这归档模式下。


3.2改变表空间的数据文件

(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状态。




4.1UNDO表空间
    回退数据,当执行DML操作时,用于保存事务修改之前的旧值。其中包含修改数据块的位置以及修改前的数据。oracle11g

已经完全弃用回退段,而是用UNDO表空间来管理UNDO数据。
(1)回退事务。当事务执行撤销操作时,以UNDO数据写回原位置。
(2)读一致性。oracle自动完成这项工作,即修改后,事务未提交,其他用户访问该数据时,则访问UNDO段的数据。
(3)事务恢复。oracle自动完成这项工作,当实例故障后,重启oracle,则oracle重做所有未应用的记录。然后打开数据库

,回退未提交事务。

4.2UNDO参数
show parameter undo;

undo_management:管理方式auto自动管理,manual手动管理
undo_retention :undo数据最大保留时间。默认900(单位秒)
undo_tablespace:所使用的UNDO表空间名。(oracle默认undotbs1作为UNDO表空间)

alter system set xxx=600;--通过修改系统参数的方式修改以上参数。

4.3建立UNDO表空间
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表空间中每个区所对应的事务的提交时间。

猜你喜欢

转载自blog.csdn.net/bof_jangle/article/details/51190871