月归档:2015 年四月

在Double-E之间配置基于Infiniband的SDP连接(比如,两个Exadata,或者1个Exadata和1个Exaligic之间)

在Double-E之间(比如,两个Exadata,或者1个Exadata和1个Exaligic之间),我们可以使用IB来连接 比如两个Exadata之间互相做灾备(ADG) 再比如,Exalogic上有大量的空间,即使是1/4配置的Exalogic上也有几十T的容量空闲(没有部署应用的空间)。 有时候我们会见可以购买了Double-E的客户用这个空间来做Exadata上的数据库的ADG。 为了充分利用IB的传输速度块,低延迟和CPU消耗少等优点,Double-E之间的互联,一般建议通过SDP协议访问Exadata上的数据库 文档建议(Exadata X2和X3),Exadata和Exalogic使用8个IB线进行连接(4跟的话也可以,但是没有冗余,一般不建议) Exadata 1/4 rack和Exalogic 1/4 rack上分别都有2个叶IB交换机(半配的会有第三个主IB交换机,从Exadata X3开始,出厂时缺省没有最下的主交换机了) 这4个交换机如下: Exadata-IB1 Exadata–IB2 Exalogic-IB1 Exalogic–IB2 连接方式: Exadata-IB1——-Exalogic–IB2 Exadata-IB1——-Exalogic–IB1 Exadata-IB2——-Exalogic–IB1 Exadata-IB2——-Exalogic–IB2 配置方式具体如下: 1、修改db node上的/etc/infiniband/openib.conf: 2、在/etc/ofed/libsdp.conf中添加: 3、在/etc/modprobe.conf都添加并且reboot节点: 配置Double-E(比如Exadata和ExalogicIB,或者Exadata和Exadata之间的)网络上配置监听: 添加network2(for IB): 验证添加结果: 添加vip: 检查vip是否可以正常启动: 添加这个IB网络的监听(LISTENER_IB): 配置tnsnames.ora 修改数据库参数listener_networks: 测试连接,使用oracle用户: 在客户端(Exalogic或者其他需要连接db的主机上),需要配置 如下连接串: … 继续阅读

发表在 Exadata, 日常运维 | 标签为 , | 留下评论

Exadata X5 上测试单进程impdp导入数据的效率

=========================================== 单进程,每分钟: 16G(每小时960G) 7分钟,导完LUNAR_P201404_1 请注意下面的过程 parallel=1,表示单进程测试 (只能测试单进程,是因为跟我同事的导出方式有关系,明天测试多进程……) =========================================== 导入过程中进行检测: 可以看到exadata聪明的选择了直接裸盘,没有走Flashcache,每秒钟吞吐量大概460MB左右(一起开始时候会有一个高峰大概有2倍的这个值,猜测是由于分配空间等等) 大概2~3分钟后,存储节点总的吞吐量稳定在每秒钟460MB: =========================================== 测试结果: 在数据库中实测的数据(按照每分钟这个表的增长大小来计算) 单进程,导入速度每分钟: 16G 7分钟,导完LUNAR_P201404_1,该表大概309GB(按照这个测试,每小时大概2.5TB左右) =========================================== =========================================== 注意上面: elapsed 0 00:07:02 也就是说,7分钟导入数据309GB

发表在 POC和性能调整 | 标签为 , | 留下评论

配置Exadata上的万兆模块和测试万兆

Exadata上配置万兆非常简单,就是设置一下网卡,然后绑定即可 根据文档描述,万兆光口对应的接口如下: Exadata Database Machine X5-2的eth4和eth5 不同的机器,可能接口名称不同,可以在机器上看,也可以核对文档来识别。 . (1)Exadata上,有两个光口,是千兆万兆自适应的,但是10Gib模块需要单独购买。 (2)Exadata上,4个电口是百兆,千兆,万兆自适应的 下面的是一个例子: 例如,电口的eth0(用于连接内置的Cisco): 连接了万兆的eth4: 然后设置一下IP,按照linux上绑定网卡的方法将eth4和eth5绑定即可。 万兆配置好了,测试了一下万兆的效率(还没时间做测试跨机房): 下载了iperf安装在exadata上: 测试了一下,每秒基本上可以达到7Gb(大概7Gb/8≈700MB/s):

发表在 Database | 标签为 , , | 留下评论

Exadata上精彩的硬件告警(准确的说,应该是SUN ILOM的)

