学习达梦数据库 —— 从体系结构开始

开始好好学习国产达梦数据库了,首先从体系结构开始。先来大概看一下内容全貌吧。

目录

1 内存结构

​1.1 共享内存池

​1.1.1 数据缓冲区

1.1.2 日志缓冲区

1.1.3 字典缓冲区

 1.1.4 SQL 缓冲区

1.2 运行时内存池

1.2.1 排序区

1.2.2 哈希区

2 线程结构

2.1 监听线程

2.2 工作线程

2.3 IO线程

2.4 调度线程

2.5 日志Flush线程

2.6 日志归档线程

2.7 日志 APPLY 线程

2.8 查看线程信息的数据字典

3 逻辑存储结构

3.1 逻辑存储结构

3.1.1 表空间

3.1.2 记录和页

3.1.3 簇

3.1.4 段

3.2 物理存储结构

3.2.1 配置文件

3.2.2 控制文件

3.2.3 数据文件

3.2.4 重做日志文件

3.2.5 SQL日志文件

3.2.6 事件日志文件

1 内存结构

DM Server 的内存池包括共享内存池和其他一些运行时内存池。

动态视图 V$MEM_POOL 详细记录了当前系统中所有的内存池的状态,可通过查询这个动态视图掌握 DM Server 的内存使用情况。内容有点多,这里只截取了结果的一部分。

1.1 共享内存池

DM 系统管理员可以通过 DM Server 的配置文件(dm.ini)来对共享内存池的大小进行设置,共享池大小的参数为 MEMORY_POOL缺省大小为 400M。如果在运行时所需内存大于配置值,共享内存池也可进行自动扩展,INI 参数 MEMORY_EXTENT_SIZE 指定了共享内存池每次扩展的大小,参数 MEMORY_TARGET 则指定了共享内存池扩展到超过该值后,空闲时会收缩到的大小。

1.1.1 数据缓冲区

(1)管理方式

系统启动时,首先根据配置的数据缓冲区大小向操作系统申请一片连续内存并将其按数据页大小进行格式化,并置入“自由”链中。数据缓冲区存在三条链来管理被缓冲的数据页,一条是“自由”链,用于存放目前尚未使用的内存数据页,一条是“LRU”链,用于存放已被使用的内存数据页(包括未修改和已修改),还有一条即为“脏”链,用于存放已被修改过的内存数据页。

LRU 链对系统当前使用的页按其最近是否被使用的顺序进行了排序。这样当数据缓冲区中的自由链被用完时,从 LRU 链中淘汰部分最近未使用的数据页,能够较大程度地保证被淘汰的数据页在最近不会被用到,减少 IO。

在系统运行过程中,通常存在一部分“非常热”(反复被访问)的数据页,将它们一直留在缓冲区中,对系统性能会有好处。对于这部分数据页,数据缓冲区开辟了一个特定的区域用于存放它们,以保证这些页不参与一般的淘汰机制,可以一直留在数据缓冲区中。

(2)类型

其中有四种类型的数据缓冲区,分别是 NORMAL、KEEP、FAST 和 RECYCLE。其中,用户可以在创建表空间或修改表空间时,指定表空间属于 NORMAL 或 KEEP 缓冲区。RECYCLE 缓冲区供临时表空间使用,FAST 缓冲区根据用户指定的 FAST_POOL_PAGES 大小由系统自动进行管理,用户不能指定使用 RECYCLE 和 FAST 缓冲区的表或表空间。

NORMAL 缓冲区主要是提供给系统处理的一些数据页,没有特定指定缓冲区的情况下,默认缓冲区为 NORMAL;KEEP 的特性是对缓冲区中的数据页很少或几乎不怎么淘汰出去,主要针对用户的应用是否需要经常处在内存当中,如果是这种情况,可以指定缓冲区为 KEEP。

DM Server 提供了可以更改这些缓冲区大小的参数,用户可以根据自己应用需求情况,指定 dm.ini 文件中 BUFFER(2000)、KEEP(8MB)、RECYCLE(240)、FAST_POOL_PAGES(3000)值(括号中为默认值),这些值分别对应是 NORMAL 缓冲区大小、KEEP 缓冲区大小、RECYCLE 缓冲区大小、FAST 缓冲区数据页总数。

1.1.2 日志缓冲区

那么为何不在数据缓冲区中缓存重做日志而要单独设立日志缓冲区呢?主要是基于以下原因:

