oracle 12c 发布用很长一段时间了,虽然在近期部署了几套单实例oracle 12c,但一直都没有机会在生产环境实施12c rac,当然,既不能把现有的11g rac干掉,替换成12c rac,又没有新的项目找上来,但总不能等需要干活的时候再学习测试,未雨绸缪,正好从青龙那里化缘来一台配置不错的技嘉迷你pc,正好用它来做测试,安装上proxmox,虚拟出一堆系统,然后就有条件测试部署oracle 12c rac 。



Oracle实现负载均衡,完全不依赖于其它第三方工具,自己全部搞定,真是牛啊!部署oracle负载均衡高可用,实际上就是部署oracle RAC。在开始部署之前,得先做好规划。规划涉及到的主要有以下几个方面:

1、共享存储:是oracle RAC最关键的设施了,许多重要的数据文件、归档、仲裁等文件都存放于此,因此需要考虑可用性、容量、性能、成本等因素。在以前的多个项目中,我选用的存储多为外接阵列,双控制器、10000转2.5寸sas或者15000转3.5寸sas盘,插槽全部插满,不考虑短期扩容。

2、服务器:计算资源依托于服务器,也需要综合考虑可用性、性能及成本因素。在过去实施的一些项目中,一般采用1u机架式服务器,内存64G、多核心多线程cpu、双ssd盘(做raid容错)、四个网络接口卡。

3、网络规划:至少分两个网段,交换机独立(至少两个交换机),且为全千兆速率交换机,网线也要用机制六类线。说起这个网线,踩过一次坑,记忆深刻--一个网络color ticket的项目,服务器塞满了两个机柜,各类设施在当时都算是比较高端的。特别交代采购,一定要买机制网线。一帮人没日没夜的折腾,终于调试完毕,上线运行正常。可是没多久,oracle RAC集群就出现一会好一会坏的情形,登录查日志,查应用,都找不出问题,最后只好亲自去机房。前前后后瞧来瞧去,看各指示灯的显示情况;这一看还真发现问题:心跳交换机的端口有一个指示灯一会绿、一会黄的,肯定是速率不匹配的问题。再撸线,跟其它机制线不同啊!询问得知,采购的时候,供货商存活比计划采购数少了一条,于是就让机房给手工做了一条顶上去。换上新的机制六类网线,问题得以解决。


曾经写了一篇“Oracle 11g rac 生产环境部署详录”文章,发布在51cto博客,地址为http://blog.51cto.com/sery/1546346,欢迎参考。本篇文章,由于没有真实环境可以提供(不能拿已有的生产环境来搞,我怕老板来砍我),因此只能在虚拟环境下进行,不过这并不影响大家学习和借鉴,毕竟基本思路和方法是相同的,也利于做实验和测试。


准备基础环境


我此次进京,化缘来一个迷你主机,配置为cpu 8线程、1TB硬盘、12G内存,拿来做虚拟化非常合适,省电省地又安静。看看,是不是很小巧?

用此迷你主机虚拟化,创建2个虚拟机,安装oracle,另外创建一个虚拟机安装openfiler,做为oracle的共享存储。


◎主机虚拟化处理

强烈推荐使用proxmox,当然我自己也用。当前的版本是proxmox5.2,支持ceph超融合,巨好用,iso一键安装。官方网站(www.proxmox.com)下载镜像包,用ultraIso写入u盘,使其可以开机引导。如果u盘无法引导加载的情况,可再做一次ultraISO写入操作,写入格式选“raw”,如下图所示:

Proxmox安装过程很简单,也很容易完成,这里不再多说。Proxmox底层是基于debian的,在运行过程中,系统会执行apt-get update去做包更新,为避免出现“TASK ERROR: command 'apt-get update' Failed: exit code 100”这样的错误,需要以ssh登录系统(debian),修改文件/etc/apt/sources.list.d/pve-enterprise.list ,把里边的唯一一行内容注释掉。当然,你也可以无视。


○多网卡处理

