Go语言(GO lang)连接PostgreSQL Database使用pq

《Go语言(GO lang)连接Oracle Database使用godror》上篇以后,这里继续测试使用GO Lang操作PostGreSQL, 使用pq驱动。

Go语言(GO lang)连接Oracle Database使用godror

GO lang在高并发支持非常优秀,相比python更快,godror使用ODPI-C(用于C的Oracle数据库编程接口)为Oracle数据库实现了Go数据库/sql驱动程序, 在中文支持方面非常不错, 这里记录Go连接oracle数据库的方法, GO for Windows 开发环境配置.

,

Oracle19c手动清理PDB SYSAUX中的大对象如WRI$_ADV_OBJECTS (ORA-65040)

近期一客户19c RAC CDB数据库的SYSAUX表空间增长超大,分析原因为Optimizer statistics advisor特性导致的WRI$_ADV_OBJECTS对象记录数变多, 以下为清理方法。

Oracle 12c/19c ADR trace dest disk busy (100%) when ‘ls’ trace files

最近遇到几次故障升级oracle 12c后,相同的硬件有几次instance crash同时伴有LGWR 核心进程N seconds not move现象,OSW中vmstat ‘B’列会伴有突然大量的blocked(通常是I/O)问题,mpstat/iostat 显示$ORACLE_BASE所在本地文件系统出现90-100% busy现象, ps 显示LGWR和一些FG进程同时在等待相同事OS Kernel function address。

Troubleshooting 19c RAC CRS resource db show “UNKNOWN” state , srvctl start instance CRS-2680

有套ORACLE 19c RAC在使用crsctl 查看db resource时显示“UNKNOWN”, 但是用sqlplus 可以启动db 实例,srvctl status instance显示not running. 手动启动instance 使用srvctl 显示如下错误

[oracle@~]$ srvctl start instance -d -i INTS1
PRCR-1013 : Failed to start resource ora..db
PRCR-1064 : Failed to start resource ora..db on node
CRS-2680: Clean of ‘ora..db’ on ” failed
CRS-5802: Unable to start the agent process

RMAN-06169: could not read file header during RMAN duplicate database

近期有个友商在做RMAN duplidate database搭建DG时,因为primary db上有offline 的datafile ,并且归档已经丢失,无法再做recover ,online datafile的操作,操作系统或存储上的datafile已经不存在,duplicate时报错如下。

Starting backup at 19-NOV-20
RMAN-06169: could not read file header for datafile 357 error reason 4

Troubleshoot import(imp) very slow into table(nologging) has lob columns

一套ORACLE 11c R2 Windows环境使用import 导入一张包含blob列时速度非常的慢(平均每秒10条),大家都知道imp里因为不能使用parallel等其它原因导入是慢一些,但这么慢不能忍,主要等待事件和时间是control file parallel write和enq: CF – contention,下面是分析一下原因。

, ,

Oracle Dataguard在standby failover后如何加回原primary?

今天谈起一种场景,如果oracle dataguard环境中,primary db长时间不可用或出现永久性故障,那么我们必须考虑failover到备用数据库以使其成为新的主数据库。之后,我们还要重建旧的主库,使其成为新的备库。关于备库在failover激活后,再次回到备库,Gavin Soorma在他的blog上有详细的测试记录。

,

Troubleshooting 12c ora-4031 “ges resource dynamic” lot of FB resource cache

Troubleshooting ORA-04031: unable to allocate 13840 bytes of shared memory “ges resource dynamic” in 12C+ 记录过几个导致SGA中“ges resource dynamic”逐渐增大的问题,这里又在12c遇到了一个ora-4031问题,不太符合那里的描述和已知bug, 这里是在v$ges_resource中大量的FB资源的cache,这里简单记录。

,

Oracle12c-19c如何防止安全检查查出弱密码?

ORACLE数据库在安全方面可靠度绝对完善,包括数据库用户的密码加密,在之前的老版本中如10G及以前,密码在dba_user.password显示密文, 由于使用的是DES加密,很容易从网上找到解密密文的方法,可以现在都12C–19C了,之前分享过《Oracle 12c 关于密码(password)的几个新特性小结》都已经引入了新的密码hash算法,怎么还经常能收到安全检查提示数据库用户有弱密码? 他们还能解密12c以后的PBKDF2的SHA512哈希算法? 那也太牛了吧,经常让DBA去改弱密码,DBA不能忍,于是研究一下怎么回事。

