oracel逻辑结构―表空间(二)

2014-11-24 11:29:21 · 作者: · 浏览: 1
----------------- ----------- ------------------------------
fast_start_parallel_rollback string LOW
rollback_segments string
transactions_per_rollback_segment integer 5
默认一个回滚段可以维持5 个事务 不要放太多事务 会产生回滚段头争用
因为段头中记录段中的块的位置 找段里的数据就要访问段头
改成手动
SQL> alter system set undo_management=manual scope=spfile;
SQL> startup force
由于undo_management 是非自动管理,所以要重启才可以生效。
查看undo 段:
select SEGMENT_NAME,TABLESPACE_NAME,STATUS from dba_rollback_segs;
手动创建回滚段 段会自动拓展大小 所以不需要指明
create rollback segment rbs1 tablespace undotbs1;
修改状态:alter rollback segment rbs1 online;
关于回滚段的知识我会在segment 中详细讲解。
五、表空间的状态
查看表空间的状态:
select tablespace_name,status from dba_tablespaces;
修改状态:
alter tablespace mytbs read write/read only/offline;
1、 Online(读写 ) 状态
2、 Readonly(只读)状态
只读表空间 只能select 查询和 drop 删除对象 不能修改 (INTSERT update delete truncate)system undotbs temp 包含活动事务的表空间都不能只读,只读表空间不可以修改表数据 但可以删除表结构 因为表结果存储在数据字典中 数据字典在 system 表空间。
3、 offline(离线 ) 状态
只可以删除对象(drop) 不可以 select dml truncate, 系统表空间 +default 临时 + 包含活动事务的表空间是不能离线的 , 离线状态 DBA 可以移动数据文件路径 , 离线就是冻结 将 SCN 号锁定在某一时刻
select name,checkpoint_change# open_scn,last_change# stop_scn from v$datafile;
结果:NAME OPEN_SCN STOP_SCN
-------------------------------------------------- ---------- ----------
/u01/oracle/oradata/ora10g/system01.dbf 475662
/u01/oracle/oradata/ora10g/undotbs01.dbf 475662
/u01/oracle/oradata/ora10g/sysaux01.dbf 475662
/u01/oracle/oradata/ora10g/users01.dbf 476689 476689
/u01/oracle/oradata/ora10g/mytbs01.dbf 476652
六、表空间扩容
查看表空间大小:
select tablespace_name,sum(bytes/1048576) curr_MB,sum(MAXBYTES/1048576) MAX_MB from dba_data_files group by TABLESPACE_NAME;
结果:
TABLESPACE_NAME CURR_MB MAX_MB
--------------- ---------- ----------
SYSAUX 240 32767.9844
UNDOTBS1 25 32767.9844
USERS 25 32767.9844
SYSTEM 480 32767.9844
MYTBS 10 10
如果最大大小为空 说明不能增长。
查询当前分配大小中的剩余尺寸:
SQL> select TABLESPACE_NAME,sum(bytes/1048576) free_mb from dba_free_space group by TABLESPACE_NAME;
结果:
TABLESPACE_NAME FREE_MB
--------------- ----------
UNDOTBS1 4.0625
SYSAUX .875
USERS 24.5625
SYSTEM 6.875
MYTBS 10.875
扩容的方法:
1、使文件自动增长
alter database datafile '' autoextend on next 10M maxsize 4G;
alter database datafile '' autoextend off;
2、 增加新文件
alter tablespace uses add datafile '' size 5M;
alter tablespace uses drop datafile ''; /*10G才能删 有数据不能删 第一个文件不能删 */
3、 修改现有文件的大小
alter database datafile '' resize 15M;
alter database datafile '' resize 10M;
删除表空间和数据文件
1、 删除表空间及其内容一起删除
drop tablespace mytbs INCLUDING CONTENTS;
2、 删除表空间及其文件一起删除
drop tablespace mytbs INCLUDING CONTENTS and datafiles;
注意:
创建索引或主键和唯一约束时将索引指定位置存放 生产库一定要把表和索引分开存放
创建索引和带索引的约束时, 指定索引的存储位置
SQL> create index t1_ind on t1(empno) tablespace mytbs;
SQL> ALTER TABLE T1 MODIFY(ENAME constraint T1_pk primary key using index tablespace mytbs);