也许你的实验环境跟我一样,只有一个物理网卡,但要实现oracle rac至少得两个网卡,怎办?增加一块就好,具体方法如下:

1、proxmox管理界面选择“创建”,再选“Linux Bridge”,填写ip地址和掩码(网关等其它项不用填写)

2、使网络设置生效。Ssh登录debain,重启系统。再登录系统,用指令“ip add”,就可以看到刚创建的虚拟网络接口。如下图所示:

同样,在proxmox的web管理界面,也能看到这个效果。


○准备操作系统镜像文件

据我掌握,有两种方法可以上传操作系统ios镜像,一种是proxmox web管理界面,另一种是登录debian系统,进入镜像文件设定的目录,用wget一类的工具直接获取。

1、web界面上传ios文件(需要在本地电脑上下载好文件):

在几次实践中,总觉得这个方法麻烦,而且速度慢,现在一般不采用了。

2、登录系统直接下载,只下载一次,如果是机房服务器的话,比下载到本地再传上去,节省大量的时间。

root@pve99:~# cd /var/lib/vz/template/iso

root@pve99:/var/lib/vz/template/iso# wget http://mirrors.163.com/centos/7.5.1804/isos/x86_64/CentOS-7-x86_64-DVD-1804.iso

root@pve99:/var/lib/vz/template/iso# wget http://mirrors.cn99.com/centos/6.10/isos/x86_64/CentOS-6.10-x86_64-bin-DVD1.iso

下载完以后,到web管理界面检查一下,是否出现在项目中。


◎创建虚拟机

由于安装oracle rac需要的主机资源配置完全一样,因此可以先创建好一个虚拟机,并安装好系统(不要安装oracle哟),再以克隆方式生成第二个虚拟机,改一下网络设置即可投入使用。


○创建第一个虚拟机

Proxmox web管理界面点击“创建虚拟机”,给虚拟机设置一个容易辨识的名字,比如db107,然后进行下一步。

“操作系统”栏目下,选“使用cd/dvd光盘镜像文件(ISO)”,下来列表框选定预先上传的操作系统iso。如下图所示:

一下步分配磁盘(给32G)、cpu(4core)、内存(8G),创建完以后,还不能满足需求。需要再增加硬盘,用来做oracle的安装目录及创建交换分区;增加网络接口,用以oracle节点间做心跳检测。

1、给虚拟机增加硬盘:

管理界面选中刚创建的虚拟机,在选级联菜单“硬件”,点击按钮“添加”;

设置大小为50G,计划16G用于swap,其余为安装软件目录使用。



2、添加网络接口:

跟添加硬盘的步骤基本相同,只是到了“添加”这个下拉列表这里,选“网络设备”,具体选择如下图所示:


◎安装虚拟机操作系统

在创建好虚拟机之后,web管理界面启动虚拟机,然后再点击页面里的“>_控制台”按钮,即可进入操作系统安装界面,如图所示:

余下的步骤,跟常规的系统安装毫无差别,不再赘述。


◎安装共享存储openfiler

Openfiler跟proxmox一样,也是以iso形式提供的,同样,openfiler也需要至少两个磁盘,一个安装系统,一个做数据共享。规划好容量分配以后,就可以开始安装,安装过程很简单,不再啰嗦。


下图为我安装好的openfiler磁盘使用情况,其中容量大的那个磁盘用于iscsi共享。

接下来,开始配置存储。鼠标点“Service”项,把iscsi服务打开。

在空闲的那个大容量磁盘创建分区(Linux Physical Volume),接着创建卷组vg-data(命名自己定)及逻辑卷;创建逻辑卷时,Filesystem / Volume type(文件系统/卷类型)要从下拉列表框选定“block(ISCSI,FS,etc)”。完成这个操作以后,鼠标点右侧“iSCSI Targets”菜单,添加一个新的issci目标(Add new iSCSI Target),如果没有启动iscsi服务,则添加按钮(Add)是灰色的,无法进行下一步操作。

