ITPub博客

首页 > 数据库 > Oracle > OCP学习笔记12——Oracle 存储结构(1Z0-052)

OCP学习笔记12——Oracle 存储结构(1Z0-052)

Oracle 作者:orionmobility 时间:2013-11-09 19:25:55 0 删除 编辑
① 表空间实体消除了段与数据文件之间多对多关系。

② PL/SQL、视图、序列不是段,它们不存储数据,而且存在于数据字典中。

③ DB_BLOCK_SIZE参数控制块大小,需要改变大小的唯一办法是新建一个数据库。

④ 需要以后关注的段类型:CLUSTER、NESTED TABLE。

⑤ 为了确定表空间,也可以查询DBA_SEGMENTS视图。

⑥ 群集文件系统,OCFS(Oracle Clustered File System)

⑦ ASM只能存储数据文件,不能存储二进制文件。

⑧ 创建表空间的SQL:
   create smallfile tablespace "newts"
   datafile '……'
   size 100m autoextend on next 10m maxsize 200m
   logging
   extent management local
   segment space management auto
   default nocompress

⑨ 临时表空间使用临时文件,而非数据文件。临时文件在V$TEMPFILE视图和DBA_TEMP_FILES视图中列出。而数据文件在V$DATAFILE和DBA_DATA_FILES中列出。
   查看$TABLESPACE了解表空间是否为bigfile表,查询V#TEMPFILE或V$DATAFILE来查看文件创建时的大小。因为他们保存在控制文件中。

⑩ 表空间创建后常见更改如下:
   重命名
   使其联机或者脱机
   标记为可读写或只读
   重调大小
   更改警报阀值

重命名表空间的步骤:
alter tablespace storetabs rename to storedata; --重命名表空间
alter tablespace storedata offline; --使表空间进入脱机状态
host rename /opt/……/storetabs_01.dbf storedata_01.dbf; --操作系统命令,重命名文件系统中的数据文件
alter database rename file '/opt/……/storetabs_01.dbf' to  '/opt/……/storedata_01.dbf'; -- 按控制文件中的记录更改文件名,以便Oracle能够找到它们
alter tablespace storedata online; --使表空间重返联机状态

其中:使表空间脱机的语法:
alter tablespace tablespacename offline [normal | immediate | temporary];
⑪ 使表空间只读的语法:
alter tablespace tablespacename [read only | read write]
被标记为只读后,不能使用DML语句(包括truncate),但可以使用DDL语句删除它。
使得表空间只读对于备份和还原操作有好处。Oracle了解到表空间内容不能更改,因此不需要重复备份它们。
⑫ 删除表空间:
drop tablespace tablespacename [including contents [and datafiles]]

including contents 只有表空间为空是可以不加,and datafiles将同事删除数据文件。

⑬ OMF(Oracle-Managed Files),DBA将不必了解有关文件系统的任何知识。将以完全自动的方式完成数据库文件的创建。要启用OMF,请设置如下所有的参数:
DB_CREATE_FILE_DEST
DB_CREATE_ONLINE_LOG_DEST_1
DB_CREATE_ONLINE_LOG_DEST_2
DB_CREATE_ONLINE_LOG_DEST_3
DB_CREATE_ONLINE_LOG_DEST_4
DB_CREATE_ONLINE_LOG_DEST_5
DB_RECOVERY_FILE_DEST

DB_CREATE_FILE_DEST:指定所有数据文件的默认位置。
DB_CREATE_ONLINE_LOG_DEST_n:制定联机重做日志文件的默认位置。
DB_RECOVERY_FILE_DEST:设置归档重做日志文件和备份文件的默认位置。

启用OMF后,始终可以通过在CREATE TABLESPACE命令上指定数据文件名执行重写操作。

⑭区间管理:字典管理 或 本地管理
本地管理为:在在每个数据文件中存储位图。位图中的每个位覆盖一个块范围,在分配空间时,适当的位从0变成1.与字典管理的基于事务的机制相比,此机制的效率高的多。

在创建本地管理的表空间时,一个重要的选项是uniform size。如果指定了该选项,那么每个位覆盖的块范围可以更大:每个区间只需一位

create tablespace large_tabs datafile '……' size 10g
extent management local uniform size 160m;

分配在表空间的每个区间为160MB,故将有64个。位图只需要64位空间,更新一位可以分配160MB的空间。

create tablespace small_tabs datafile '……' size 1g
extent management local uniform size 160k;

create tablespace any_tabs datafile '……' size 10g
extent management local autoallocate;
ORACLE公司建议使用AUTOALLOCATE,如果知道段的大小,也可以相应地放置她们,UNIFORM SIZE理当是最佳选项。

⑮如果数据库从先前的版本升级而来。则可能包括字典管理的表空间,查询sql是:
select tablespace_name, extent_management from dba_tablespaces;
转换:
execute dbms_space_admin.tablespace_migragte_to_local('tablespacename');

⑯管理段空间的方法为每个表空间设置,应用于表空间中所有的段。
手动和自动。
自动:每个段有5个视图,一个块恰好位于一个位图上。
0~25%
25%~50%
50%~75%
75%~100%。

要查看任何表空间是否使用手动管理,查询sql为:
select tablespace_name,segmment_space_management from dba_tablespaces;

无法将表空间从手动管理转换为自动段空间管理,唯一的解决方案是使用自动段空间管理方法新建表空间,将段移入其中,并删除旧的表空间。


<!-- 正文结束 -->

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/24117197/viewspace-1116615/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2010-06-19