重做日志的格式同数据页完全不一样,无法进行统一管理;

重做日志具备连续写的特点;

在逻辑上,写重做日志比数据页 IO 优先级更高。

DM Server 提供了参数 RLOG_BUF_SIZE 对日志缓冲区大小进行控制,日志缓冲区所占用的内存是从共享内存池中申请的,单位为页数量

1.1.3 字典缓冲区

DM8 采用的是将部分数据字典信息加载到缓冲区中,并采用 LRU 算法进行字典信息的控制。缓冲区大小设置问题,如果太大,会浪费宝贵的内存空间,如果太小,可能会频繁的进行淘汰,该缓冲区配置参数为 DICT_BUF_SIZE,默认的配置大小为 50M。

DM8 采用缓冲部分字典对象,那会影响效率吗?数据字典信息访问存在热点现象,并不是所有的字典信息都会被频繁的访问,所以按需加载字典信息并不会影响到实际的运行效率。

但是如果在实际应用中涉及对分区数较多的水平分区表访问,例如上千个分区,那么就需要适当调大 DICT_BUF_SIZE 参数值。

 1.1.4 SQL 缓冲区

SQL 缓冲区提供在执行 SQL 语句过程中所需要的内存,包括计划、SQL 语句和结果集缓存

很多应用当中都存在反复执行相同 SQL 语句的情况,此时可以使用缓冲区保存这些语句和它们的执行计划,这就是计划重用。这样带来的好处是加快了 SQL 语句执行效率,但同时给内存也增加了压力。

DM Server 在配置文件 dm.ini 提供了参数来支持是否需要计划重用,参数为 USE_PLN_POOL,当指定为非 0 时,则启动计划重用;为 0 时禁止计划重用。DM 同时还提供了参数 CACHE_POOL_SIZE(单位为 MB),来改变 SQL 缓冲区大小,系统管理员可以设置该值以满足应用需求,默认值为 200M。

结果集缓存包括 SQL 查询结果集缓存和 DMSQL 程序函数结果集缓存,在 INI 参数文件中同时设置参数 RS_CAN_CACHE=1 且 USE_PLN_POOL 非 0 时 DM 服务器才会缓存结果集。DM 还提供了一些手动设置结果集缓存的方法。

客户端结果集也可以缓存,但需要在配置文件 dm_svc.conf 中设置参数:

 ENABLE_RS_CACHE = (1) //表示启用缓存;

 RS_CACHE_SIZE = (100)   //表示缓存区的大小为100M, 可配置为1-65535

 RS_REFRESH_FREQ = (30) //表示每30秒检查缓存的有效性,如果失效,自动重查; 0表示不检查。

同时在服务器端使用 INI 参数文件中的 CLT_CACHE_TABLES 参数设置哪些表的结果集需要缓存。另外,FIRST_ROWS 参数表示当查询的结果达到该行数时,就返回结果,不再继续查询,除非用户向服务器发一个 FETCH 命令。这个参数也用于客户端缓存的配置,仅当结果集的行数不超过 FIRST_ROWS 时,该结果集才可能被客户端缓存。

1.2 运行时内存池

除了共享内存池,DM Server 的一些功能模块在运行时还会使用自己的运行时内存池。这些运行时内存池是从操作系统申请一片内存作为本功能模块的内存池来使用,如会话内存池、虚拟机内存池等。

1.2.1 排序区

排序缓冲区提供数据排序所需要的内存空间。当用户执行 SQL 语句时,常常需要进行排序,所使用的内存就是排序缓冲区提供的。在每次排序过程中,都首先申请内存,排序结束后再释放内存。

DM Server 提供了参数来指定排序缓冲区的大小,参数 SORT_BUF_SIZE 在 DM 配置文件 dm.ini 中,系统管理员可以设置其大小以满足需求,由于该值是由系统内部排序算法和排序数据结构决定,建议使用默认值 2M。

1.2.2 哈希区

DM8 提供了为哈希连接而设定的缓冲区,不过该缓冲区是个虚拟缓冲区。之所以说是虚拟缓冲,是因为系统没有真正创建特定属于哈希缓冲区的内存,而是在进行哈希连接时,对排序的数据量进行了计算。如果计算出的数据量大小超过了哈希缓冲区的大小,则使用 DM8 创新的外存哈希方式;如果没有超过哈希缓冲区的大小,实际上还是使用内存池来进行哈希操作。

