Oracle存储管理详解(二)

2014-11-24 15:51:35 · 作者: · 浏览: 3
、段管理方式
(1)SSM:自动管理方式(BMB段:BitmapManagedSegments),使用位图管理段中的数据块空闲空间,大并发量。

(2)MSSM:手工管理方式(FreeList),使用空闲列表来管理段中的数据块空闲空间,串行操作容易引起段头的争用。
--dump段头信息

(3)OMF(OracleManaged Files)管理
①设置参数
 DB_CREATE_FILE_DEST
 DB_CREATE_ONLINE_LOG_DEST_n
 DB_RECOVERY_FILE_DEST
②创建表空间
  ALTERSYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
 CREATETABLESPACE tbs_1;

六、临时表空间
1、数据库默认的临时表空间
sys@OCM> select * fromdatabase_properties where property_name='DEFAULT_TEMP_TABLESPACE';
sys@OCM> alter databasedefault temporary tablespace temp1;

2、创建临时表空间或临时表空间组
(1)创建临时表空间
 CREATE TEMPORARY TABLESPACE temp1 TEMPFILE'/u01/app/oracle/oradata/ocp/temp1.dbf' SIZE 10m;

(2)创建临时表空间组
 CREATE TEMPORARY TABLESPACE temp1 TEMPFILE'/u01/app/oracle/oradata/ocp/temp1.dbf' SIZE 10M TABLESPACE GROUP group1;
CREATE TEMPORARY TABLESPACE temp2 TEMPFILE'/u01/app/oracle/oradata/ocp/temp2.dbf' SIZE 10M TABLESPACE GROUP group1;

3、收缩临时表空间和临时文件
(1)方法一收缩临时表空间
gyj@OCM> alter tablespace TEMP shrink space keep 10M;

 Tablespace altered.

(2)方法三收缩临时表空间的某个文件
sys@OCM>alter tablespace temp shrink tempfile'/u01/app/oracle/oradata/ocm/temp01.dbf' keep 10M;

Tablespace altered.

(3)方法三重新定义临时文件的大小
gyj@OCM> alter database tempfile'/u01/app/oracle/oradata/ocm/temp01.dbf' resize 100M;

Database altered.

3、删除临时表空间
(1)查临时表空间
sys@OCM> selecttablespace_name,file_name,bytes/1024/1024 file_size,autoextensible fromdba_temp_files;

TABLESPACE_NAME FILE_NAME FILE_SIZE AUT
-------------------------------------------------------------------------------- ---------- ---
TEMP /u01/app/oracle/oradata/ocm/temp01.dbf 10.9921875 YES

(2)彻底删除临时表空间 
sys@OCM> drop tablespace temp includingcontents and datafiles cascade constraints;

(3)删除临时表空间某个文件
sys@OCM>alter database tempfile'/u01/app/oracle/oradata/orcl/temp02.dbf' drop;-

七、监控表空间
gyj@OCM> set line 200 pagesize 9999
gyj@OCM> select b.tablespace_name,round(sum(b.bytes)/1024/1024,0) sum_MB,round(sum(nvl(a.bytes,0))/1024/1024,0)
2 free_MB,round((sum(b.bytes)-sum(nvl(a.bytes,0)))/sum(b.bytes),4)*100use_precent
3 from (selecttablespace_name,file_id,sum(bytes) bytes from dba_free_space group bytablespace_name,file_id ) a,dba_data_files b
4 where a.file_id(+)=b.file_idand a.tablespace_name(+)=b.tablespace_name
5 group by b.tablespace_name;
order by use_precent;

TABLESPACE SUM_MB FREE_MB USE_PRECENT
---------- ----------- --------------- ---------------------
TP1 200 193 3.5
UNDOTBS1 145 18 87.84
SYSAUX 520 29 94.45
USERS 5 1 81.25
SYSTEM 680 4 99.39
EXAMPLE 100 21 78.75

八、扩大数据库的方式
1、创建新表空间

 2、在表空间添加文件
 sys@OCM> alter tablespace tp1 add datafile'/u01/app/oracle/oradata/ocm/tp3.dbf' size 10M;

 Tablespace altered

 3、增加文件大小
  sys@OCM> alter database datafile'/u01/app/oracle/oradata/ocm/tp3.dbf' resize 20M;

  Database altered.
www.2cto.com
  4、动态扩展数据文件
  (1)查数据文件的自动扩展
  sys@OCM> col file_name for a50;
  sys@OCM> select file_name,autoextensiblefrom dba_data_files;

  FILE_NAME AUT
  -----------------------------------------------------
  /u01/app/oracle/oradata/ocm/users01.dbf YES
  /u01/app/oracle/oradata/ocm/undotbs01.dbf YES
  /u01/app/oracle/oradata/ocm/sysaux01.dbf YES
  /u01/app/oracle/oradata/ocm/system01.dbf YES
  /u01