ORACLE----搭建RAC

霸气de小男生 提交于 2019-12-07 19:56:14

RAC----real application cluster
10g----clusterware
11g----包含在grid软件中

集群支持的文件系统:
集权文件系统
ocfs
asm
 

rac--集中管理内存,cpu

 


数据库服务器没有办法满足需求:----通过rac进行集中管理
内存不够
cpu不够
硬盘不够

内网/私网---集群中节点与节点之间的网络连接,网络传输数率要求很高
需要网络交换机
全局SGA,管理每个SGA的信息,全局SGA由集群管理放在共享存储里
应用程序---外网(需要网卡)---连接数据库--一般给DBA用,有几个节点就需要几个IP地址
应用程序/用户使用(需要网卡)---虚拟网络/vip----如果有一个用户用外网联机到数据库,有一个节点失效了,我们就应用我们的集群软件虚拟出来的网络,进行我们实例的切换
需要配置tnsnames.ora,将节点信息写入到文件中
11g中 scan--简单客户端网络:简化用户在tnsnames的配置,scan中一共有3个地址,不是真实的网络。配置的时候主机名默认为racscan。使用racscan需要配置DNS服务器。

所有实例都访问一个数据库--多个实例向一个数据库写数据--数据库放到共享存储/共享文件系统中(orfs/acfs)
实例访问存储的网---需要存储网络,通过交换机,不能直连,做成主备保证时时都可访问,数据文件,控制文件,日志文件,归档日志,备份可以放到共享存储中,其他信息不支持存放

至少需要三张网卡:

    应用程序
       |
实例 -------实例
  |             |

共享存储
数据库




记录节点除了问题,或者有新的节点加入到集群中,放到共享存储中
vtd:磁盘仲裁----节点失效了,失效节点的信息分配给其他节点
ocr:集群注册机--- 节点与节点间的信息写入到ocr ,如果节点失效,我们需要在ocr中剔除节点信息,等到节点恢复我们又加入ocr中

集群的搭建:

1.三张网卡
配置/etc/hosts,将所有网络写入进去,外网,私网,
外网 92.10.10.11 rac.com.cn rac
私网 rac-vip.com.cn
rac-priv.com.cn
scan racscn.com.cn

2.配置DNS服务器
3.配置时间同步
只在一个节点安装rac,其他节点加入就可以
4.ssh等效性
5.搭建共享存储,openfire
6.安装我们的软件,可以不用检查硬件和软件
安装集群软件
7.安装数据库软件
8.安装集群数据库


openfiler初始化:
/etc/init.d/iptables stop
chkconfig iptables off
vim /etc/init.d/iscsi-target //注释掉所有含有iptables的句子
重启系统

openfiler 配置:

https://62.10.10.10:446/   用户名:openfiler  密码:password

在system 下添加进去两个节点

2.•  Volumes --->Volume Groups--->建好我们的vg组,名字叫racvg,将我们添加的5块磁盘都添加进vg组里面      ---->Add Volume(增加我们的卷组,分为四个组 ocr,vtd,fra,db )

--->iSCSI Targets (增加一个iSCSI Targets组,然后和我们的磁盘进行映射)

 

3. Services (把iSCSI Target服务起起来

 

 

4.在 Volumes做好如下分组

 

 

一.安装系统及openfiler网络存储系统

二. RACA install package
 yum install oracle-rdbms*
 yum install bind*
 yum install xinte
:td*
 yum install iscsi-initiator*

RACB:
yum install oracle-rdbms*
yum install iscsi-initiator*

 

三. RACA,RACB上编写/etc/hosts

92.10.10.20   raca.com.cn    raca
92.10.10.21   racb.com.cn    racb


92.10.10.100   raca-vip.com.cn    raca-vip
92.10.10.101   racb-vip.com.cn    racb-vip

12.10.10.20   raca-priv.com.cn    raca-priv
12.10.10.21   racb-priv.com.cn    racb-priv

92.10.10.200  racscan.com.cn      racscan
92.10.10.201  racscan.com.cn      racscan
92.10.10.202  racscan.com.cn      racscan


四.在raca节点上配置dns服务器
cd /var/named/chroot/etc/
cp /etc/named*  ./ -r
vi named.conf
    listen-on port 53 { any; };
    allow-query     { any; };

vi named.rfc1912.zones

  zone "com.cn" IN {
    type master;
    file "com.zone";
    allow-update { none; };
};

  zone "10.10.92.in-addr.arpa" IN {
    type master;
    file "92.zone";
    allow-update { none; };
};
  zone "10.10.12.in-addr.arpa" IN {
    type master;
    file "12.zone";
    allow-update { none; };

 

cd /var/named/chroot/var/named
cp  /usr/share/doc/bind-9.8.2/sample/var/named/* ./
cp named.localhost com.zone
cp  named.loopback 92.zone
cp  named.loopback 12.zone

vi com.zone

$TTL 1D
@    IN SOA    @ rname.invalid. (
                    0    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
    NS    @
    A    127.0.0.1
    AAAA    ::1

raca   A    92.10.10.20
racb   A    92.10.10.21

raca-vip  A   92.10.10.100
racb-vip  A   92.10.10.101

raca-priv  A  12.10.10.20
racb-priv  A  12.10.10.21

racscan   A  92.10.10.200
racscan   A  92.10.10.201
racscan   A  92.10.10.202

 

vi 92.zone

$TTL 1D
@    IN SOA    @ rname.invalid. (
                    0    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
    NS    @
    A    127.0.0.1
    AAAA    ::1
    PTR    localhost.

20     PTR     raca.com.cn.
21     PTR     racb.com.cn.

100    PTR     raca-vip.com.cn.
101    PTR     racb-vip.com.cn.

200    PTR     racscan.com.cn.
201    PTR     racscan.com.cn.
202    PTR     racscan.com.cn.


vi 12.zone    

$TTL 1D
@    IN SOA    @ rname.invalid. (
                    0    ; serial
                    1D    ; refresh
                    1H    ; retry
                    1W    ; expire
                    3H )    ; minimum
    NS    @
    A    127.0.0.1
    AAAA    ::1
    PTR    localhost.

20     PTR     raca-priv.com.cn.
21     PTR     racb-priv.com.cn.


chown -R named.named /var/named/chroot/etc
chown -R named.named /var/named/chroot/var/named
执行完成启动dns服务。并在raca,racb上添加dns服务器的ip地址及域名
验证正反向解析是否成功

五.在raca配置时间同步服务 xinted

cd /etc/xinted.d/
vi time-dgram  time-stream
将上面两个文件中的disable=yes改成 disable=no

/etc/init.d/xinted start
在raca执行:  rdate -s raca
在racb执行:  rdate -s raca

六.在raca识别存储中的磁盘。固定磁盘为ASM绞盘,编辑规则文件
iscsiadm  -m discovery -t st -p 62.10.10.50  ---识别LUN
iscsiadm  -m node -L all--将LUN中的磁盘加载到节点
fdisk -l                ---查看加载的磁盘并分区

scsi_id -u -g -d /dev/sdb1


cd /etc/udev/rules.d/
cp 99-fuse.rules  99-asm.rules
vi 99-asm.rules

KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c45527063596b484b2d337466672d5843547a",NAME="asmocr", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c455233664673566a2d554170342d6e595874",NAME="asmvtd", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c4552455939746c492d43787a332d67695966",NAME="asmfra", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c45526b70426846322d364b43432d727a4f4b",NAME="asmdb", MODE="0640",OWNER="oracle",GROUP="dba"

start_udev
ll /dev/asm* ----查看固定的磁盘

在racb节点固定磁盘,编辑规则文件
cd /etc/udev/rules.d/
cp 99-fuse.rules  99-asm.rules
vi 99-asm.rules

KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c45527063596b484b2d337466672d5843547a",NAME="asmocr", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c455233664673566a2d554170342d6e595874",NAME="asmvtd", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c4552455939746c492d43787a332d67695966",NAME="asmfra", MODE="0640",OWNER="oracle",GROUP="dba"
KERNEL=="sd?1",BUS=="scsi",PROGRAM=="/sbin/scsi_id -u -g -d /dev/$parent",RESULT=="14f504e46494c45526b70426846322d364b43432d727a4f4b",NAME="asmdb", MODE="0640",OWNER="oracle",GROUP="dba"

start_udev
ll /dev/asm* ----查看固定的磁盘

七.在raca,racb配置ssh等效性
su - oracle
ssh-keygen
ssh-copy-id .ssh/id_rsa.pub raca
ssh-copy-id .ssh/id_rsa.pub racb
ssh raca;ssh racb
ssh raca.com.cn  ssh racb.com.cn
ssh raca-priv    ssh racb-priv
ssh raca-priv.com.cn   ssh racb-priv.com.cn


八.准备安装介质及在RACA,RACB创建软件目录

九.在RACA节点执行安装操作

安装grid

安装database

. .grid 下asmca 给此

 

 

dbca建库

 

next 发现提示监听没有起来,我们就可以在两个节点raca和racb上重建我们的监听,用netca ,先要运行。grid 环境变量

 

集群启动

sqlplus

startup
shutdown immediate
srvctl start database -d updb
srcvtl stop database -d updb

grid-----
crs-start ora.updb.db
crs-stop ora.updb.db

rac启动实例(数据库)
每一个节点都要启动
法一:
raca--racb //登录到每一个节点进行启动
sqlplus / as sysdba
startup
法二:
srvctl
srvctl start database -d updb -n raca //启动raca节点---数据库没有启动
srvctl start database -d updb -n racb //启动racb节点
srvctl start database -d updb -n raca,racb //在所有节点上启动数据库updb
srvctl start instance -i updb2 -d updb //在哪个节点启动实例--数据库已经启动
srvctl status instance -i updb2 -d updb //查看实例的运行状态
srvctl stop instance -i updb2 -d updb //关闭实例启动
srvctl status databse -d updb //查看我们的数据库运行在哪两个节点上

法三:
在..grid环境变量下
crs_start ors.updb.db

法四:
crsctl start resource all //启动所有子资源

集群启动顺序:
1.存储
2.集群服务 ----ohasd crs_stat -t //ohasd 启动调用的是/etc/init/oracle-ohasd.conf 文件
3.启动实例

集群关闭顺序:
1.关闭实例
2.关闭集群服务
3.关闭存储

/u01/oraInventory/ContentsXML/inventory.xml //可以查看到我们安装集群的所有信息

增加节点
1.配置DNS //所有的节点都要进行节点IP地址的添加
2.配置时间同步
3.配置ssh等效性
4.增加节点IP,在存储中
5.识别并绑定节点
6.创建安装目录
7.同步集群软件
8.让你的 节点可以访问存储
raca>>vim /u01/grid/11g/oui/bin/addNode.sh //可以看到如何增加节点的命令
$ ./addNode.sh -silent "CLUSTER_NEW_NODES={node3}";


raca>>/u01/grid/11g/oui/bin/addNode.sh -addNode CLUSTER_NEW_NODES={racc.com.cn} CLUSTER_NEW_VIRTUAL_HOSTNAMES={racc-vip.vom.vn} //在node1上增加节点,可以在任意存在的节点执行这个命令

增加节点,删除节点

1.在存的在任一节点addnode ----cluster--

cd /u01/grid/11g/oui/bin

export IGNORE_PREADDNODE_CHECKS=Y
./addnode.sh -addnode CLUSTER_NEW_NODES={racc} CLUSTER_NEW_VIRTUAL_HOSTNAMES={racc-vip}

2.在新增加的节点(racc)上执行脚本
/oraInventoryroot.sh
/root.sh

 

3 在存在的任一节点上增加数据库软件
cd /u01/oracle/11g/oui/bin

export IGNORE_PREADDNODE_CHECKS=Y
./addnode.sh -addnode CLUSTER_NEW_NODES={racc} CLUSTER_NEW_VIRTUAL_HOSTNAMES={racc-vip}

4.在新增加的节点(racc)上执行脚本
/root.sh


5.在任一存在的节点增加实例
dbca


dbca -silent -addInstance -nodeList racc -gdbName updb
-instanceName updb3 -sysDBAUserName sys -sysDBAPassword oracle

 

delete racc node

1.delete instance   //如果服务没有停,就可以直接在任意节点执行,如果服务已经停了,就只能在要删的节点上执行

dbca -silent -deleteInstance -nodeList racc -gdbName updb
-instanceName updb3 -sysDBAUserName sys -sysDBAPassword oracle


2.delete database
racc:
cd /u01/oracle/11g/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=/u01/oracle/11g
"CLUSTER_NODES={racc}" -local

raca:
/u01/oracle/11g/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=/u01/oracle/11g
"CLUSTER_NODES={raca,racb}"

 

 

3.delete clusterware

racc:
# /u01/grid/11g/crs/install/rootcrs.pl -deconfig -force -deinstall //停掉服务
raca:

#crsctl delete node -n racc  //如果crsctl这条命令说找不到,我们就切换到oracle用户的下,给grid的环境变量,crsctl命令可以找到了,which crsctl 可以找到路径。回到root用户下,然后用绝对路径来执行这个命令

[root@raca ~]# su - oracle
[oracle@raca ~]$ . .grid
[oracle@raca ~]$ which crsctl
/u01/grid/11g/bin/crsctl
[oracle@raca ~]$ exit
logout
[root@raca ~]# /u01/grid/11g/bin/crsctl delete node -n racb
CRS-4661: Node racb successfully deleted.

 

racc:

$cd /u01/oracle/11g/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=/u01/grid/11g
"CLUSTER_NODES={racc}" CRS=TRUE -silent -local

raca:
$cd /u01/oracle/11g/oui/bin
./runInstaller -updateNodeList ORACLE_HOME=/u01/grid/11g
"CLUSTER_NODES={raca,racb}" CRS=TRUE -silent

 

 

如果数据库再次打开后,不能启动,我们的解决方法

crs_stat -t //发现asm,实例未启动。我们用下面的方法来接

[root@raca ~]# cat /etc/init/oracle-ohasd.conf
# Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved.
#
# Oracle OHASD startup

start on runlevel [35]
stop  on runlevel [!35]
respawn
exec /etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null        //将这一句复制下来

vim /etc/rc.local  


touch /var/lock/subsys/local
/etc/init.d/init.ohasd run >/dev/null 2>&1 </dev/null &            //将刚才复制的那句添加进去后,重启电脑

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!