所谓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. jdbcTemplate学习(一)

    概述 Spring JDBC抽象框架core包提供了JDBC模板类,其中JdbcTemplate是core包的核心类,所以其他模板类都是基于它封装完成的,JDBC模板类是第一种工作模式. JdbcTe ...

  2. C# 正规表达式

    在C#中怎么用正则表达式限制文本框内不能输入数字?只能输入数字:"^[0-9]*$".只能输入n位的数字:"^\d{n}$".只能输入至少n位的数字:" ...

  3. pl/sql对excel数据的导入和导出

    本来这部分是在上篇pl/sql的,但笔者介于此篇的内容,就独立出来了, 1.导出查询结果到excel文件,在查询结果上右键,然后弹出选择框如下: 2.从excel向数据库中导入数据: a.创建要导入的 ...

  4. 【转载】eclipse如何传递main参数

    转自:http://blog.csdn.net/theblackbeard/article/details/52172048 在命令行窗口可以通过java +程序名 +参数1(空格)参数2(空格).. ...

  5. python爬虫--编码问题y

    1)中文网站爬取下来的内容中文显示乱码 Python中文乱码是由于Python在解析网页时默认用Unicode去解析,而大多数网站是utf-8格式的,并且解析出来之后,python竟然再以Unicod ...

  6. MyBatis中动态SQL语句完成多条件查询

    一看这标题,我都感觉到是mybatis在动态SQL语句中的多条件查询是多么的强大,不仅让我们用SQL语句完成了对数据库的操作:还通过一些条件选择语句让我们SQL的多条件.动态查询更加容易.简洁.直观. ...

  7. 简单的jQuery前端验证码校验

    简单的jQuery前端验证码校验2 html; <!DOCTYPE html> <html lang="zh-cn"> <head> <m ...

  8. cmake 编译安装方法

    cmake版本3.7.2 1.根目录下./bootstrap 2.make 3.sudo make install

  9. boost::fucntion 用法详解

    转载自:http://blog.csdn.net/benny5609/article/details/2324474 要开始使用 Boost.Function, 就要包含头文件 "boost ...

  10. can通信实验

    源码讲解 1.硬件连接 需要两个开发板 2.初始化函数讲解 针对F103的 3.发送函数讲解 4.接收函数讲解 5.main函数讲解