DM Server 在 dm.ini 中提供了参数 HJ_BUF_SIZE 来进行控制,由于该值的大小可能会限制哈希连接的效率,所以建议保持默认值,或设置为更大的值。

2 线程结构

2.1 监听线程

监听线程主要的任务是在服务器端口上进行循环监听,一旦有来自客户的连接请求,监听线程被唤醒并生成一个会话申请任务,加入工作线程的任务队列,等待工作线程进行处理。它在系统启动完成后才启动,并且在系统关闭时首先被关闭。为了保证在处理大量客户连接时系统具有较短的响应时间,监听线程比普通线程优先级更高。

2.2 工作线程

工作线程是 DM 服务器的核心线程,它从任务队列中取出任务,并根据任务的类型进行相应的处理,负责所有实际的数据相关操作。

DM8 的初始工作线程个数由配置文件指定,随着会话连接的增加,工作线程也会同步增加,以保持每个会话都有专门的工作线程处理请求。为了保证用户所有请求及时响应,一个会话上的任务全部由同一个工作线程完成,这样减少了线程切换的代价,提高了系统效率。当会话连接超过预设的阈值时,工作线程数目不再增加,转而由会话轮询线程接收所有用户请求,加入任务队列,等待工作线程一旦空闲,从任务队列依次摘取请求任务处理。

2.3 IO线程

在数据库活动中,IO 操作历来都是最为耗时的操作之一。IO 线程的职责就是处理数据页进行读写的IO操作。

通常情况下,DM Server 需要进行 IO 操作的时机主要有以下三种:

需要处理的数据页不在缓冲区中,此时需要将相关数据页读入缓冲区

缓冲区满或系统关闭时,此时需要将部分脏数据页写入磁盘

检查点到来时,需要将所有脏数据页写入磁盘

IO 线程在启动后,通常都处于睡眠状态,当系统需要进行 IO 时,只需要发出一个 IO 请求,此时 IO 线程被唤醒以处理该请求,在完成该 IO 操作后继续进入睡眠状态。

IO 线程的个数是可配置的,可以通过设置 dm.ini 文件中的 IO_THR_GROUPS 参数来设置,默认情况下,IO 线程的个数是 2 个。同时,IO 线程处理 IO 的策略根据操作系统平台的不同会有很大差别,一般情况下,IO 线程使用异步的 IO 将数据页写入磁盘,此时,系统将所有的 IO 请求直接递交给操作系统,操作系统在完成这些请求后才通知 IO 线程,这种异步 IO 的方式使得 IO 线程需要直接处理的任务很简单,即完成 IO 后的一些收尾处理并发出 IO 完成通知,如果操作系统不支持异步 IO,此时 IO 线程就需要完成实际的 IO 操作。

select para_name,para_value from v$dm_ini where para_name like 'IO_THR%';

2.4 调度线程

调度线程用于接管系统中所有需要定时调度的任务。调度线程每秒钟轮询一次,负责的任务有以下一些:

检查系统级的时间触发器,如果满足触发条件则生成任务加到工作线程的任务队列由工作线程执行;

清理 SQL 缓存、计划缓存中失效的项,或者超出缓存限制后淘汰不常用的缓存项;

执行动态缓冲区检查。根据需要动态扩展或动态收缩系统缓冲池;

自动执行检查点。为了保证日志的及时刷盘,减少系统故障时恢复时间,根据 INI 参数设置的自动检查点执行间隔定期执行检查点操作;

会话超时检测。当客户连接设置了连接超时时,定期检测是否超时,如果超时则自动断开连接;

必要时执行数据更新页刷盘

唤醒等待的工作线程。

2.5 日志Flush线程

任何数据库的修改,都会产生重做 REDO 日志,为了保证数据故障恢复的一致性,REDO 日志的刷盘必须在数据页刷盘之前进行。事务运行时,会把生成的 REDO 日志保留在日志缓冲区中,当事务提交或者执行检查点时,会通知 FLUSH 线程进行日志刷盘。由于日志具备顺序写入的特点,比数据页分散 IO 写入效率更高。日志 FLUSH 线程和 IO 线程分开,能获得更快的响应速度,保证整体的性能。DM8 的日志 FLUSH 线程进行了优化,在刷盘之前,对不同缓冲区内的日志进行合并,减少了 IO 次数,进一步提高了性能。

