中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

實戰 Centos7 oracle12c rac集群部署;

發布時間:2020-07-01 04:36:18 來源:網絡 閱讀:3116 作者:我不是九爺 欄目:云計算


Oracle RAC 工作原理:

實戰 Centos7 oracle12c rac集群部署;

單節點數據庫,如果實例宕機了,如果一個業務鏈接在實例上面,那么這個業務就中斷了。這個時候系統就不具有可用性了,那么這個時候單節點的可用性是很差的。

對于RAC來說,和單實例一樣,還是一份數據文件,都是相同的存儲上面放著oracle的文件,但是是由三個實例共用同一份數據文件。這樣的好處是在三個實例之間做了冗余,在上面三個實例當中任意兩個壞了業務都可以鏈接到剩下的一個實例,都可以正常的工作。RAC提供了在實例級別的冗余。

RAC不能夠解決在數據的安全,盡管有多個實例,但是只有一份數據文件,這樣只要數據文件損壞了,那么整個數據庫就損壞了。



什么是 RAC ?


實戰 Centos7 oracle12c rac集群部署;


一般每個實例都放在不同的服務器上面,這樣可以起到冗余作用。所有的數據庫文件都放在共享存儲上面,但是還有一些文件放在每個實例自己的本地的磁盤上面,比如參數文件,每一個實例都可以有自己的參數文件,這個參數文件既可以放在本地也可以放在共享存儲上面,多個實例都使用同一個參數文件。

?
在RAC里面,最重要的就是實例和實例之間的交互,即使是分離的實例,但是讀取的數據是相同的,RAC不是分布式的系統,因為它只有一個存儲,分布式系統是指數據發布在不同的數據庫上面,然后通過中間件來協調做查詢。RAC還是一臺數據庫,多個實例。


RAC架構:

實戰 Centos7 oracle12c rac集群部署;



對于RAC來說至少有兩套物理上不同的網絡,私有網絡是專門用來實例之間的數據交互。如果私有網絡,所有的數據都在一個網絡下面,那么那么就會對數據造成影響,嚴重的影響RAC的性能了。實例之間數據之間傳遞使用私有網絡和對外服務提供的網絡之間是物理分開的。所以RAC至少有兩套網絡,一個是實例之間的數據的傳遞,另外一個是公有網絡,是對外提供服務的,外面的業務是提供公有網絡的IP鏈接到數據庫的。


RAC特點:


實戰 Centos7 oracle12c rac集群部署;

RAC如何容錯的?


實戰 Centos7 oracle12c rac集群部署;


使用SAN存儲,存儲和服務器就不在一起了,而是和服務器分離了,是一個網絡的存儲系統,服務器是服務器,存儲是存儲,完全分離的。

當節點1壞了,不僅僅只是將業務切換到節點2,這個時候還要處理節點1壞了遺留下來的問題。主要是一些提交和未提交的事務。比如實例1壞了,實例2就要從實例1的redo里面讀最后一次checkpoint之后的信息,就是實例1最后將所有的數據寫到磁盤之后產生的所有的redo應用,該回滾的回滾,該恢復的恢復。即現將以提交和未提交的事務產生的redo都先應用,因為是最后一次checkpoint之后的信息,之前的信息是已經寫到磁盤上面了,所謂的恢復是將未寫到磁盤上面的信息進行恢復。(雖然實例壞了,但是實例的redo并沒有壞,放置在共享存儲上面,它的redo還是允許其他實例訪問的)實例2讀取實例1的redo,然后全部應用一遍,之后再回滾未提交的事務修改的數據塊,這個有點像實例的恢復。


實戰部分:

?

建設背景:

建設本文檔的目的在于詳細梳理12c RAC圖形化安裝的流程,結合官方文檔盡可能解釋安裝過程中的各種操作的原理,提供不同的存儲配置方法和參數修改方法,最后形成一套完整的12c RAC圖形化安裝步驟以便于今后參考。


安裝流程:

一、軟件下載

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

下載?linuxx64_12201_database.zip?和?linuxx64_12201_grid_home.zip?就可以了,然后上傳至節點1的任意目錄。


實戰 Centos7 oracle12c rac集群部署;

二、硬件和網絡環境

  • 檢查內存(至少8GB)、Swap和硬盤大小等等,參考GRID官網安裝文檔的:Server Hardware Checklist for Oracle Database Installation。

