Oracle 12c R2 – 19C Instance_mode read-only(不是雪中须送炭,聊装风景要诗来。)

Oracle数据库40年来还真是“急人所急 想人所想”,不断努力在一套软件中集成所有解决方案,以至于导致有人抱怨“她”太“胖”了。有没有想过oracle数据库中的读写分离场景?首先会想到使用Active DataGuard,但是如果不要DG,只在一套数据库RAC中不同节点实现呢?如一个节点写,其它节点只读呢。

, ,

如果存在Infiniband设备,ifconfig hardware address can be incorrect可以忽略

Infiniband(IB) 是一个用网络通信标准,满足科学计算实验的要求, 致力于服务器端的高性能计算的互联技术,适合用于RAC的CACHE FUSION和ORACLE Exadata等工程系统一体机,分布式存储系统. 使用ifconfig 查看ip信息,如果服务器上有IB时会提示如下错误”Infiniband hardware address can be incorrect”

, ,

Oracle 12C wait ‘library cache lock’ after change password even set 28401 event 案例

主要是在11g引入的安全特性延迟密码认证在3-10秒,在延迟期间以X模式持有row cache lock防止同一用户的并发失败尝试。通常是配置28401 event禁用延迟认证特性,但这也不是“万能药”,像这次的案例。 除了密码延迟认证,PASSWORD_LIFE_TIME和FAILED_LOGIN_ATTEMPTS 也是用户的警惕的地方。

, , ,

Oracle 19c新特性: EXPDP 参数TTS_CLOSURE_CHECK估算Transportable Tablespace时间

TTS(Transportable Tablespace)在大型数据库迁移方案看较常见,复制数据文件实现了在线,但是导出元数据阶段需要把表空间改为只读,写业务要中断,那就存在一个问题,导出metadata元数据需要多少时间?有没有不可预见的问题?19c DATAPUMP引入新特性TTS_CLOSURE_CHECK为此而生

,

Redis学习06之Sorted SET有序集合

今天学习Redis最后一个基本数据结构有序集合,上一节学习总结有记录有序集合是一种可以根据分数排序的SETs,Keys(members)也是唯一的,分数可以重复,值是一种浮点类型的分数,所以常应用于积分和实时排行榜,可见Redis确实是为解决问题而生的

, ,

Redis学习05之 SET集合

集合SETs和Sorted SETs有序集合都是集合操作基本一样,只是差别后者数据是有序的,前者无序。集合是Redis的基本数据结构之一,集合中同样和列表一下也可以存放很多数据,列表是左右顺序可以存储重复数据的结构,集合是无充存放且不存在重复数据,

,

Redis学习04之 List列表

前两节学习了String和Hash, Hash可以把关连性的字段组合到一起用一个KEY, key值多同样会耗费内存和CPU, 在这点上Hash要优于String, 当然String在字符操作上如追加、部分值更新、Key 过期上更加灵活, 都是为特定的场景制定,这里学习另一个数据结构LIST列表,List顾名思义可以认为左右延伸的队列,一种有序存放的数据结构。

,

Redis学习03之 HASH

前一篇学习了String类型, 由于Redis的数据保存在内存中,查询方式非常块,像String类型可以存储浏览量,投票,文章点击等小量级的数据记录中,如果数据量超过百万级别使用简单的string映射关系会浪费大量的内存,此时Redis推荐使用另一种数据结构:HASH. 存储相同量级的数据Hash 消耗内存约String的四分之一,使用一种压缩存储,同时查询速度也并不差。

Redis学习02之String & Database

Redis支持5种数据类型,这里记录第一个String字符,Redis中的字符串和其它编程语言或键值库功能相似,函数丰富方便,字符串的值可以存储3种类型的值:字节串、整数、浮点数。KEY可以是数字、大小写字母、下划线或中文, Value 有空格要以引号括起。如果value是整数或符点数可以对其自增、减操作。可以增、删、改、查等操作, KEY 和Value可以是中文,但是key是中文是使用keys 列出键时中文为unicode码

, ,

High wait event ‘row cache mutex’ in 12cR2、19c

In Oracle 12.2.0.1.0 (12cR2), “row cache mutex” replaced 12.1.0.2.0 (12cR1) and 11g “latch: row cache objects”, similar to “latch: library cache” substitution by “library cache: mutex X” in the previous release. High waits on “row cache mutex” when looking up user or role information in user row cache (dc_users)

,

Oracle 11g 升级 12c 、19c后改变 database trigger fail with ORA-01031

无论出于安全、特性、性能、支持周期都需要考虑升级数据库,但是也会导致有些功能改变而影响软件使用或管理方式,升级后经验格外重要,因为oracle官方提供的功能无法模拟各行业生产环境中所有的应用场景, 尤其是从最近要面临的11g升级19c大版本升级,防止踩雷,像wm_concat 在新版本不支持一样。

