其实不止一次的考虑过,2年或者3年,5年,甚至10年后,我还是DBA么?
DBA的发展方向是什么?
在未来的几年中,这个职业的趋势是什么?
那我又该何去何从?
继续我的DBA生涯,那我该在oracle的基础上,添加mysql?nosql?
还是在作为一个运维DBA的同时,也兼任着开发DBA的角色?把监控做好,C?还是php?或者要从新学过java?
eh?分布式数据存储?……
迷茫
其实不止一次的考虑过,2年或者3年,5年,甚至10年后,我还是DBA么?
DBA的发展方向是什么?
在未来的几年中,这个职业的趋势是什么?
那我又该何去何从?
继续我的DBA生涯,那我该在oracle的基础上,添加mysql?nosql?
还是在作为一个运维DBA的同时,也兼任着开发DBA的角色?把监控做好,C?还是php?或者要从新学过java?
eh?分布式数据存储?……
迷茫
由于删除oracle cluster sofeware时候误删除了inittab文件
在系统重启时候报错,提示找不到启动模式,找不到inittab
———————————————————–
这时候可以进去rescue模式补救
我这里的经过是这样的:
插入安装光盘,修改cdrom为第一启动模式,
进入到安装界面,输入 linux recsue
在配置网卡那段可以跳过,直接进去到补救模式的系统
这时候挂在原有系统
chroot /mnt/sysimage
挂载完之后
启动网络服务和telnet服务
service network start
service xinetd start
然后 telnet进来
vi /etc/inittab
把别的机子上的inittab复制过来,保存
重启,机子
花了6个多小时把公司的rac搭建好了,遇见了不少新问题 明儿整理记录下来
朋友昨天问我在对一个生产环境进程压力测试时候,当并发达到1000时候等待时间很长,怎么弄?
这是他的环境:
双机rac
M8000,128G的内存,SGA设置为64G,PGA设置为13G
测试的插入表大约有3000多万的数据量
为教育部的一个库。
———————————————–
首先就是让他先查看告警日志,看看有什么异常提示
结果并没有发现什么异常,日志是30秒切换一次
把日志扩大到6组,每组1G
依然是这样情况
根据上面的tx 等待事件 从index下手
这里的一个主键索引引起的等待事件,
采取措施:
ALTER INDEX PK_MVS_B_STUDENT REBUILD ONLINE INITRANS 32;
ALTER INDEX MVS.STUDENT INITRANS 16;
性能改善明显,提高500%
郁闷,只是价格count 就不扫描表了
SQL> create index idx_luda_zhutou_obna on zhutou(upper(object_name)) online;
Index created.
SQL> select /*+ INDEX(a IDX_LUDA_ZHUTOU_OBNA)*/ count(a.object_name)
2 from zhutou a
3 where upper(a.object_name) like ‘LUDA%’;
Execution Plan
———————————————————-
Plan hash value: 4142235787
—————————————————————————————————–
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
—————————————————————————————————–
| 0 | SELECT STATEMENT | | 1 | 66 | 158 (0)| 00:00:02 |
| 1 | SORT AGGREGATE | | 1 | 66 | | |
| 2 | TABLE ACCESS BY INDEX ROWID| ZHUTOU | 8 | 528 | 158 (0)| 00:00:02 |
|* 3 | INDEX RANGE SCAN | IDX_LUDA_ZHUTOU_OBNA | 464 | | 4 (0)| 00:00:01 |
—————————————————————————————————–
Predicate Information (identified by operation id):
—————————————————
3 – access(UPPER(“OBJECT_NAME”) LIKE ‘LUDA%’)
filter(UPPER(“OBJECT_NAME”) LIKE ‘LUDA%’)
Note
—–
– dynamic sampling used for this statement
Statistics
———————————————————-
28 recursive calls
0 db block gets
73 consistent gets
1 physical reads
0 redo size
527 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL> ^Cselect /*+ INDEX(a IDX_LUDA_ZHUTOU_OBNA)*/ count(upper(a.object_name))
SQL> from zhutou a
SP2-0734: unknown command beginning “from zhuto…” – rest of line ignored.
SQL> where upper(a.object_name) like ‘LUDA%’
SP2-0734: unknown command beginning “where uppe…” – rest of line ignored.
SQL>
SQL> select /*+ INDEX(a IDX_LUDA_ZHUTOU_OBNA)*/ count(upper(a.object_name))
2 from zhutou a
3 where upper(a.object_name) like ‘LUDA%’;
Execution Plan
———————————————————-
Plan hash value: 3214512578
——————————————————————————————
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
——————————————————————————————
| 0 | SELECT STATEMENT | | 1 | 66 | 4 (0)| 00:00:01 |
| 1 | SORT AGGREGATE | | 1 | 66 | | |
|* 2 | INDEX RANGE SCAN| IDX_LUDA_ZHUTOU_OBNA | 8 | 528 | 4 (0)| 00:00:01 |
——————————————————————————————
Predicate Information (identified by operation id):
—————————————————
2 – access(UPPER(“OBJECT_NAME”) LIKE ‘LUDA%’)
filter(UPPER(“OBJECT_NAME”) LIKE ‘LUDA%’)
Note
—–
– dynamic sampling used for this statement
Statistics
———————————————————-
4 recursive calls
0 db block gets
71 consistent gets
0 physical reads
0 redo size
534 bytes sent via SQL*Net to client
492 bytes received via SQL*Net from client
2 SQL*Net roundtrips to/from client
0 sorts (memory)
0 sorts (disk)
1 rows processed
SQL>
经过2016到2018,修复了一些bug. 现在从新开放下载 […]