完成逻辑单元(LUN)映射,操作如下图:

因为是内部网络,因此可以不对访问做限制。到此,存储端配置完毕。


◎服务器挂接iscsi磁盘(需要在两个主机都操作)

只需简单几个步骤,即可在主机上挂接好iscsi共享磁盘,并且使之随系统开机启动。

○启动iscsi服务。Centos默认可能没有安装熟悉而好用的ntsysv,yum安装一个吧。执行ntsysv吧iscsi项选上,下次开机,iscsi服务就自动起来了。

○扫描iscsi目标,并记录下输出信息,指令如下:

[root@db115 ~]# iscsiadm -m discovery -t sendtargets -p 172.16.35.107

172.16.35.107:3260,1 iqn.2006-01.com.openfiler:tsn.3ceca0a95110

需要的就是数字“1”后边加粗的部分信息。

○挂接目标磁盘,指令如下:

# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.3ceca0a95110 –l

Logging in to [iface: default,target: iqn.2006-01.com.openfiler:tsn.3ceca0a95110,portal: 172.16.35.107,3260] (multiple)

Login to [iface: default,3260] successful.

○磁盘挂接验证,两个主机都执行一次,指令如下:

[root@db115 ~]# fdisk –l

...……………………………省略…………………………………

disk /dev/sdc: 51.2 GB,51170508800 bytes,99942400 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



disk /dev/sdd: 122.9 GB,122876329984 bytes,23×××832 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes



disk /dev/sde: 10.2 GB,10234101760 bytes,19988480 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

以此法共享出三个卷,并挂接在每一个节点上。


部署oracle 12c rac

分三个阶段:安装前的准备、安装软件、创建数据库。


◎安装前的准备

主要步骤有:准备交换分区及数据分区、设置相关主机名及 ip 映射、修改系统相关配置及依赖包、准备桌面环境。

◆准备交换分区,需要在每一个节点执行。

fdisk /dev/sdb

mkswap /dev/sdb1

swapon /dev/sdb1

fdisk操作过程中,分区代码选“82”,大小为18G。执行完上述操作后,用命令free –m检查是否生效。为了让交换分区随系统开机加载,需要修改文件/etc/fstab,加入的内容等描述完加数据分区以后,一并贴出。


更多内容,请参看专栏文章“负载均衡高手练成记”,猛戳此处即可直达

