ProxmoxVE 之 安裝oracle12C rac集羣

blob.png blob.png

 上面左邊是個人我的微信,如需進一步溝通,請加微信。  右邊是個人公衆號「Openstack私有云」,若有興趣,請關注。css

    最近公司使用到了oracle12C的產品,原來對oracle11gR2的RAC比較熟悉,12C版本有一個大的特性是數據庫容器和可插拔式數據庫,即CDB和PDB,仍是須要熟悉一下。準備使用PVE環境搭建一套12C的rac 。html

    參考了下面這篇博客:
node

    https://blog.51cto.com/sery/2156860linux


    硬件配置規劃以下:web

    一、兩臺做爲實例節點的pve虛擬機,每臺虛擬機使用4核8G,2塊磁盤,1塊32G,1塊100G,其中16G做爲swap交換分區使用,2塊網卡橋接到pve物理網絡中;shell

image.png

    二、一臺做爲共享存儲的pve虛擬機安裝openfiler,使用2塊磁盤,1塊32G安裝系統,1塊200G做爲共享磁盤,共享存儲openfiler經過iscsi提供共享存儲,實例節點上配置iscsi客戶端使用openfiler共享出來的iscsi存儲。配置以下:數據庫

image.png

注意存儲使用的是ide cache=writethrough ,開始的時候選擇scsi,安裝openfiler的時候認不到磁盤。centos

    三、數據庫的安裝規劃。在網上找到了官方提供的一個oracle12C RAC的安裝指導,可是是針對rhel6的,個人環境是centos7,參考了下面這個網址:
bash

    https://blog.51cto.com/ld0381/1923207 微信

    安裝規劃以下:

a、存儲規劃:

    一、  GRID集羣組件磁盤組

+dggrid: 1個,由三個10G磁盤組成normal  (注意,ocr磁盤在12C中須要大於77G)

    二、  數據庫安裝磁盤組

+dgsystem:用於數據庫基本表空間,控制文件,參數文件等

+dgrecovery:用於歸檔與閃回日誌空間

+dgdata:用戶數據庫業務表空間


b、IP規劃:

    oraclenode1:

        publicip : ens18 :192.168.1.32

        vip:192.168.1.36

        privateip :ens19 :192.168.170.32

    oraclenode2:

        publicip : ens18 :192.168.1.33

        vip:192.168.1.37

        privateip :ens19 :192.168.170.33


        scanip :192.168.1.38


c、軟件版本:

    操做系統:CentOS 7.2

    數據庫:ORACLE12c R2

    集羣管理軟件:ORACLEGRID 12.2.0.1


d、主機名規劃:    

#public ip 

192.168.1.32         oraclenode1

192.168.1.33         oraclenode2

 

#private ip 

192.168.170.32  oraclenode1pri

192.168.170.32  oraclenode2pri

 

#vip ip

192.168.1.36         oraclenode1vip

192.168.1.37         oraclenode2vip

 

#scan ip

192.168.1.38         oraclenodescan


e、用戶及用戶組規劃:

groupadd -g 60001 oinstall

groupadd -g 60002 dba

groupadd -g 60003 oper

groupadd -g 60004 backupdba

groupadd -g 60005 dgdba

groupadd -g 60006 kmdba

groupadd -g 60007 asmdba

groupadd -g 60008 asmoper

groupadd -g 60009 asmadmin

useradd -u 61001 -g oinstall -G asmadmin,asmdba,dba,asmoper grid

useradd -u 61002 -g oinstall -G dba,backupdba,dgdba,kmdba,asmadmin,oper,asmdba oracle

 

echo "grid" | passwd --stdin grid

echo "oracle" | passwd --stdin oracle


f、目錄規劃:

mkdir -p /data/oracle/app/grid

mkdir -p /data/oracle/app/12.2.0.1/grid

chown -R grid:oinstall /data/oracle

 

mkdir -p /data/oracle/app/oraInventory

chown -R grid:oinstall /data/oracle/app/oraInventory

 

mkdir -p /data/oracle/app/oracle

chown -R oracle:oinstall /data/oracle/app/oracle

chmod -R 775 /data/oracle


    從上面的存儲規劃上能夠看到,共享磁盤須要有6個lun,其中3個10G做爲OCR+voting(注意,ocr磁盤在12C中須要大於77G),3個lun分別存放系統表空間50G、歸檔及閃回日誌空間50G、用戶數據空間50G

    首先作好安裝源的準備,主要有centos7的安裝鏡像,oracle 12C R2安裝源,以及openfiler的ISO安裝鏡像。

    在oracle官網下載安裝文件(須要先註冊oracle用戶):

    https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle12c-linux-12201-3608234.html

    下載openfiler的iso安裝鏡像:

    https://www.openfiler.com/community/download

    安裝的時候,注意將IP地址配置爲靜態地址:

image.png

    安裝完openfiler以下:

    image.png

    

    默認的用戶名密碼是: openfiler   password   ,登陸以後的界面以下:

image.png


在第二塊盤 /dev/sdb 上面劃分擴展邏輯分區,建立3個10G(注意,ocr磁盤在12C中須要大於77G),3個50G的分區,而後建立pv,以下:

[root@openfiler ~]# fdisk /dev/sdb

Command (m for help): p

Disk /dev/sdb: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 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 identifier: 0x00089483

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    16771859     8385898+  83  Linux
/dev/sdb2        16771860    18876374     1052257+  82  Linux swap / Solaris

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4, default 3): 
Using default value 3
First sector (18876375-419430399, default 18876375): 
Using default value 18876375
Last sector, +sectors or +size{K,M,G} (18876375-419430399, default 419430399): 
Using default value 419430399

Command (m for help): p

Disk /dev/sdb: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 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 identifier: 0x00089483

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    16771859     8385898+  83  Linux
/dev/sdb2        16771860    18876374     1052257+  82  Linux swap / Solaris
/dev/sdb3        18876375   419430399   200277012+  83  Linux

Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sdb: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 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 identifier: 0x00089483

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1              63    16771859     8385898+  83  Linux
/dev/sdb2        16771860    18876374     1052257+  82  Linux swap / Solaris
/dev/sdb3        18876375   419430399   200277012+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@openfiler ~]# partprobe 
[root@openfiler ~]# 
[root@openfiler ~]# pvcreate /dev/sdb3
  Physical volume "/dev/sdb3" successfully created

注意上面,用fdisk建立完分區後,須要用 partprobe 命令更新一下分區信息,才能使pvcreate認到。以上操做完以後,能夠在web界面上看到下面的pv信息:

image.png

image.png

image.png

image.png



接下來,吧iscsi服務打開:

image.png

image.png

image.png

image.png


image.png

注意,上面只開啓了一個網絡,若是兩個網絡都打開,會有多路徑的問題。