如果系统配置了实时归档,在 FLUSH 线程日志刷盘前,会直接将日志通过网络发送到实时备库。如果配置了本地归档,则生成归档任务,通过日志归档线程完成。

2.6 日志归档线程

日志归档线程包含异步归档线程,负责远程异步归档任务。如果配置了非实时归档,由日志 FLUSH 线程产生的任务会分别加入日志归档线程,日志归档线程负责从任务队列中取出任务,按照归档类型做相应归档处理。

2.7 日志 APPLY 线程

在配置了数据守护的系统中,创建了一个日志 APPLY 线程。当服务器作为备库时,每次接收到主库的物理 REDO 日志生成一个 APPLY 任务加入到任务队列,APPLY 线程从任务队列中取出一个任务在备库上将日志重做,并生成自己的日志,保持和主库数据的同步或一致,作为主库的一个镜像。

除了以上这些,还有定时器线程用于在某个时间点开始进行某种操作、MAL线程等。

2.8 查看线程信息的数据字典

v$latches 当前正在等待的线程信息

v$threads 当前系统中活动线程的信息

V$PROCESS 服务器进程信息

3 逻辑存储结构

3.1 逻辑存储结构

达梦数据库由表空间,段,簇,页(块)组成。

数据库由一个或多个表空间组成,一个表空间由一个或多个段组成,一个段由一个或多个簇组成,一个簇由一个或多个连续的页组成。一个段可以跨多个数据文件。一个簇在一个数据文件中。页是最小的IO。

3.1.1 表空间

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

SYSTEM表空间存放数据字典信息。

ROLL表空间存放事务运行过程中执行DML操作之前的值,为用户提供表数据的读一致性视图。

MAIN表空间会自动创建一下大小为128M的数据文件MAIN.DBF,及一个HMAIN目录作为HUGE数据文件路径。因此MAIN表空间为混合表空间。为默为的用户表空间。

TEMP表空间创建索引、无法在内存中完成的排序操作、SQL语句中间结果集及临时表都会使用TEMP表空间。

用户默认的表空间,SYS,SYSSSO,SYSAUDITOR系统用户,默认的用户表空间是SYSTEM,SYSDBA的默认表空间为MAIN,用户创建如果没有指定默认表空间,则MAIN为用户默认的表空间。

3.1.2 记录和页

DM 规定每条记录的总长度不能超过页面大小的一半。

数据页(数据块)是 DM 数据库中最小的数据存储单元。

在 DM 数据库中,页大小可以为 4KB、8KB、16KB 或者 32KB,用户在创建数据库时可以指定,默认大小为 8KB,一旦创建好了数据库,则在该库的整个生命周期内,页大小都不能够改变。

页头控制信息包含了关于页类型、页地址等信息。页的中部存放数据,为了更好地利用数据页,在数据页的尾部专门留出一部分空间用于存放行偏移数组行偏移数组用于标识页上的空间占用情况以便管理数据页自身的空间。

FILLFACTOR 是 DM 数据库提供的一个与性能有关的数据页级存储参数,它指定一个数据页初始化后插入数据时最大可以使用空间的百分比(100),该值在创建表/索引时可以指定。

使用 FILLFACTOR 时应该在空间和性能之间进行权衡。为了充分利用空间,用户可以设置一个很高的 FILLFACTOR 值,如 100,但是这可能会导致在后续更新数据时,频繁引起页分裂而导致需要大量的 I/O 操作。为了提高更新数据的性能,可以设置一个相对较低(但不是过低)的 FILLFACTOR 值,使得后续执行更新操作时,可以尽量避免数据页的分裂,提升 I/O 性能,不过这是以牺牲空间利用率来换取性能的提高。

3.1.3 簇

由同一个数据文件中 16 个或 32 个或 64 个连续的数据页组成,

簇的分配:首先在表空间按文件从小到大的顺序在各个数据文件中查找可用的空闲簇,找到后进行分配;如果各数据文件都没有空闲簇,则在各数据文件中查找空闲空间足够的,将需要的空间先进行格式化,然后进行分配;如果各文件的空闲空间也不够,则选一个数据文件进行扩充。

簇的释放:当用户删除了表中所有记录时,DM 数据库仍然会为该表保留 1-2 个簇供后续使用。若用户使用 DROP 语句来删除表/索引对象,则此表/索引对应的段以及段中包含的簇全部收回,并供存储于此表空间的其他模式对象使用。

