Oracle RAC安装

Oracle RAC安装

Oracle RAC主要支持Oracle9i、10g、11g版本,可以支持24 x 7有效的数据库应用系统,在低成本服务器上构建高可用性数据库系统,并且自由部署应用,无需修改代码。在Oracle RAC环境下,Oracle集成提供了集群软件和存储管理软件,为用户降低了应用成本。当应用规模需要扩充时,用户可以按需扩展系统,以保证系统的性能。

(1)多节点负载均衡;

(2)提供高可用:故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化;

(3)通过并行执行技术提高事务响应时间----通常用于数据分析系统;

(4)通过横向扩展提高每秒交易数和连接数----通常对于联机事务系统;

(5)节约硬件成本,可以用多个廉价PC服务器代替昂贵的小型机或大型机,同时节约相应维护成本;

(6)可扩展性好,可以方便添加删除节点,扩展硬件资源。

以上都是百度介绍.

RAC,全称Real ApplicationClusters,译为“实时应用集群”

RAC 专业人士直接字母读音, 非专业人士读成"锐卡"。

RAC 对于我们DBA来说 只是一项技能。我们只要会如下就OK啦

一安装RAC

二 排错RAC

三调优RAC

四 管理RAC

一安装说难也不难,普通人士苦练一周就会了,反正百度大把文章都有介绍,关键没有一篇是全的。呵呵!说难,其实不能说难,应该说是烦,麻烦的烦。当然如果是在Windows平台来说就容易多些,可我们谈的自然是Linux平台,X86PC服务器上。这个麻烦的事安装过的人才有心理体会,基本上像我这种懒惰之人,只要安装好了,就不想再安装第二次了。比方说ZABBIX 安装可麻烦很了,在恒波搞了一次,在新公司自己虚拟机搞了一次,本来想再线上再搞一次,结果装了个MYSQL 就暂停了,到现在都快两个月了。没动力。没心力。安装这东西简直是折磨人。上个月好不容易在自己今年3月份买的7千的台式电脑上,安装RAC,前前后后装了两周。安装GI后面执行ROOT.SH命令时候跑了1个小时,后面安装数据库软件和数据库跑了2个多小时。什么叫坚持,就是老是逼自己做自己不想做,而且必须做的事情。记住是自己逼自己去做哦!

二排错 11G的RAC 错误百出啊,日志都有几十个文件,分布在不同深度的目录中。这跟单实列就一个ALETR.ORA告警文件,那么简单!而且错误日志文件带有很深的JAVA日志的痕迹,说白了这日志非常适合牛逼的JAVA开发人员看的。对于我们DBA来说简直是折磨,因为里面有大量的没有必要的信息,放在里面,反而阻碍了DBA查错!呃另外再说下 日志涉及到RAC众多的进程和相互之间复杂的联系,关系和潜规则。什么网络,什么集群重组,什么实例重组。还有那些复杂的GCS GES CGS GRD 各种奇怪的新名词,CRS,CSS。

三调优 就比较简单了 除了内存融合造成性能问题外,基本上都能沿用过去的经验,再说内存融合已经发展了10年之久,相关的性能也有经验可学。不是难事!

四管理 RAC 管理 大的就是添加和删除实例,估计这工作量非常少,百年难遇到一次。然后就是添加服务,添加备用库,启动和关闭资源。最后就是给ASM磁盘组添加磁盘或者更换磁盘,然后是REBLANNCE。

OK DBA工作在RAC 上重点就是排除和调优 学习GI 就是一大项目工程。

ORACLE RAC 讲解二 历史

RAC,全称Real ApplicationClusters,译为“实时应用集群”

RAC 专业人士直接字母读音, 非专业人士读成"锐卡"。

今天我想稍微讲下历史.

8I 也有RAC 那只是RAC的雏形!叫作OPS 并行处理系统

9I的RAC集群软件是构建别人上面的集群,比如LINUX下的LVS,或者IBM上的HA软件。9I的RAC好像都把数据文件存在裸设备。