Oracle19c使用USE_LARGE_PAGES可在LINUX平台的自动配置hugepage

Hugepage是linux平台oracle数据库的建议配置,同样PostgreSQL等其它使用共享内存和多进程的系统都建议使用hugepage, 默认的4K配置带来的pagetables内存空间非常大。通常是修改LINUX内核参数sysctl.conf配置中hugepage大小和页个数,在oracle没有使用AMM时配置使用hugepage.在oracle数据库参数中与大页相关的参数为USE_LARGE_PAGES。在19c中可以使用auto_only值可以在OS未预先配置hugepage的情况下,oracle db实例启动时自动按需扩展linux kernel中分配hugepage.

,

19c Flashback Standby after Flashback (resetlogs) on Primary In Dataguard Environment

有时需要应用版本上线做一些测试,希望做完数据库操作后利用restore point回滚点或做了基于时间点的恢复后,闪回数据库到修改以前时间点,然后standby继续应用日志恢复DG。因为在flashback后因为需要open resetlogs打开,在有dataguard的环境需要注意, 如果不想重建DG。同时oracle 19c引入了新特性,standby可以自动闪回数据库。

,

Alert: 12c top-N fetch first错误的执行计划 19c已修复

Oracle 12c new feature:OFFSET n FETCH n row-limit 7年前我尝试过12C新支持的TOP-n新语法,使分布代码看上去更简洁, 也是利用了一种窗口函数的方法,如果你在应用中使用了该语法,在19c的数据库前需要当前SQL的效率是否比之前的order by 子查询加 rownum的更差了。其实这是oracle在12c或18c版本中的bug, 在19C中已经解决,这也是建议升级19c而非12c跳过的一个小坑。

Oracle 19c RAC新特性 : Automatic Failback of a Service

Oracle数据库服务的高可用性一直是RAC,其它关系型数据库不可匹敌的功能。应用配置TFA,当数据库实例发生故障时,以该实例为首选实例的服务将故障转移到另一个可用实例。不幸的是,实例再次启动后,服务并没有故障切换回原始实例。dba必须重新ralocate service服务。Oracle数据库19c对此进行了更改,增加了自动回归。

‘transaction’ event 2 & How to find dead transaction?

6年前记录过这篇关于“transaction” eventTuning “transaction” & TX lock wait event ,speeding up rollback dead transaction,今天补充些取其它信息.如何找到哪个事务dead。

,

Oracle 11g R2 rman spin 产生大量aud trace

本地文件系统使用率告警,分析发现audit目录下不断的生成trace文件,该目录记录的是sys登录,目前以每秒800-900KB的速度生成写日志属于一种不正常现象,先增加crontab 周期清空日志,是当前版本的一个rman相关的bug,

,

v$archived_log.applied列不更新的解决方法

在Oracle Data Guard环境中,如果查询Primary库的v$archived_log.applied列一直显示为NO,但实际上Standby库已经应用了归档日志,可能会导致无法删除主库的归档日志,因为无法确认日志是否已经被应用。

我的考驾照历程 之 科一

报名2年多的驾校,如果不是因为快到期了, 还想不起来考一下,昨天抽时间去考了科一,提前刷了2周的题,还是有些题不在题库,开始以为反正可以错10题,卡卡错,在做到第80道时,颤抖手数了数错题已达10个, 开始顶着压力做完,交卷 , 90分,通过, ~_~! …

Alert: In Oracle ADG, if the redo apply instance crashes, all other instances will from ‘OPEN’ to ‘Mount’

今天在一套11 G r2版本的2节点RAC adg环境,节点1因为硬件原因异常crash(apply redo 节点), 但是实例2也上的应用也都断开了(原来都是open),adg上是有连接一些只读业务,而且节点2 db alert log未发现明显手动close 实例的日志,并且是自动切换到了mount状态,RAC不是应该高可用吗?为什么死一个节点另外的节点也要跟着受影响?

,

GoldenGate ORA-01400: cannot insert NULL into after “update” , like “upsert” or “merge”

有时出于历史原因或之前使用其它同步产品做同步,后期想改为OGG方案时但不想做原数据一致性比对,或可以接受部分数据不一致,比如目标表可能比原表少数据时,只想在replicat端增加INSERTMISSINGUPDATES参数,如果update目标记录不存在转换insert. 想法是好的?前提是要知道ogg的机制。

, , ,