所谓Exadata扩展,也即向现有的Exadata环境中增加新的数据库服务器或存储服务器。

扩展原则

可以依循以下规则扩展Exadata:

(1).可以将Exadata从某种固定配置扩展到另一种固定配置。例如:从八分之一的机架扩展到四分之一的机架,或四分之一配置的机架扩展到半机架,或把半机架扩展到全机架。

(2).还可以通过单独增加数据库服务器或存储服务器的任何组合(添加到允许的最大值),来将Exadata从固定或自定义配置扩展到另一个自定义的配置,这种扩展被称为弹性配置。

(3).可以扩容不同磁盘类型的存储节点,比如:高性能磁盘的现有环境中再扩容高容量的存储节点,反之亦然。但不能在同一个ASM磁盘组中混合磁盘类型。比如:如果现有的磁盘组都使用高性能磁盘,此时如果向Exadata机架中添加了高容量磁盘的存储节点,则需要为高容量磁盘存储节点创建新的磁盘组。

(4).添加Exadata X4-2或更高版本的数据库服务器或存储服务器时,infiniband网口绑定配置方式必须与机架中的现有服务器相​​匹配。也即:如果现有环境的infiniband网口是active-active模式,则新增的机器也用active-active模式,如果现有的环境是active-backup模式,则新增的机器也必须用active-backup模式。

(5).当扩展新的机架或服务器时,新的服务器很可能具有比当前机架更高的image版本或修补程序级别。在某些情况下,你可能希望将当前机架版本更新到更高版本。而在其他情况下,你可能希望保留当前版本,而选择对新的服务器重新刷机以匹配当前机架的版本。无论你选择做什么,请务必确保现有的和新的服务器存储软件版本保持相同。

(6).Exadata中的InfiniBand网络可用于外部连接。36口的InfiniBand交换机中的外部连接端口可以连接到介质服务器,以进行磁带备份,数据加载以及客户端和应用程序的访问。每台infiniband叶子交换机上有6个空闲端口,分别是:5B,6A,6B,7A,7B和12A。这些空闲端口可以连接外部网络。我们知道,一台满配的EXADATA有8台计算节点和14台存储节点,这两种服务器则分别占用每个叶子Infiniband交换机22个端口,而两个叶子Infiniband交换机之间的互联又占用7个端口,所以每个叶子Infiniband交换机会被占用29个端口,对于36口的Infiniband交换机,理论上每个叶子Infiniband交换机上空闲了7个端口,为什么只有6个可用于外部连接呢?其实最后的这个端口是用于infiniband叶子交换机与机架内部的infiniband骨干交换机连接的。在X4以前的满配或半配机架中自带了这个infiniband骨干交换机,所以这个端口也被占用,但X4开始,无论什么配置,都没有这个infiniband骨干交换机,所以多空闲出一个端口。

 

注意:

在扩展Exadata X4-2 及之后版本的机架之前,必须先订购Sun 的36 口InfiniBand交换机,然后再订购infiniband电缆线,因为X4及之后的各型号只携带两个36 口InfiniBand交换机,缺少了infiniband骨干交换机。

 

获取当前配置信息

在扩展现有的Exadata之前,需要先收集当前Exadata环境的配置信息,收集信息的目的就要是用于确定配置新服务器的IP地址、当前环境是否需要image版本升级等等。

在扩展机架之前,收集以下信息:

(1).当前环境的exachk报告。

 

(2).image版本信息:

# imagehistory

 

(3).计算节点和存储节点的IP信息:

# ifconfig

 

(4).存储节点的celldisk、flashcache和iormplan等信息:

# cellcli -e list cell detail

# cellcli -e list physicaldisk detail

# cellcli -e list griddisk attributes name,offset,size,status,asmmodestatus

# cellcli -e list flashcache detail

# cellcli -e list flashlog detail

# cellcli -e list iormplan detail

 

(5).计算节点的大内存页设置:

# cat /proc/meminfo | grep -i 'HugePages'

 

