签到成功

知道了

CNDBA社区CNDBA社区

DM数据库各种文件

2021-06-21 10:02 1324 0 原创 DM数据库
作者: shinelifes

DM 数据库各种文件

目         录

DM 数据库各种文件... 0

一、重做日志文件... 0

二、归档日志文件... 1

三、逻辑日志文件... 2

四、物理逻辑日志文件... 2

五、备份文件... 3

六、跟踪日志文件... 3

七、事件日志文件... 4

八、数据重演文件... 5

九、配置文件... 5

十、控制文件... 6

十一、数据文件

一、重做日志文件

重做日志(即REDO日志)指在DM数据库中添加、删除、修改对象,或者改变数据,DM都会按照特定的格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以log为扩展名。每个DM数据库实例必须至少有2个重做日志文件,默认两个日志文件为DAMENG01.log、DAMENG02.log,这两个文件循环使用。

重做日志文件因为是数据库正在使用的日志文件,因此被称为联机日志文件。

重做日志文件主要用于数据库的备份与恢复。理想情况下,数据库系统不会用到重做日志文件中的信息。然而现实世界总是充满了各种意外,比如电源故障、系统故障、介质故障,或者数据库实例进程被强制终止等,数据库缓冲区中的数据页会来不及写入数据文件。这样,在重启DM实例时,通过重做日志文件中的信息,就可以将数据库的状态恢复到发生意外时的状态。

重做日志文件对于数据库是至关重要的。它们用于存储数据库的事务日志,以便系统在出现系统故障和介质故障时能够进行故障恢复。在DM数据库运行过程中,任何修改数据库的操作都会产生重做日志,例如,当一条元组插入到一个表中的时候,插入的结果写入了重做日志,当删除一条元组时,删除该元组的事实也被写了进去,这样,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态。

(1)  查询重做日志文件

select * from V$RLOGFILE;

可以查询重做日志文件路径、日志文件大小、日志文件创建时间。

二、归档日志文件

日志文件分为联机日志文件和归档日志文件。DM数据库可以在归档模式和非归档模式下运行。非归档模式下,数据库会只将重做日志写入联机日志文件中进行存储;归档模式下,数据库会同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。

联机日志文件指的是系统当前正在使用的日志文件。创建数据库时,联机日志文件通常被扩展至一定长度,其内容则被初始化为空,当系统运行时,该文件逐渐被产生的日志所填充。对日志文件的写入是顺序连续的。然而系统磁盘空间总是有限,系统必须能够循环利用日志文件的空间,为了做到这一点,当所有日志文件空间被占满时,系统需要清空一部分日志以便重用日志文件的空间,为了保证被清空的日志所“保护”的数据在磁盘上是安全的,这里需要引入一个关键的数据库概念——检查点。当产生检查点时,系统将系统缓冲区中的日志和脏数据页都写入磁盘,以保证当前日志所“保护”的数据页都已安全写入磁盘,这样日志文件即可被安全重用。

归档日志文件,就是在归档模式下,重做日志被连续写入到归档日志后,所生成了归档日志文件。归档日志文件以归档时间命名,扩展名也是log。但只有在归档模式下运行时,DM数据库才会将重做日志写入到归档日志文件中。采用归档模式会对系统的性能产生影响,然而系统在归档模式下运行会更安全,当出现故障时其丢失数据的可能性更小,这是因为一旦出现介质故障,如磁盘损坏时,利用归档日志,系统可被恢复至故障发生的前一刻,也可以还原到指定的时间点,而如果没有归档日志文件,则只能利用备份进行恢复。归档日志文件还是数据守护功能的核心,数据守护中的备库就是通过重做归档日志中的REDO日志来完成与主库的数据同步的。

(1)查询归档日志文件

select NAME from V$ARCHIVED_LOG;

可以查询归档日志文件路径。

三、逻辑日志文件

如果在DM数据库上配置了复制功能,复制源就会产生逻辑日志文件。逻辑日志文件是一个流式的文件,它有自己的格式,且不在第一章所述的页,簇和段的管理之下。

逻辑日志文件内部存储按照复制记录的格式,一条记录紧接着一条记录,存储着复制源端的各种逻辑操作。用于发送给复制目的端。

