Oracle 12c Release 2 RAC 安裝 Oracle Linux 7
一、概述
本文主要闡述基于ASM 構建 Oracle 12c RAC數(shù)據(jù)庫的過程說明
1、系統(tǒng)版本要求
- 確保 Oracle Linux 版本為 6 或更高版本。
- 確保兩個節(jié)點的 Oracle Linux 內(nèi)核版本為 2.6.32 或更高版本。
2、系統(tǒng)安裝要求
安裝 Oracle Linux 7,就像安裝基本服務器一樣,更具體地說,它應該是一個至少具有 4G+ 交換空間、禁用防火墻、selinux為disabled,并安裝了如下軟件包組:
- Server with GUI
- Hardware Monitoring Utilities
- Large Systems Performance
- Network file system client
- Performance Tools
- Compatibility Libraries
- Development Tools
在Linux 7及以上的網(wǎng)絡適配器稱為 enp0s3、enp0s8 和 enp0s9,在以前的 Linux 版本中,它們分別是 eth0、eth1 和 eth2。
3、架構圖
二、配置操作系統(tǒng)
1、Oracle 安裝先決條件
執(zhí)行自動設置或手動設置以完成基本先決條件。所有安裝都需要附加設置。
(1)自動設置
如果您計劃使用“oracle-database-server-12cR2-preinstall”軟件包來執(zhí)行所有先決條件設置,可以通過執(zhí)行如下命令。
# yum install oracle-database-server-12cR2-preinstall -y
早期版本的 Oracle Linux 需要按照http://public-yum.oracle.com上的說明手動設置 Yum 存儲庫。
建議對系統(tǒng)進行全面的更新,但這不是必須的操作。
# yum update -y
(2)手動設置
如果您尚未使用“
oracle-database-server-12cR2-preinstall”軟件包來執(zhí)行所有先決條件,則需要手動執(zhí)行以下安裝任務。
2、設置/etc/sysctl.conf
將以下行添加到“/etc/sysctl.conf”文件或名為“/etc/sysctl.d/98-oracle.conf”的文件中。
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
運行以一下命令使當前修改內(nèi)核參數(shù)生效。
/sbin/sysctl -p
# 或
/sbin/sysctl -p /etc/sysctl.d/98-oracle.conf
3、修改oarcle參數(shù)的shell限制
將以下行添加到名為“/etc/security/limits.d/oracle-database-server-12cR2-preinstall.conf”的文件中。
oracle soft nofile 1024
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
4、安裝系統(tǒng)軟件包
除了基本操作系統(tǒng)安裝之外,還必須以 root 用戶身份登錄時安裝以下軟件包。這包括某些軟件包的 64 位和 32 位版本。
# From Public Yum or ULN
yum install binutils -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install gcc -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libXext -y
yum install libXext.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install make -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
yum install zlib-devel -y
yum install zlib-devel.i686 -y
5、創(chuàng)建新組和用戶
groupadd -g 1000 oinstall
groupadd -g 1100 asmadmin
groupadd -g 1200 dba
groupadd -g 1300 asmdba
groupadd -g 1301 asmoper
groupadd -g 1400 oper
/usr/sbin/useradd -u 1001 -g oinstall -G asmadmin,asmdba,asmoper grid
/usr/sbin/useradd -u 1000 -g oinstall -G dba,asmdba,oper oracle
echo "grid" | passwd --stdin grid
echo "oracle" | passwd --stdin oracle
三、其他設置
無論您進行手動設置還是自動設置,都必須執(zhí)行以下步驟。
1、設置/etc/hosts解析
127.0.0.1 localhost.localdomain localhost
# Public
192.168.56.101 ol7-122-rac1.localdomain ol7-122-rac1
192.168.56.102 ol7-122-rac2.localdomain ol7-122-rac2
# Private
192.168.1.101 ol7-122-rac1-priv.localdomain ol7-122-rac1-priv
192.168.1.102 ol7-122-rac2-priv.localdomain ol7-122-rac2-priv
# Virtual
192.168.56.103 ol7-122-rac1-vip.localdomain ol7-122-rac1-vip
192.168.56.104 ol7-122-rac2-vip.localdomain ol7-122-rac2-vip
# SCAN
#192.168.56.105 ol7-122-scan.localdomain ol7-122-scan
#192.168.56.106 ol7-122-scan.localdomain ol7-122-scan
#192.168.56.107 ol7-122-scan.localdomain ol7-122-scan
SCAN 地址在主機文件中被注釋掉,因為它必須使用 DNS 進行解析,因此它可以在與公共 IP 位于同一子網(wǎng)上的 3 個地址之間進行循環(huán)??梢允褂肂IND或Dnsmasq在主機上配置 DNS ,這要簡單得多。如果您使用 Dnsmasq,請將 RAC 特定條目放入主機“/etc/hosts”文件中,取消注釋 SCAN 條目,然后重新啟動 Dnsmasq。
確?!?etc/resolv.conf”文件包含指向正確名稱服務器的名稱服務器條目。另外,如果“域”和“搜索”條目都存在,請注釋掉其中之一。對于此安裝,我的“/etc/resolv.conf”如下所示。
#domain localdomain
search localdomain
nameserver 192.168.56.1
2、關閉selinux
通過編輯“/etc/selinux/config”文件,確保selinux設置如下:
SELINUX=disabled
3、關閉firewall
# systemctl stop firewalld
# systemctl disable firewalld
4、確保 NTP(OL7/RHEL7 上的 Chrony)已啟用
# systemctl enable chronyd
# systemctl restart chronyd
# chronyc -a 'burst 4/4'
# chronyc -a makestep
5、oracle用戶的 Bash 配置文件
兩節(jié)點都需要配置,添加如下內(nèi)容:
cat >> .bash_profile << EOF
# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_HOSTNAME=rac1<-->rac2; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
DB_HOME=$ORACLE_BASE/product/12.2.0.1/db_1; export DB_HOME
ORACLE_HOME=$DB_HOME; export ORACLE_HOME
ORACLE_SID=orcl1<-->orcl2; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PS1=[`hostname`'@$PWD']$
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
EOF
exit
6、grid用戶環(huán)境變量
#grid
su - grid
.bash_profile
ORACLE_SID=+ASM1<-->+ASM2; export ORACLE_SID
ORACLE_HOME=/u01/app/12.2.0.1/grid; export ORACLE_HOME
BASE_PATH=/usr/sbin:$PATH; export BASE_PATH
PATH=$ORACLE_HOME/bin:$BASE_PATH; export PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PS1=[`hostname`'@$PWD']$
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
7、創(chuàng)建相關用戶及目錄
mkdir -p /u01/app/12.2.0.1/grid
chown -R grid:oinstall /u01
mkdir -p /u01/app/oracle/product/12.2.0.1/db_1
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01/
8、配置ASM存儲
方法二:通過命令創(chuàng)建
本次安裝使用了oracleasmlib管理asm磁盤
首先從linux-kernel安裝kmod-oracleasm,這是linux源中自帶的,是linux支持oracleasm的軟件包
然后從oracle官網(wǎng)下載oracleasmlib和oracleasm-support
/usr/sbin/oracleasm configure -i #兩個節(jié)點
二、配置ASMlib,再使用ASMlib之前,必須運行配置腳本準備驅(qū)動程序:
使用root執(zhí)行:/etc/init.d/oracleasm configure
[root@yft 1234]# /etc/init.d/oracleasm configure
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
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
[root@yft 1234]# /etc/init.d/oracleasm enable
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
/etc/init.d/oracleasm enable #兩個節(jié)點
/etc/init.d/oracleasm start #兩個節(jié)點
/usr/sbin/oracleasm listdisks
/usr/sbin/oracleasm querydisks
/usr/sbin/oracleasm createdisk NAME /path
/usr/sbin/oracleasm scandisks #一個節(jié)點創(chuàng)建磁盤后,另一個節(jié)點掃描磁盤即可
#本次創(chuàng)建的磁盤
/etc/init.d/oracleasm createdisk VOLCRS01 /dev/vdb1
/etc/init.d/oracleasm createdisk VOLCRS02 /dev/vdc1
/etc/init.d/oracleasm createdisk VOLCRS03 /dev/vdd1
/etc/init.d/oracleasm createdisk VOLDATA01 /dev/vdb2
/etc/init.d/oracleasm createdisk VOLDATA02 /dev/vdc2
/etc/init.d/oracleasm createdisk VOLDATA03 /dev/vdd2
附件:asm包下載地址http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/index.html。
四、 Install Grid Infrastructure
export SOFTWARE_LOCATION=/media/sf_12.2.0.1/
cd /u01/app/12.2.0.1/grid
unzip -q $SOFTWARE_LOCATION/linuxx64_12201_grid_home.zip
我可以使用此編輯的響應文件 ( grid_config.rsp ) 和以下命令以靜默模式運行配置。
cd /u01/app/12.2.0.1/grid
./gridSetup.sh -silent -responseFile /tmp/grid_config.rsp
相反,這是交互式配置。
cd /u01/app/12.2.0.1/grid
./gridSetup.sh
選擇“為新集群配置 Oracle Grid Infrastructure”選項,然后單擊“下一步”按鈕。
單擊“下一步”按鈕接受“配置 Oracle 獨立集群”選項。
輸入集群名稱“ol7-122-cluster”、SCAN 名稱“ol7-122-scan”和 SCAN 端口“1521”,然后單擊“下一步”按鈕。
在“集群節(jié)點信息”屏幕上,單擊“添加”按鈕。
輸入集群中第二個節(jié)點的詳細信息,然后單擊“確定”按鈕。
單擊“SSH 連接...”按鈕并輸入“oracle”用戶的密碼。單擊“設置”按鈕配置 SSH 連接,完成后單擊“測試”按鈕進行測試。測試完成后,單擊“下一步”按鈕。
檢查公共和專用網(wǎng)絡是否指定正確。如果顯示 NAT 接口,請記住將其標記為“不使用”。單擊“下一步”按鈕。
單擊“下一步”按鈕接受“使用塊設備配置 ASM”選項。
選擇“否”選項,因為在這種情況下我們不想為 GIMR 創(chuàng)建單獨的磁盤組。單擊“下一步”按鈕。
將冗余設置為“外部”,單擊“更改發(fā)現(xiàn)路徑”按鈕并將路徑設置為“/dev/oracleasm/*”。返回主屏幕并選擇所有 4 個磁盤。取消選中“Configure Oracle ASM Filter Driver”選項,然后單擊“Next”按鈕。
輸入憑據(jù)并單擊“下一步”按鈕。
單擊“下一步”按鈕接受默認 IPMI 選項。
不要在 EM 注冊。單擊“下一步”按鈕。
我們使用單個用戶和組管理 ASM 添加數(shù)據(jù)庫,因此將組設置為“dba”并單擊“下一步”按鈕。單擊“是”按鈕接受后續(xù)對話框中的警告。
輸入 Oracle Base 位置“/u01/app/oracle”,然后單擊“下一步”按鈕。我們已經(jīng)為后面的數(shù)據(jù)庫安裝預先創(chuàng)建了目錄,因此通過單擊“是”按鈕忽略后續(xù)有關 Oracle Base 不為空的警告。
單擊“下一步”按鈕接受默認清單目錄。
如果您希望根腳本自動運行,請輸入相關憑據(jù)。我更喜歡手動運行它們。單擊“下一步”按鈕。
等待先決條件檢查完成。如果您有任何問題,請使用“修復并再次檢查”按鈕。完成可能的修復后,選中“全部忽略”復選框,然后單擊“下一步”按鈕。對于此類安裝,“物理內(nèi)存”和“網(wǎng)絡時間協(xié)議 (NTP)”測試可能會失敗。還行吧。
如果您對摘要信息感到滿意,請單擊“安裝”按鈕。
等待安裝進行。
出現(xiàn)提示時,在每個節(jié)點上運行配置腳本。
等待配置助手完成。
如果任何配置步驟失敗,您應該檢查指定的日志,看看該錯誤是否是一個嚴重的錯誤。我收到的唯一錯誤是時間同步錯誤(PRVG-13606..
PRVG-13606:chrony 守護進程未與節(jié)點上的任何外部時間源同步...
如果您沒有任何阻礙,可以通過單擊“下一步”按鈕安全地忽略錯誤。
單擊“關閉”按鈕退出安裝程序。
Grid Infrastructure安裝現(xiàn)已完成。我們可以使用以下命令檢查安裝的狀態(tài)。
$ grid_env
$ crsctl stat res -t
--------------------------------------------------------------------------------
Name Target State Server State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.ASMNET1LSNR_ASM.lsnr
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.DATA.dg
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.LISTENER.lsnr
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.chad
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.net1.network
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.ons
ONLINE ONLINE ol7-122-rac1 STABLE
ONLINE ONLINE ol7-122-rac2 STABLE
ora.proxy_advm
OFFLINE OFFLINE ol7-122-rac1 STABLE
OFFLINE OFFLINE ol7-122-rac2 STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.MGMTLSNR
1 ONLINE ONLINE ol7-122-rac2 169.254.137.110 192.
168.1.102,STABLE
ora.asm
1 ONLINE ONLINE ol7-122-rac1 Started,STABLE
2 ONLINE ONLINE ol7-122-rac2 Started,STABLE
3 OFFLINE OFFLINE STABLE
ora.cvu
1 ONLINE ONLINE ol7-122-rac1 STABLE
ora.mgmtdb
1 ONLINE ONLINE ol7-122-rac2 Open,STABLE
ora.ol7-122-rac1.vip
1 ONLINE ONLINE ol7-122-rac1 STABLE
ora.ol7-122-rac2.vip
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.qosmserver
1 ONLINE ONLINE ol7-122-rac1 STABLE
ora.scan1.vip
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.scan2.vip
1 ONLINE ONLINE ol7-122-rac2 STABLE
ora.scan3.vip
1 ONLINE ONLINE ol7-122-rac2 STABLE
--------------------------------------------------------------------------------
$
我可以使用此編輯的響應文件 ( db_install.rsp ) 和以下命令以靜默模式運行 OUI 。
$ db_env
$ cd /media/sf_12.2.0.1/database
$ ./runInstaller -silent -ignoreSysPrereqs -showProgress -responseFile /tmp/db_install.rsp
相反,這是交互式視圖。
$ db_env
$ cd /media/sf_12.2.0.1/database
$ ./runInstaller
取消選中安全更新復選框,然后單擊“下一步”按鈕,然后在隨后的警告對話框中單擊“是”。
選擇“僅安裝數(shù)據(jù)庫軟件”選項,然后單擊“下一步”按鈕。
單擊“下一步”按鈕接受“Oracle Real Application Clusters 數(shù)據(jù)庫安裝”選項。
確保兩個節(jié)點都被選中,然后單擊“下一步”按鈕。
選擇“企業(yè)版”選項,然后單擊“下一步”按鈕。
輸入“/u01/app/oracle”作為 Oracle 庫,輸入“/u01/app/oracle/product/12.2.0.1/db_1”作為軟件位置,然后單擊“下一步”按鈕。
選擇所需的操作系統(tǒng)組,然后單擊“下一步”按鈕。在本例中,我們僅使用“dba”組。
等待先決條件檢查完成。如果有任何問題,請單擊“修復并再次檢查”按鈕,或選中“全部忽略”復選框并單擊“下一步”按鈕。
如果您對摘要信息感到滿意,請單擊“安裝”按鈕。
等待安裝進行。
出現(xiàn)提示時,在每個節(jié)點上運行配置腳本。當腳本在每個節(jié)點上運行后,單擊“確定”按鈕。
單擊“關閉”按鈕退出安裝程序。
五、創(chuàng)建數(shù)據(jù)庫
確?!皁l7-122-rac1”和“ol7-122-rac2”已啟動,然后以oracle用戶登錄“ol7-122-rac1”并啟動數(shù)據(jù)庫創(chuàng)建助手(DBCA)。
我可以使用此編輯的響應文件 ( dbca.rsp ) 和以下命令以靜默模式運行 DBCA 。
db_env
dbca -silent -responseFile /tmp/dbca.rsp
相反,這是交互式模式。
$ db_env
$ dbca
選擇“創(chuàng)建數(shù)據(jù)庫”選項并單擊“下一步”按鈕。
選擇“典型配置”選項。輸入容器數(shù)據(jù)庫名稱 (cdbrac)、可插入數(shù)據(jù)庫名稱 (pdb1) 和管理員密碼。單擊“下一步”按鈕。
等待先決條件檢查完成。如果有任何問題,請修復它們,或選中“全部忽略”復選框并單擊“下一步”按鈕。如果沒有問題,您將直接進入摘要屏幕。如果您對摘要信息感到滿意,請單擊“完成”按鈕。
等待數(shù)據(jù)庫創(chuàng)建發(fā)生。
如果您想修改密碼,請點擊“密碼管理”按鈕。完成后,單擊“關閉”按鈕。
至此 RAC 數(shù)據(jù)庫創(chuàng)建完成。
六、檢查RAC狀態(tài)
有多種方法可以檢查 RAC 的狀態(tài)。該srvctl實用程序顯示 RAC 數(shù)據(jù)庫的當前配置和狀態(tài)。
$ srvctl config database -d cdbrac
Database unique name: cdbrac
Database name: cdbrac
Oracle home: /u01/app/oracle/product/12.2.0.1/db_1
Oracle user: oracle
Spfile: +DATA/CDBRAC/PARAMETERFILE/spfile.306.938083453
Password file: +DATA/CDBRAC/PASSWORD/pwdcdbrac.285.938081999
Domain:
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools:
Disk Groups: DATA
Mount point paths:
Services:
Type: RAC
Start concurrency:
Stop concurrency:
OSDBA group: dba
OSOPER group:
Database instances: cdbrac1,cdbrac2
Configured nodes: ol7-122-rac1,ol7-122-rac2
CSS critical: no
CPU count: 0
Memory target: 0
Maximum memory: 0
Default network number for database services:
Database is administrator managed
$
$ srvctl status database -d cdbrac
Instance cdbrac1 is running on node ol7-122-rac1
Instance cdbrac2 is running on node ol7-122-rac2
$
該V$ACTIVE_INSTANCES視圖還可以顯示實例的當前狀態(tài)。
$ sqlplus / as sysdba
SQL*Plus:2017 年 3 月 8 日星期三 11:04:42 發(fā)布 12.2.0.1.0 版本,
版權所有 (c) 1982,2016,Oracle。版權所有。
連接到:
Oracle Database 12c 企業(yè)版版本 12.2.0.1.0 - 64 位生產(chǎn)
SQL> SELECT inst_name FROM v$active_instances;
INST_NAME
------------------------------------------------- -------------------------------
ol7-122-rac1.localdomain:cdbrac1
ol7-122-rac2.localdomain:cdbrac2
SQL >