Redis内存碎片mem_fragmentation_ratio

众所周知Redis是一款内存数据库,内存碎片会影响Redis的访问效率, 平时需要对Redis的运行健康度检查时,需要关注该指标,同时需要综合判断,是否需要人工干预,Redis自己的内存管理机制可以自动清理碎片,但有可能在清理时会有性能波动或带了CPU消耗。

有哪些技术可以减少PostgreSQL/openGauss数据库的存储空间?

试想一下如果你的OpenGauss或postgreSQL数据库主机告警使用率超过了90%, 且因为使用local 存储,所有硬盘槽位已用完,除了迁移或扩展外部存储以外,是否可以给数据库做”瘦身”, 在PostgreSQL数据库中,有几种技术可以帮助减少数据库存储空间的使用

注意: GreatDB中sysdate并不是oracle的sysdate

国产库在承接Oracle替换方面做了大量的兼容性,如果仅实现了语法兼容,没有相同的语义,这恐怕比不兼容还糟糕,比如原来的oracle的应用迁移到国产库后执行不报错,但却有可能和oracle得到完全不一样的结果。今天我们以万里开源的GreatDB中的sysdate为例, 对最近同事遇到这个案例简单分享。

,

注意:HAProxy可能限制MySQL的最大连接数

MySQL架构中经常会遇到和keepalived、HAProxy中间件的组合,解决MySQL的高可用与负载均衡的需求, 但是会给数据库配置带来复杂性。如果没有把这些组件与MySQL级联配置,可能会出现一些意向不到的问题,了解HaProxy就变的重要,近期一个客户在这样的环境做压力测试时,MySQL数据库的max_connections最大链接数已调整到10000, 但一应用反馈链接报错,从数据库上看链接最大也就在2000左右,并且MySQL日志未出现报错,

, , ,

How to alter a Procedure Created by Another User in MySQL?

在企业级运维中,应用程序用户和维护用户通常不建议复用,分别能过权限控制给维护人员修改应用对象的权限, 但是对于存储过程在MySQL中授权相对较麻烦,没有像oracle数据库中的alter any procedure的系统权限。 比如当user1修改user2创建的存储过程时,在DDL中带有“DEFINER=”其他用户时会报错如下:
ERROR 1227 (42000): Access denied; you need (at least one of) the SUPER or SET_USER_ID privilege(s) for this operation

,

PostgreSQL生成UUID函数的性能区别

在oracle中可以使用sys_guid()函数生产UUID唯一值, 在PostgreSQL中可以利用”uuid-ossp”提供的方法生成UUID值,但是当查看PostgreSQL在线文档uuid-ossp的方法是发现有多种函数,如uuid_generate_v1、 uuid_generate_v3 、uuid_generate_v4、uuid_generate_v5,那它们生的效率有区别吗? 这里简单的测试。

什么是 pg_filenode.map 文件?

在PostgreSQL中,每个数据库对象都有一个唯一的文件节点号,用于标识对象在磁盘上的位置。这些文件节点号与实际的物理文件相对应,例如表的数据文件、索引文件等。pg_filenode.map文件将这些文件节点号与相应的文件路径进行映射,以便数据库系统能够准确地找到和访问这些对象, 通常从数据字典pg_class可以根据relfilenode字段查找对应的文件。试想一下,在数据库启动时,数据库都没有open如何加载pg_class?

Troubleshooting XFS filesystem损坏恢复,与ASM start fail案例

上个月那次“盆泼大瓢”式的暴雨差点导致一客户的服务器上船,但还是导致电源故障,在UPS支撑了一会儿中断,再次启动RAC中的一个节点,查看/u01 oracle 软件所在的文件系统无法使用, 重启后操作系统无法启动,后修复文件系统再次出现ASM无法启动问题,简单记录一下这个故障。

,

Troubleshooting oracle 19c datapatch Fails with Error:”ORA-25153: Temporary Tablespace is Empty”

一套oracle 19c 多租户环境,安装19.19RU时datapatch失败,日志提示其中某个PDB执行SQL时,ORA-25153: Temporary Tablespace is Empty (DBD ERROR: OCILobCreateTemporary) ,简单记录处理方法.

,

Oracle RAC Multiple Private Interconnects注意配置rp_filter

前段时间一套Oracle Exadata的环境, 2个ib做的private network和cell存储网络,但总有一条存储链路从db server到cell server ping不通,但是ibstat ibping rds-ping都正常, 因为一个IB链路出问题同样影响IO,无法做到高可用。后分析发现是出于安全检查只是从内存级修改了rp_filter值为1启用了严格的反向路径校验,禁用rp filter后恢复正常。

Troubleshooting Oracle 19c PDB受限,SQL patch ID/UID xxx … ROLLBACK with status WITH ERRORS in the xxx.

