oracle add column xx default value 增强(二)

oracle11g add default values columns(增加默认值列的改进)11年前 学习oracle初期测试过oracle 11g相对oracle 10g的增强, 对于增加列default not null 时只增加数据字典定义,而不有update 表现有数据,给对于大表比如上亿记录的列增加带来不小的提升, 今天看到同事在使用ogg 从19c to 11g同步DDL 又看到了这个现象。

Can OGG be used to extract capture from oracle dataguard standby for Multitenant database?

最近在测试oracle to postgreSQL项目中,计划使用oracle standby database做为数据库初始化的静态数据,这没有任何问题, 那是否可以从standby database捕捉变化呢?如配置ogg extract抽取进程。

,

Troubleshooting Oracle 19c GIPC start fail with “EXCEPTION[ ret gipcretBadArg (37) ] “

最近一套ORACLE 19C RAC 因一个节点主机故障重启后,其中1节点启动失败, 2节点正常启动,网络traceroute 、 ping 、多播测试均正常,幸存节点也有尝试重启、包括Kill gipc gpnp 进程,及重建过node 1的tmp 下的network soket临时文件, node1 依旧启动失败, 启动分析Init启动进程发现是gipcd启动后直接terminal中断

Oracle logminer笔记(四) 19c 多租户

10多年前测试过10g的logmnr用于从redo或archivelog中分析DDL DML记录, 当做一些误操作无法flashback技术恢复或无备份时,可以尝试用来从redo log中恢复一些操作, 最近测试了一个19c多租户环境中的logmnr,记录如何恢复某个PDB中deleted 记录。

Troubleshooting Oracle 19c RAC CSSD process cannot get real-timepriority

When CSSD process is unable to get real-time priority and is not running in real-time, it may lead to various HA issues. From 19c, this is treated as a fatal error.CSS cannot start normally if failed to get real-time priority.

,

Performance tuning ‘free buffer waits’ and ‘db file async I/O submit’

环境Oracle 11g(11.2.0.4) on RHEL6.9, 文件存储在SATA SSD的文件系统,每秒redo 50-100MB, 存在部分时间段40多组2GB online redo logfile 同时”active”状态的现象,cpu使用率60%左右。除了优化checkpoint外发现有2个少见的TOP event, 查看FG top event为’free buffer waits’, BG top event为 ‘db file async I/O submit’。

,

Troubleshooting ASM allocation is failed due to ORA-4030 though OS has enough free memories.

某客户一套Oracle 11.2.0.4 4-node RAC ON RHEL 7.6 环境 ,ASM High冗余Diskgroup 有600TB存储(没错是个超级大库), 其中有1个1TB的ACFS DG. 一日突然节点1个节点ASM和DB实例crash, 重启后正常, 分析当时的日志是ASM 实例的VDBG后台进程出现的ora-4030错误,目前需要分析一下原因。 简单记录。

,

Troubleshooting Oracle redo file on SSD wait event ‘log file sync’

最近某客户一套Oracle19c RAC 环境,在负载相对空闲时也面临一个常见的问题”log file sync”, 数据库存储已经是较快的SSD设备, 下面记录一下容易忽略的RAID配置,居然对数据库的影响如此之大的案例。

, , ,

Troubleshooting DB Logon failed ORA-01017 when Service has 2 instances

一套oracle 12c physical casecade dataguard 多租户环境,a–>b –>c, 用户在登录B standby数据库时间隔性提示ora-1017密码错误, 并且发现只是其中一个Pdb 存在这样的问题,如连续多次登录中其中有部分登录成功。

Troubleshooting Library cache lock (OPTIMIZER EXPRESSION HEADER ) on oracle 19c

The environment is Oracle 19.14 RAC 4-nodes, After the database was upgraded to 19c, there was a performance problem. From AWR, I saw a large number of library cache locks and library cache pins in the top event. namespace was OPTIMIZER EXPRESSION HEADER

Know more about ORACLE’S RECYCLEBIN

Recyclebin回收站是oracle数据库对于drop table的一种回退机制,可以使用flashback before drop特性闪回已drop还在recyclebin中的对象。纵观其他数据库像SQL Server也提供了类似功能, MySQL可以利用recycle_bin插件,但是作用在MySQL slave实例上,当在master实例上进行drop操作时,slave实例可以拦截drop操作,先进行数据备份再进行删除操作。 而在PostgreSQL中可以利用event trigger和pg_event_trigger_dropped_objects 来手动实现drop时 rename对象的方式变相实现recyclebin功能, 当然也可以使用一些插件如Pgtrashcan、postgresql-recycle-bin;在Opengauss中也增强了flashback的功能,但是需要注意更新方式是使用Ustore还是Astore, recyclebin不支持Ustore,只支持Astore,而且同样支持Truncate。