(1)查询逻辑日志文件

Select * from V$DM_LLOG_INFO_INI;

四、物理逻辑日志文件

物理逻辑日志,是按照特定的格式存储的服务器的逻辑操作,专门用于DBMS_LOGMNR包挖掘获取数据库系统的历史执行语句。当开启记录物理逻辑日志的功能时,这部分日志内容会被存储在重做日志文件中。

要开启物理逻辑日志的功能,需要满足下面两个条件:

首先,要设置RLOG_APPEND_LOGIC为1、2或者3;

其次,通过设置参数RLOG_IGNORE_TABLE_SET=1或者建表(或修改表)时指定ADDLOGIC LOG开启。如果需要记录所有表的物理逻辑日志,设置INI参数RLOG_IGNORE_TABLE_SET1即可;如果只需要记录某些表的物理逻辑日志,设置INI参数RLOG_IGNORE_TABLE_SET0,并在建表或者修改表的语法中使用ADD LOGIC LOG

五、备份文件

备份文件以bak为扩展名,当系统正常运行时,备份文件不会起任何作用,它也不是数据库必须有的联机文件类型之一。然而,从来没有哪个数据库系统能够保证永远正确无误地运行,当数据库不幸出现故障时,备份文件就显得尤为重要了。

当客户利用管理工具或直接发出备份的SQL命令时,DM Server会自动进行备份,并产生一个或多个备份文件,备份文件自身包含了备份的名称、对应的数据库、备份类型和备份时间等信息。同时,系统还会自动记录备份信息及该备份文件所处的位置,但这种记录是松散的,用户可根据需要将其拷贝至任何地方,并不会影响系统的运行。http://www.cndba.cn/shinelifes/article/4558

六、跟踪日志文件

用户在dm.ini中配置SVR_LOGSVR_LOG_SWITCH_COUNT参数后就会打开跟踪日志。跟踪日志文件是一个纯文本文件,以“dm_commit_日期_时间”命名,默认生成在DM安装目录的log子目录下面,管理员可通过ini参数SVR_LOG_FILE_PATH设置其生成路径。

跟踪日志内容包含系统各会话执行的SQL语句、参数信息、错误信息等。跟踪日志主要用于分析错误和分析性能问题,基于跟踪日志可以对系统运行状态有一个分析,比如,可以挑出系统现在执行速度较慢的SQL语句,进而对其进行优化。

系统中SQL日志的缓存是分块循环使用,管理员可根据系统执行的语句情况及压力情况设置恰当的日志缓存块大小及预留的缓冲块个数。当预留块不足以记录系统产生的任务时,系统会分配新的用后即弃的缓存块,但是总的空间大小由ini参数SVR_LOG_BUF_TOTAL_SIZE控制,管理员可根据实际情况进行设置。

打开跟踪日志会对系统的性能会有较大影响,一般用于查错和调优的时候才会打开,默认情况下系统是关闭跟踪日志的。若需要跟踪日志但对日志的实时性没有严格的要求,又希望系统有较高的效率,可以设置参数SQL_TRACE_MASKSVR_LOG_MIN_EXEC_TIME  只记录关注的相关记录,减少日志总量;设置参数SVR_LOG_ASYNC_FLUSH打开SQL日志异步刷盘提高系统性能。http://www.cndba.cn/shinelifes/article/4558

七、事件日志文件

DM数据库系统在运行过程中,会在log子目录下产生一个“dm_实例名_日期”命名的事件日志文件。事件日志文件对DM数据库运行时的关键事件进行记录,如系统启动、关闭、内存申请失败、IO错误等一些致命错误。事件日志文件主要用于系统出现严重错误时进行查看并定位问题。事件日志文件随着DM数据库服务的运行一直存在。事件日志文件打印的是中间步骤的信息,所以出现部分缺失属于正常现象。

示例:如下所示,DM数据库运行中的一些日志文件。

cd /home/dmdba/dmdbms/log

DmAPService.log

dm_BAKRES_202106.log

dm_dmap_202106.log

dm_dmap_br_202106.log

dm_DMOA1_202106.log

dm_dmrman_202106.log

dm_dmwatcher_DMOA1_202106.log

