站内搜索
Oracle证书
分类目录
- ASM (30)
- Database (86)
- backup&recovery (21)
- expdp/impdp (5)
- Installation and Deinstall (31)
- network (7)
- ORA-600 or ORA-7445 (6)
- Performence Tuning (13)
- troubleshoooting (2)
- Dataguard (7)
- EBS (3)
- Exadata (120)
- FAQ (19)
- POC和性能调整 (11)
- 体系架构 (19)
- 内部机制 (22)
- 安装和升级 (14)
- 性能指标 (8)
- Exadata V1 (1)
- Exadata V2 (1)
- Exadata X2-2 (2)
- Exadata X3-2 (1)
- Exadata X4-2 (1)
- FAQ (1)
- 故障诊断 (3)
- 日常运维 (15)
- 硬件配置 (43)
- Exadata V1 (6)
- Exadata V2 (6)
- Exadata X2-2 (6)
- Exadata X3-2 (8)
- Exadata X4-2 (8)
- FAQ (1)
- FAQ (16)
- Internal (21)
- Linux (20)
- MYSQL (8)
- OGG (1)
- ORA-600/7445 (2)
- ORA-XXXXX (5)
- Oracle 11.1 & Oracle11.2 (6)
- ORACLE 12C (21)
- Oracle 8 & Oracle 8i (1)
- RAC (47)
- SAP (2)
- Scripts (6)
- 未分类 (1)
- 虚拟化 (1)
2025 年一月 S M T W T F S « Nov 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 文章归档
-
近期文章
- 针对最近黑客攻击数据库的解决方案和预防建议
- CentOS7.2(RHEL 7.2)的CPU占用高(%system 占用高)
- Oracle 12.1 RAC 系列 – 配置第二个网络和相应的SCAN2
- Oracle 12.1 RAC 系列-安装新主机,识别老存储和恢复数据库
- Oracle 12.2的Sharding-1-基础概念
- 11.2 RAC 系列-安装新主机,识别老存储-3-配置老存储的数据库
- 11.2 RAC 系列-安装新主机,识别老存储-2-准备识别数据库
- 11.2 RAC 系列-安装新主机,识别老存储-1-识别ASM磁盘
- 2016年1月PSU列表
- 单实例数据库转换为RAC数据库–使用rconfig转换
近期评论
- tom 发表在《exadata巡检报告的模板》
- cyx 发表在《关于我》
- 李科胜 发表在《EBS克隆–db和app分开在两个服务器上》
- xiao 发表在《exadata巡检报告的模板》
- Chris Sun 发表在《使用Oracle 11.2的DBMS_RESOURCE_MANAGER.CALIBRATE_IO对Exadata X5(HC)进行测试》
作者归档:Lunar
Exadata上验证ASM磁盘头备份的位置
我们都知道,从Oracle 10.2.0.5开始,ASM磁盘会自动备份磁盘头块,备份块的位置在第2个AU的倒数第2个块上。 通常,缺省情况下,AU SIZE是1M,每个AU可以有256个block(每个block 4k),256*4k()=1M 因此,第2个AU同样存放了256个block(0~255),其备份块的位置为 au=1 blkn=254(au和block都是从0开始计数的) 具体的恢复案例,可以参考: ASM磁盘头被fdisk损坏的修复过程 那么在exadata上,缺省的AU是4M,也就是每个AU可以存储 1024个block,即 block 0 ~ block 1023 那么第二个AU的倒数第二个block就是 au=1 blkn=1022 ( au和block都是从0开始计数的 ) 我们来检测一下是不是这样: 注意: 这里kfed命令中,需要指定ausz=4m,否则kfed缺省按照1M来计算,那么结果就是错误的了: 在kfed中指定ausz=4m,检测结果: 经过检查,我们发现,这个规律在exadata上依然有效,ASM除了缺省4M的AU,其余没什么变化,O(∩_∩)O哈哈~ 顺便介绍一个小方法,快速计算备份块的位置:(该方法根据ASM Support Guy修改而来)
exadata存储节点上的/etc/init.d/cell.d和celladmin
在cell节点上,系统启动时,Oracle 运行 /etc/init.d/cell.d。使用celladmin操作系统用户执行 /etc/init.d/cell.d,运行“alter cell startup services rs”脚本启动Restart 服务。 休眠1秒钟后,这个脚本运行“alter cell startup services all”来启动了所有其他的进程,包括CELLSRV和MS。 在/etc/init.d/cell.d脚本中存在一个检测机制,用以确定是否存在任何故障或不正确的配置。如果存在,Oracle会尝试从最近一次好的状态重新启动。 上述内容,在/etc/init.d/cell.d中相关内容如下: #this is just to make sure that if MS was running then it is down (with/without RS) su celladmin -c “. /etc/profile.d/cell_env.sh; cellcli -e … 继续阅读
整理了一下以前老blog中的exadata介绍的link,顺便更新下Exadata X4的内容
最近有些小伙伴问起exadata的一些古老问题,这里总结下,顺便根据白皮书小小的更新一下X4的东东(迄今为止,我还没见过X4的真神,O(∩_∩)O哈哈~),期待年后的第一个X4项目中。。。: 最新的Exadata版本 2008年Oracle推出业界第一个全新架构的设计Exadata V1,以满配为例:内存 256G,64Core,没有flashcache 2009年到2010年年底之前,Exadata硬件是V2系列的多,image版本是11.2.2.x比较多,2011年,image版本11.2.2.4.2多(一般都升级上到这个了,相对稳定),第一次在硬件中增加了Flashcache组件,可以提高OLTP的处理能力,V2的硬件,以满配为例:64G内存,576G,内存,Flash容量5.3T 2011年和2012年的主要的exadata硬件是Exadata X2,image主要版本是11.2.3.1.0和11.2.3.1.1增加了磁盘容量(504T),CPU 96core和内存1T 2012年底推出Exadata X3系列,2013年年初随着Exadata X3系列的推出,image升级为11.2.3.2.0和11.2.3.2.1(这个是目前主流的11.2.3.2.x的版本),最显著的软件特征是WBFC(WriteBack FlashCache)。硬件增加了大幅增加了Flashcache的容量(22.4T),以及CPU 128core和内存2T 2013年底,Oracle推出了Exadata X4系列,现在最新的image版本已经是11.2.3.3.0了,最新的硬件是Exadata X4-2,硬件再次升级以满配为例:flashcahe 44.8T,CPU 192 core,内存4T,同时,IB网络的连接方式从Active-Backup到Active-Active(带宽40G/b 升级到 80Gb/b) 软件的更新(image 11.2.3.3.0): 1,的在1/4 Rack和1/8 Rack的转换,从以前的好几条命令,封装成1一条命令(alter cell eighthRack=TRUE) 2,带有Automatic Flash compression功能(一条命令而已,相同image下,X3跟X4 硬件,命令稍微有点区别,alter cell flashCompress=TRUE和alter cell FlashCacheCompX3Support= TRUE) 3,在线替换磁盘控制器电源(Disk Controller … 继续阅读
艰难的修复数据库过程,却发现Oracle 11.2果然强大
具体参见: http://t.askmaclean.com/thread-3790-1-1.html http://www.itpub.net/thread-1839128-1-1.html 纯属自娱自乐,没有实际意义的,顺便说下我的发现和测试中的发现(虽然到现在为止数据库还没有open,我还会继续鼓捣他,毕竟还有些方法还没用上,O(∩_∩)O哈哈~。。。); 首先就是11.2太强大了,很多时候以往的错误都可以fixed,数据库可以open后,做很多跟损坏先关的check 1, 从11.2开始,控制文件自动备份完成的信息由m000完成,且他还完成很多其余工作,当然,只在别的进程触发的时候,他才会去工作 2,DBA_TABLESPACE和V$TABLESPACE的来源不同,一个来源于控制文件,一个来源于基表ts$ 3,ts$和file$不能跳号 4,DBMS_HM很强大(Health Manager),他会定期检查数据库的很多东西,然后让m000进程写trace 。。。 主要的测试步骤已经不太都记得了,但是主要模拟步骤如下: 我的环境: db 11.2.0.3 OEL 5.8 1,创建2个表空间(其实1个也可以,几个都行,为了看得更加清晰),然后切换日志,然后在OS上讲包括UNDOTBS在内的这些数据文件(普通的数据文件和undo的数据文件就可以) 2,启动数据库的时候,你会发现,报错说文件丢失或者损坏,这时你offline drop掉这个报错的文件,数据库应该就可以打开,当然后台有m000生成的trace,HealthManager会不断的触发m000把所有其余随坏的信息都写入trace 3,想办法清理undo$中的问题回滚段 4,创建新的普通数据的表空间,例如“UNDTBS333”,但是设置UNDO_TABLESPACE=这个普通的表空间(scope=spfile),然后启动数据库————–这时我当时的第一个误操作 5,数据库报错,具体忘记了,怎么解决的也忘记了,印象中无非就是undo的隐含参数等等,然后创建正确的undo表空间(create undo tablespace …)给数据库使用 6,解决后,数据库可以正常open,delete from fs$ where name=‘你曾经误操作的那个普通数据表空间 UNDTBS333’,这么做是因为当时我没有仔细考虑风险,因此,手工清理了 其实如果全部都是手工做的话,也可以的,后面发现了需要手工清理什么,但是当时确实么有想太多,误操作了。。。 7,其实这样数据库也还是可以open的,没有太大问题,我用DBMS_HM.RUN_CHECK(‘Dictionary Integrity Check’, ‘lunar-ck-Dict’)检查,其实这时数据库只有undo$, ts$ 和file$数据不一致,没有影响其他数据对象(因为测试过程没有添加用户测试数据) … 继续阅读
exadata HC-检查是否有硬盘需要更换
在做exadata的检查的时候,我们通常收集如下信息: 1,exachk 2,sundiag 3,diagcollect(GI版本从11.2.0.4.x开始, 可以使用TFA Collector) 4,awr 5,db节点和cell节点的alert 6,osw 根据上述检查内容是否存在异常可能还需要 CheckHWnFWProfile等等。。。。 本文主要分析如何识别磁盘损坏的内容。 ++++++++++++++++++++++++++查看cell 的alert,检查是否有磁盘需要更换的信息: 检查cell的alert告警信息: dcli -g cell_group -l root “cellcli -e list alerthistory” 查看关键内容: 例如: +++++++++++++++++++++++++++看sundiag的信息: 收集sundiag信息后,你会发现,每个db节点和cell节点的文件非常多,包括RAID,HCA, Infiniband,。。。等等 例如: 针对磁盘损坏信息,主要检查如下内容: —————–检查坏盘: ———————检查报告了“先兆失效”的盘: ———-检查告警的磁盘信息: 使用cellcli查看磁盘的错误信息: 检查ASM的日志是否有类似如下的告警: 1. WARNING: failed to … 继续阅读
如何看待exadata的cell节点出现的writethrough/wirteback模式更换或者控制器充放电信息
Exadata使用的是LSI的disk driver,在定期进行的HC中,如果cell上出现类似下面的信息,需要考虑是否需要更换或者bug: 这个信息意味着disk controller写cache的策略从”write-back” 更改为 “write-through” 了,原因是电池学习周期(battery learn cycle)正在进行。 这个学习周期一年回周期性的执行4次,这个操作主要是每次执行一次控制器电池的充电和放电(discharge and charge)操作。 在Image 11.2.1.3之前,每个月执行一次 从Image 11.2.1.3开始,每3个月执行一次: 每年的1月/4月/7月/10月 的17日凌晨2点 这个缺省的时间(下一次学习的时间)可以使用命令修改,例如: cellcli> alter cell bbuLearnCycleTime=”2013-01-22T02:00:00-08:00″ Oracle推荐所有cell磁盘的电源学习周期是同一个时间。 众所周知,Write-through 的性能比 write-back 差。但是当存储crash或者电源丢失(looses power)发生时,write back有丢数据的风险。 因此,在电池学习周期中,会自动将写策略从写回模式(write-back)修改为写模式(Write-through) 如果在cell 的alert上看到类似下面的信息: 需要连接到cell节点,查看一下电池充电的百分比: 当充电完成后,可以在cell的alert上看到如下信息: 连接到cell节点,查看磁盘的写模式(writethrough/writeback)的状态,可以发现: 同样在 上面信息显示了10月17日凌晨:02:00cell01上有一个逻辑盘开始学习,完成时间是10月17日早上7:33。充电完成后,磁盘驱动器已经改回了writeback模式。 通常电池充电(Learning state)可能需要几个小时,如果充电完成后没有自动改回wirteback模式,可能是控制器电源出现问题,需要联系support … 继续阅读
如何查看你的环境是否是RAC环境? 如何判断你有哪些option?如何enable或者disable他们?
前几天一个老同事问我,客户不想买RAC 的license了,怎么办? 因为当时他们有其他机器安装新环境,因此,我当时就说,直接装一个单机库,把数据库迁移过去,cluster_database改成false,再清理掉thread,undo,redo就ok了。。。 今天忽然想起来,如果客户不买partition选项了,想关闭这个怎么办?或者客户没有新机器再装一个ORACLE_HOME了,怎么办? 后面的我们就研究下: 首先我们可以使用OUI或者opatch去看已经安装了哪些选项(当然,还可以看数据库视图) 方法1: 使用OUI去review ./runInstaller 里面有一个 “Installed Products”,这个是你已经安装的产品 方法2:使用OPATCH [oracle@lunar lib]$ opatch lsinventory -detail Invoking OPatch 11.2.0.1.7 Oracle Interim Patch Installer version 11.2.0.1.7 Copyright (c) 2011, Oracle Corporation. All rights reserved. Oracle Home : /u01/app/oracle/product/11.2.0.3/dbhome_1 Central … 继续阅读
无法解释的ORA-12537
今天忽然想看下12c的一个小东东,结果遇到ORA-12537: 我这个VM当初装的很别扭,前一段又折腾了一下,更加别扭了,主要问题如下: 1,初始加盘的时候整的太小了,只给了12G,结果装了grid后,再装oracle软件就很困难,这里grid的所在的盘mount在/u01这个目录下 2,然后增加了一块盘,结果没吸取教训,继续折腾太小了,还是12G,不过12c可以装上玩了,这个oracle的软件所在的盘mount在 /u01/app/oracle目录下 3,前一段时间觉得磁盘空间不够了,于是把一个11.2的vm的软件使用root用户tar过来,解压后,ORACLE_BASE和ORACLE_HOME目录是:/u01/app/oracle(这个跟12c的oracle软件是同一个ORACLE_BASE)和/u01/app/oracle/product/11.2.0.3/dbhome_1 够乱了吧,O(∩_∩)O哈哈~ 检查listener.log: 发现报错:TNS-12518: TNS:listener could not hand off client connection 于是google,mos,设置一堆乱七八糟参数,并设置了trace: trace中最后出问题的信息如下,貌似是某些文件找不到或者权限问题: 使用strace sqlplus sys/oracle@lunarbb as sysdba进行跟踪,发现了如下可以信息: 貌似写什么东西时报错了 MOS了一下,Troubleshooting ORA-12537 / TNS-12537 TNS:Connection Closed (Doc ID 555609.1) 发现,我的这个文件没啥问题,权限都对: 这时候,看见刚刚修改过的oracle文件权限不对了,再重新修改回去: 重启下ORACLE,再测试,居然好了,O(∩_∩)O哈哈~:
随心所欲的指定RAC中的节点号
考虑到节点逐出的规则,其中有一个跟节点号有关系,即缺省节点号小的被保留,大的被逐出(还有很多其他条件,比如分组等,这里不细说) 那天群里有人说了希望修改节点号的需求,今天忽然想起来试试看,结论如下: 1,可以使用ocrpatch任意指定任一个节点的节点号 2,不指定的情况,安装的节点为节点1,其余的顺次往下排 备份下当前OCR和VOT的信息: 这里,我们可以看见,节点1(rac1)的节点号是1,节点2(rac2)的节点号是2。。。 我打算把它修改为节点1(rac1)的节点号是2,节点2(rac2)的节点号是1 只读模式使用ocrpatch: 好了,现在我们来修改下 再开2个会话,分别用于停止节点1和节点2的crs: 注意这里,节点1,貌似hang住了。。 节点2已经clear shutdown了 于是想起来了,还有一个ocrpatch的窗口,退出后,大概几秒钟,继续shutdown: 在节点1以独占模式启动cluster: 把voting disk放到文件系统上: 以write read方式访问ocr: SYSTEM.css.nodenum_hint ,这个表示他们的 “preferred” node number ,这个是节点1,我们看到设置为1,现在,我们把它设置为2,然后观察下: 已经修改成功了。 ocrpatch> exit [OK] Exiting due to user request … [root@RAC1 tmp]# 现在,使用独占模式启动crs: 检查状态,都正常: 初始化votdisk: … 继续阅读
4种查询vot的方法和4种查询ocr的方法
一、查找voting disk 的4种方法 方法1: 方法2: 方法3: 方法4: 这里可以看到au是1M,voting disk从AU 192开始,到AU 224结束,共32个AU : 跳过了头上的192M,dump了后面的32M内容,也就是我们需要的VOTING DISK的32个AU的内容 二、查找ocr的方法 方法1: 方法2: 方法3: ocrdump 方法4: 这里看到ocr的文件号是255,可以根据文件号查询AU: