什么是 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个节点重启后实例无法启动,

Troubleshooting DBA_TABLESPACE_USAGE_METRICS or GV$FILESPACE_USAGE query empty

Oracle提供了非常有用的工具和视图来帮助数据库管理员进行数据库管理。其中包括一些处理空间问题的方案。其中一个这样的视图是DBA_TABLESPACE_USAGE_METRICS, DBA_TABLESPACE_USAGE_METRICS是基于GV$FILESPACE_USAGE,另外有些ORACLE周边工具为了简化查询,利用该VIEW日常监控表空间使用率,一客户反馈页面无返回数据,记录一下监控工具的遗漏.

Troubleshooting Oracle 19c RAC gipcd start fail after a node reboot

前不久某银行客户oracle 19c(19.6) RAC,其中一节点计划性操作系统重新启动后,gipcd无法正常启动,导致CRS无法启动的问题。之前曾经记录过2篇Troubleshooting Oracle 19c GIPC start fail with “EXCEPTION[ ret gipcretBadArg (37) ] “和Exadata X7, RAC gipcd 无法启动,因为Network socket files, 这里简单记录.

,

Troubleshooting Oracle 12cR1 Expdp is slow Bugs

最近一个交通行业的客户近400TB的数据库,需要导出100T的历史数据后清理,但使用Datapump Expdp导出过程遇到了好几个问题且是已知bug ,简单记录. 首先注意如果使用NFS作为expdp的directory, 确认的使用正确的mount option, 同时如果远程是一些其它文件系统如ZFS或Vxfs ,要注意日志和碎片带来的性能影响,建议先在本地文件系统测试导出正常。

,

Troubleshooting Performance Oracle SQL high buffer_gets and large temp usage分析思路

最近一证券客户反馈一SQL执行时间突然变长,平时执行2秒,问题时间312秒,并且发现问题时间段的temp表空间使用率耗尽, 十几分钟后问题又消失, SQL的执行计划未改变,但单次执行逻辑读大量增加,同时伴有少数据物理读变化, 几个小时后找到我帮分析一下原因,下面记录一种分析思路.

, ,

Troubleshooting oracle database hang and startup fail, alertlog show “WARNING:io_getevents timed out 600 sec”

昨日一客户Oracle DBWR I/O操作挂起, checkpoint无法完成,数据库实例未crash,环境操作系统Suse Linux v10, Oracle 11.1.0.7 单机数据库, 10TB使用raw存储数据文件格式, 昨晚有存储机柜断电,之后数据库alert log出现”WARNING:io_getevents timed out 600 sec”, 但vmsta和iostat查看cpu, memory, vmstat R B 列为0, iostat 的await和util%很低,

初始,达梦数据库dm8命令行安装(on Oracle Linux7)

达梦数据库简称DM,目前最新的版本是8.0版本,简称DM8。支持Windows、Linux和Unix操作系统,本次安装将采用Linux操作系统(Oracle Linux OS7),以高度兼容oracle颇受用户喜爱,前几天的blog提到语法兼容并不一定性能一定好,还是建议要按目标数据库的机制原生语法,后面测试一个前几天看到的执行计划,这里仅安装