(6).IB交换机相关信息:

# ibswitches

# version

 

(7).计算节点的网络配置信息:

# cat /etc/resolv.conf

# cat /etc/ntp.conf

# cat /etc/network

# cat /etc/sysconfig/network-scripts/ifcfg-*

 

(8).GI集群和数据库版本信息:

$ opatch lsinventory -oh $GRID_HOME -detail -all_nodes

$ opatch lsinventory -oh $ORACLE_HOME -detail -all_nodes

 

Exadata扩展简要步骤

一台Exadata自身的扩展,无论是1/4配扩展到半配,半配扩展到满配,还是弹性配置扩展,简单来说,可以概括为以下几个简要的步骤。

(1).新服务器上架:

也即安装新服务器的活动导轨,将新的服务器安装固定在机架内部。安装新的服务器时,最好遵循先下后上的原则,即从机架中最下部空闲的单元中开始安装新服务器,避免"头重脚轻"的问题。

(2).新服务器连线:

将新安装的服务器的ILOM线、管理网线、Infiniband线等等连接到现有的网络环境中。连线时,强烈建议严格按照官方文档中标记的详细端口使用来连接网线,不要随意地连接任意空闲的端口。

(3).确定存储软件版本:

通常情况下,在Exadata扩展时,当前的Exadata版本与新扩展的服务器版本都会有一两代的代差。简单而言,就是例如当前是X3-2环境,需要扩展时,可能是几年之后的事情,此时,我们只能扩展X4或X5的服务器。

相应地,就需要考虑扩展之后,整个集群环境中Exadata存储软件版本一致的问题,绝大部分情况下,都是需要将现有的环境升级,以满足新服务器高存储软件版本的要求。

现有环境的升级是一个非常巨大的工程,所以,只要条件允许,通常选择将新的服务器重新刷机,降级新服务器中的存储软件版本,以匹配现有的环境(绝大部分情况,是不满足降级条件的)。

(4).新服务器初始化:

对新扩展的服务器加电并初始化,为新服务器加入集群作准备。

(5).新服务器加入集群:

将新的数据库服务器通过增加节点的方式,扩展到现有的集群环境中即可。

将新的存储服务器扩展到整个存储环境中,此时涉及到新的存储如何使用问题,如果新的存储类型与现有的存储类型不一致,即高性能与高容量混用时,新存储必须单独创建成新的ASM磁盘组,而不能将新存储加入到现有的ASM磁盘组中。如果新的存储类型与现有的存储类型一致,则新存储也必须完全按照现在存储的划分方式来划分新存储,然后就新存储加入到现有的ASM磁盘组中。例如:现有环境是3TB的高容量盘,新扩展的存储是4TB的高容量盘,此时需要将新存储中划出3TB的盘加入到现有的ASM磁盘组中,剩余的1TB空间单独再创建新的ASM磁盘组。

注意:

即使同为高容量盘,只要容量不一致,性能其实也是有区别的,所以推荐的做法是:扩展的新存储,单独做成ASM磁盘组,而不是扩展到现有的ASM磁盘组中。

 

 

 

 