需要說明的是12c RAC安裝,OCR盤至少需要40GB大小,因為12c新增了MGMTDB實例進行集群管理,如果你不單獨的為他創建一個磁盤組,這些信息就會進入OCR盤,導致OCR盤需要40GB的空間才夠,其中OCR和votefiles大約需要2GB,MGMT占用38GB,如果RAC節點數大于2那么還需要再增加一些MGMT的空間,例如5節點大約需要再加5GB,當然這里的值都是在外部冗余的條件下計算的。

  • 檢查操作系統版本,參考GRID官網安裝文檔的:Operating System Checklist for Oracle Database Installation on Linux。

本文的系統環境為Oracle Enterprise Linux 6.9。

  • tmpfs務必保證至少是最大內存的一半。

如果需要更大的SGA,那么至少要將將tmpfs設置為大于SGA的值,因為OEL系統下Oracle占用的共享內存不能大于tmpfs。

  • 檢查網絡環境。

7個IP是需要申請的,其中2個作為Public IP,2個作為VIP,1個Scan-IP,這5個IP應當是同一網段的,最后還需要2個不同網段的Private IP,雖然私網IP可以自定義,但是在不清楚私網是通過公網直連還是通過單獨的交換機時(其實oracle要求private ip的interconnect使用單獨的交換機且帶寬需要至少是GB級別),最好申請獨立的私網IP。網卡每個節點需要2個至少,Public IP占用一個,Private占用一個。


*安裝環境小編使用的是共享存儲一塊 2TB的 用oracleasm 格式化后 分別在兩臺實例上掃描 實例1格式化后 實例二掃描即可;



三、安裝軟件包

1、oracleasm

用來配置asm的磁盤,如果將oracle數據文件放置在普通磁盤上,則略過;


wget http://public-yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracleasm-support-2.1.11-2.el7.x86_64.rpm


wget http://download.oracle.com/otn_software/asmlib/oracleasmlib-2.0.12-1.el7.x86_64.rpm


yum install -y kmod-oracleasm


rpm -ivh oracleasmlib-2.0.12-1.el7.x86_64.rpm oracleasm-support-2.1.11-2.el7.x86_64.rpm



配置ASM屬性:

oracleasm configure -i


Default user to own the driver interface [ ]: grid


Default group to own the driver interface [ ]: oinstall


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


創建分區 ;

注:在做以下步驟前可先重啟服務器,使前面的設置生效 ;這里重啟之后我們 oracleasm createdisk myasm01 /dev/sdb1 創建可能會出問題 可以 oracleasm init 解決;記住不重啟的話oracleasm有時候會不生效;
?

reboot? #重啟??
???

fdisk -l? #查看磁盤

???

#分區/dev/sdb1,/dev/sdc1, /dev/sdd1
??

fdisk /dev/sdb
??

oracleasm createdisk myasm01 /dev/sdb1??
??

oracleasm createdisk myasm02 /dev/sdc1
??

oracleasm createdisk myasm03 /dev/sdd1
??

oracleasm scandisks
??

oracleasm listdisks


實戰 Centos7 oracle12c rac集群部署;


#小編這里只用了1塊磁盤所以要記住oracleasm盤的路徑后面會用到;


部署正式開始:


實戰 Centos7 oracle12c rac集群部署;


  • 基礎包安裝

oracle-database-server-12cR2-preinstall也不會幫你裝好這些包,因此這一步是必須要手工做的。


yum -y install binutils.x86_64 compat-libcap1.x86_64 compat-libstdc* e2fsprogs.x86_64 libaio* libXau* libXi* libXtst* libstdc* glibc* libgcc* ksh gcc-c++*


--以上命令是我自己簡化后的安裝語句,一般來說執行完以上安裝就足夠了,不夠也沒事,裝grid時如果有缺失的根據報錯Detail再裝就好了。

--不同Linux版本所需的包完整列表參考GI安裝官方文檔的4.7小節--Operating System Requirements for x86-64 LinuxPlatforms。


實戰 Centos7 oracle12c rac集群部署;


vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 10485760
kernel.shmmax = 42949672960
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576


  • 時間同步設置

參考網上配置ntp相關的文檔即可,手工設置時間也可以。在安裝過程中兩臺實例時間一樣即可,后面安裝中可以忽略

  • 禁用防火墻和selinux

由于內網的數據交互會使用大量UDP端口,因此官網要求為RAC關閉防火墻,所以:


