达梦物理存储结构学习

达梦物理存储结构学习,全部参照官方文档。

  1. DM数据库使用了大量的物理存储结构来保存和管理用户数据。典型的物理存储结构包括:用于进行功能设置的配置文件;用于记录文件分布的控制文件;用于保存用户实际数据的数据文件、重做日志文件、归档日志文件、备份文件;用来进行问题跟踪的跟踪日志文件;重演文件等。
  2. 配置文件是DM数据库用来设置功能选项的一些文本文件的集合,以ini为扩展名,具有固定的格式,一般有两个功能:启用/禁用特定功能项;针对当前系统运行环境设置更优的参数值以提升系统性能。
  3. dm.ini配置文件是DM数据库启动必须的配置文件,通过该配置文件可以设置DM数据库服务器的各种功能和性能项。其中包含三种参数:静态、动态和手动。静态参数可以被动态修改,修改后重启数据库服务器才生效;动态参数可以被动态修改,修改后即时生效,不须重启数据库服务。动态参数又分为会话级和系统级两种,会话级参数被修改后,新参数值只会影响新创建的会话,之前创建的会话不受影响;系统级参数的修改则影响所有会话。手动参数不能被动态修改,必须手动修改dm.ini参数文件,然后重启数据库服务生效。
  4. 通过调用系统过程SP_SET_PARA_VALUE(SCOPE,PARA_NAME,PARA_VALUE)、SP_SET_PARA_DOUBLE_VALUE(SCOPE,PARA_NAME,PARA_VALUE)、SP_SET_PARA_STRING_VALUE(SCOPE,PARA_NAME,PARA_VALUE)来修改dm.ini文件的参数值。
  5. dmmal.ini是MAL系统的配置文件,需要用到MAL环境的实例(如实时主备、读写分离、mpp、rac、dblink),所有站点的dmmal.ini需要保证严格一致。
  6. dmarch.ini用于配置数据库归档,归档类型,即ARCH_TYPE的取值有:本地归档(LOCAL)、实时归档(REALTIME)、即时归档(TIMELY)、远程归档(REMOTE)、异步归档(ASYNC)。以上几种不同的归档类型,一台主库均最多只能配置8个。不能存在相同实例名的不同归档;也不能存在DEST相同的不同归档实例。
  7. dm_svc.conf文件中包含DM各接口及客户端需要配置的一些参数,该文件安装了DM数据库后就有,也可以手动创建,只有在特定目录下才生效。dm_svc.conf配置文件的内容分为全局配置区和服务配置区。全局配置区在前,服务配置区在后,以“[服务名]”开头。服务配置区中的配置优先级高于全局配置区。若对dm_svc.conf的配置项进行了修改,需要重启客户端程序,修改的配置才能生效。
  8. sqllog.ini用于记录sql日志的配置,当把INI参数SVR_LOG设置为1,即开启sql日志记录,此配置文件才生效。若在服务器启动过程中,修改了sqllog.ini文件,修改之后的文件,只要调用系统过程SP_REFRESH_SVR_LOG_CONFIG()就会生效。若SVR_LOG配置为1,但不存在sqllog.ini或sqllog.ini配置错误,仍旧使用dm.ini中的“用户请求跟踪相关参数”。只有把INI参数SVR_LOG配置为1,且SVR_LOG_NAME为SLOG_ALL时,sqllog.ini中名称为SLOG_ALL的配置块才会生效。
  9. dmrep.ini用于配置复制实例,数据复制时使用。
  10. dmllog.ini用于配置逻辑日志,数据复制时使用。
  11. dmtimer.ini用于配置定时器,用于数据守护中记录异步备库的定时器信息或数据复制中记录异步复制的定时器信息。
  12. 每个DM数据库都有一个名为dm.ctl的控制文件,控制文件是一个二进制文件,记录了数据库必要的初始信息,如:数据库名称、数据库服务器模式、OGUID唯一标识、数据文件版本、数据库的启动次数、数据库最近一次启动时间、表空间信息(包括表空间名、表空间物理文件路径等)、控制文件校验码(由数据库服务器在每次修改控制文件后计算生成,保证控制文件合法性,防止文件损坏及手工修改)。
  13. 在服务器运行期间,执行表空间的DDL等操作后,服务器内部需要同步修改控制文件内容。若在修改过程中服务器故障,可能会导致控制文件损坏,为避免这种情况,在修改控制文件时系统内部会执行备份操作。
  14. 数据文件以DBF为扩展名(创建数据文件时可以任意取名,不一定非要用DBF为扩展名),是数据库中最重要的文件类型,一个DM数据文件对应磁盘上的一个物理文件,数据文件是真实数据存储的地方。
  15. 当DM的数据文件空间用完时,可以自动扩展(AUTOEXTEND ON),也可以在创建数据文件时通过MAXSIZE参数限制其扩展量。数据文件在物理上按照页、簇和段的方式进行管理。
  16. 数据文件按照数据组织形式,可以分为:B树数据(按B树索引组织数据,当表上没有指定聚簇索引时,系统自动产生一个唯一标识rowid作为B树的key来唯一标识一行)、堆表数据(以挂链形式存储,采用物理rowid)、列存储数据、位图索引(与B树索引不同,每个索引条目不是执行一行数据,而是指向多行数据,每个索引项保存的是一定范围内所有行与当前索引键值映射关系的位图)。(不是很懂这几种,而且这个不是段的组织方式吗?怎么是数据文件的分类?一个数据文件中既可以包含普通表,也可以包含堆表吧?)
  17. ROLL文件(ROLL.DBF)用于保存系统的回滚记录,提供事务回滚时的信息。回滚文件整个是一个段,每个事务的回滚页在回滚段中各自挂链,页内则按顺序存放回滚记录。
  18. 可以通过INI参数TEMP_SPACE_LIMIT控制TEMP.DBF大小。
  19. 重做日志(REDO日志)指在数据库中添加、修改、删除对象,或改变数据,DM都会按照特定格式,将这些操作执行的结果写入到当前的重做日志文件中。重做日志文件以log为扩展名,每个DM数据库必须至少有2个重做日志文件,循环使用。
  20. 重做日志文件因为是数据库正在使用的文件,因此被称为联机日志文件,主要用于数据库的备份与恢复。
  21. 日志文件分为联机日志文件和归档日志文件。DM数据库可以运行在归档和非归档两种模式。非归档模式下,数据库会只将重做日志写入联机日志文件进行存储;归档模式下,数据库会同时将重做日志写入联机日志文件和归档日志文件中分别进行存储。采用归档模式会对系统的性能产生影响。归档日志文件是数据守护功能的核心,数据守护中的备库就是通过重做归档日志中的REDO日志来完成与主库的数据同步的。
  22. 若在DM数据库上配置了复制功能,复制源就会产生逻辑日志文件。逻辑日志文件是一个流式文件,有自己的格式,且不在页、簇和段的管理之下。逻辑日志文件内部存储按照复制记录的格式,一条记录紧接着一条记录,存储着复制源端的各种逻辑操作,用于发送给复制目的端。(都可以使两台机器的数据保持一致,归档日志和逻辑日志的区别在哪呢?)
  23. 物理逻辑日志,是按照特定的格式存储的服务器的逻辑操作,专门用于DBMS_LOGMNR包挖掘获取数据库系统的历史执行语句。当开启记录物理逻辑日志的功能时,这部分日志的内容会被存储在重做日志文件中。
  24. 要开启物理逻辑日志的功能,需要满足两个条件:设置RLOG_APPEND_LOGIC为1、2或3;设置参数RLOG_IGNORE_TABLE_SET为1(记录所有表的物理逻辑日志)或建表时指定ADD LOGIC LOG(记录指定表的物理逻辑日志)。
  25. 备份文件以bak为扩展名,不是数据库必须有的联机文件类型之一。备份文件自身包含了备份的名称、对应的数据库、备份类型和备份时间等信息。同时系统还会自动记录备份信息以及该备份文件所处的位置,但这种记录是松散的,用户可根据需要将备份文件拷贝至其它地方,而不会影响系统的运行。
  26. 配置SVR_LOG和SVR_LOG_SWITCH_COUNT参数后,就会打开跟踪日志。跟踪日志是一个纯文本文件,以“dm_commit_日期_时间”命名。默认在log目录下,可通过SVR_LOG_FILE_PATH指定。跟踪日志内容包含系统各会话执行的sql语句、参数信息、错误信息等,主要用于分析错误和性能问题。打开跟踪日志会对系统性能有较大影响,一般用于差错和调优时才会打开,可以设置参数SQL_TRACE_MASK和SVR_LOG_MIN_EXEC_TIME减少记录日志的总量;设置参数SVR_LOG_ASYNC_FLUSH打开sql日志异步刷盘,提高性能;
  27. 系统中sql日志的缓存时分块循环使用,当预留块不足以记录系统产生的任务时,系统会分配用后即弃的缓存块,但总空间大小由ini参数SVR_LOG_BUF_TOTAL_SIZE控制。
  28. DM数据库系统在运行过程中会在log目录下生成一个“dm_实例名_日期”命名的事件日志文件,一般查错时看这个文件。
  29. 调用系统存储过程SP_START_CAPTURE和SP_STOP_CAPTURE,可以获得数据重演文件,用于数据重演,存储了从抓取开始到结束时,DM数据库与客户端的通信消息。

主要介绍了数据库在磁盘上的一些物理文件及其用途,比较重要的有:配置文件、控制文件、数据文件、重做日志文件。逻辑日志文件、物理逻辑日志文件和重演文件还不太清楚,感觉都是用来记录操作的,跟踪日志文件里也记录了sql操作。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值