昨天Exadata上发出了一封靓丽的告警邮件,如下图: 没见过这么漂亮的邮件,清晰的告诉你是什么部件(可惜我还不认识那个大大的就是CPU……汗……) 又惊又喜的傻Lunar以为硬件坏了,高兴的是,SUN的ILOM的告警做的真棒啊 但是奇怪的是才用了没多久啊,而且比较爱惜的,怎么回事? 后来,在oracle官网搜索这个硬件, 发现是CPU边上的一个部件,貌似PCIe“故障”了。系统组的同事log了SR,等待回复。 晚上回家,按照以往的管理,我也到ILOM上搜索了一下,然后按照官方文档收集了ILOM的snapshot和一些必要信息传到SR上,SR的回复我没看懂: ” 也就是说,33%的可能是是硬件损坏…… 在oracle官网找到如下方法判断,下面的输出是ILOM 3.2以上的输出(老版本的输出本文后面有例子) 收集的信息,跟SR上老外的回复差不多,也是每个部件都有33%的可能性是硬件损坏…… 按照以往的理解,猜测是“先兆损坏”,通常这种情况,工程师可能会把硬件进行一次插拔,如果没问题就算了,如果有问题,可能就是硬件损坏。 于是又到ILOM上检查,什么硬件,根据文档说明和ILOM的指示,大概知道是什么东西了(虽然每个东西长什么样子,我没见过……基本上从毕业后就没有拆过机箱,摸过螺丝的Lunar感觉很无奈……): . /SYS/MB ————-这个表示是主板 /SYS/MB/P0 ————这个表示是CPU /SYS/MB/RISER2/PCIE2 ———-这个就是文档中说的那个拗口的“PCIe 竖隔板”,2表示槽位2 . 找到硬件工程师问了一下,这个问题是因为我们插入万兆模块的时候,报的告警,不过奇怪的是为什么oracle文档中没有写明“更换万兆模块需要关机?” 行了,知道了不是硬件问题,clear即可,这个文档上有,照做即可: 检查清除结果: 顺便介绍一下老版本的ILOM输出(ILOM 3.2以前): —举例1: 输出类似 FRU : /SYS/FANBD/FM0,这个就指出了损坏的FRU是具体对应到主机上的哪一个物理组件(full physical path) —“/SYS” 底架(chassis),我理解可能是主机架,就是拆开挡板后,所有东西都插在上面的那个主机箱的含义。 —“FANBD” 风扇模块 (fan … 继续阅读

发表在 Database | 标签为 , , , , | 留下评论

[FAQ]-使用duplicate克隆数据库

帮一个朋友整理的,顺便发到blog。 . 使用duplicate克隆数据库: 将宝宝数据库科隆为Lunar数据库 这部分东西不是新东西,clone在8i就是可以手工做的,在9i还是10g(忘记了),就被封装成duplicat命令了。 之前的测试参见无所不能的duplicate–克隆数据库 . 不过一般我更喜欢手工用rman做,每一步都透明,每一步都可控可回退可追查可修改。 duplicate自动化了,但是出问题后就是整体全部重来,万一有问题,比较耽误时间。 具体步骤如下: 在备库创建目录: 宝宝数据库的参数文件: Lunar数据库使用的参数文件: 创建监听: 创建tnsnames.ora文件 重启监听 测试连接: 创建口令文件: 开始duplicate: 克隆完成,创建临时文件:

发表在 backup&recovery | 标签为 , | 一条评论

[FAQ]-使用rman备份做同机克隆和异机恢复

帮一个朋友整理的,顺便发到blog。 . 数据库克隆操作文档 一.前提说明: 1. 本测试是在同一台机器上完成,而在同一台机器中ORACLE_SID不可相同,所以涉及到克隆库修改ORACLE_SID问题 2. 为了使得本次操作能够更好的让客户了解其过程,使用了传统的rman备份来实现,而没有使用duplicate相关命令实现 3. 如果在不同机器上使用rman备份做异机恢复,就不用修改SID,保持跟以前一样就可以(步骤差不多,比同机克隆更简单) . 二.整体思路: 1. 关闭lunar 2,使用pfile.lunar.bak(DB_NAME=lunar)nomount database 3,恢复控制文件 4,恢复数据文件(SET NEWNAME) 5,shutdown abort(lunar) 6,export ORACLE_SID=lunar 7,使用pfile.lunar.bak(DB_NAME=lunar)nomount database 8,重建控制文件(SET DATABASE “lunar”) 9,catalog start with 10,recover database 11,alter database open resetlogs . 三.详细步骤 1,备份数据库lunar … 继续阅读

发表在 backup&recovery | 标签为 , | 留下评论

OGG DDL trigger造成升级数据库后大量SYS对象失效和数据库DDL失效

OGG的DDL功能真是坑,今天在测试库尝试升级,被OGG的DDL给坑了(以前没摸过这个库,不知道有这个东西……) 以后,做任何大操作以前,一定要仔细检查数据库,是否曾经开启过OGG的DDL功能。 这个功能有很多隐患: 因为OGG的DDL是建立在SYS用户下面的, 与其他普通用户的trigger不同: 1,数据库文件offline后,如果有OGG的DDL曾经被开启,可能因此打不开数据库(先disable ogg ddl才行) 2,升级过程中,如果没有disable ddl trigger,可能出现一些升级后的异常 3,OGG用户删除后,并不能删除OGG的DDL trigger,因为他的属主是SYS,且属于internal trigger,会导致大量SYS用户的对象失效和DDL功能失效。 。。。。 升级数据库,从11.2.0.1到11.2.0.4,升级过程中,没有报错,但是数据库启动后,报错: 尝试删除OGG用户,报错: 检查报错的OLAP过程,为INVALID状态: 但是升级后,检查所有数据库组件是VALID状态: 理论上,升级后,组件都是正常的,为什么出现这种情况? 尝试disable 这两个trigger,也报错: 貌似所有的DDL都失效了: 再一查SYS的无效对象,800多个: 使用utlrp编译,也报错: 最后一行提示XDB组件有问题: diable OGG的trigger,然后删除ogg用户后,再次使用utlrp编译,已经正常了: 且数据库已经没有无效对象: 再次校验XDB的组件,正常了: 再次查询组建状态,都ok:

发表在 OGG | 标签为 , , | 留下评论

ADG备库由于控制文件,归档损坏等原因,不能switchover,failover和active standby database时

昨天损坏的备库,今天准备激活,然后做升级测试。 备库由于归档损坏,已经不能用常规手段switchover和failover,甚至直接激活也不能: 重启数据库后,重建控制文件,然后open resetlogs: 激活数据库: 最后在备库添加temp文件:

发表在 backup&recovery, Dataguard | 标签为 , , | 留下评论

OEL6.2 EXT4 filesystemio_options=SETALL造成archivelog坏块

又踩了个坑…… 今天同事告诉我前天调整一个数据库的参数,重启后,备库总报错: 初分析,这个错误有点怪异,有redo 头损坏,有“Possible network disconnect with primary database” 尝试clear online redo log和standby redo log,没用 尝试在主库重建控制文件,然后再直接重启备库,还是上面的错误。 冷静下来,感觉不对劲,检查主库和备库,发现主库归档日志是按照sequence顺序生成 备库则是断断续续的,有的可以从主库传过来,有的传不过来 手工传过来,APPLY还是报错: 感觉是arch异常了,而且貌似所有报错的,都是没有从主库传过来的 而所有没传过来的,都是损坏的,因此手工传过来也没用,因此抽取一个arch进行校验: 结果显示,确实arch损坏了。 . 根据问题发生的时间,想起来那天调整数据库参数的时候,有一个filesystemio_options=SETALL 也就是调整文件系统AIO方式的,去年在公司还给大家发邮件说起来“ext4上不要使用 filesystemio_options=SETALL” 否则会造成数据库坏块,没想到今年自己被坑了……(哇哇大哭啊……) 具体可以参见Oracle 文档: ORA-1578 ORA-353 ORA-19599 Corrupt blocks with zeros when filesystemio_options=SETALL on ext4 … 继续阅读

发表在 backup&recovery, Dataguard | 标签为 , , | 留下评论

11.2中修改私有网络的private ip对应的主机名

Oracle Clusterware使用oifcfg来管理网络信息(网卡,子网,网络接口的角色等等),但是他不管理每个网卡实际的IP地址。 因此,不能使用oifcfg来修改IP地址(只能修改子网)。 可以使用oifcfg getif来显示当前OCR里面的网卡信息,例如: 在UNIX和linux系统中,网络接口的名称通常由OS来分配。 Windows系统中有所不同(不熟悉Windows上的RAC,职业生涯中,安装不超过10次Windows平台的RAC……) 数据库对外提供服务的网络,我们通常称为PUBLIC网络,VIP也是存储在OCR里面跟PUBLIC同一网段上的IP地址 注意:VIP是绑定在public ip上的虚拟IP,只有CRS启动后,才有VIP。 用于RAC中节点间通信或者RDBMS跟ASM实例通信的网络,我们称之为Private网络(私有网络),用于内部互联。 从11.2开始,cluster_interconnect也被用来做clusterware hearbeats 在11.2之前(11.1和10g),RACA使用私有IP对应的主机名(例如 lunar-priv)来作为集群的心跳(在安装RAC时有界面让指定的) . 当修改了私有网络的IP或者主机名,就需要修改CRS(10g和11.1)或者GI(11.2以后)。 8i和9i没这个问题,因为那时候,Oracle没有自己的集群软件,只有“集群数据库”,所有的集群功能都是第三方集群软件完成的。 例如 : HP的MC SERVERS GUARD/OPS OPTION AIX的HACMP Solaris的SUN Cluster Tru64 UNIX的TruCluster ……………… . 在11.2之前,私有IP对应的主机名保存在OCR中,我们不能修改私有网络的主机名。 但是正因为如此,修改了私有IP,而私有IP对应的主机名其实并没有发生改变。 如果要修改主机名就简单的执行rootdelete.sh和rootdeinstall.sh重新配置CRS就可以了。 具体的例子请参考《在10.2 RAC中重建CRS的过程》 . 从11.2开始,CRS(Cluster Ready Service)升级为GI(Grid … 继续阅读

发表在 RAC | 标签为 , | 留下评论