10G RAC比较成熟了,开始有自己的GI和ASM。 ASM存放数据文件,其他文件存放在本地,而OCR和表决磁盘文件存放在裸设备上。

11G RAC 就比较完善了 GI和ASM 所有的文件都存放在ASM磁盘组上。另外内存融合的性能也得到大部分提高

12C的RAC 就进步发展成了主集群和子集群模式,另外什么租户概念出来了啦。

内存融合历史这个本来跟版本搭配的,只是我忘记了具体。一开始是没有内存融合的,两个实例和多个实例,其中一个实例要读该块,而该数据块在另外个实例手上,并且已经修改,那么就要去它把修改的数据块写回磁盘上,然后再读到自己内存中。显然这样的方式极大地限制了性能。不过当时为了实现高可用的RAC,同时也要保证数据一致性,这样的方式还是可取得。毕竟人家ORACLE公司没有很强的开发实力,跟我们小公司样,先开发出来能满足市场或者客户业务要求的先,先把钱赚回来。日后再完善。

然后出现了内存融合技术,也就是说,我们不必经过磁盘这种缓慢的IO中间商吧。如果你要数据块的话,我直接通过私网发给你就是了。

然后再进一步完善,私网发来发去还是挺影响性能的,这里主要是网络传输时间啊,那我搞个DRM 动态主节点。就是说这个数据块,你的B实例这段时间用的多,那我A实例把这个数据块的所有权转让给你的B实例,日后你的B实例每次再读它的时候,就别向我A实例申请!

ORACLE RAC 三 DNS 配置

Linux搭建DNS服务器简要步骤:

1

简要步骤:

0 配置CENTOS 网易YUM源 并且配置解析地址

1.在bind的主配置文件中添加该域

2.在/var/named中创建该域的zone文件

3.编辑zone文件,添加需要的信息

4.检测防火墙或selinux设置

5.启动bind服务,重启网络服务

6.用户端测试域名解析

0 配置CENTOS 网易YUM源 并且配置解析地址

[root@zabbix-mysql-apache ~]# cat/etc/resolv.conf

# Generated by NetworkManager

# No nameservers found; try putting DNSservers into your

# ifcfg files in/etc/sysconfig/network-scripts like so:

#

# DNS1=xxx.xxx.xxx.xxx

# DNS2=xxx.xxx.xxx.xxx

# DOMAIN=lab.foo.com bar.foo.com

nameserver 202.96.134.133

nameserver202.96.128.68

nameserver202.96.154.8

nameserver202.96.154.15

[root@zabbix-mysql-apache ~]# cat/etc/yum.repos.d/CentOS6-Base-163.repo

# CentOS-Base.repo

#

# The mirror system uses the connecting IPaddress of the client and the

# update status of each mirror to pickmirrors that are updated to and

# geographically close to the client. You should use this for CentOS updates

# unless you are manually picking othermirrors.

#

# If the mirrorlist= does not work for you,as a fall back you can try the

# remarked out baseurl= line instead.

#

#

[base]

name=CentOS-$releasever - Base - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/os/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#released updates

[updates]

name=CentOS-$releasever - Updates - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/updates/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that may be useful

[extras]

name=CentOS-$releasever - Extras - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/extras/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras

gpgcheck=1

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#additional packages that extendfunctionality of existing packages

[centosplus]

name=CentOS-$releasever - Plus - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/centosplus/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus

gpgcheck=1

enabled=0

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

#contrib - packages by Centos Users

[contrib]

name=CentOS-$releasever - Contrib - 163.com

baseurl=http://mirrors.163.com/centos/$releasever/contrib/$basearch/

#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib

gpgcheck=1

enabled=0

gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-6

1、安装DNS服务器组件

安装bind

yum install -y bind bind-chroot bind-utils

2、编辑DNS主配置文件

vi etc/named.conf修改主配置文件 红色字体

