- 博客(79)
- 收藏
- 关注
原创 达梦数据库阻塞及锁处理
摘要:本文详细分析了DM8数据库中的锁等待现象及其处理机制。锁等待发生在事务请求已被其他事务锁定的资源时,而死锁则是多个事务形成等待环。文章介绍了四种锁模式(共享锁、排他锁、意向锁)及其兼容性,并重点阐述了达梦数据库通过TID锁和对象锁实现的优化机制。通过多个测试场景(包括读阻塞写、唯一约束冲突、DML阻塞DDL等)模拟了锁等待现象,并提供了对应的查询和解决方法。最后总结了不同锁场景的处理策略,为数据库管理员提供了实用的锁问题排查和解决指南。
2026-03-20 16:46:55
517
原创 达梦数据库BLANK_PAD_MODE与SPACE_COMPARE_MODE参数解析
属性说明参数类型初始化参数设置时机仅能在实例初始化时指定修改方式不可动态修改,重建实例才能变更默认值0作用控制字符串比较时是否忽略尾部空格0:比较时忽略尾部空格(兼容 Oracle 默认行为)1 :比较时考虑尾部空格(ANSI 标准行为)BLANK_PAD_MODE=0 且 SPACE_COMPARE_MODE=1 会导致索引范围定位失效CHAR 类型始终忽略尾部空格,不受 SPACE_COMPARE_MODE 影响。
2026-03-02 15:04:54
852
原创 DM7 DataWatch RLOG_SEND_THRESHOLD及RLOG_APPLY_THRESHOLD 参数对集群影响
指定备库重演日志的时间阀值,默认关闭;主库守护进程判断备库重演日志是否正常,是根据(最近N次的等待时间+最近N次的重演时间)/N得到的平均值来判断的,如果平均值大于主库守护进程配置的RLOG_APPLY_THRESHOLD值,则认为备库重演异常。指定主库发送日志到备库的时间阀值,默认关闭;RLOG_SEND_THRESHOLD参数用于监控主备之间的日志发送速度,此参数必须配置为大于0的值,否则守护进程不会打开监控功能。
2025-09-30 14:34:29
919
原创 DSC 归档配置相关
当节点间网络恢复或者远程节点重启成功后,系统会自动检测并恢复远程归档,继续发送新写入的REDO日志,但不会主动补齐故障期间的REDO日志。达梦数据库在已经开启归档模式的情况,无法在open状态下修改归档目录,OPEN状态下仅允许添加REALTIME、TIMELY、ASYNC、SYNC归档。注意,这里是在写入本地归档日志文件的同时,通过MAL系统将REDO日志发送给指定的数据库实例,没有先后顺序。在DMDSC中的每个节点都有事务日志,所以在DMDSC中,在备份节点上需要能够访问到所有节点的归档日志。
2025-09-22 14:49:02
640
原创 DSC 参数ARCH_HANG_FLAG对集群的影响
当所有归档均被清理,新归档仍无法写入时,则返回报错,不再尝试写入。数据库警告日志报错磁盘空间不足,此时集群整体挂起与第二路径归档打满现象相同,持续尝试写入归档日志,正在执行事务挂起且阻塞后续事务。数据库警告日志报错磁盘空间不足,报错后,集群将该归档位置设置为INVALID,不再尝试在该目标位置写入。数据库警告日志报错磁盘空间不足,报错后,集群将该归档位置设置为INVALID,不再尝试在该目标位置写入。数据库警告日志报错磁盘空间不足,报错后,集群将该归档位置设置为INVALID,不再尝试在该目标位置写入。
2025-09-22 14:48:34
1124
原创 dmctlcvt工具介绍&数据文件路径变化后如何拉起数据库
达梦数据库使用dmctlcvt工具实现控制文件转换与路径修改。该工具位于$DM_HOME/bin目录,支持将二进制控制文件转为可编辑文本文件,修改路径后再转回二进制格式。文中演示了两种场景:1)移动整个数据文件父目录时,需先关闭数据库,修改dm.ini参数文件和控制文件中的路径;2)移动单个表空间数据文件时,通过表空间离线操作完成迁移。两种方法均通过dmctlcvt工具调整控制文件路径,最终实现数据库正常启动和访问。案例包含详细命令和验证步骤,为达梦数据库存储路径变更提供了实用解决方案。
2025-08-07 23:43:32
522
原创 主机重启DBUS及POLKIT服务无法启动
需注意root的配置文件,尤其是库文件指向。安装Oracle只改oracle用户的,但是如果接监控或者别的需要在root下面配置oracle环境变量时,要添加LD_LIBRARY_PATH,此时一定要看好库指向,/usr/lib64优先而不是oracle的。...
2022-08-03 11:04:51
5616
原创 Python LAC使用
使用lac分词1、需求目前有一系列带有人名、机构的信息,需要将人名和机构名剥离梳理。python lac库可以实现精准定位分词。2、参考文档安装lac前的一些依赖关系解决,需要python版本3.7https://www.freesion.com/article/4512610119/书签:成功解决问题:ModuleNotFoundError: No module named 'paddle'或者 No module named 'paddle.fluid' - 灰信网(软件开发博客聚合
2022-03-31 14:25:53
5332
2
原创 ELK相关成员部署及简单配置
ELK相关成员部署及简单配置[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gkobap7y-1623050862580)(media/73e12cd91e3782f218bd9fac89df1762.png)]1、elasticsearch的安装与简单配置!!! JAVA环境的必要性:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t4gFBBpy-1623050862584)(media/8c53efec682cfa80bd852815
2021-06-07 15:28:08
618
1
原创 RAC11.2.0.4GI安装执行root.sh脚本报错
环境介绍在主安装节点执行root脚本,查看日志存在以下失败信息[root@orcl1 ~]# tail -100f /u01/app/grid_home/install/root_orcl1_2021-02-04_16-43-26.logPerforming root user operation for Oracle 11gThe following environment variables are set as: ORACLE_OWNER= grid ORACLE_HOME=
2021-02-05 09:47:28
653
原创 使用ISCSI+Multipath配置共享存储
环境说明VMware下CentOS7,额外添加一块硬盘具体如下:[root@orcl1 dev]# lsblkNAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTsda 8:0 0 200G 0 disk├─sda1 8:1 0 1G 0 part /boot└─sda2 8:2 0 199G 0 part ├─centos-root 2
2021-02-03 19:30:11
753
原创 log file switch解决办法
问题背景:19cRAC使用swingbench进行压测并发数200压测截图:tps存在较多起伏,同时磁盘IO存在较多抖动,说明对磁盘的写较为频繁且tps与磁盘IO变化趋势接近ash查看当前等待事件:发现较多log files witch,log file switch等待,该等待事件在日志发生切换的时候出现。后台进程 LGWR需要关闭当前日志组,切换并打开下一个日志组,在这个切换过程中, 数据库的所有 DML 操作都处于停顿状态,直至这个切换完成。log file switch主要包含lo
2021-01-27 16:28:58
1823
原创 使用Orion测试ASM磁盘组
Oracle orion下载https://www.oracle.com/cn/technical-resources/topics/oracle-orion-download.htmlORION (Oracle I/O Calibration Tool) 是校准用于 Oracle 数据库的存储系统 I/O 性能的独立工具。校准结果对于了解存储系统的性能有很大帮助,不仅可以找出影响 Oracle 数据库性能的问题,还能测量新数据库安装的大小。orion是一个独立的工具,用户不需要创建和运行数据库。OR
2021-01-27 16:25:17
1205
原创 B+树相关数据结构和算法
二分查找法二分查找法(binary search)也称为折半查找法,用来查找一组有序的记录数组中的某一记录,简单来讲就是将记录按照有序化(递增递减)排列,在查找过程中采用跳跃式方式查找,即先以有序序列的中间位置为比较对象,如果要找的元素值小于该中点元素,则将待查序列缩小为左半部分,否则为右半部分。一次比较将查找区间缩小一半。具体如下:这里有10个数字,现在需要查找48这条记录,二分法查找过程如上,第一次查找为37,48大于37所以在右侧再次二分法查询,这次定位为50大于48在左侧查询,可以得到48,整
2021-01-27 14:53:43
773
原创 Oracle CPU打高问题排查思路
通过系统进程排查1.使用top命令确定进程pid可以看到有较多会话进程消耗CPU达到100%,然后找到这些存在问题的进程查看具体信息[oracle@ajdbosread 12.1.2]$ ps -ef | grep 432705oracle 432705 1 87 09:28 ? 02:13:13 oraclequerydb (LOCAL=NO)确认进程为远程连接后,使用如下SQL得到执行SQL的具体信息2.获取执行SQLSELECT /*+ ORDERED
2021-01-27 14:43:20
763
1
原创 关于视图: V$RMAN_BACKUP_JOB_DETAILS
该视图记录了rman备份的相关信息,主要内容如下:SQL> desc V$RMAN_BACKUP_JOB_DETAILS; Name Null? Type ----------------------------------------- -------- ---------------------------- SESSION_KEY
2021-01-26 09:53:58
1223
原创 19CRAC静默安装模板
GI安装模板#cat grid.rsporacle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0INVENTORY_LOCATION=/u01/app/oraInventoryoracle.install.option=CRS_CONFIGORACLE_BASE=/u01/app/grid_baseoracle.install.asm.OSDBA=asmdbaoracl
2021-01-26 09:51:38
733
原创 RAC添加私有网卡
当前环境:RAC环境已存在,原环境每个节点两张网卡,现在每个节点各新增一张网卡作为私网网卡加入rac集群环境查看当前集群网卡情况:[grid@orcl2 ~]$ oifcfg getifeth0 172.16.104.0 global publiceth1 172.16.108.0 global cluster_interconnect,asm[grid@orcl1 ~]$ oifcfg getifeth0 172.16.104.0 global publiceth
2021-01-26 09:50:01
592
原创 RAC HAIP问题记录
背景介绍:在Oracle11.2.0.2之前,私网冗余通过在操作系统层面做网卡绑定来实现,从11.2.0.2开始引入了一个新特性叫做Highly Available Virtual IP,简称为HAIP。该特性替代了传统网卡通过绑定技术完成Active-Active的模式进行数据传输。同时实现故障转移功能和负载均衡(减少因为gc等待带来的性能问题)。HAIP属于ohasd资源,对于Oracle 集群而言私网通信尤为重要,因为节点和节点间通信绝大部分是通过私网来实现的。私网通信基本可以分为两种,第一种为集
2021-01-26 09:45:56
1379
原创 xtrabackup原理
1.什么是xtrabackupPercona-xtrabackup是 Percona公司开发的一个用于MySQL数据库物理热备的备份工具,支持MySQL、Percona server和MariaDB,开源免费,是目前较为受欢迎的主流备份工具。开源、免费的MySQL热备份软件,它可以为InnoDB和XtraDB数据库执行非阻塞备份(对于MyISAM的备份同样需要加表锁)。在实际生产环境中增量备份是非常实用的,如果数据大于50G或100G,存储空间足够的情况下,可以每天进行完整备份,如果每天产生的数据量较大
2020-12-17 09:31:10
495
原创 xtrabackup整库全备恢复单库
1. 创建测试环境建立测试库mysql> create database testa;Query OK, 1 row affected (0.00 sec)mysql> create database testb;Query OK, 1 row affected (0.00 sec)mysql> create database testc;Query OK, 1 row affected (0.00 sec)mysql> create database test
2020-12-17 09:26:11
2740
原创 oracle自动启动脚本
oracle自动启动脚本/etc/oratab介绍系统版本:CentOS release 6.8 (Final)数据库版本:Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production核心文件:/etc/oratab注:如果相应目录下没有该文件,可以使用find命令进行查找复制关于该文件的说明:文件内容格式:$ORACLE_SID:$ORACLE_HOME:[Y/N]第一和第二字段分别是数据库的系
2020-12-17 09:22:25
1087
原创 MySQL相关文件——二进制日志
MySQL二进制日志—binlog一、什么是二进制日志1.概念 二进制日志被称为binlog,它会记录所有的修改数据库的语句或者有可能改变数据库的语句,但是像select,show等不会对数据库进行写操作的语句不会被记录。2.具体分析 二进制日志,内容是二进制的也就是说使用cat等命令是无法直接查看的,在二进制日志中有着“事件”,“位置”的概念的。**事件:**events。在binlog中每一条记录都可以当作是一个“事件”,因为二进制日志记录的是对数据库的修改,也就是每有一次修改就
2020-11-03 11:28:25
238
原创 MySQL相关文件——参数文件
1.参数文件当MySQL实例启动的时候,数据库会先去读取一个配置参数文件,用来寻找数据库各种文件的所在位置及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等,在默认情况下,MySQL实例会按照一定顺序在指定的位置进行读取,可以使用mysql --help | grep my.cnf来进行寻找。[root@mysql8 ~]# ps -ef | grep mysqldmysql 65894 1 0 14:56 ? 00:00:00 /bin/sh /usr/
2020-11-03 11:21:14
413
原创 python升级导致yum命令报错
yum报错File ”/usr/bin/yum“,line 30 问题处理操作系统:CentOS7需要安装新的软件包,使用yum进行安装时报如下错误[root@mysql8 logs]# yum clean all File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^SyntaxError: invalid syntax原因:yum采用Python作为命令解释器,
2020-10-14 11:24:13
563
原创 InnoDB——Checkpoint
CheckPoint技术目标问题如果每当一个页发生变化就将其写回磁盘那么开销会变得很大,而且如果热点数据都在这几个页中,需要频繁修改,频繁写回在读取磁盘,这样数据库性能会变得极差。除此之外,如果数据库在从缓冲池将页的新版本刷新到磁盘时发生了宕机,那么数据便无法恢复造成数据的丢失。为了避免数据丢失的问题,事务数据库通常都会采用Write Ahead Log的策略,当事务提交的时候,先写重做日志再对页进行修改。当发生宕机而导致数据丢失的时候,可以通过重做日志来进行恢复。场景:如果,重做日志可以无限扩大
2020-09-19 13:54:05
390
原创 InnoDB——线程
后台线程InnoDB存储引擎是多线程的,因此后台有多个不同的后台线程,负责处理不同的任务Master Thread核心后台线程,主要负责将缓冲池中的数据异步刷新到磁盘上,保证数据的一致性,包括脏页的刷新,合并插入缓存(Insert BUffer),undo页回收等。IO ThreadInnoDB存储引擎中大量使用AIO(Async IO)来处理写请求,可以极大的提高数据库性能。而IO Thread线程主要负责这些IO请求的回调(call back)处理。IO Thread主要可以分为write
2020-09-19 13:51:27
716
2
原创 InnoDB文件结构
1.innodb存储引擎文件组织[root@mysql8 ~]# ps -ef | grep mysqldmysql 18070 1 0 14:35 ? 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/mysql/mysql_3306/my_3306.cnfmysql 19690 18070 4 14:35 ? 00:00:05 /usr/loca
2020-09-06 15:22:47
727
原创 mysql优化-or的改写
使用or会导致sql无法使用索引。可以使用union进行改写SELECT `member_id` FROM `feel_member` WHERE ( `account` = 'leader' OR `mobile` = 'leader' OR `email` = 'leader' OR `name` = 'leader' ) AND `type` = 1 AND `closed` = 0 LIMIT 1;以selec
2020-09-06 14:55:48
796
原创 记一次RMAN全备恢复
一次RMAN全备恢复当前环境,客户已经将相应的备份文件导入测试环境,测试环境Oracle软件已经安装完成,同时测试环境存在数据库。无法确定测试环境的数据是否可以删除,同时考虑到测试环境磁盘空间比较充裕。选择新建实例的方法。以下操作为流程,鉴于数据安全性为我自己还原的场景源库执行RMAN备份全库1)全备前操作#查看当前数据库状态SYS@proe>select instance_name,status from v$instance;INSTANCE_NAME STATUS----
2020-08-25 15:51:00
451
原创 ORA-00972: identifier is too long 问题处理
ORA-00972: identifier is too long 问题处理 关于这个错误从报错提示来看,就是标识位置字段太长了,一般出现在别名长度问题上。这种情况对字段做出些修改即可。还有另外一种情况,也会报相同的错误,一条SQL可以在客户端工具如navicat,PLSQL等执行,但是却无法在SQL Plus中执行。出现这种情况一般是字符集的问题。测试流程:1)在SQL Plus中执行SYS@proe>SELECT a.tablespace_name "表空间名", to
2020-08-24 13:04:33
23044
原创 error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such...
MySQL5.7二进制安装初始化报错报错信息:[root@MySQL5.7 /app/mysqlapp/mysql/bin]#./mysqld --initialize --default-file=/etc/my.cnf --user=mysql./mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory解决:#直接安装
2020-08-21 15:14:08
430
原创 MySQL5.7二进制安装
软件包:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz环境规划:主机名IP数据库版本系统版本MySQL5.7192.168.1.232mysql-5.7.31CentOS release 6.9 (Final)1.系统配置1)修改主机名,关闭selinux,关闭防火墙等[root@centos6 ~]# vim /etc/sysconfig/
2020-08-21 14:49:47
373
原创 使用OGG实现Oracle到kafka数据同步
使用OGG实现Oracle到kafka数据同步文章目录使用OGG实现Oracle到kafka数据同步一、环境规划二、安装包下载三、搭建过程1.Oracle部署2.Oracle OGG部署3.kafka OGG部署4.OGG配置(含测试准备)四、测试五、错误分析一、环境规划实现目标:配置OGG,实现从Oracle到kafka数据增量同步。同步消息格式为json。主机规划:身份主机名版本IPOGG版本源端orcldbRelease 11.2.0.4.0172
2020-08-20 16:23:19
1518
原创 通过二进制日志恢复误删数据库
一、初始环境系统版本:CentOS Linux release 7.6.1810 (Core)数据库版本: 8.0.15 MySQL Community Server - GPL二、环境模拟1.恢复的必要条件 开启binlog日志,通过二进制日志和全备(逻辑备份)来恢复误删库。整体环境是在一次全备后有新数据插入,误删数据库进行恢复。先恢复全备状态,然后根据二进制日志提取出相关SQL将drop语句删除。重新恢复即可。2.创建测试环境1)查看此时数据库是否开启二进制日志mysql> s
2020-08-19 17:09:23
1257
原创 Buffer Cache内部原理-LRU队列-主辅LRU
LRU队列文章目录LRU队列1.主LRU和辅LRU链表2.物理读时访问LRU链表情况3.辅助LRU为空后的处理方式LRU分为LRU和LRUW,他们两个分别分为主辅两个链表。也就是说一组LRU包含四个链表,主LRU,辅LRU,主LRUW,辅LRUW。其中主LRU和辅LRU用于在Buffer cache中寻找可以覆盖的buffer cache块。主LRUW和辅LRUW的作用和 检查点队列类似或者说是二者合力而为,是DBWR用来写脏块的。1.主LRU和辅LRU链表作用:物理读时,服务器进程将数据块从数据文
2020-08-18 15:49:11
594
原创 案例:单列索引和复合索引选择
单列索引和复合索引的选择问题SQL:mysql>explain SELECT product_subject_rule_id, property_type, property_value, product_subject_id, submited_num, created_at, updated_at, enabled FROM product_subject_rule WHERE ( product_subject_id.
2020-08-18 11:54:45
876
原创 ORA-27125问题解决
问题环境:在centos6上搭建单机Oracle10G,搭建完成关机后启动报错,报错信息如下:[root@centos6 ~]# su - oracle[oracle@centos6 ~]$ sqlplus / as sysdbaSQL> startup;ORA-27125: unable to create shared memory segmentLinux-x86_64 Error: 1: Operation not permittedSQL> DisconnectedO
2020-08-16 14:53:33
3033
原创 Buffer Cache内部原理-HASH链表
1. Buffercache的工作原理-1文章目录1. Buffercache的工作原理-11.1 HASH链表1.1.1 hash链表与逻辑读1.1.2 Cache Buffers Chain Latch和Buffer Pin锁1.1.3 Cache Buffers Chain Latch的竞争1.1 HASH链表 Buffercache作为磁盘数据块的缓存在Oracle的所有池中是最大的。在生产环境中往往几十G甚至上百G。为了更好的管理Buffercache准确的找到数据文件需要的数据块或者查看
2020-08-14 17:59:09
512
【数据库高可用】达梦DSC集群ARCH-HANG-FLAG参数配置对归档失败处理机制的影响分析
2025-09-19
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