视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库的存储结构
2020-11-09 07:22:44 责编:小采
文档

[每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8 http://blog.csdn.net/guoyjoe/article/details/10784599 、 正确答案:A 将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据

[每日一题] 11gOCP 1z0-052 :2013-08-31 数据库的存储结构....................................................A8


http://blog.csdn.net/guoyjoe/article/details/10784599


正确答案:A

  将逻辑存储与物理存储分开是关系数据库范例的必要部分。关系数据库范例表明:编程人员只处理逻辑结构,而让数据库去管理到物理结构的映射。这意味着,可以重新组织物理存储,也可以将整个数据库移动到完全不同的硬件和操作系统上,而应用程序意识不到任何更改。

  如下图展示Oracle存储模型,逻辑结构在左,物理结构在右。

 

注释:

从图示可以看出,数据库的存储结构可以分成两条路线去理解:

一是逻辑结构,即数据库由各个表空间组成,表空间由各个段组成,段由各个区段组成,区段由各个oracle块组成;

二是物理结构,即数据库由各个表空间组成,表空间由各个操作系统级别的文件组成,(操作系统级别的)文件由各个操作系统块组成。

疑问:一个段只能存放在一个操作系统级别的文件上吗?还是可以跨文件存放?

1、Oracle数据库逻辑结构

(1)DATABASE:一个数据库可划分为多个称为表空间的逻辑存储单元。

如下查询一个数据库中有七个表空间

[html] view plaincopy

  1. gyj@OCM> select tablespace_name from dba_tablespaces;
  2. TABLESPACE_NAME
  3. ------------------------------
  4. SYSTEM
  5. SYSAUX
  6. UNDOTBS1
  7. TEMP
  8. USERS
  9. EXAMPLE
  10. GYJ


(2)TABLESPACE:只能属一个数据库,包括一个或多个文件。如下表空间GYJ下有两个数据文件。

[html] view plaincopy

  1. gyj@OCM> col tablespace_name for a20
  2. gyj@OCM> col file_name for a50
  3.  gyj@OCM> select tablespace_name,file_name from dba_data_files where tablespace_name='GYJ';
  4. TABLESPACE_NAME FILE_NAME
  5. -------------------- --------------------------------------------------
  6. GYJ /u01/app/oracle/oradata/ocm/gyj01.dbf
  7. GYJ /u01/app/oracle/oradata/ocm/gyj02.dbf


(3)SEGMENT:存在于表空间中,包含一个或多个区。

包括:表段、表分区段、索引段、索引分区段、临时段、撤销段、BLOB、CLOB

[html] view plaincopy

  1. gyj@OCM> select distinct segment_type from dba_segments;
  2. SEGMENT_TYPE
  3. ------------------
  4. LOBINDEX
  5. INDEX PARTITION
  6. TABLE SUBPARTITION
  7. ROLLBACK
  8. TABLE PARTITION
  9. NESTED TABLE
  10. LOB PARTITION
  11. LOBSEGMENT
  12. INDEX
  13. TABLE
  14. TYPE2 UNDO
  15. CLUSTER


查T1段所在的表空间、区的信息。

[html] view plaincopy

  1. gyj@OCM> select TABLESPACE_NAME,EXTENTS,BYTES/1024/1024||'M',BLOCKS from user_segments where segment_name='T1';
  2. TABLESPACE_NAME EXTENTS BYTES/1024/1024||'M' BLOCKS
  3. -------------------- ---------- ----------------------------------------- ----------
  4. GYJ 1 .0625M 8


(4)EXTENT:由相邻的数据块的组成,这意味着每个区只能存在于一个数据文件中。

[html] view plaincopy

  1. gyj@OCM> select TABLESPACE_NAME,EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS from dba_extents where segment_name='T1' and owner='GYJ';
  2. TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS
  3. -------------------- ---------- ---------- ---------- ---------- ----------
  4. GYJ 0 6 176 65536 8



(5)BLOCK:是数据库中最小的I/O单元,db_block_size


[html] view plaincopy

  1. gyj@OCM> show parameter db_block_size
  2. NAME TYPE VALUE
  3. ------------------------------------ ----------- ------------------------------
  4. db_block_size integer 8192


2、Oracle数据库物理结构

(1)、OS文件

A、仅属于一个表空间

B、是构成表空间的基础文件

(2)、OS块

A、 tune2fs-l /dev/sda1


[html] view plaincopy

  1. [root@mydb ~]# tune2fs -l /dev/sda1
  2. tune2fs 1.39 (29-May-2006)
  3. Filesystem volume name: /boot
  4. Last mounted on:
  5. Filesystem UUID: 866e46b9-cb84-4271-b694-4ca3d25dc621
  6. Filesystem magic number: 0xEF53
  7. Filesystem revision #: 1 (dynamic)
  8. Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super
  9. Default mount options: user_xattr acl
  10. Filesystem state: clean
  11. Errors behavior: Continue
  12. Filesystem OS type: Linux
  13. Inode count: 26104
  14. Block count: 104388
  15. Reserved block count: 5219
  16. Free blocks: 230
  17. Free inodes: 26070
  18. First block: 1
  19. Block size: 1024
  20. Fragment size: 1024
  21. Reserved GDT blocks: 256
  22. Blocks per group: 8192
  23. Fragments per group: 8192
  24. Inodes per group: 2008
  25. Inode blocks per group: 251
  26. Filesystem created: Mon Aug 12 19:59:14 2013
  27. Last mount time: Sat Aug 31 20:35:07 2013
  28. Last write time: Sat Aug 31 20:35:07 2013
  29. Mount count: 16
  30. Maximum mount count: -1
  31. Last checked: Mon Aug 12 19:59:14 2013
  32. Check interval: 0 ()
  33. Reserved blocks uid: 0 (user root)
  34. Reserved blocks gid: 0 (group root)
  35. First inode: 11
  36. Inode size: 128
  37. Journal inode: 8
  38. Default directory hash: tea
  39. Directory Hash Seed: 12499f4f-6bd0-40d2-8a7a-6224b8f449dd
  40. Journal backup: inode blocks


B、扇区:512字节操作系统一次IO的大小

[html] view plaincopy

  1. [root@mydb ~]# fdisk -l
  2. Disk /dev/sda: 26.8 GB, 26843545600 bytes
  3. 255 heads, 63 sectors/track, 3263 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Device Boot Start End Blocks Id System
  6. /dev/sda1 * 1 13 104391 83 Linux
  7. /dev/sda2 14 144 1052257+ 82 Linux swap / Solaris
  8. /dev/sda3 145 3263 25053367+ 83 Linux

下载本文
显示全文
专题