绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
揭密Oracle之 七种武器 第一章 搭建测试环境(目前已到第三章)
2020-06-30 17:42:00
揭密Oracle之 七种武器 第一章 搭建测试环境 长生剑,碧玉刀,刀剑合璧,天下无敌。 (揭密Oracle之七种武器第二章地址:DTrace语法:跟踪物理IO http://www.itpub.net/thread-1609235-1-1.html 揭密Oracle之七种武器之三:破译古老的谜题---共享CBC Latch的秘密 http://www.itpub.net/thread-1617245-1-1.html) 第一章 测试环境的搭建 工欲善其事,必先利其器,这是老话了,也是实话。 面对越来越封闭的Oracle,你想揭开它神秘的面纱吗。 奇奇怪怪的问题,总是查不出原因,你想揭开它背后的秘密吗。 还等什么,DTrace+GDB,长生剑,碧玉刀,刀剑合璧,天下无敌。 另外,经过朋友 ysping 提醒,我觉得有必要说明下,虽然我们只能在Solaris测试,但Oracle的工作原理,在大部分平台下,是一样的 (可能Windows会有点不同吧)。我们用Dtrace分析Oracle的原理,比如在什么时候、加什么样的锁、Pin、Latch或Mutex,加到什么操作为至释放,会以怎样的形式阻塞,等等,用这个原理,去诊断其他平台的问题。 1、安装Solaris 首先你要有个测试环境,DTrace只有Solaris下有,我们就搭个Solaris的测试平台吧。到Oracle官网上下个Solaris,现在已经有11了,我下的是10,这是10的 链接:http://www.oracle.com/technetwork/server-storage/solaris10/overview/index.html 。如果你想用11,当然也可以。对于我们测试Oracle,10和11差别不大 的。 下载的文件,是个ISO文件,直接加载到虚拟机里安装就可以了,安装过程我不再说了,非常简单。考虑到以后我还要装Oracle、建库,磁盘最好搞大点,20G吧 。对了,我的虚拟机是VMWare 8.0.0 build-471780。你也可以选择其他版本,或其他虚拟机。 2、安装Oracle (1)、下载Oracle 我们最好装两个版本,10GR2和11GR2。10G现在用的还比较多,而且10G相关DTrace和GDB的资料更多些,因为我一直在用DTrace+GDB研究10G,后面我会逐步总结 一些我的研究结果。11GR2作为未来必定会流行的版本,有必要早做准备。 注意,11GR2在Solaris平台,只有64位版本的。要求你的电脑要是64位才行。 (1)、创建Oracle用户和Oinstall、DBA组 groupadd dba groupadd oinstall useradd -g oinstall -G dba -d /export/home/lhb -m oracle (2)、设置内核参数 编辑/etc/system文件,增加如下行: set shmsys:shminfo_shmmax=10737418240 set shmsys:shminfo_shmmin=1048576 set shmsys:shminfo_shmseg=1000 set shmsys:shminfo_shmmni=100 set semsys:seminfo_semmns=700 set semsys:seminfo_semmni=100 set semsys:seminfo_semmsl=256 我10G、11G都是这样写的。 (3)、设置oracle用户下的.profile 我的.profile只有这些内容: ORACLE_BASE=/export/home/oracle/opt/ ORACLE_HOME=$ORACLE_BASE/product/10.2.0/ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/usr/lib PATH=$PATH:/usr/ccs/bin:$ORACLE_HOME/bin ORACLE_SID=h1 export ORACLE_BASE export ORACLE_HOME export LD_LIBRARY_PATH export PATH export ORACLE_SID (4)、安装和建库 解压下载的Oracle安装文件,开始安装。 11G安装画面变了很多,但过程和10G大致上相差无几。我安装11GR2的时候,在环境检查时,报swap和tmp不够大,直接忽略过去就行了。还有,在安装的83%时,停了很 久。到底多久不知道,因为等了太久,都晚点12点多来,我一直有早睡早起的习惯,直接去睡了,第二天早上起来一看,已经装好了。 库你怎么建都行,我一般是手动建,你当然可以选择在安装的时候一起建,这些基本的我就不再说了。 3、安装GDB 到http://www.sunfreeware.com中,下载GDB的库,我下载了这五个库: expat-2.0.1-sol10-x86-local.gz gdb-6.8-sol10-x86-local.gz libiconv-1.14-sol10-x86-local.gz libintl-3.4.0-sol10-x86-local.gz ncurses-5.7-sol10-x86-local.gz 用如下命令,依次安装5个库。注意,最好安照我上面的顺序安装, gunzip expat-2.0.1-sol10-x86-local.gz pkgadd -d expat-2.0.1-sol10-x86-local.gz 安装完后,将gdb的路径,加入到/etc/profile中: 在/etc/profile中增加如下行: PATH=$PATH:/usr/sfw/bin:/usr/local/bin LD_LIBRARY_PATH=/usr/sfw/lib export LD_LIBRARY_PATH export PATH 好了,等测试环境建好后,我们来一步一步,用DTrace+GDB,刀剑合璧,让Oracle没有秘密。
分享好友

分享这个小栈给你的朋友们,一起进步吧。

调试数据库 ---- 源码研究方法论
创建时间:2020-06-16 17:28:11
最能让你坚持下去的源码学习方法 ---- 调试数据库。Oracle的各种DUMP、Trace和Event,增加了研究这个数据库的“乐趣”,使用Oracle成为一个可研究的数据库。开源数据库当然也可以通过钻研源码的方式去研究,但这样的学习周期太长。本课程教你用调试技术不断为MySQL/PostgreSQL扩展功能,在学习源码的同时,不断开发自己的、类似Oracle DUMP、Trace、Event的小工具,这就是我所说的“正向反馈”。用正向反馈,激励自己坚持下去,最终成功。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • vage
    栈主

小栈成员

查看更多
  • 叶子,你好
  • 小雨滴
  • 潘佳伟
  • 东风快递
戳我,来吐槽~