Video Training: 数据库安全运维注意事项

数据堪称企业的生命线,任何一次不经意的操作失误都可能引发千万级别的经济损失,甚至招致法律上的责任追究。在今天的分享中,我将从规章制度、技术保障以及人员管理三个维度出发,为大家详细解读——无论是面对从Oracle到国产数据库的运维转型,还是探索国产数据库特有的安全机制时,我们应当注意的关键事项。同时,我们也会探讨在利用大型模型进行知识问答过程中可能出现的风险及其防范措施,旨在帮助大家构建坚固的数据安全防线,确保企业数据资产的安全与稳定。

GoldenDB 分布式数据字典不一致修复ERROR 3508

GoldenDB作为分布式数据库,数据字典和元数据损坏属于严重故障,需谨慎处理。如果是主备架构,可能优先考虑切换主备,用备库恢复,这样可以减少停机时间。近期在做partition table的add 维护时,遇到了一个案例,版本 GoldenDB-ALL-DBCLUSTERV6.1.03.07SP5.r4895784, 报错信息如下

ERROR 3508 (HY000): Dictionary object id (xxx) does not exist.(Proxyid:1 Clusterid:1 Groupid:xx DBid:xx);part of DDL may succeed,please manual recovery!

如何跟踪MySQL DDL重构进度?

在MySQL中有些DDL操作可能会导致表重组,如<“alter table ” modify column in Oracle、MySQL、PostGreSQL(数据库比较系列十三)>,如果表较大时,可能重组需要等待很久的时间,有没有什么方法可以跟踪一下DDL的进度呢?

MySQL的字符集 character_set相关配置

在 MySQL 中,character_set 配置用于指定数据库、表、列或连接的字符集。字符集决定了如何存储和检索字符数据,例如 UTF-8、latin1 等。MySQL 中有八个与 character_set 相关的配置选项,如下所示。如果不仔细阅读MySQL字符集文档,可能很难知道这些配置选项的用途。此外,对于某些选项,除非进行进一步测试,否则很难知道 MySQL 如何使用它们。

Migrate oracle to openGauss/oceanbase/达梦/kingbase: md5 function

在十年前简单测试过oracle 9i 的加密解密用法之dbms_obfuscation_toolkit(二),其中有md5单向加密, 最近在oracle迁移到opengauss项目中用到了md5, 这里简单记录替换方案,在pg或og中直接就有md5 function. 在mysql及Mysql系的产品和ocenabse, 达梦一样存在该函数md5。

MySQL Estimate of the duration of a rollback operation(估算rollback事务回滚剩余时间)

很久以前记录过一篇 Oracle Estimate of the duration of a rollback operation (估算rollback事务回滚剩余时间) ,oracle的大事务cancel或kill后的回滚操作,rollback所花费的时间通常比原来的操作还要长,而且在回滚完成前有可能会堵塞其它事务,在PostgreSQL中因为没有使用undo而是多版本,所以忽略rollback的时间,这是PG的强项,但是在MySQL中和oracle一样同样存在回滚问题,这里简单记录如何估算MySQL中的事务回滚时间。