centos 7部署oracle 12c rac 上菜了的更多相关文章

  1. ios – RACObserve不工作

    我正在尝试观察我的viewmodel中的属性,然后使用ReactiveCocoa更新带有它的值的标签,但它没有更新.这是我得到的:视图模型视图控制器我检查过,viewmodel正在更新’amount’属性.这里有什么我想念的吗?我也试过这个测试:也不起作用.我正在使用ReactiveCocoa2.4.7,因为我的应用程序支持iOS7.Swift[1,2]和此版本中的宏替换之间是否存在任何不兼容性?

  2. XCode 5远程调试OS X应用程序

    我正在使用XCode5.0.2在OSX10.9上开发一个应用程序并获得了一个我无法在这台开发机器上重现的错误报告.但是,我有一个10.7虚拟机出现崩溃,所以我想调试那里没有在这个VM中安装XCode.我搜索了有关远程调试的信息,但我没有得到有用的答案.我甚至担心它根本不受支持.但无论如何我还是要问一下.或者,除了执行完整的XCode安装等之外,还有哪些其他选项来调试这样的问题?

  3. cinder swift的区别

    [原]OpenStack入门以及一些资料之2014-4-29阅读1144评论0注:本文内容均来自网络,我只是在此做了一些摘抄和整理的工作,来源均有注明。它拥有自己的文件系统,通过网络文件系统NFS或通用文件系统CIFS对外提供文件访问服务。Raid,不同的raid等级在增加数据可靠性以及增加存储器(群)读写性能间取得平衡。卷组描述区域,和磁盘将包含分区信息的元数据保存在位于分区的起始位置的分区表中一样,逻辑卷以及卷组相关的元数据也是保存在位于物理卷的VGDA中。

  4. OpenStack中Swift和cinder区别

    swift是objectstorage,将object存储到bucket里,你可以用swift创建container,然后上传文件,例如视频,照片,这些文件会被replication到不同服务器上以保证可靠性,swift可以不依靠虚拟机工作。如果你把这个虚拟机terminate了,这个volume和里边的数据依然还在,你还可以把它接到其他虚拟机上继续使用里边的数据。cinder创建的volume必须被接到虚拟机上才能工作。

  5. Swift属性观察者在协议扩展?

    换句话说,我可以观察协议扩展中的属性的更改吗?这并不意味着它是不可能实现的,但如果我们有这样的话可能会有点令人惊讶.

  6. 解决Swift 3中缺少递归协议约束的问题

    Swift3目前对“递归协议约束”有一个限制.有一个公开的问题here,在here,here和here有类似的讨论.但是,我仍然没有看到应该如何解决这个限制.可能吗?或者我需要开始引入较不严格的协议,直到在Swift中实现?会出现.然而,通过这种方法,我们可以得到正确的类型,而无需做很多专业化.当然,可以添加更多的协议来获得更多的抽象,但同样的解决方案将会适用.由于某些原因/语言缺陷,您必须在View.foo中分配委托时使用显式转换:viewmodel.delegate=selfas?

  7. Android VM不允许我们分配xx字节

    我正在开发一款安卓游戏.当我尝试使用3张图像作为背景时问题就出现了.图像为1280x720px和100kb大.图像真的不是那么大,所以我有点困惑,为什么它们应该导致内存问题.注意:屏幕分辨率为800×400,因此我无法通过因子2调整图像大小,因为它是suggestedonandroiddeveloper注意:我正在使用HTC欲望手机(这里崩溃来了),我也尝试过在三星galaxyS1和三星上运行正常

  8. 在Android中编译java文件后,注释会发生什么?

    Android编译器如何工作?它是否在编译时删除了Java代码和AndroidXML文件中的注释?

  9. 为什么Android上的每个应用程序都有单独的VM(Dalvik / ART)实例?

    正如标题所述,为什么Android上的每个App都有单独的VM实例?(需要它)如果Android操作系统选择了单个虚拟机运行所有应用程序的模型,会发生什么?解决方法在单个进程中运行多个应用程序不起作用的原因有很多;这是两个:安全区.两个不相互信任的应用程序不应该能够查看彼此的内存,即使它们使用本机代码或反射.失败隔离.如果进程泄漏内存并崩溃,则只会损害自身.

  10. android – 如何选择最佳图像大小不超过VM预算?

    在我的应用用户中,选择图像和程序可让用户对图像进行更改.由于有很多不同的Android设备,我的程序在一些设备上崩溃,这些设备的堆大小较少.我想计算用户手机的最佳尺寸,以免因VM预算而崩溃.我添加了“PicsayPro”的截图,它正是我正在寻找的.我知道“BitmapFactory.Options”我唯一的问题是找到一种方法来决定图像尺寸,这不会因为VM预算而导致应用程序崩溃.解决方法计算手机剩余

