zoukankan      html  css  js  c++  java
  • DM逻辑结构

    数据库和实例

    数据库

    DM 数据库指的是磁盘上存放在 DM 数据库中的数据的集合,一般包括:数据文件、日志文件、控制文件以及
    临时数据文件等。

    实例

    实例一般是由一组正在运行的 DM 后台进程/线程以及一个大型的共享内存组成。

    逻辑存储结构

    结构图

    image-20211018135324576

    层次结构组成

    1. 数据库由一个或多个表空间组成;
    2. 每个表空间由一个或多个数据文件组成;
    3. 每个数据文件由一个或多个簇组成;
    4. 段是簇的上级逻辑单元,一个段可以跨多个数据文件;
    5. 簇由磁盘上连续的页组成,一个簇总是在一个数据文件中;
    6. 页是数据库中最小的分配单元,也是数据库中使用的最小的 IO 单元。

    表空间

    表空间由一个或者多个数据文件组成。表空间的名称不能超过128个字节,单个表空间最多可以添加256个数据文件【由 TS_FIL_MAX_ID 静态参数限制每个表空间所支持的最大文件个数,范围(2 ~255)】。

    在创建 DM 数据库时,会自动创建 5 个表空间:SYSTEM 表空间、ROLL 表空间、MAIN 表空间、TEMP 表空间和 HMAIN 表空间。

    1. SYSTEM 表空间:存放了有关 DM 数据库的字典信息,用户不能在 SYSTEM 表空间创建表和索引。
    2. ROLL 表空间:完全由 DM 数据库自动维护,用户无需干预。该表空间用来存放事务运行过程中执行 DML 操作之前的值,从而为访问该表的其他用户提供表数据的读一致性视图。
    3. MAIN 表空间:在初始化库的时候,就会自动创建一个大小为 128M 的数据文件MAIN.DBF。在创建用户时,如果没有指定默认表空间,则系统自动指定 MAIN 表空间为用户默认的表空间。
    4. TEMP 表空间:完全由 DM 数据库自动维护。当用户的 SQL 语句需要磁盘空间来完成某个操作时,DM 数据库会从 TEMP 表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到 TEMP表空间。
    5. HMAIN 表空间:属于 HTS (HUGE TABLESPACE) 表空间,完全由 DM 数据库自动维护。当用户在创建 HUGE 表时,未指定 HTS 表空间的情况下,充当默认 HTS 表空间。

    页大小与表空间容量关系

    初始化页大小的选择不仅影响表空间数据文件的大小选择,也会对表中每个字段及每条记录产生限制,如下表所示:

    数据库页大小 每个字符类型字段实际最大长度(字节) 每行记录最大字段外其他字段总长度(字节) 表空间单个数据文件最小 (MB)/最大 (MB)
    4 KB 1938 2047 16/8388608
    8 KB 3878 4095 32/16777216
    16 KB 8000 8195 64/33554432
    32 KB 8188 16176 128/67108864

    单个文件的最小值为页大小乘以4096,最大值为页大小乘以2147483647 (即:2^31-1=2147483647)

    相关参数

    • EXTENT_SIZE: 数据文件使用的簇大小 (16),可选值: 16、 32、 64,单位:页

      select para_name, para_value from v$dm_ini where para_name = 'GLOBAL_EXTENT_SIZE';
      
    • PAGE_SIZE: 数据页大小 (8),可选值: 4、 8、 16、 32,单位: KB

      select para_name, para_value from v$dm_ini where para_name = 'GLOBAL_PAGE_SIZE';
      
    • TS_MAX_ID:限制系统所支持的最大表空间 ID,有效值范围(512 ~ 65517)。默认值为:8192。静态参数

    • TS_FIL_MAX_ID:限制每个表空间所支持的最大文件个数,有效值范围(2 ~255)。静态参数

    TEMP 表空间

    TEMP 表空间完全由 DM 数据库自动维护。当 SQL 语句需要磁盘空间来完成某个操作时,DM 数据库会从 TEMP 表空间分配临时段。如创建索引、无法在内存中完成的排序操作、SQL 语句中间结果集以及用户创建的临时表等都会使用到 TEMP 表空间。

    Temp 表空间可自动扩充,为了不影响磁盘空间的使用,通常会通过 ini 参数 TEMP_SIZE 配置大小TEMP_SPACE_LIMIT 设置上限,通过存储过程 SP_TRUNC_TS_FILE收缩 Temp 表空间文件

    相关参数

    实例每次启动时,都会依据 TEMP_PATH, TEMP_SIZE 和 TEMP_SPACE_LIMIT 参数来设置。

    • TEMP_PATH:指定临时表空间的文件路径,只能通过修改 dm.ini 文件调整配置静态参数

    • TEMP_SIZE:指定默认创建的临时表空间大小,以 M 为单位。静态参数

    • TEMP_SPACE_LIMIT:指定系统级临时表空间大小上限,以 M 为单位。0 表示不限制临时表空间大小。动态参数

    调整临时表空间大小
    SP_SET_PARA_VALUE(2, 'TEMP_SIZE', 666);
    
    检查 Temp 表空间的大小
    SELECT
            a.tablespace_name "表空间名称"                         ,
            total        / (1024 * 1024) "表空间大小(M)"                 ,
            free         / (1024 * 1024) "表空间剩余大小(M)"               ,
            (total       - free) / (1024 * 1024 ) "表空间使用大小(M)"      ,
            total        / (1024 * 1024 * 1024) "表空间大小(G)"          ,
            free         / (1024 * 1024 * 1024) "表空间剩余大小(G)"        ,
            (total       - free) / (1024 * 1024 * 1024) "表空间使用大小(G)",
            round((total - free) / total, 4) * 100 "使用率 %"
    FROM
            (
                    SELECT
                            tablespace_name,
                            SUM(bytes) free
                    FROM
                            dba_free_space
                    GROUP BY
                            tablespace_name
            )
            a,
            (
                    SELECT
                            tablespace_name,
                            SUM(bytes) total
                    FROM
                            dba_data_files
                    GROUP BY
                            tablespace_name
            )
            b
    WHERE
            a.tablespace_name = b.tablespace_name and a.tablespace_name='TEMP';
    
    回收 Temp 表空间
    CALL SP_TRUNC_TS_FILE (ts_id ,file_id, to_size);
    

    其中 ts_id,file_id 可以通过 v$datafile 查询,to_szieb 表示指定将文件截断至多大,以 MB 为单位;to_size 大小换算成页数后,值必须在 4096 到 2 GB 之间

    HMAIN表空间

    HMAIN表空间属于HTS表空间,完全由DM数据库自动维护。当创建HUGE表时,未指定HTS(huge tablespace)表空间的情况下,默认使用此HTS表空间。

    查看HMAIN表空间
    SELECT * FROM V$HUGE_TABLESPACE;
    

    页(数据块)

    数据页(也称数据块)是DM数据库中最小的数据存储单元。页的大小对应物理存储空间上特定数量的存储字节,在DM数据库中,页大小可以为4KB、8KB、16KB或者32KB,可以在创建数据库时可以指定page_size参数,默认大小为8KB,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变

  • 相关阅读:
    HYSBZ 3813 奇数国
    HYSBZ 4419 发微博
    HYSBZ 1079 着色方案
    HYSBZ 3506 排序机械臂
    HYSBZ 3224 Tyvj 1728 普通平衡树
    Unity 3D,地形属性
    nginx 的naginx 种包含include关键字
    Redis 出现NOAUTH Authentication required解决方案
    mysql 8.0出现 Public Key Retrieval is not allowed
    修改jar包里的源码时候需要注意的问题
  • 原文地址:https://www.cnblogs.com/binliubiao/p/15515598.html
Copyright © 2011-2022 走看看