达梦数据库故障排除与性能优化

一.检查数据库服务日志

一般默认命名为dm_实例名称_YYYYMM.log。在$DM_HOME/log目录下
数据库服务日志记录了数据库服务启动,刷检查点,写归档、刷盘等一系列实例的运行过程
grep 筛选检查具有 ERROR 或者 FATAL 关键字的日志。


二.检查数据物理一致性

在数据库服务器正常关闭的情况下,可以使用 dmdbchk 对数据文件完整性进行校验,检验的内容主要包括:数据文件大小的校验;索引合法性校验;数据页面校验;系统对象 ID 校验等。在检验完毕后,dmdbchk 会在当前目录下生成一个名为 dbchk_err.txt 的检查报告。

格式::dmdbchk [ini_file_path]

例如: dmdbchk path=E:\dmdbms\data\DAMENG\dm.ini

三、调整配置参数

在DM数据库中,很多参数都是动态的,会自动响应各种负载,但是 DBA 仍然可以调用系统过程来改变DM实例的运行参数,从而获得更佳的性能体验。DBA 可以在 DM 数据库运
行过程中执行 SF_GET_PARA_VALUE 、 SF_GET_PARA_DOUBLE_VALUE 和SF_GET_PARA_STRING_VALUE 这三个函数来获取系统的当前配置参数,并且可以使用SP_SET_PARA_VALUE 和 SP_SET_PARA_DOUBLE_VALUE 过程来修改静态/动态配置参数.

1. SF_GET_PARA_VALUE (scope int, paraname varchar(256))
配置参数的值类型为数值类型时使用该函数来获取当前值。SCOPE 参数为 1 表示获取INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。
2. SF_GET_PARA_DOUBLE_VALUE(scope int, paraname varchar(8187))
配置参数的值类型为浮点型时使用该函数来获取当前值。SCOPE参数为1表示获取INI文件中配置参数的值,为 2 表示获取内存中配置参数的值。
3. SF_GET_PARA_STRING_VALUE (scope int, paraname varchar(8187))
配置参数的值为字符串类型时用该系统函数来获取当前值。SCOPE 参数为 1 表示获取INI 文件中配置参数的值,为 2 表示获取内存中配置参数的值。

4. SP_SET_PARA_VALUE (scope int, paraname varchar(256), value int64)
该过程用于修改整型静态配置参数和动态配置参数。SCOPE参数为1表示在内存和INI文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。只有具有 DBA 角色的用户才有权限调用 SP_SET_PARA_VALUE。

5. SP_SET_PARA_DOUBLE_VALUE (scope int, paraname varchar(8187),value double)
该过程用于修改浮点型静态配置参数和动态配置参数。SCOPE 参数为 1 表示在内存和INI 文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中
修改配置参数,此时可用来修改静态配置参数和动态配置参数。当 SCOPE 等于 1,试图修改静态配置参数时服务器会返回错误信息。只有具有 DBA 角色的用户才有权限调用SP_SET_PARA_DOUBLE_VALUE。

6. SF_SET_SYSTEM_PARA_VALUE (paraname varchar(256), value int64\double\varchar(256), deferred int, scope int64)
该过程用于修改系统整型、double、varchar 的静态配置参数或动态配置参数。DEFERRED 参数,为 0 表示当前 session 修改的参数立即生效,为 1 表示当前 session不生效,后续再生效,默认为 0。SCOPE 参数为 1 表示在内存和 INI 文件中都修改参数值,此时只能修改动态的配置参数。参数为 2 表示只在 INI 文件中修改配置参数,此时可用来修改静态配置参数和动态配置参数。只有具有 DBA 角色的用户才有权限调用SF_SET_SYSTEM_PARA_VALUE

DM 的动态 INI 参数分为系统级和会话级两种级别。会话级参数在服务器运行过程中被修改时,之前创建的会话不受影响,只有新创建的会话使用新的参数值。
1. SF_SET_SESSION_PARA_VALUE (paraname varchar(8187), value bigint)
设置某个会话级 INI 参数的值,设置的参数值只对本会话有效。

2. SP_RESET_SESSION_PARA_VALUE (paraname varchar(8187))
重置某个会话级 INI 参数的值,使得这个 INI 参数的值和系统 INI 参数的值保持一致。

3. SF_GET_SESSION_PARA_VALUE (paraname varchar(8187))
获得当前会话的某个会话级 INI 参数的值。

四、 优化数据库布局
数据库的布局直接影响整个系统的 I/O 性能。通常情况下,DBA 应该遵循下述原则:
1. 日志文件放在独立的物理磁盘上,保持与数据文件分开存储;
2. 预先估算并分配好磁盘空间,避免运行过程中频繁扩充数据文件;
3. 系统中不同表空间尽量分布在不同的磁盘上,这样当数据分布在多个表空间时,可以充分利用不同磁盘的并行 I/O 能力;
4. 对于分区表,尽可能将不同的分区放到不同的表空间;
5. 对于分析型应用,数据库的页大小和簇大小都可以考虑取最大值,并且在采用列存储的情况下,应该尽可能让每列存放在独立的表

一般默认命名为dm_实例名称_YYYYMM.log。在$DM_HOME/log目录下
数据库服务日志记录了数据库服务启动,刷检查点,写归档、刷盘等一系列实例的运行过程
grep 筛选检查具有 ERROR 或者 FATAL 关键字的日志。检

查日志

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值