您好,登錄后才能下訂單哦!
上面左邊是我的個人微信,如需進一步溝通,請加微信。 右邊是我的公眾號“Openstack私有云”,如有興趣,請關注。
最近公司使用到了oracle12C的產品,原來對oracle11gR2的RAC比較熟悉,12C版本有一個大的特性是數據庫容器和可插拔式數據庫,即CDB和PDB,還是需要熟悉一下。準備使用PVE環境搭建一套12C的rac 。
參考了下面這篇博客:
https://blog.51cto.com/sery/2156860
硬件配置規劃如下:
1、兩臺作為實例節點的pve虛擬機,每臺虛擬機使用4核8G,2塊磁盤,1塊32G,1塊100G,其中16G作為swap交換分區使用,2塊網卡橋接到pve物理網絡中;
2、一臺作為共享存儲的pve虛擬機安裝openfiler,使用2塊磁盤,1塊32G安裝系統,1塊200G作為共享磁盤,共享存儲openfiler通過iscsi提供共享存儲,實例節點上配置iscsi客戶端使用openfiler共享出來的iscsi存儲。配置如下:
注意存儲使用的是ide cache=writethrough ,開始的時候選擇scsi,安裝openfiler的時候認不到磁盤。
3、數據庫的安裝規劃。在網上找到了官方提供的一個oracle12C RAC的安裝指導,但是是針對rhel6的,我的環境是centos7,參考了下面這個網址:
https://blog.51cto.com/ld0381/1923207
安裝規劃如下:
a、存儲規劃:
1、 GRID集群組件磁盤組
+dggrid: 1個,由三個10G磁盤組成normal (注意,ocr磁盤在12C中需要大于77G)
2、 數據庫安裝磁盤組
+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地址配置為靜態地址:
安裝完openfiler如下:
默認的用戶名密碼是: openfiler password ,登錄之后的界面如下:
在第二塊盤 /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信息:
接下來,吧iscsi服務打開:
注意,上面只開啟了一個網絡,如果兩個網絡都打開,會有多路徑的問題。
接下來,在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后重新建,重新做映射關系: 1、發現 [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 2、卸載: iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -u 3、刪除: iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -o delete 4、在openfiler刪除volumn,新建volumn,重新map(略) 5、發現 [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 6、login登錄: iscsiadm -m node -T iqn.2006-01.com.openfiler:tsn.eb490bf65b71 -l 7、驗證: lsblk
安裝之前,需要先安裝圖形組件:
yum -y groups install "X Window System" "Fonts"
安裝了xmanager,設置xshell,這里不贅述。
運行解壓出來的grid安裝包的gridSetup.sh 腳本 : ./gridSetup.sh
密碼: oracle
yum install compat-libcap1 -y
yum install nfs-utils -y
好多個小時之后:
安裝完成。登錄grid賬號,使用 crs_stat -t 查看集群狀態:
使用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 :
至此,RAC的grid集群以及數據庫軟件安裝完成。
接下來,還需要安裝數據庫實例CDB和PDB ,在接下來的博文中再繼續。
總結:
安裝的過程還是有些復雜,主要涉及到了共享存儲、網絡、主機等的規劃,我一直覺得oracle設計的過于復雜,就單單安裝一個RAC就能擋住很多的人,搞得很高大上的樣子,其實真正使用的時候,設計得越復雜,那么故障點就越多,其實一般的企業用戶,講真心話真的用不著rac高可用,好好利用好單機數據庫,做好定期備份和巡檢,要靠譜得多。
在安裝前,需要做很多的準備工作,主要是準備軟件包,然后找到對應操作系統和數據庫版本的安裝指導 ,做好數據庫的規劃,這點很重要,規劃先行,不要一上來就開始安裝。
在安裝過程中碰到一個問題,12C對ocr使用的磁盤對大小有要求,要求大于77G,這里惡心了我一把,因為這樣我的共享存儲,包括主機上的iscsi配置,以及udev綁定要全部重來,這里很是花了我一些時間。文章中有些截圖或者內容還是當時設計的3個10G的磁盤作為ocr表決磁盤,我就不改了,過程其實都是一樣的。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。