ORACLE----搭建RAC

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

集羣支持的文件系統:
集權文件系統
ocfs
asm
 html

rac--集中管理內存,cpu

 


數據庫服務器沒有辦法知足需求:----經過rac進行集中管理
內存不夠
cpu不夠
硬盤不夠

內網/私網---集羣中節點與節點之間的網絡鏈接,網絡傳輸數率要求很高
須要網絡交換機
全局SGA,管理每一個SGA的信息,全局SGA由集羣管理放在共享存儲裏
應用程序---外網(須要網卡)---鏈接數據庫--通常給DBA用,有幾個節點就須要幾個IP地址
應用程序/用戶使用(須要網卡)---虛擬網絡/vip----若是有一個用戶用外網聯機到數據庫,有一個節點失效了,咱們就應用咱們的集羣軟件虛擬出來的網絡,進行咱們實例的切換
須要配置tnsnames.ora,將節點信息寫入到文件中
11g中 scan--簡單客戶端網絡:簡化用戶在tnsnames的配置,scan中一共有3個地址,不是真實的網絡。配置的時候主機名默認爲racscan。使用racscan須要配置DNS服務器。

全部實例都訪問一個數據庫--多個實例向一個數據庫寫數據--數據庫放到共享存儲/共享文件系統中(orfs/acfs)
實例訪問存儲的網---須要存儲網絡,經過交換機,不能直連,作成主備保證時時均可訪問,數據文件,控制文件,日誌文件,歸檔日誌,備份能夠放到共享存儲中,其餘信息不支持存放

至少須要三張網卡:

    應用程序
       |
實例 -------實例
  |             |node

共享存儲
數據庫




記錄節點除了問題,或者有新的節點加入到集羣中,放到共享存儲中
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的句子
重啓系統sql

openfiler 配置:數據庫

https://62.10.10.10:446/   用戶名:openfiler  密碼:passwordvim

在system 下添加進去兩個節點服務器

2.•  Volumes --->Volume Groups--->建好咱們的vg組,名字叫racvg,將咱們添加的5塊磁盤都添加進vg組裏面      ---->Add Volume(增長咱們的卷組,分爲四個組 ocr,vtd,fra,db )網絡

--->iSCSI Targets (增長一個iSCSI Targets組,而後和咱們的磁盤進行映射)oracle

 

3. Services (把iSCSI Target服務起起來app

 

 

4.在 Volumes作好以下分組ssh

 

 

一.安裝系統及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 &            //將剛纔複製的那句添加進去後,重啓電腦
相關文章
相關標籤/搜索