options {

listen-on port 53 { any; };

//listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query { any; };

recursion yes;

3、接着修改named.rfc1912.zones文件,我们为sharkdb.rac.com进行域名解析

vi etc/named.rfc1912.zones 添加

-----配置正向解析zone

zone "sharkdb.rac.com" IN { <<-域名

type master;

file "sharkdb.rac.com.zone"; <<正向域名解析文件

};

-----配置反向解析zone

zone "2.168.192.in-addr.arpa" IN{ <<-网段反写

type master;

file "sharkdb.rac.com.local"; <<--反向域名文件

allow-update { none;};

};

4、添加设置DNS正向解析文件

修改zone配置文件,正向解析:

cd var/named/

-----配置正向解析zone

cp -p named.localhost sharkdb.rac.com.zone

vi sharkdb.rac.com.zone 清空里面内容 然后添加下面的内容 注意域名后面跟点号

$TTL 86400

@ IN SOA localhost root (

42 ; serial (d. adams)

3H ; refresh

15M ; retry

1W ; expiry

1D) ; minimum

IN NS sharkdb.rac.com.

sharkdb.rac.com. IN A 192.168.2.200

sharkdb.rac.com. IN A 192.168.2.201

sharkdb.rac.com. IN A 192.168.2.202

-----配置反向解析zone

cp -p named.localhost sharkdb.rac.com.local

vi sharkdb.rac.com.local 清空里面内容 然后添加下面的内容 注意域名后面跟点号

$TTL 86400

@ IN SOA localhost. root.localhost. (

1997022700; Serial

28800 ; Refresh

14400 ; Retry

3600000 ; Expire

86400) ; Minimum

IN NS sharkdb.rac.com.

200 IN PTR sharkdb.rac.com.

5 验证权限

-rw-r----- 1 root named 442 9月 26 17:13sharkdb.rac.com.local

-rw-r----- 1 root named 152 6月 21 2007 sharkdb.rac.com.zone

6 启动bind服务

[root@zabbix-mysql-apache named]# servicenamed start

启动 named: [确定]

7 检验语法

[root@zabbix-mysql-apache named]#named-checkconf etc/named.conf

[root@named]# named-checkzonesharkdb.rac.com var/named/sharkdb.rac.com.zone

zone sharkdb.rac.com/IN: loaded serial 0

OK

8 实例配置 客户端设置

实例1

vi etc/hosts

192.168.2.200 sharkdb.rac.com rac-scan

编辑resolv.conf文件,添加内容:

vi etc/resolv.conf

nameserver 192.168.2.100 <<-DNS IP

9 客户端测试 获得3个IP地址 客户端一般取第一个

[root@zabbix-mysql-apache named]# nslookupsharkdb.rac.com

Server: 127.0.0.1

Address: 127.0.0.1#53

Name: sharkdb.rac.com

Address: 192.168.2.200

Name: sharkdb.rac.com

Address: 192.168.2.201

Name: sharkdb.rac.com

Address: 192.168.2.202

10 配置DNS轮询机制

vi etc/named.conf

options {

listen-on port 53 { any; };

listen-on-v6 port 53 { ::1; };

directory "/var/named";

dump-file "/var/named/data/cache_dump.db";

statistics-file "/var/named/data/named_stats.txt";

memstatistics-file "/var/named/data/named_mem_stats.txt";

allow-query { any; };

recursion yes;

dnssec-enable yes;

dnssec-validation yes;

/* Path to ISC DLV key */

bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";

rrset-order {

class IN type A name "sharkdb.rac.com" order random;

order cyclic;

};

};

[root@zabbix-mysql-apache named]# nslookupsharkdb.rac.com

Server: 127.0.0.1

Address: 127.0.0.1#53

Name: sharkdb.rac.com

Address: 192.168.2.202

Name: sharkdb.rac.com

Address: 192.168.2.200

Name: sharkdb.rac.com

Address: 192.168.2.201

[root@zabbix-mysql-apache named]# nslookupsharkdb.rac.com

Server: 127.0.0.1

Address: 127.0.0.1#53

Name: sharkdb.rac.com

Address: 192.168.2.201

Name: sharkdb.rac.com

Address: 192.168.2.202

Name: sharkdb.rac.com

Address: 192.168.2.200

ORACLE RAC 四 虚机硬件

其实搭建一个RAC 会了其实很简单,不过也很麻烦地,又很多细节要注意.

现在我们使用ORACLE公司的虚拟机VBOX软件来搭建个ORACLE 11G 11.2.0.1.0的RAC。采用ORACLE LINUX 6.5 系统。

需要2G内存,两个物理内核,15G磁盘,两个网卡。

先我们来个IP地址规划

本机电脑

IP地址

DNS-100

192.168.2.100

scan ip

PUB ip

VIP

priv ip

ORACLE RAC 1

192.168.2.200

192.168.2.203

192.168.0.206

192.168.3.203

ORACLE RAC 2

192.168.2.201

192.168.2.204

192.168.0.207

192.168.3.204

ORACLE RAC 3

192.168.2.202

192.168.2.205

192.168.0.208

192.168.3.205

OK 虽然格式不太好,我们打算搞4台虚拟机,最后一台为了将来进行实列添加而已。第一台DNS已经搞定了。接下来谈两台数据库如何搞。

使用VBOX 搞其实非常简单,只是注意点存储问题,比如说本地磁盘我们用IDE控制器来做本地硬盘大约15-20G 大小动态分配。

共享磁盘我们使用下面的STAT控制器,当必须是固定大小

网卡1为桥接,网卡2为内部网络

装好了一个数据库的操作系统后,可通过复制出另外一台就行了。唯独复制的时候不要重新MAC地址。日后手工去修改。

第二台数据库虚拟机网卡设置上按下绿色按钮,然后记下MAC地址。

进入了操作系统后,修改两个网卡的IP地址,MAC地址,机器名字。

STAT磁盘的共享设置

然后第二台数据库虚拟机通过添加方式,把共享磁盘添加过来。

共享磁盘设置

OCR+VF 约1.5G 三块磁盘正常冗余。

DATA 约10个G 做存放数据和归档日志,控制文件和SPFILE文件。

这样我们的硬件环境以及搭建好了

ORACLE 11G RAC 五 GI 安装GI 是RAC 的集群软件,

1 创建组

groupadd -g 501 oinstall

groupadd -g 502 dba

groupadd -g 504 asmadmin

groupadd -g 506 asmdba

groupadd -g 507 asmoper

2 用户

useradd -u 501 -g oinstall -Gdba,asmadmin,asmdba,asmoper grid

useradd -u 502 -g oinstall -G dba,asmdba oracle

3 etc/hosts

192.168.2.200 sharkdb.rac.com

192.168.2.203 sharkdb1

192.168.2.206 sharkdb1-vip

192.168.3.203 sharkdb1-prt

192.168.2.204 sharkdb2

192.168.2.207 sharkdb2-vip

192.168.3.204 sharkdb2-prt

4 etc/sysctl.conf

照抄ORACLE安装文档

5 etc/security/limits.conf

grid soft nproc 2047

grid hard nproc 16384

grid soft nofile 1024

grid hard nofile 65536

6 etc/pam.d/login

session required pam_limits.so

7 etcd/profile

if [ $USER = "oracle"] || [ $USER = "grid" ] ; then

if [ $SHELL = "/bin/ksh" ] ;then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

8 目录

mkdir -p u01/app/oracle

chown -R oracle:oinstall u01

chmod -R 775 u01

mkdir -p g01/app/grid

chown -R grid:oinstall

chmod -R 775 g01

9 环境变量

grid

export ORACLE_SID=+ASM1

export ORACLE_BASE=/g01/app/grid

exportORACLE_HOME=/g01/app/grid/11.2.0.1

export PATH=$ORACLE_HOME/bin:$PATH

oracle

export ORACLE_SID=sharkdb1

export ORACLE_BASE=/u01/app/oracle

exportORACLE_HOME=/u01/app/oracle/11.2.0.1

export PATH=$ORACLE_HOME/bin:$PATH

10 删除NTP服务器

rm etc/ntp.conf

service ntpd stop

11 添加域名解析服务器

/etc/resovf.conf

nameserver 192.168.2.100

12 关闭防火墙和SELIUNX

13 安装软件包

可以在安装目录下有个RPM 可以把所有的包都安装上去,当然可以在图形界面上安装.

14 使用UDEV 搞定ASM磁盘

ORACLE RAC 共享存储设备 UDEV

vi asmd.sh

#!/bin/sh

ls -l dev/sd*

if [ -f /etc/udev/rules.d/99-oracle-asmdevices.rules ]; then

rm-f /etc/udev/rules.d/99-oracle-asmdevices.rules

fi

if [ ! -f /etc/udev/rules.d/99-oracle-asmdevices.rules ]; then

touch/etc/udev/rules.d/99-oracle-asmdevices.rules

fi

for i in c d e f g h i j k;

do

echo "KERNEL==\"sd*\",BUS==\"scsi\", PROGRAM==\"/sbin/scsi_id --whitelisted --replace-whitespace--device=/dev/\$name\",RESULT==\"`/sbin/scsi_id --whitelisted--replace-whitespace --device=/dev/sd$i`\"NAME=\"asm-disk$i\",OWNER=\"grid\",GROUP=\"asmadmin\", MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules

done

/sbin/start_udev

ls -l dev/asm*

15 切换到GRID 用户下进行图形安装

./runInstall

16 在图形界面上安装SSH认证

17 注意事项

1 CLUSTER NAME 可能图形界面没读好

2 GRID 主目录图形界面也没读好

一般建议GRID目录/g01 ORACLE目录/u01

3 ASM磁盘组,这个时候图形界面是安装OCR+VF 图形界面显示的是DATA, 所以要改过了, 更改目录路径,/dev/asm* .

18 最后难关就是执行ROOT.SH 脚本这个脚本要执行很长时间,如果CPU不给力的话, 这个脚本如果配置不正常很容易出错,出了错比较难搞.

七 重新安装在0 解决办法是在db02上删除之前的crs配置信息,然后重新运行root.sh脚本即可。/u01/crs_home/product/crs/install/rootcrs.pl -verbose -deconfig -force

如果此步不行的话执行下面的步骤

1清理OCR盘dd if=/dev/zeroof=/dev/sdb

2 删除安装文件

cd u01/crs_home

rm –rf base

rm –rf produc

rm –rf oraInventory

mkdir base

3 重启shutdown -h now

如果本号文对你有意义可以下我打赏,金额多少无所谓!

理科精华

RAC crs_stat 命令结果完整显示

归档日志比在线日志小

分区表

INDEX肥胖化

OracleDG 备库 STANDBY 日志传输小结

ORACLE索引名称矫情

ASM中的几个概念

抓取性能不错的脚本

RMAN duplicate 方式做个备库

direct path read

共享池内存三维

PGA内存

一个性能优化案例INSERT

SGA内存

Linux 64 页表,进程内存,大页

Linux_x86_64BIT内存管理与分布

部分SWAP 内存知识

理解队列锁

ORACLE闪回之闪回查询

ORACLE 闪回之闪回删除

ORACLE闪回之闪回表

ORACL 闪回功能之闪回数据库

ORACLE 索引全扫描逻辑读

解析过程中的软软解析

ORACLE索引范围扫描逻辑读ARRAY

文史经典

纸版书和电子书

爱情是什么

IT界程序员泡妞《葵花宝典》

读书日谈读书

反对道德恐怖主义

论当今的婚介公司如何赚钱

失眠三重天

明朝灭亡真想

祖仙曰:万事皆亡

活见鬼

IT界人员提高智商

财经经典

西帝和东帝谈判成果

岁月静好-两场战争

熊案--马后炮

税收制度是穷人在交税养富人

房价再次限购后资金的流向?

加息的马后炮

P2P和换汇的生意

相关内容

苹果6听筒坏了如何自测
365bet赌城投注

苹果6听筒坏了如何自测

07-25 ☯ 5062
“弩哥”诺曼·瑞杜斯:与世界的连接
365bet账号被限制

“弩哥”诺曼·瑞杜斯:与世界的连接

07-09 ☯ 1543
就问你服不服:DNF都90了 但这些细节你依然中枪