, ,

Oracle GoldenGate增加字段问题(下) replicat OGG-00918 Key column xx is missing from map

如果在有OGG的表上增加列,又未启用同步DDL ,操作流程不当会遇到很多麻烦, 这里记录replicat进程异常终止。
OGG-00918 Oracle GoldenGate Delivery for Oracle, rep_zwa.prm: Key column NOTE is missing from map.

Oracle GoldenGate增加字段问题(上): Extract OGG-01028 Number of digits N+ exceeds max N on column

“酒虽好,不要贪杯” ! OGG在同步效率、安全、兼容性上一致做的很出色,广泛用于数据同步,支持异构, 但是在它的使用过程中也要严格按照流程使用,如何在OGG同步的表上做DDL操作有严格流程,如果任性的使用,后期维护必将带给诸多麻烦, 这里简单记录在OGG进程正在同步事务的情况下增加字段导致的抽取进程异常终止。

,

Redis学习01之安装Redis6 on Linux 7

Redis是一个速度非常快的非关系型内存数据库,最初由Salvatore Sanfilippo创建,可以存储Key与5种不同类型的Value之前映射,可以将内存键值持久化到硬盘,也可以使用复制特性扩展读性能,算是一个远程内存库,有强劲的性能,致力于帮助用户解决问题,并且开源,通过复制、持久化、分片可以扩展成一个包含数百GB数据,每秒处理上百万次请求的系统,所以在目前的高并发应用中普遍采用

Troubleshooting Oracle 19c RAC db crash with ORA-00600 [kcbbxsv_nwp]

ORA-00600: internal error code, arguments: [kcbbxsv_nwp], [], [], [], [], [], [], [], [], [], [], []
kge_experr : Found error ORA-600 not in expected list.
kge_experr: Dumping error frames [top = 1 : barrier top = 0]
kge_experr : [0] : Error = ORA-600 :
Call stack = ksedsts()+426<-kge_snap_callstack()+77<-kgeadse()+557<-kgerinv_internal()+44 <-kgerinv()+40<-kserin()+180<-kcbbxsv()+17478<-kcbb_coalesce_int()+326<-kcbb_coalesce()+438< -kcbbwthc()+817<-kcbbdrv()+8765<-ksb_act_run_int()+117<-ksb_act_run()+130<-ksbcti()+18

升级Oracle 19c经验: TTS时ORA-39083和ORA-00942案例

上周在使用TTS传输表空间从11.2.0.4到19C, 在最后impdp metadata的环节提示ora-942 结果提示有大量索引没有创建成功,但是查看报错的表实际是存在的, 后来发现这是一个收权问题导致的。后分析这种场景是发生在如一开始给了一个用户如create ANY table/index的系统权限或者dba 角色或是on object上的权限,后来创建了跨SCHEMA的index(indexes and tables differenct owners)或FK 约束时,再后来安全整改收回大权限,就导致了这个问题。

, ,

How to disable DRM? Oracle 10G, 11G, 12C-19C

DRM is driven by the following
1.) _gc_affinity_time = Time in minutes at which statistics will be evaluated (default = 10 mins)
2.) _gc_affinity_limit = # of times a node accesses a file/object (default = 50)
3.) _gc_affinity_minimum = minimum # of times per minute a file/object is accessed before affinity kicks in
(default = 600 per minute per cpu )
4.) _lm_drm_disable = LEVEL disable drm in different level( default=0 )

Oracle Internal BLOCK CHANGE TRACKING

Oracle RMAN was able to take incremental backups already in 9i. However, prior to introduction of Oracle 10g block change tracking (BCT), RMAN had to scan the whole datafile to and filter out the blocks that were not changed since base incremental backup and overhead or incremental backup was as high as full backup.

升级Oracle 19c经验: TTS 在使用datapump导matadata时EXCLUDE=STATISTICS 不启作用

在使用TTS迁移一个8T 的11.2.04到19c PDB时,发现expdp和imdp元数据过程中statistic占用了约1个多小时的时间, 但是我检查了实时步骤中确实有写exclude=statistics,猜测是参数没启作用,不能忍. 结果发现这是一个预期行为

,

Oracle 12c 19c Automatic terminal/kill session feature& DCD

数据库会话同样会占用数据库资源,如客户端异常断开在客户端成为一个dead session会永远存在,如果客户端没有断开也没有活动就是一个idle session, 如果这个idle session做了一些修改未提交,然后下班或去吃饭、上WC、开会等,这时就会堵塞其他人对相同的数据做修改,这类会话可以叫做idle blocker session. 在自治数据库中这些session 都可以被释放或者kill / teminal 终结掉,下面对不同的session如何被释放

,