3.1.4 段

数据段:DM 以簇为单位给每个数据段分配空间,当数据段的簇空间用完时,DM 数据库就给该段重新分配簇,段的分配和释放完全由 DM 数据库自动完成,可以在创建表/索引时设置存储参数来决定数据段的簇如何分配。对于分区表,每个分区使用单独的数据段来容纳所有数据,对于分区表上的非分区索引,使用一个索引数据段来容纳所有数据,而对于分区索引,每个分区使用一个单独索引数据段来容纳其数据。表的数据段和与其相关的索引段不一定要存储在同一表空间中,用户可以在创建表和索引时,指定不同的表空间存储参数。

临时段:当处理一个查询时,经常需要为 SQL 语句的解析与执行的中间结果准备临时空间

回滚段:在数据库恢复阶段,回滚记录被用来做任何未提交变更的回滚。在多个并发事务运行期间,回滚段还为用户提供读一致性,所有正在读取受影响行的用户将不会看到行中的任何变动,直到他们事务提交后发出新的查询。

3.2 物理存储结构

典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件等。

3.2.1 配置文件

配置文件以 ini 为扩展名,它们具有固定的格式,用户可以通过修改其中的某些参数取值来达成如下两个方面的目标:

1.启用/禁用特定功能项;

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

这里有很多文件比如:dm.ini 相当于oracle中参数文件。dmmal.ini  是 MAL 系统的配置文件。dmarch.ini 用于配置归档。dm_svc.conf 是一个客户端配置文件。sqllog.ini 用于 SQL 日志的配置。dmrep.ini 用于配置复制实例。dmllog.ini 用于配置逻辑日志等。

3.2.2 控制文件

控制文件是一个二进制文件,它记录了数据库必要的初始信息,其中主要包含以下内容:

数据库名称;

数据库服务器模式;

OGUID 唯一标识;

数据库服务器版本;

数据文件版本;

数据库的启动次数;

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

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

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

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

策略一

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

策略二

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

注意:

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

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

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

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

3.2.3 数据文件

在实际使用中,一般不建议使用单个巨大的数据文件,为一个表空间创建多个较小的数据文件是更好的选择。

(一)数据组织形式

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

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

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

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

列存储数据 :数据按列方式组织存储,包含每个列对应的存放列数据的一系列数据文件,以及存放列数据控制信息的辅助表。读取列数据时,只需要顺序扫描列数据文件和辅助表数据。在某些特殊应用场景下,其效率要远远高于行存储。

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

(二)其它数据文件

数据文件中还有两类特殊的数据文件:ROLL 和 TEMP 文件。

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

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

3.2.4 重做日志文件

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

3.2.5 SQL日志文件

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

打开 SQL 日志会影响系统的性能,因此一般在需要查错和调优的时候才会打开。缺省情况下系统是关闭 SQL 日志的。

打开 SQL 日志会影响系统的性能,因此一般在需要查错和调优的时候才会打开。缺省情况下系统是关闭 SQL 日志的。若用户需要打开 SQL 日志,同时对日志的实时性并没有严格的要求,又希望系统性能好,此时可以从两方面进行改进:一设置 sqllog.ini 参数 SQL_TRACE_MASK 和 MIN_EXEC_TIME 只记录关注的相关记录,减少日志总量;二设置 sqllog.ini 参数 ASYNC_FLUSH 打开 SQL 日志异步刷盘提高系统性能。

3.2.6 事件日志文件

事件日志文件主要用于系统出现严重错误时进行查看并定位问题。事件日志简称 ELOG。事件日志文件随着 DM 数据库服务的运行一直存在。

通过查询动态视图 V$ELOG_FILE 可以获得当前实例的日志文件的信息。可以使用系统过程 SP_ELOG_FILE_DELETE 删除指定文件名的 ELOG 日志文件。

事件日志文件记录了 DM 数据库运行时的关键事件。例如:系统启动、关闭、内存申请失败、IO 错误等一些致命错误;数据库运行过程中的日志信息;备份还原过程中备份还原操作的阶段性信息等。

其它文件:归档日志文件、逻辑日志文件、物理逻辑日志文件、备份文件、事件日志文件。

更多详情请参考:达梦数据库 - 新一代大型通用关系型数据库 | 达梦在线服务平台

本篇内容就先介绍到这里了!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值