客户一个测试环境,一个主机上面运行了很多数据库,某库的程序会时不时报错ora-4030。 加大了pga,然后还检查了ulimit的 data 和 stack都是ulimit。还是报错。 进而检查/var/adm/messages,发现有报错swap不足的情况。 所以,解决方法是加大物理内存,或者加大 […]
Solaris操作系统真的停止开发了吗?
Solaris系统将被停止开发,这个消息,据我所看到的,最初的来源是来自thelayoff网站的消息『Solaris being canned, at least 50% of teams to be RIF’d in short term』 All hands meetings bei […]
闰秒(Leap Second)问题
2017年的第一天,因为闰秒的关系,加上时差的原因,我国将在北京时间2017年1月1日的7时59分59秒和全球同步进行闰秒调整,届时会出现7:59:60的特殊现象。(国家授时中心闰秒公告) 那么闰秒对数据库有什么影响? (一)具体的说: 可以参考:Information Center: Leap S […]
设置threaded_execution启用12c的多线程模式
Unix/Linux中oracle数据库进程采用多进程模式,如我们可以在系统进程列表中看到pmon,smon,dbwr,lgwr,ckpt等oracle系统进程。随着oracle数据库功能增多,进程数量也随之增加,创建进程的开销以及进程上下文切换的开销也越来越大(进程状态切换 switching 是 […]
博客运行在vultr主机上一个月的性能数据
我申请的vultr主机是单核CPU,15GB的ssd的硬盘,768M内存,每月1TB的流量,对于ss来说已经完成足够,目前有日本,新加坡,美国,德国,荷兰,法国等地的服务器。价格是每月5刀(每小时0.007刀),首次注册,如果用我这个Summer Promo Code,你可以额为获得20刀的费用;或 […]
解决主库报错HeartBeat failed to connect to standby Error 12154
有一个库自从上线之后,主库的alertlog中一直有如下报错:
1 2 3 |
Tue Dec 20 14:42:16 2016 Error 12154 received logging on to the standby PING[ARC2]: Heartbeat failed to connect to standby 'rmydb'. Error is 12154. |
1. 检查远端的standby库已经启动,且已经到了mount以上的状态(即在read only的模式下Real Time Apply)。 2. 检查主库到远端的tnsp […]
关于oradebug -prelim
在oracle数据库hang的情况下,我们可以用sqlplus -prelim / as sysdba登录数据库,进行一些收集信息的操作,也可以进行shutdown database的操作。这里需要注意几点: 1. process满是可以用sqlplus -prelim / as sysdba登录的 […]
查找被kill掉的session的操作系统进程号
11g之前:
1 2 3 4 5 |
select spid, program from v$process where program!= 'PSEUDO' and addr not in (select paddr from v$session) and addr not in (select paddr from v$bgprocess ) and addr not in (select paddr from v$shared_server); |
11g之后:
1 |
select * from v$process where addr=(select creator_addr from v$session where sid=140); |
参考: How To Find The Process Identifier (pid, spid) After The Correspon […]
分区索引知识点拾遗
索引是一般索引还是分区索引,可以看dba_indexes的partitioned字段。 如果partitioned字段是YES,说明是分区索引,那么,这个索引是global还是local,可以看dba_part_indexes的LOCALITY字段。 另外,我们还可以看ALIGNMENT字段,看这个 […]
Huge page使用的一些问题
12c的数据库在安装的时候,有一个检查项目,叫做Maximum locked memory check。 这是要求设置/etc/security/limits.conf中的memlock的值,官方文档在11g要求是设置比物理内存稍小的一个值,在12c中要求至少为90%的物理内存。 而memlock的 […]
再谈sharding database的一些概念
在继『Oracle sharding database的一些概念』和『sharding database的一些概念的补充』之后,我觉得还是有些概念需要谈一下。 1.shard prune(分片裁剪): 这个概念类似分区裁剪(partition prune),是指根据sql语句会到对应的分片上去。 但 […]
Mode=4的TX锁小结
1. bitmap索引
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
--session 1 SQL> create table t1_tx(id number,name varchar2(20)) ; Table created. SQL> insert into t1_tx select rownum,chr(97+mod(rownum,2)) from dual connect by level<=10; 10 rows created. SQL> commit; Commit complete. SQL> select * from t1_tx; ID NAME ---------- ---------------------------------------- 1 b 2 a 3 b 4 a 5 b 6 a 7 b 8 a 9 b 10 a 10 rows selected. SQL> create bitmap index idx_bitmap_name on t1_tx(name); Index created. SQL> select sid from v$mystat where rownum=1; SID ---------- 63 SQL> update t1_tx set name='tx' where id=3; 1 row updated. SQL> -- not commit -- session 2: SQL> select sid from v$mystat where rownum=1; SID ---------- 5 SQL> update t1_tx set name='bitmap' where id=5; --hang ---session 3 SQL> select sid, 2 chr(bitand(p1, -16777216) / 16777215) || 3 chr(bitand(p1, 16711680) / 65535) "Name", 4 (bitand(p1, 65535)) "Mode", 5 event, 6 sql_id, 7 FINAL_BLOCKING_SESSION 8 from v$session 9 where event like 'enq%'; SID Name Mode EVENT SQL_ID FINAL_BLOCKING_SESSION ---------- ---------------- ---------- ------------------------------ -------------------------- ---------------------- 5 TX 4 enq: TX - row lock contention 1qtvgrv88q2dj 63 SQL> |
2. 主外键关系,主键表插入数据不提交,外键表插入数据被阻塞
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
--session 1 SQL> create table parent(id number primary key); Table created. SQL> create table child(id number references parent,name varchar2(20)); Table created. SQL> insert into parent values(1); 1 row created. SQL>--not commit; --session 2: SQL> insert into child values(1,'a'); --hang --session 3: SQL> l 1 select sid, 2 chr(bitand(p1, -16777216) / 16777215) || 3 chr(bitand(p1, 16711680) / 65535) "Name", 4 (bitand(p1, 65535)) "Mode", 5 event, 6 sql_id, 7 FINAL_BLOCKING_SESSION 8 from v$session 9* where event like 'enq%' SQL> / SID Name Mode EVENT SQL_ID FINAL_BLOCKING_SESSION ---------- ---------------- ---------- ------------------------------ -------------------------- ---------------------- 5 TX 4 enq: TX - row lock contention d8gc19unfrcsw 63 SQL> |
3.插入主键同一值
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
--session 1: SQL> create table mytab(id number primary key); Table created. SQL> insert into mytab values(1); 1 row created. SQL> --session 2: SQL> insert into mytab values(1); --hang --session 3: SQL> l 1 select sid, 2 chr(bitand(p1, -16777216) / 16777215) || 3 chr(bitand(p1, 16711680) / 65535) "Name", 4 (bitand(p1, 65535)) "Mode", 5 event, 6 sql_id, 7 FINAL_BLOCKING_SESSION 8 from v$session 9* where event like 'enq%' SQL> / SID Name Mode EVENT SQL_ID FINAL_BLOCKING_SESSION ---------- ---------------- ---------- ------------------------------ -------------------------- ---------------------- 5 TX 4 enq: TX - row lock contention 2srnv7c1ummk0 63 SQL> |