接下來,在rac主機上安裝iscsi客戶端:
yum install -y iscsi-initiator-utils
在rac主機上查找iscsi服務端:
[root@localhost ~]# iscsiadm -m discovery -t sendtargets -p 192.168.1.31
192.168.1.31:3260,1 iqn.2006-01.com.openfiler:tsn.eb490bf65b71
在rac主機上login服務端:
[root@localhost ~]# iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -l
Logging in to [iface: default, target: iqn.2006-01.com.openfiler:tsn.eb490bf65b71, portal: 192.168.1.31,3260] 
Login to [iface: default, target: iqn.2006-01.com.openfiler:tsn.eb490bf65b71, portal: 192.168.1.31,3260] successful.
[root@localhost ~]# 
使用fdisk -l 驗證是否掛載了共享的lun:
[root@oraclenode1 ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   32G  0 disk 
├─sda1            8:1    0  500M  0 part /boot
└─sda2            8:2    0 31.5G  0 part 
  ├─centos-root 253:0    0 29.5G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0  100G  0 disk 
sdc               8:32   0 48.9G  0 disk 
sdd               8:48   0 48.9G  0 disk 
sde               8:64   0 48.9G  0 disk 
sdf               8:80   0   83G  0 disk 
sr0              11:0    1 1024M  0 rom


    因爲是使用的虛擬機,所以在前面一系列繁瑣的安裝前準備,配置相關參數都是同樣的,因此前面同樣的操做狀況下,先只對一臺虛擬機進行安裝,後面對這個虛擬機進行克隆,克隆後修改IP地址和主機名等不一致的參數。

接下來,分別上傳安裝包,進行數據庫的安裝。詳細的步驟就不贅述了,參考本文最上面的那個網址。

    asm磁盤管理部分,參考了官方文檔:

    

    下載並安裝asmlib包:

    https://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel7-2773795.html

    下載了兩個包:

    oracleasmlib-2.0.12-1.el7.x86_64.rpm 

    oracleasm-support-2.1.11-2.el7.x86_64.rpm

    使用yum localinstall  命令安裝,解決依賴問題。

     配置asm:

[root@oraclenode1 software]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting <ENTER> without typing an
answer will keep that current value.  Ctrl-C will abort.
Default user to own the driver interface []: grid
Default group to own the driver interface []: asmadmin
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

    https://www.cndba.cn/Expect-le/article/1819


    準備ASM磁盤:

使用udev綁定磁盤:

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c45523263575331752d466a34362d64385876", RUN+="/bin/sh -c 'mknod /dev/asmdiskc b  $major $minor; chown grid:asmadmin /dev/asmdiskc; chmod 0660 /dev/asmdiskc'"

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c455246314d47436e2d6432317a2d7039576d", RUN+="/bin/sh -c 'mknod /dev/asmdiskd b  $major $minor; chown grid:asmadmin /dev/asmdiskd; chmod 0660 /dev/asmdiskd'"

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c45524b374e4435422d63316f692d7667344d", RUN+="/bin/sh -c 'mknod /dev/asmdiske b  $major $minor; chown grid:asmadmin /dev/asmdiske; chmod 0660 /dev/asmdiske'"

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c45527061503038772d716467662d4a303479", RUN+="/bin/sh -c 'mknod /dev/asmdiskf b  $major $minor; chown grid:asmadmin /dev/asmdiskf; chmod 0660 /dev/asmdiskf'"

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c455274475033336f2d4e39746f2d75436d70", RUN+="/bin/sh -c 'mknod /dev/asmdiskg b  $major $minor; chown grid:asmadmin /dev/asmdiskg; chmod 0660 /dev/asmdiskg'"

KERNEL=="sd*",ENV{DEVTYPE}=="disk",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id -g -u -d $devnode",RESULT=="14f504e46494c45524c427661724a2d69746c322d67705363", RUN+="/bin/sh -c 'mknod /dev/asmdiskh b  $major $minor; chown grid:asmadmin /dev/asmdiskh; chmod 0660 /dev/asmdiskh'"
上面的RESULT== 內容,經過命令: /usr/lib/udev/scsi_id -g -u /dev/sd$i  獲取 其中sd$i ,i=c d e f g h 
參考了這個網址: https://www.cndba.cn/Expect-le/article/1819
將上面的內容複製到文件/etc/udev/rules.d/99-oracle-asmdevices.rules 中。
執行生效:
/sbin/udevadm trigger --type=devices --action=change
檢查ASM磁盤:
ls -ltr /dev/asm*
若是找不到文件,重啓系統:reboot

若是重裝,使用dd if=/dev/sdc of=/dev/sdc 擦除lun的數據,不然使用過的lun處於member狀態,若是容量很大,建議仍是直接刪除lun後從新建,從新作映射關係:
一、發現
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.1.31
192.168.1.31:3260,1 iqn.2006-01.com.openfiler:tsn.eb490bf65b71
二、卸載:
iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -u
三、刪除:
iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -o delete
四、在openfiler刪除volumn,新建volumn,從新map(略)
五、發現
[root@localhost ~]# iscsiadm -m discovery -t st -p 192.168.1.31
192.168.1.31:3260,1 iqn.2006-01.com.openfiler:tsn.eb490bf65b71
六、login登陸:
iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -l
七、驗證:
lsblk

    

    安裝以前,須要先安裝圖形組件:

    yum -y groups install  "X Window System" "Fonts"

    安裝了xmanager,設置xshell,這裏不贅述。

    運行解壓出來的grid安裝包的gridSetup.sh 腳本  :  ./gridSetup.sh 

image.png

image.png

image.png

image.png


image.png


image.png

image.png

image.png


image.png

image.png

image.png

密碼: oracle  

image.png


image.png

image.png

image.png


image.png

image.png

yum install compat-libcap1 -y

yum install nfs-utils -y

image.png


image.png

image.png

image.png

image.png

好多個小時以後:

image.png


image.png


安裝完成。登陸grid帳號,使用  crs_stat -t 查看集羣狀態:

image.png


使用ocrcheck 檢查ocr狀態,使用crsctl query css votedisk 檢查votedisk的狀態,以下:


[root@oraclenode2 tmp]# su - grid
Last login: Mon Jan 14 11:18:07 CST 2019
[grid@oraclenode2 ~]$ ocrcheck
Status of Oracle Cluster Registry is as follows :
 Version                  :          4
 Total space (kbytes)     :     409568
 Used space (kbytes)      :       2032
 Available space (kbytes) :     407536
 ID                       : 1486039673
 Device/File Name         :      +GRID
                                    Device/File integrity check succeeded
                                    Device/File not configured
                                    Device/File not configured
                                    Device/File not configured
                                    Device/File not configured
 Cluster registry integrity check succeeded
 Logical corruption check bypassed due to non-privileged user
[grid@oraclenode2 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   8e6efe7ec1b74f02bf229f9bd02ceb92 (/dev/asmdiskc) [GRID]
Located 1 voting disk(s).
[grid@oraclenode2 ~]$

ocr和votedisk狀態正常!


安裝數據庫軟件:

使用oracle帳號登陸,運行安裝程序  ./runInstaller :

image.png

image.png

image.png

image.png


image.png


image.png


image.png


image.png

image.png

image.png

image.png


image.png


至此,RAC的grid集羣以及數據庫軟件安裝完成。

接下來,還須要安裝數據庫實例CDB和PDB ,在接下來的博文中再繼續。


總結:

    安裝的過程仍是有些複雜,主要涉及到了共享存儲、網絡、主機等的規劃,我一直以爲oracle設計的過於複雜,就單單安裝一個RAC就能擋住不少的人,搞得很高大上的樣子,其實真正使用的時候,設計得越複雜,那麼故障點就越多,其實通常的企業用戶,講真心話真的用不着rac高可用,好好利用好單機數據庫,作好按期備份和巡檢,要靠譜得多。

    在安裝前,須要作不少的準備工做,主要是準備軟件包,而後找到對應操做系統和數據庫版本的安裝指導 ,作好數據庫的規劃,這點很重要,規劃先行,不要一上來就開始安裝。

    在安裝過程當中碰到一個問題,12C對ocr使用的磁盤對大小有要求,要求大於77G,這裏噁心了我一把,由於這樣個人共享存儲,包括主機上的iscsi配置,以及udev綁定要所有重來,這裏非常花了我一些時間。文章中有些截圖或者內容仍是當時設計的3個10G的磁盤做爲ocr表決磁盤,我就不改了,過程其實都是同樣的。

相關文章
相關標籤/搜索