随机推荐

  1. 在airgapped(离线)CentOS 6系统上安装yum软件包

    我有一个CentOS6系统,出于安全考虑,它已经被空气泄漏.它可能从未连接到互联网,如果有,它很长时间没有更新.我想将所有.rpm软件包放在一个驱动器上,这样它们就可以脱机安装而无需查询互联网.但是,我在测试VM上遇到的问题是,即使指定了本地路径,yum仍然会挂起并尝试从在线存储库进行更新.另外,有没有办法使用yum-utils/yumdownloader轻松获取该包的所有依赖项和所有依赖项?目前

  2. centos – 命名在日志旋转后停止记录到rsyslog

    CentOS6.2,绑定9.7.3,rsyslog4.6.2我最近设置了一个服务器,我注意到在日志轮换后,named已停止记录到/var/log/messages.我认为这很奇怪,因为所有日志记录都是通过rsyslog进行的,并且named不会直接写入日志文件.这更奇怪,因为我在更新区域文件后命名了HUPed,但它仍然没有记录.在我停止并重新启动命名后,记录恢复.这里发生了什么?

  3. centos – 显示错误的磁盘大小

    对于其中一个磁盘,Df-h在我的服务器上显示错误的空白区域:Cpanel表明它只有34GB免费,但还有更多.几分钟前,我删除了超过80GB的日志文件.所以,我确信它完全错了.fdisk-l/dev/sda2也显示错误:如果没有格式化,我该怎么做才能解决这个问题?并且打开文件描述符就是它需要使用才能做到这一点.所以…使用“lsof”并查找已删除的文件.重新启动写入日志文件的服务,你很可能会看到空间可用.

  4. 如何在centos 6.9上安装docker-ce 17?

    我目前正在尝试在centOS6.9服务器上安装docker-ce17,但是,当运行yuminstalldocker-ce时,我收到以下错误:如果我用跳过的标志运行它我仍然得到相同的消息,有没有人知道这方面的方法?

  5. centos – 闲置工作站的异常负载平均值

    我有一个新的工作站,具有不寻常的高负载平均值.机器规格是:>至强cpu>256GB的RAM>4x512GBSSD连接到LSI2108RAID控制器我从livecd安装了CentOS6.564位,配置了分区,网络,用户/组,并安装了一些软件,如开发工具和MATLAB.在启动几分钟后,工作站负载平均值的值介于0.5到0.9之间.但它没有做任何事情.因此我无法理解为什么负载平均值如此之高.你能帮我诊断一下这个问题吗?

  6. centos – Cryptsetup luks – 检查内核是否支持aes-xts-plain64密码

    我在CentOS5上使用cryptsetupluks加密加密了一堆硬盘.一切都很好,直到我将系统升级到CentOS6.现在我再也无法安装磁盘了.使用我的关键短语装载:我收到此错误:在/var/log/messages中:有关如何装载的任何想法?找到解决方案问题是驱动器使用大约512个字符长的交互式关键短语加密.出于某种原因,CentOS6中的新内核模块在由旧版本创建时无法正确读取512个字符的加密密钥.似乎只会影响内核或cryptsetup的不同版本,因为在同一系统上创建和打开时,512字符的密钥将起作用

  7. centos – 大量ssh登录尝试

    22个我今天登录CentOS盒找到以下内容这是过去3天内的11次登录尝试.WTF?请注意,这是我从我的提供商处获得的全新IP,该盒子是全新的.我还没有发布任何关于此框的内容.为什么我会进行如此大量的登录尝试?是某种IP/端口扫描?基本上有4名匪徒,其中2名来自中国,1名来自香港,1名来自Verizon.这只发生在SSH上.HTTP上没有问题.我应该将罪魁祸首子网路由吗?你们有什么建议?

  8. centos – kswap使用100%的CPU,即使有100GB的RAM也可用

    >Linux内核是否应该足够智能,只需从内存中清除旧缓存页而不是启动kswap?

  9. centos – Azure将VM从A2 / 3调整为DS2 v2

    我正在尝试调整前一段时间创建的几个AzureVM,从基本的A3和标准A3到标准的DS2v2.我似乎没有能力调整到这个大小的VM.必须从头开始重建服务器会有点痛苦.如果它有所不同我在VM中运行CentOS,每个都有一个带有应用程序和操作系统的磁盘.任何人都可以告诉我是否可以在不删除磁盘的情况下删除VM,创建新VM然后将磁盘附加到新VM?

  10. centos – 广泛使用RAM时服务器计算速度减慢

    我在非常具体的情况下遇到服务器速度下降的问题.事实是:>1)我使用计算应用WRF>2)我使用双XeonE5-2620v3和128GBRAM(NUMA架构–可能与问题有关!

返回
顶部