dm_MDOA1_202106.log

dm_MDOA_202106.log

dmmonitor_20210620111502.log

dm_SBTTRACE_202106.log

DmServiceMDOA.log

dmsvc_sh.log

dm_unknown_202106.log

http://www.cndba.cn/shinelifes/article/4558

DmWatcherServiceDMOA1.log

install_ant.log

install.loghttp://www.cndba.cn/shinelifes/article/4558

tool.log

八、数据重演文件

调用系统存储过程SP_START_CAPTURESP_STOP_CAPTURE,可以获得数据重演文件。重演文件用于数据重演,存储了从抓取开始到抓取结束时,DM数据库与客户端的通信消息。使用数据重演文件,可以多次重复抓取这段时间内的数据库操作,为系统调试和性能调优提供了另一种分析手段。

九、配置文件

是DM数据库用来设置功能选项的一些文本文件的集合,配置文件以ini为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:

1. 启用/禁用特定功能项;http://www.cndba.cn/shinelifes/article/4558

2. 针对当前系统运行环境设置更优的参数值以提升系统性能。

DM相关配置文件

名称

描述

功能

备注

dm.ini

DM数据库参数。

DM数据库服务器的各种功能和性能选项,主要的配

 

dmmal.ini

MAL系统的配置文件。

 

 

dmarch.ini

Redo日志归档配置文件

http://www.cndba.cn/shinelifes/article/4558

用于本地归档和远程归档。

 

dm_svc.conf

服务配置文件

DM各接口及客户端需要配置的一些参数

 

sqllog.ini

sql日志配置文件

用于sql日志的配置

 

dmtimer.ini

定时器配置文件

记录异步复制的定时器信息

 

dmllog.ini

逻辑日志配置文件

记录复制源对象及其逻辑日志相关的信息(包括逻辑本地归档信息和远程归档信息)

 

dmrep.ini

复制信息配置文件

主服务器上记录复制相关逻辑日志的编号;

从服务器上记录复制关系的主服务器信息以及复制对象映射的信息

 

dmdcr.ini

DMDCR配置文件

记录了当前节点序列号以及DCR磁盘路径。

 

DMDCR_CFG.INI

是格式化DCRVoting Disk的配置文件

集群环境全局信息、集群组信息、以及组内节点信息。

 

DMINIT.INI

初始化数据库环境的配置文件

 

 

DMASVRMAL.INI

MAL配置文件

 

 

dmcssm.ini

DMCSS的监视器配置文件

DMCSSM监视器支持一些控制命令,可以用来启动、关闭DMDSC集群,还可以进行手动控制节点故障处理和节点重加入。

 

dmmpp.ctl

dmmpp.ctl控制文件

dmmpp.ctl控制文件的信息主要包括:系统状态、MPP节点数、文件校验码、故障节点数、故障节点序号、配置项名、实例名、实例节点序号,以及根据节点数和实例序号生成的哈希映射数组等。

 http://www.cndba.cn/shinelifes/article/4558

dmwatcher.ctl

 

记录Split分裂状态和分裂描述信息。

 

dmmonitor.ini

监视器置文件

监视器置文件

 

dmwatcher.ini

守护进程配置文件

 

 

dm.ctl

DM控制文件

记录了数据库必要的初始信息http://www.cndba.cn/shinelifes/article/4558

 

十、控制文件

每个DM 数据库都有一个名为dm.ctl的控制文件。控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

(1)数据库名称;

(2)数据库服务器模式;

(3)OGUID 唯一标识;

(4)数据库服务器版本;

(5)数据文件版本;

(6)数据库的启动次数;http://www.cndba.cn/shinelifes/article/4558

(7)数据库最近一次启动时间;

(8)表空间信息,包括表空间名,表空间物理文件路径等,记录了所有数据库中使用的表空间,数组的方式保存起来;

(9)控制文件校验码,校验码由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改。

在服务器运行期间,执行表空间的DDL等操作后,服务器内部需要同步修改控制文件内容。如果在修改过程中服务器故障,可能会导致控制文件损坏,为了避免出现这种情况,在修改控制文件时系统内部会执行备份操作。备份策略如下:

u 策略一在修改dm.ctl之前,先执行一次备份,确定dm.ctl修改成功后,再将备份删除,如果dm.ctl修改失败或中途出现故障,则保留备份文件。

u 策略二在修改dm.ctl成功之后,根据dm.ini中指定的CTL_BAK_PATH/CTL_BAK_NUM对最新的dm.ctl执行备份,如果用户指定的CTL_BAK_PATH是非法路径,则不再生成备份文件,在路径有效的情况下,生成备份文件时根据指定的CTL_BAK_NUM判断是否删除老的备份文件。

注意:

l 如果dm.ctl文件存放在裸设备上,则【策略一】不会生效。

l 如果指定的CTL_BAK_PATH是无效路径,则【策略二】也不会生效。

l 如果【策略一】和【策略二】的条件都满足,则都会生效执行,否则只执行满足条件的备份策略,如果都不满足,则不会再生成备份文件。

l 如果是初始化新库,在初始化完成后,会在“SYSTEM_PATH/CTL_BAK路径下对原始的dm.ctl执行一次备份。

(1)  查询控制文件路径及相关配置

$cat dm.ini| grep CTL

十一、数据文件

数据文件以dbf为扩展名,它是数据库中最重要的文件类型,一个DM数据文件对应磁盘上的一个物理文件或者达梦分布式数据库中的一个逻辑文件,数据文件是真实数据存储的地方,每个数据库至少有一个与之相关的数据文件。在实际应用中,通常有多个数据文件。

当DM的数据文件空间用完时,它可以自动扩展。可以在创建数据文件时通过MAXSIZE参数限制其扩展量,当然,也可以不限制。但是,数据文件的大小最终会受物理磁盘大小的限制。在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。

数据文件在物理上按照页、簇和段的方式进行管理。

数据文件按数据组织形式,可以分为如下几种:

(1)B树数据

行存储数据,也是应用最广泛的存储形式,其数据是按B树索引组织的。普通表、分区表、B树索引的物理存储格式都是B树。

一个B树包含两个段,一个内节点段,存放内节点数据;一个叶子段,存放叶子节点数据。其B树的逻辑关系由段内页面上的记录,通过文件指针来完成。

当表上没有指定聚簇索引时,系统会自动产生一个唯一标识rowid作为B树的key来唯一标识一行。

(2)堆表数据

堆表的数据是以挂链形式存储的,一般情况下,支持最多128个链表,一个链表在物理上就是一个段,堆表采用的是物理rowid,在插入过程中,rowid在事先已确定,并保证其唯一性,所以可以并发插入,插入效率很高,且由于rowid是即时生成,无需保存在物理磁盘上,也节省了空间。

(3)列存储数据

数据按列方式组织存储,每个列包含2个段,一个段存放列数据,一个段存放列的控制信息,读取列数据时,只需要顺序扫描这两个段。在某些特殊应用场景下,其效率要远远高于行存储。

(4)位图索引

http://www.cndba.cn/shinelifes/article/4558

位图索引与B树索引不同,每个索引条目不是指向一行数据,而是指向多行数据。每个索引项保存的是一定范围内所有行与当前索引键值映射关系的位图。

数据文件中还有两类特殊的数据文件:ROLLTEMP文件。

1). ROLL文件

ROLL表空间的dbf文件,称为ROLL文件。ROLL文件用于保存系统的回滚记录,提供事务回滚时的信息。回滚文件整个是一个段。每个事务的回滚页在回滚段中各自挂链,页内则顺序存放回滚记录。

2). TEMP 文件

TEMP.DBF临时数据文件,临时文件可以在dm.ini中通过TEMP_SIZE配置大小。

当数据库查询的临时结果集过大,缓存已经不够用时,临时结果集就可以保存在TEMP.DBF文件中,供后续运算使用。系统中用户创建的临时表也存储在临时文件中。

版权声明:本文为博主原创文章,未经博主允许不得转载。

https://www.dameng.com/

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
shinelifes

shinelifes

关注
  • 28
    原创
  • 0
    翻译
  • 0
    转载
  • 0
    评论
  • 访问:32543次
  • 积分:99
  • 等级:注册会员
  • 排名:第29名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