實戰 Centos7 oracle12c rac集群部署;


其他的預安裝要求個人認為不再需要了,如果有更高的性能需求可以查看官方文檔來進行更詳細的設置,但本著簡單安裝、簡單管理的原則,就這樣啦!CentOS7 版本 可用 systemctl stop firewalld; Selinux : vim /sysconfig/selinux ;


實戰 Centos7 oracle12c rac集群部署;


四、用戶、組、以及目錄


實戰 Centos7 oracle12c rac集群部署;

groupadd -g 501 oinstall

groupadd -g 502 dba
groupadd -g 503 asmadmin
groupadd -g 504 asmdba
groupadd -g 505 asmoper
groupadd -g 506 oper
useradd -u 501 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
useradd -u 502 -g oinstall -G dba,asmdba,oper oracle


mkdir -p /u01/app/oracle/product/12.2.0/db_1
mkdir -p /u01/app/grid
mkdir -p /u01/12.2.0/grid
mkdir -p /u01/app/oraInventory
chown -R oracle.oinstall /u01/app/oracle/
chown -R oracle.oinstall /u01/app/oracle/*
chown -R grid.oinstall /u01/app/grid/
chown -R grid.oinstall /u01/app/oraInventory/
chown -R grid.oinstall /u01/12.2.0/grid/


給予權限后給grid&oracle用戶設置密碼:passwd grid? passwd oracle ;密碼自定義;


--修改用戶安全限制:

--如果你不使用oracle-database-server-12cR2-preinstall,那么將以下內容復制到/etc/security/limits.conf文件中即可;

--如果你使用了oracle-database-server-12cR2-preinstall,那么將以下內容復制到/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf中即可(將之前的內容清空);


vim /etc/security/limits.conf 填寫即可;


實戰 Centos7 oracle12c rac集群部署;


oracle soft nofile 2048
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728

oracle soft memlock 134217728


grid soft nofile 2048
grid hard nofile 65536
grid soft nproc 16384
grid hard nproc 16384
grid soft stack 10240
grid hard stack 32768
grid hard memlock 134217728
grid soft memlock 134217728


session? required? pam_limits.so


實戰 Centos7 oracle12c rac集群部署;


su - grid

vi .bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/12.2.0/grid
export ORACLE_SID=+ASM1/+ASM2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH



su - oracle

vi .bash_profile

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1

export ORACLE_SID=orcl1/orcl2<br>export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH


實戰 Centos7 oracle12c rac集群部署;


可以把自己的兩個壓縮包放到剛才創建的目錄中 linuxx64_12201_database.zip? /home/oracle ; linuxx64_12201_grid_home.zip? /u01/12.2.0/grid;之后給予相關權限;


# chown oracle.oinstall linuxx64_12201_database.zip

# chown oracle.oinstall linuxx64_12201_grid_home.zip #上面圖片中沒這個但是都提前給了吧一會解壓的時候還得給,記住進入相關目錄中直接給就行;

# su - oracle
$ unzip linuxx64_12201_database.zip
$ cd database/sshsetup/
$ ./sshUserSetup.sh -user oracle -hosts "node1 node2" -advanced -noPromptPassphrase? #自己的主機名,小編的是 rac-1&rac-2;

$ ./sshUserSetup.sh -user grid -hosts "node1 node2" -advanced -noPromptPassphrase


--最后在節點1使用oracle和grid用戶都執行以下兩條命令驗證互信:


$ ssh node2 date???? #小編這里的主機名字是 rac-1 所以 ssh rac-1 date即可;

$ ssh node2-priv date???


六、GRID安裝

這里有個小坑,12c的GRID安裝不再會按你設置的grid用戶的$ORACLE_HOME變量來作為GI的家目錄,而是直接將你GRID軟件的解壓目錄作為家目錄。

當然這個小坑還可能引發另一個大坑,多次嘗試安裝grid時你會發現綁定好的磁盤即便dd格式化掉在安裝grid時也找不到了...此時只要刪了解壓的grid目錄重新解壓安裝就好了...(MMP的12c,還有扯淡的屎一樣PDB,誰讓你從11g升12c直接上腿就完事了)

你需要將linuxx64_12201_grid_home.zip拷貝至grid用戶的$ORACLE_HOME,本文中就是/u01/12.2.0/grid,然后:


實戰 Centos7 oracle12c rac集群部署;


# chown grid.oinstall linuxx64_12201_grid_home.zip
# su - grid
$ unzip linuxx64_12201_grid_home.zip


# cp /home/oracle/database/rpm/cvuqdisk-1.0.10-1.rpm /root
# rpm -ivh cvuqdisk-1.0.10-1.rpm


# cd /u01/12.2.0/grid/

# ./gridSetup.sh????? # 執行過程中會出現問題;


故障如下:


[grid@lsl?crs]$?./gridSetup.sh?

ERROR:?Unable?to?verify?the?graphical?display?setup.?This?application?requires?X?display.?Make?sure?that?xdpyinfo?exist?under?PATH?variable.

Can't?connect?to?X11?window?server?using?'10.138.135.167:1.0'?as?the?value?of?the?DISPLAY?variable.


解決方法:


[root@lsl?Desktop]#?xdpyinfo????????????#切換的root目錄下執行;
name?of?display:????:1
version?number:????11.0
vendor?string:????The?X.Org?Foundation
vendor?release?number:????11500000

...省略...只需要記錄name?of?display:的值
[root@lsl?]$?export?DISPLAY=:1(這時設置為name?of?display的值:1)???#這里看xdpyinfo?的值,小編的是?export?DISPLAY=:0?;
[root@lsl?]#?xhost?+
access?control?disabled,?clients?can?connect?from?any?host

[root@jytest3?Desktop]#?su?-?grid
Last?login:?Tue?Mar??7?17:50:40?CST?2017?on?pts/0?;

su?-?grid?

cd?/u01/12.2.0/grid?

./gridSetup.sh

實戰 Centos7 oracle12c rac集群部署;??

實戰 Centos7 oracle12c rac集群部署;


注意:scan的 name需要和/etc/hosts里面的scan的名稱一致否則會出現錯誤;


實戰 Centos7 oracle12c rac集群部署;

實戰 Centos7 oracle12c rac集群部署;


注意:這里的主機名字和虛擬主機名字也需要和/etc/hosts 的名稱一樣;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


注意:在執行遠程的時候從服務(實例2&rac-2)安裝目錄不要有文件,如有會提示遠程失敗,需要把文件里面的文件清除掉;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


注意:這里小編建議直接√上節省后面自己執行腳本了;


實戰 Centos7 oracle12c rac集群部署;


注意:這里執行成功了會顯示所有節點(rac-1 rac-2)自己的主機名稱;如果沒有需要檢查下共享存儲;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


注意:如果按照小編的方法√自己執行的話不會出現下方文件,注意執行腳本先在實例一(rac-1)上執行 /oracle/app/oraInventory/orainstROOt.sh ;

之后再到實例二(rac-2)上執行 /oracle/app/oraInventory/orainstROOt.sh; 之后再實例一(rac-1)執行/data/grid/root.sh 實例二(rac-2)執行;


實戰 Centos7 oracle12c rac集群部署;


注意!這里實例一(rac-1)執行腳本一般不會出現問題,實例二(rac-2)會出現問題;問題總結如下;


實戰 Centos7 oracle12c rac集群部署;


這個問題基本上是oracleasm權限的問題需要給相應的權限需要對比下如果不同可以修改;


修改方法如下;chown grid.asmadmin MYASM01? chmod 642 MYASM01 ;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


注意:執行過程到90%會提示錯誤可以直接忽略即可;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


?echo "oracle soft memlock 3145728" >>/etc/security/limits.conf

?echo "oracle hard memlock 3145728" >>/etc/security/limits.conf


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


實戰 Centos7 oracle12c rac集群部署;


至此小編安裝結束后面喜歡繼續往下安裝的伙伴可以到我百度云盤下載pdf;


https://pan.baidu.com/s/1AiDlKVz77-mhpkHpf9F2OA??? 提取碼 9s5z;







向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

万荣县| 渭源县| 南投县| 五寨县| 富平县| 石河子市| 砚山县| 黎川县| 荥阳市| 扎赉特旗| 祁阳县| 泸定县| 汾西县| 云林县| 巩留县| 资源县| 滕州市| 安顺市| 双柏县| 来凤县| 松原市| 镇平县| 卢湾区| 广宁县| 阜康市| 牡丹江市| 阳信县| 阿城市| 民勤县| 松潘县| 赤城县| 曲周县| 建平县| 郎溪县| 绵竹市| 石门县| 托克托县| 封丘县| 建瓯市| 依兰县| 巩留县|