How to Recover Oracle Standby Database Using an Incremental Backup?

Oracle Standby database容灾库有时因为一些原因缺少了Primary database的archivelog未应用而中断同步,如备库归档目录使用率100%,或主库未传输删除了归档等。重新搭建DATAGUARD对于较大的数据库可能是费时费力,通常可以采用增量备份的方式,最近刚好是在处理一个ogg不同步的问题时。

,

Troubleshooting performance event ‘enq:CR – block range reuse ckpt’

enq:CR – block range reuse ckpt 出现该问题时分析等待链通常是前台进程等待CKPT进程在完成checkpoint, 通常是在DBWR进程在争用CPU或I/O 性能时,通常该event会非常短暂,如果该event已经在AWR dbtime中占据了较大占比时,需要引起关注。

Troubleshooting ORA-39002: invalid operation during datapump TZ version Difference

最近有个datapump跨数据库迁移数据时,提示”ORA-39002: invalid operation”错误, 排除过目录文件权限和语法兼容问题,后来发现是目标库的Timezone Version低于源库的TZ version. 需要升级目标库的TZ VERSION

Scripts: 查找Oracle数据文件碎片和extents分布

最近有个客户的表空间使用率使用50%左右就出现了ora-1653,我们知道ora-165N是空间无法扩展,这么多的free空间还无法扩展,其中有可能是存在碎片,也就是数据文件中不连续的”洞”free space, 在申请一个比较大的extents时,无法匹配连续空间而失败, 你是否想过查看数据文件上的段分布?或表空间的碎片情况?或move 哪个对象可以让datafile resize更小?

Troubleshooting large amount of undo/redo generated due to dblink usage

因为使用dblink需要分配undo段来标示分布式事务,如果在循环中使用dblink并commit,每次会分配新的undo段,同时undo retention如果保留时间较常,那可能会导致undo自动扩展很大(autoextent on ), 或者会出现undo段争用,从未过期的undo段偷窃, 就会影响正常的DML事务

,

Troubleshooting DB hang, v$asm_diskgroup query hang due to ASM I/O hang案例

就是因为HW的备份软件在备份前需要修改正常库的asm_diskstring 增加它的/dev/cdm*, 挂载它的存储设备到ASMDG, 因为他的软件bug导致期中一块盘处于中间态,磁盘名有,但iscsi未注册,挂载失败立即执行把它自己的ASMDG卸载,alter diskgroup xx dismount,但是这个动作又触发了ORACLE的ASM 自动disconnect 其它未使用diskgroup的预期行为

, ,

ORA-28007: the password cannot be reused 如何破

今天在测试一个小功能时发现个人用户密码已过期,当然这时只能去更改密码,改密码时递归更新密码最后更改时间来改变用户状态,此时profile延长过期天数PASSWORD_LIFE_TIME已无法解决, 但是大多数需求是希望是通过改密码的动作清除过期标记又不变原密码,当然这时又受到了user profile中PASSWORD_REUSE_TIME的限制, 你可能已想到了可以使用alter user identifed by VALUES ‘’; 但是这里也有个小细节。

,

Troubleshooting wait event ‘free buffer waits’

Server processes 扫描 LRU 列表以获取free buffers (例如,在从磁盘读取块时,或为 CR 克隆缓冲区等时)。在将其扫描到阈值级别后,如果Server processes找不到free buffers,它会请求 DBWR 将 LRU 列表中的脏缓冲区写入磁盘,或a pinned buffer is freed。当 DBWR 写入脏缓冲区/释放固定缓冲区时,会话等待 ‘free buffer waits’。

LOB 不当的chunk size会导致严重的空间浪费

前段时间一客户的Oracle数据库使用datapump做了迁移,发现相同数据LOB段迁移前后占用空间有原来的45G增长到了103GB, 朋友在墨天轮社区记录了这个问题click here, 主要原因是因为使用了不同的Lob Chunk Size,导致的空间浪费。这里简单的记录一下这个问题。

,