oracle最近的问题遇到了越来越少, 今日一客户oracle 19c数据库重启后pdb进入受限模式(restricted), 回想前几日有安装一个小补丁one-off patch,运行过datapatch当时没有重启应该是问题没有暴露出来,查看pdb_plug_in_violations确认问题原因并非该one-off patch,因早期该库是Dataguard standby激活,软件RU新于原主库。

, ,

COLLATE影响PostgreSQL/openGauss数据库的排序与索引使用

当创建PostgreSQL数据库时,可以根据业务需要配置不同数据库的collation , collation影响包括字符串排序顺序、字符分类方法、数值格式、日期和时间格式以及货币格式。 此外,您可能还需要配置 LC_COLLATE 和 LC_CTYPE 环境变量。 在创建库、创建表、创建索引、查询时也可以指定该collation,不同的collation可能会产生不同的排序,甚至导致无法使用索引。

达梦数据库内存使用率高分析思路

达梦数据库赶上了XC的红利,早几年前在一些ZF行业已上线, 最近有客户反馈DM8数据库内存总时自动增长很快, 每隔不到一周时间就需要重启操作系统,希望协助分析一下原因,达梦DM我的研究经历并没有多久, 但关系型数据库的内存结构功能都大同小异, 所以尝试以Oracle DBA思路去排查一下.

Alert: 达梦数据库谓词无法推进VIEW,table最大查询优化个数限制(8 or 9)

达梦数据库(v8)在设计和实现上参考了Oracle数据库,并提供了一些兼容Oracle的功能和语法。这使得在某些情况下,可以将Oracle数据库应用迁移到达梦数据库上,而无需进行大量的修改和调整。但并不是所有的Oracle功能和特性都完全支持。在进行迁移或使用Oracle兼容性功能时,建议先进行充分的测试和验证,确保功能的正确性和性能的满足。最近协助一客户优化已上线2年的DM库,当view定义中增加超过一定数量的union all后性能突然变化的案例。

, , ,

如何从oracle 备份集恢复数据库?未知DBID DBNAME, 无controlfile

上周一客户咨询如果只有几个RMAN备份集文件,无任何地方得知controlfile, 如何恢复数据库?通常我们做RMAN备份会建议spfile, controlfile, datafile,archivelog一起备份,但如果没有rman备份日志,也没有备份controlfile如何恢复呢? 同时再增加一步,如果dbid 和dbname也不知道呢?

,

MySQL安全插件connection_control及导致链接耗尽”Waiting in connection_control plugin”

谈起安全防护方面,数据库用户可能会遭遇暴力破解的风险,在oracle数据库中有profile配置如配置尝试次数据等,同时在11g起引入了密码延迟认证,增加密码失败后尝试的时长,也带来了新的问题如较高的libarary cache lock,MySQL中的解决方案可以安装connection_control插件库,在MySQL 8.0 中引入,并向后移植到 MySQL 5.7 和 MySQL 5.6,但同样它也带了新的问题。

达梦数据库查看SQL执行计划(一)

对于一个oracle DBA, 虽然研究达梦数据库长达2小时,但一点都不影响使用,查看SQL的执行计划是DBA的必备技能,准备研究一下达梦查看SQL执行计划的几种方法,如explain, 10053,trace, autotrace,plndump 等系列测试。以oracle DBA视觉学习达梦。

Oracle sqlnet.ora配置sqlnet.expire_time 需要重启吗?

最近有个Exadata客户总是出现12c R1数据库等待library cache lock, 根据P3值能发现是Last_Successful_Logon_Time的namespace,关于该特性确实引入了一些问题,之前在《Oracle19c 建议的 One-off patch之disable LAST SUCCESSFUL LOGIN TIME》和Oracle 12c New Feature: Last Login Time for Non-Sys Users及对于登录相关的 LAST SUCCESSFUL LOGIN TIME的Library cache lock又出新参数 记录过该问题,是与登录相关的问题,如果我们在这个版本没有相应的补丁怎么办?是否可以通过降低链接频率规避问题发生?理论上是的。通常是配置SQLNET.EXPIRE_TIME,那需要重启吗?

How stop Oracle ASM diskgroup REBALANCE force? (ORA-15067)

最近某电力行业客户Oracle数据库反馈I/O 慢,查看 gv$asm_operation现在存在几块DROPING状态的OFFLINE的disk,正在做reblance(power 1),业务高峰期DISK BUSY 接近100% ,因为是SATA HDD,DB业务性能受到影响,且该ASM DISKGROUP 100TB以上RBLA预计要2天多的时间, 有没有办法停止当前的RBLA呢?

,

移除DataGuard Standby配置导致Primary启动失败

Datagaurd是oracle 数据库常用的容灾保护方案,但standby不再需要或删除后,在primary 需要清理之前的配置,通常认为很容易,比如禁用日志传输,no force logging, 清理log_archive _destN \LOG_ARCHIVE_CONFIG相关的参数等。是否很容易? 但里面隐藏着一个风险。上周一个政F行业客户遇到个案例,主库Oracle RAC 11.2.0.4原来有dataguard,但是清理后,直到有1个节点重启后实例无法启动,