GoldenDB TEMP Tablespace(#innodb_temp)导致文件系统使用率高

最近,我注意到一位朋友在处理一个以G字开头的MySQL系国产数据库时遇到了一些问题。具体来说,该数据库占用了超过1TB的临时文件,导致文件系统告警,之前kill session并且未能释放。这是由于在杀掉dbproxy上的session后,db node上的session仍然存在。这样的情况可能是非原生分布式数据库的一个风险点,因为每个data node都是一个独立的MySQL实例。最终,我们通过登录到data node并手动kill session解决了问题。我在另一款国产MySQL系分布式数据库GoldenDB上进行了类似的模拟测试,仅记录处理方法。

Alert: 不要升级到 MySQL 8.0.38( 8.4.1, 9.0.0) 任何版本?

上周,Percona 发布了一篇警告博客,提醒用户<不要升级到 MySQL 8.0.37 之后的任何版本>。然而,现在访问 MySQL 官方下载页面,依然可以在主推的下拉列表中看到这些版本。
Percona 在文章中提到,Jean-François Gagné 在 bug.mysql.com 上报告了一个编号为 #115517 的 bug。不幸的是,这个 bug 目前处于私密状态。简而言之,如果您创建大量表(例如 10000 个),MySQL 守护进程在重新启动时会崩溃。当然,也有人认为这是危言耸听,因为单个数据库实例中有超过1万张表的用户可能不足0.0000001%。

MySQL的DDL注意事项,在Goldendb中有改进吗?

Oracle 数据库在在线维护操作方面引入了大量特性,旨在实现日常维护和升级时无需停机。相比之下,MySQL 在这方面的表现稍逊一筹。作为 Oracle 的 DBA 是一件很幸福的事情,因为日常的分区维护、发现性能问题时的紧急创建索引等操作都可以在线完成。而 MySQL 虽然也宣称支持 DDL,但这是真的吗?

我们有一个 GoldenDB 的客户要求以后所有的 DDL 操作只能在停所有业务的情况下执行。对于拥有大量数据库实例且需要频繁进行 DDL 维护的情况,请问你能提供多少停机时间?

MySQL Backup/Restore tools 总结

数据库存放着组织拥有的最重要的资产之一——数据。保持数据安全和不受破坏是关键任务。对于大多数应用程序来说,停机比数据丢失或损坏更痛苦。DBA的核心职责包括数据库的备份恢复,到了关键时刻非常考验方案的有效性。在MySQL开源数据库也存在一些备份工具,但存在一些差异,备份应根据恢复需求进行规划, 这里简单整理。

MySQL 行锁lock 放大现象Oracle DBA无法理解

MySQL事务隔离级别默认的Repeatable Reade 下有Gap Lock问题,在更低的隔离级别下,如读已提交(Read Committed)或读未提交(Read Uncommitted),Gap Lock不会被使用,在READ-COMMITTED下同样存在类似“Gap Lock”的问题,如果Oracle 数据库向基于MySQL innodb的数据库迁移后,不知是否会出现原有应用经常行锁等待的现象,等待innodb_lock_wait_timeout参数配置的时间后报错, 而oracle lock是在行头(row header)上,MySQL这种导致锁定记录增加的现象,让从事oracle DBA转型的无法理解

Oracle, MySQL, PostgreSQL 数据库比较系列(二十一): 纪元秒数与日期转换

前几日一客户问我在oracle执行unix_timestamp函数报错,心想这不是MySQL的函数吗?难道oracle引入了?找了一圈到oracle 23ai也没有自带该函数,可以自定义函数实现, 在去年的一个oracle迁移到PostgreSQL系数据库里,有套业务库大量使用epochs做为datetime,这里简单记录在oracle, mysql ,postgresql中如何做unix epoch到datetime的转换.

分析应用日志Caucho连接池MySQL随机com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

最近一客户的应用日志随机会出现一些数据库源访问错误,中间件使用Caucho的连接池,数据库为MySQL 5.7主从,前端有HAproxy, 应用server多个,报错也不是持续性,再次重试可能会就正常,错误日志DataAccessException: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago.

Oracle、MySQL、PostgreSQL、openGauss、达梦、OB、Tidb数据库比较系列(二十): 事务隔离级别

事务隔离级别是数据库事务处理的基础,ACID 中的 “I”,即 Isolation,指的就是事务的隔离性。ANSI/ISO SQL 标准定义了4 种事务隔离级别,对于相同的事务,采用不同的隔离级别分别有不同的结果。这些隔离级别是根据3 个“现象”定义的,

Oracle、MySQL、PostgreSQL、openGauss、达梦数据库比较系列(十九): 增加列default value会表重写吗?

之前曾经在《oracle add column xx default value 增强(二)》记录过,在日常运维中增加column是常见的操作,对于大表增加列时是否会导致回写表还是只修改数据字典影响DDL的执行时间和停机窗口长短。之前也在《“alter table ” modify column in Oracle、MySQL、PostGreSQL(数据库比较系列十三)》记录修改column时不同库的表现, 这里简单记录测试一下当前主流的几个库对于add column的现象。