Exadata扩展的更多相关文章

  1. [转帖]“剖开” LinuxONE 和 Exadata,架构专家解读里面到底有什么

    “剖开” LinuxONE 和 Exadata,架构专家解读里面到底有什么 http://server.zhiding.cn/server/2018/0914/3111044.shtml    说起I ...

  2. 2.Exadata 硬件体系结构

    Exadata 硬件加构: 高性能,低成本 冗余 线性扩展 ,具有超强性能,开箱即用         例 2-2的满配: 8台数据服务器组成(2C 6核) (3-2是10核, 4-2,5-2 是12核 ...

  3. 1.Exadata技术演进

    V1-v2 和 HP Exadata 2-2 和 SUN 2011 3-2 4-2 5-2 2014底 2-2 混合运算 2-8 是大数据运算         问题1. 随着系统规模增加,传统数据库架 ...

  4. Asp.net Boilerplate之AbpSession扩展

    当前Abp版本1.2,项目类型为MVC5. 以属性的形式扩展AbpSession,并在"记住我"后,下次自动登录也能获取到扩展属性的值,版权归"角落的白板报"所 ...

  5. 恢复SQL Server被误删除的数据(再扩展)

    恢复SQL Server被误删除的数据(再扩展) 大家对本人之前的文章<恢复SQL Server被误删除的数据> 反应非常热烈,但是文章里的存储过程不能实现对备份出来的日志备份里所删数据的 ...

  6. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  7. .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类

    .NET Core中间件的注册和管道的构建(2)---- 用UseMiddleware扩展方法注册中间件类 0x00 为什么要引入扩展方法 有的中间件功能比较简单,有的则比较复杂,并且依赖其它组件.除 ...

  8. 采用EntityFramework.Extended 对EF进行扩展(Entity Framework 延伸系列2)

    前言 Entity Framework 延伸系列目录 今天我们来讲讲EntityFramework.Extended 首先科普一下这个EntityFramework.Extended是什么,如下: 这 ...

  9. Dapper扩展之~~~Dapper.Contrib

    平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html#skill 上一篇文章:Dapper逆天入门~强类型,动态类型 ...

随机推荐

  1. 问题:C#根据生日计算属相;结果:C#实现根据年份计算生肖属相的方法

    这篇文章主要介绍了C#实现根据年份计算生肖属相的方法,涉及C#数组与字符串的操作技巧,具有一定参考借鉴价值,需要的朋友可以参考下   本文实例讲述了C#实现根据年份计算生肖属相的方法.分享给大家供大家 ...

  2. CALayer绘图

    一.CALayer绘图方式 Layer绘图有两种方法,不管使用哪种方法绘制完必须调用图层的setNeedDisplay方法(注意是图层的方法,不是UIView的方法,UIView的setNeedDis ...

  3. DAY11-MYSQL数据备份、pymysql模块

    一 IDE工具介绍 生产环境还是推荐使用mysql命令行,但为了方便我们测试,可以使用IDE工具 下载链接:https://pan.baidu.com/s/1bpo5mqj 掌握: #1. 测试+链接 ...

  4. Redis Cluster 伪集群的搭建

    简介 为何要搭建Redis集群?Redis是在内存中保存数据的,而我们的电脑一般内存都不大,这也就意味着Redis不适合存储大数据,适合存储大数据的是Hadoop生态系统的Hbase或者是MogoDB ...

  5. cocos2d-js动作模块使用(自用,只有代码)

    // var UIBase = require("src/views/ui/UIBase.js")// cc.loader.loadJs("src/views/ui/UI ...

  6. Halcon将裁剪后的图像还原为原始大小

    ************************************************************* * Halcon将裁剪后的图像还原为原始大小 * Author: LiGua ...

  7. p4377 [USACO18OPEN]Talent Show

    传送门 分析 经典的01分数规划问题 用01背包check即可 代码 #include<iostream> #include<cstdio> #include<cstri ...

  8. Luogu 2467 [SDOI2010]地精部落

    挺有意思的题. 优质题解: https://www.luogu.org/blog/user55639/solution-p2467 题意为求长度为n,取值为$[1, n]$的波动序列的个数. 首先需要 ...

  9. Git 之 github分享代码

    作为一个技术人员还是脱离不了屌丝的本质,所以每天都是逛逛github,看看别人有什么好的项目,自己可以给他挑挑bug也可以提供自己的水平,但是别人不那怎么才能给别人贡献代码呢?那就是fork了.... ...

  10. UVa 1204 Fun Game (状压DP)

    题意:有一些小孩(至少两个)围成一圈,有 n 轮游戏,每一轮从某个小孩开始往左或者往右伟手帕,拿到手帕写上自己的性别(B,G),然后以后相同方向给下一个. 然后在某个小孩结束,给出 n 轮手帕上的序列 ...