大家好,這里是 Lucifer三思而后行,專注于提升數據庫運維效率。
目錄
- 前言
- 一、安裝前配置
- 1、Linux主機安裝(rac01&rac02)
- 2、配置yum源并安裝依賴包(rac01&rac02)
- 3、網絡配置
- 4、存儲配置(rac01&rac02)
- 5、hosts 文件配置(rac01&rac02)
- 6、防火墻配置(rac01&rac02)
- 7、selinux 配置(rac01&rac02)
- 8、時間同步配置(rac01&rac02)
- 9、關閉透明大頁和 NUMA(rac01&rac02)
- 10、avahi-daemon 配置(rac01&rac02)
- 11、系統參數配置(rac01&rac02)
- 12、系統資源限制配置(rac01&rac02)
- 13、用戶及組、目錄創建(rac01&rac02)
- 14、環境變量配置(rac01&rac02)
- 15、安裝介質上傳解壓(rac01)
- 二、安裝 Grid 軟件(rac01)
- 三、創建 ASM 數據盤 DATA
- 四、安裝Oracle軟件
- 五、創建數據庫實例
- 六、數據庫優化配置(rac01)
- 往期精彩文章
前言
Oracle RAC是什么?
- Oracle Real Application Clusters (RAC) 允許客戶跨多臺服務器運行單個 Oracle 數據庫,以最大限度地提高可用性并實現水平可擴展性,同時訪問共享存儲。
- 連接到 Oracle RAC 實例的用戶會話可以在中斷期間進行故障轉移并安全地重放更改,而無需對最終用戶應用程序進行任何更改,從而對最終用戶隱藏了中斷的影響。
- Oracle RAC 運行于集群之上,為 Oracle 數據庫提供了最高級別的可用性、可伸縮性和低成本計算能力。
- 如果集群內的一個節點發生故障,Oracle 將可以繼續在其余的節點上運行。
- Oracle 的主要創新是一項稱為高速緩存合并的技術。
- 高速緩存合并使得集群中的節點可以通過高速集群互聯高效地同步其內存高速緩存,從而最大限度地低降低磁盤 I/O。
- 高速緩存最重要的優勢在于它能夠使集群中所有節點的磁盤共享對所有數據的訪問,數據無需在節點間進行分區。
特點:
- 多臺互連計算機組成,使用共享存儲。
- 用戶無感知,對于最終用戶和應用程序而言,它們似乎是一臺服務器。
- 高可用,只要有一個節點存活,就能正常對外提供服務,避免單點故障。
- 高性能,多節點負載均衡。
- 易伸縮,可以容易地添加、刪除節點,以滿足系統自身的調整。
那么,如何部署一套RAC數據庫環境呢?
大致步驟如下:
- 安裝兩臺redhat7.3版本Linux系統(物理內存至少2G)
- 網絡配置(雙網卡,準備IP:Public IP,Virtual IP,Private IP,Scan IP)
- 存儲配置(6塊5G共享盤做ASM盤,根目錄留50G用于安裝grid和oracle)
- 預安裝準備(系統參數/etc/sysctl.conf修改,防火墻selinux關閉,ntpd時鐘定時同步,yum源配置安裝
用戶組及用戶、目錄新建,環境變量配置,用戶資源限制/etc/security/limits.conf配置,/etc/pam.d/login修改pam_limits.so等等) - 安裝Grid軟件
- 安裝Oracle軟件并建庫
- 修改數據庫內存配置,密碼不過期,開啟歸檔,布置歸檔定時刪除腳本,布置rman備份機制)
??
?? 如果想要使用腳本安裝,可以使用博主編寫的 Oracle 一鍵安裝腳本,同時支持單機和 RAC 集群模式!
更多更詳細的腳本使用方式可以訂閱專欄:Oracle 一鍵安裝腳本實操合集,持續更新中!!!。
一、安裝前配置
本文主機配置為 Redhat 7.3 x86_64,內存2G,硬盤100G ,雙網卡 ,iscsi共享存儲盤5G*6!
| 節點 | 主機版本 | 主機名 | 實例名 | Oracle版本 | Public IP | Private IP | Virtual IP | Scan IP |
|---|---|---|---|---|---|---|---|---|
| 節點一 | redhat 7.3 | rac01 | orcl1 | 11.2.0.4 | 192.168.56.10 | 172.0.0.1 | 192.168.56.20 | 192.168.56.110 |
| 節點二 | redhat 7.3 | rac02 | orcl2 | 11.2.0.4 | 192.168.56.11 | 172.0.0.2 | 192.168.56.21 | 192.168.56.110 |
注意: 以下標題中(rac01&rac02)代表節點一和節點二都需要執行,(rac01)代表只需要節點一執行。
1、Linux主機安裝(rac01&rac02)
安裝 Linux 服務器可選擇:Centos,Redhat,Oracle Linux。
?? 注意: 上述 Linux 安裝包 和 Oracle 安裝包 可點擊鏈接跳轉獲取:
Linux 安裝包: https://mp.weixin.qq.com/s/PFKkftgaTWpJKCnhI3uxZw
Oracle 安裝包: https://mp.weixin.qq.com/s/ECJelOb6NUjZjpUvUa17pg
?? 注意: Linux 系統的安裝本文不做詳細演示!
2、配置yum源并安裝依賴包(rac01&rac02)
Linux遠程連接工具:
- 本文將使用 XShell 和 Xftp 工具,安裝包可以在官網下載。
- 其他工具也可以,比如:putty,SecureCRT 等等工具。
Parallels Desktop掛載Linux主機鏡像:
VMware Workstation掛載Linux鏡像:
注意: 需要提前掛載系統鏡像,可參考:Linux 配置本地 yum 源(6/7/8)!
掛載鏡像源:
mount /dev/cdrom /mnt
##配置yum源
cat <<EOF>>/etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
安裝依賴包:
yum groupinstall -y "Server with GUI"
yum install -y bc \
binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
elfutils-libelf \
elfutils-libelf-devel \
glibc \
glibc-devel \
ksh \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
libxcb \
libX11 \
libXau \
libXi \
libXtst \
libXrender \
libXrender-devel \
make \
net-tools \
nfs-utils \
smartmontools \
sysstat \
e2fsprogs \
e2fsprogs-libs \
fontconfig-devel \
expect \
unzip \
openssh-clients \
readline* \
tigervnc* \
psmisc --skip-broken
手動上傳并安裝依賴包:
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm rpm -e ksh-20120801-142.el7.x86_64 rpm -ivh pdksh-5.2.14-37.el5.x86_64.rpm
檢查依賴包安裝情況:
rpm -q bc binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ elfutils-libelf elfutils-libelf-devel glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libxcb libX11 libXau libXi libXtst libXrender libXrender-devel make net-tools nfs-utils smartmontools sysstat e2fsprogs e2fsprogs-libs fontconfig-devel expect unzip openssh-clients readline | grep "not installed"
確保依賴包均已成功安裝!
3、網絡配置
Linux 7 版本可以使用 nmcli 命令來配置網絡,以下命令中的 IP地址、子網掩碼、網關 和 網卡名稱 請根據實際情況進行修改!
rac01:
##配置Public IP
nmcli connection modify eth0 ipv4.addresses 192.168.56.10/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify eth1 ipv4.addresses 172.0.0.1/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up eth0
nmcli connection up eth1
rac02:
##配置Public IP
nmcli connection modify eth0 ipv4.addresses 192.168.56.11/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes
##配置Private IP
nmcli connection modify eth1 ipv4.addresses 172.0.0.2/24 ipv4.method manual autoconnect yes
##生效
nmcli connection up eth0
nmcli connection up eth1
最后,配置好網絡后,輸入命令 ip a 查看網絡是否配置成功,嘗試 ping 測試網絡。
4、存儲配置(rac01&rac02)
Windows 下配置 ISCSI 共享存儲可參考:
配置好共享存儲后,在 Linux 主機連接共享存儲:
##iscsi識別共享存儲
yum install -y iscsi-initiator-utils*
##輸出targetname,10.211.55.18為iscsi共享存儲設備IP地址
iscsiadm -m discovery -t st -p 10.211.55.18
##連接共享存儲
iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.18-lucifer -p 10.211.55.18 -l
lsblk
安裝 multipath 綁定多路徑:
yum install -y device-mapper*
mpathconf --enable --with_multipathd y
##查看共享盤的scsi_id
/usr/lib/udev/scsi_id -g -u /dev/sdb
/usr/lib/udev/scsi_id -g -u /dev/sdc
/usr/lib/udev/scsi_id -g -u /dev/sdd
/usr/lib/udev/scsi_id -g -u /dev/sde
/usr/lib/udev/scsi_id -g -u /dev/sdf
/usr/lib/udev/scsi_id -g -u /dev/sdg
配置 multipath 文件:
cat <<EOF>/etc/multipath.conf
defaults {
user_friendly_names yes
}
blacklist {
devnode "^sda"
}
multipaths {
multipath {
wwid "27e2b3ddbd14752bb"
alias ocr_1
}
multipath {
wwid "27e2b3ddb87ff88ee"
alias ocr_2
}
multipath {
wwid "27e2b3ddb39fd2463"
alias ocr_3
}
multipath {
wwid "2852b96c1283206bf6"
alias data_1
}
multipath {
wwid "2852b96c12e8449cb9"
alias data_2
}
multipath {
wwid "2852b96c12fc938e95"
alias data_3
}
}
EOF
?? 注意: wwid的值為上面獲取的scsi_id,alias可自定義,這里配置3塊OCR盤,3塊DATA盤!
激活multipath多路徑:
multipath -F multipath -v2 multipath -ll
配置UDEV綁盤:
for i in ocr_* data_*; do
printf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_info
done
while read -r line; do
dm_uuid=$(echo "$line" | awk -F'=' '{print $2}')
disk_name=$(echo "$line" | awk '{print $1}')
echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"${dm_uuid}\",SYMLINK+=\"asm_${disk_name}\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\"" >>/etc/udev/rules.d/99-oracle-asmdevices.rules
done </dev/mapper/udev_info
##重載udev
udevadm control --reload-rules
udevadm trigger --type=devices
確認配置完成后,分別在兩個節點輸入命令 ls /dev/asm* 查看是否已經成功綁定!
5、hosts 文件配置(rac01&rac02)
cat <<EOF>>/etc/hosts
#Public IP
192.168.56.10 rac01
192.168.56.11 rac02
#Private IP
172.0.0.1 rac01-priv
172.0.0.2 rac02-priv
#Vip IP
192.168.56.20 rac01-vip
192.168.56.21 rac02-vip
#Scan IP
192.168.56.110 rac-scan
EOF
6、防火墻配置(rac01&rac02)
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl status firewalld.service
7、selinux 配置(rac01&rac02)
配置 selinux 臨時生效:
##重啟后生效
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
##重啟后檢查
getenforce
?? 注意: selinux 配置需要重啟生效!
8、時間同步配置(rac01&rac02)
首先需要禁用 chronyd 和 ntpd 服務:
##禁用chronyd
yum install -y chrony
timedatectl set-timezone Asia/Shanghai
systemctl stop chronyd.service
systemctl disable chronyd.service
##禁用ntpd
yum install -y ntpdate
配置計劃任務,定時刷新系統時間:
##10.211.55.200為時間服務器IP,每天12點同步系統時間
cat <<EOF>>/var/spool/cron/root
00 12 * * * /usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
EOF
##查看計劃任務
crontab -l
##手動執行
/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w
9、關閉透明大頁和 NUMA(rac01&rac02)
Linux 7 配置內核文件,關閉透明大頁和numa:
sed -i 's/quiet/quiet transparent_hugepage=never numa=off/' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
##重啟后檢查是否生效
cat /sys/kernel/mm/transparent_hugepage/enabled
cat /proc/cmdline
?? 注意: 關閉 透明大頁 和 numa 的配置,需要重啟主機生效!
10、avahi-daemon 配置(rac01&rac02)
有些主機安裝選擇最小化安裝,沒有安裝 avahi-daemon 功能,建議安裝之后禁用,防止以后誤操作導致出問題:
yum install -y avahi*
systemctl stop avahi-daemon.socket
systemctl stop avahi-daemon.service
pgrep -f avahi-daemon | awk '{print "kill -9 "$2}'
配置 NOZEROCONF:
cat <<EOF>>/etc/sysconfig/network
NOZEROCONF=yes
EOF
11、系統參數配置(rac01&rac02)
安裝 Oracle 數據庫需要配置系統參數,以下使用腳本命令一鍵式配置:
##配置參數文件
memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')
totalMemory=$((memTotal / 2048))
shmall=$((memTotal / 4))
if [ $shmall -lt 2097152 ]; then
shmall=2097152
fi
shmmax=$((memTotal * 1024 - 1))
if [ "$shmmax" -lt 4294967295 ]; then
shmmax=4294967295
fi
cat <<EOF>>/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = $shmall
kernel.shmmax = $shmmax
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
net.ipv4.conf.eth0.rp_filter = 1
net.ipv4.conf.eth1.rp_filter = 2
EOF
##生效
sysctl -p
12、系統資源限制配置(rac01&rac02)
##配置limits.conf
cat <<EOF>>/etc/security/limits.conf
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle soft nproc 2047
oracle hard nproc 16384
oracle hard memlock 134217728
oracle soft memlock 134217728
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid soft nproc 2047
grid hard nproc 16384
EOF
##配置pam.d/login
cat <<EOF>>/etc/pam.d/login
session required pam_limits.so
session required /lib64/security/pam_limits.so
EOF
13、用戶及組、目錄創建(rac01&rac02)
創建安裝 Oracle 數據庫所需的用戶、組以及安裝目錄:
##組創建
/usr/sbin/groupadd -g 54321 oinstall
/usr/sbin/groupadd -g 54322 dba
/usr/sbin/groupadd -g 54323 oper
/usr/sbin/groupadd -g 54324 backupdba
/usr/sbin/groupadd -g 54325 dgdba
/usr/sbin/groupadd -g 54326 kmdba
/usr/sbin/groupadd -g 54327 asmdba
/usr/sbin/groupadd -g 54328 asmoper
/usr/sbin/groupadd -g 54329 asmadmin
/usr/sbin/groupadd -g 54330 racdba
##用戶創建
/usr/sbin/useradd -u 11012 -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba,oper grid
/usr/sbin/useradd -u 54321 -g oinstall -G asmdba,dba,backupdba,dgdba,kmdba,racdba,oper oracle
##修改用戶密碼為oracle
echo "oracle" |passwd oracle --stdin
echo "oracle" |passwd grid --stdin
##創建軟件目錄
mkdir -p /u01/app/11.2.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle/product/11.2.0/db
mkdir -p /u01/app/oraInventory
mkdir -p /backup
mkdir -p /home/oracle/scripts
chown -R oracle:oinstall /backup
chown -R oracle:oinstall /home/oracle/scripts
chown -R grid:oinstall /u01
chown -R grid:oinstall /u01/app/grid
chown -R grid:oinstall /u01/app/11.2.0/grid
chown -R grid:oinstall /u01/app/oraInventory
chown -R oracle:oinstall /u01/app/oracle
chmod -R 775 /u01
14、環境變量配置(rac01&rac02)
提前配置 profile 文件:
grid 用戶:
cat <<EOF>>/home/grid/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/11.2.0/grid
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=+ASM1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysasm'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
EOF
?? 注意: 每個節點的 ORACLE_SID 不一樣(+ASM1/+ASM2),需要自行修改!
oracle 用戶:
cat <<EOF>>/home/oracle/.bash_profile
################OracleBegin#########################
umask 022
export TMP=/tmp
export TMPDIR=\$TMP
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/db
export ORACLE_HOSTNAME=rac01
export ORACLE_TERM=xterm
export TNS_ADMIN=\$ORACLE_HOME/network/admin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=orcl1
export PATH=/usr/sbin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATH
alias sas='sqlplus / as sysdba'
export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '
################OracleEnd#########################
EOF
?? 注意: 每個節點的 ORACLE_HOSTNAME(rac01/rac02)和 ORACLE_SID(orcl1/orcl2)不一樣,需要自行修改!
15、安裝介質上傳解壓(rac01)
安裝包使用 XFTP 工具進行上傳,只需要上傳至一節點 /soft 目錄下:
##創建安裝介質存放目錄
mkdir /soft
##上傳安裝介質到/soft目錄
p13390677_112040_Linux-x86-64_1of7.zip
p13390677_112040_Linux-x86-64_2of7.zip
p13390677_112040_Linux-x86-64_3of7.zip
##解壓安裝介質
cd /soft
unzip -q p13390677_112040_Linux-x86-64_1of7.zip
unzip -q p13390677_112040_Linux-x86-64_2of7.zip
unzip -q p13390677_112040_Linux-x86-64_3of7.zip
##授權目錄
chown -R oracle:oinstall /soft/database
chown -R grid:oinstall /soft/grid
##root用戶下,cvuqdisk安裝(rac01&rac02)
cd /soft/grid/rpm
rpm -ivh cvuqdisk-1.0.9-1.rpm
##傳輸到節點二安裝
scp cvuqdisk-1.0.9-1.rpm rac2:/tmp
rpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm
?? 注意: 安裝包只需要在節點一上傳解壓即可!
至此,準備工作已經完成。
二、安裝 Grid 軟件(rac01)
關于 VNC 配置具體可參考文章:
配置 grid 用戶 vnc 圖形界面:
##root用戶下切換到grid用戶
su - grid
##執行vncserver,按提示輸入密碼即可
vncserver
##在vnc客戶端界面輸入192.168.56.10:1,輸入剛才輸入的密碼即可連接。
右鍵打開終端:
開始安裝:
##應用環境變量
source ~/.bash_profile
##進入安裝目錄
cd /soft/grid
##執行安裝程序開始安裝,加上jar包防止彈窗不顯示問題
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
跳過版本更新:
選擇集群模式安裝:
自定義模式安裝:
選擇語言:
修改集群名稱和 scan 名稱:
?? 注意: scan 名稱必須與 /etc/hosts 中配置的 scan 名稱保持一致!
配置 grid 用戶節點間互信:
?? 注意: 點擊 Add 添加節點二,pubile hostname 為 rac02,virtual hostname 為 rac02-vip,輸入密碼:oracle,點擊 setup 開始互信。
點擊Test測試互信:
確認網絡信息是否正確:
選擇ASM模式安裝:
填寫 OCR 裁決盤信息:
?? 注意: OCR 裁決盤這里冗余模式 External,Normal,High 對應磁盤數量為 1,3,5。
填寫 ASM 實例 SYS 用戶密碼為 oracle:
不使用 IPMI:
選擇用戶組,默認即可:
選擇grid安裝目錄,默認即可:
安裝前預檢查:
開始執行安裝:
執行 root 腳本:(rac01&rac02)
?? 注意: Linux7 安裝 Oracle 11GR2 版本,執行 root.sh 時存在 BUG:
需要在執行 root.sh 之前安裝補丁 18370031 來修復,補丁下載地址:
https://pan.baidu.com/s/1f1nCwZxfeqsdWGKN1DiI9Q
提取碼: wbtw
18370031 補丁安裝:(rac01&rac02)
##上傳補丁包
p18370031_112040_Linux-x86-64.zip
##解壓補丁包
cd /soft
unzip -q p18370031_112040_Linux-x86-64.zip
##授權補丁包
chown -R grid:oinstall /soft/18370031
##開始安裝補丁,兩個節點都需要執行
opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent
?? 注意: 兩個節點都需要安裝補丁 18370031!
打好補丁后,開始執行 root.sh 腳本:(rac01&rac02)
##root用戶下執行
/u01/app/oraInventory/orainstRoot.sh
/u01/app/11.2.0/grid/root.sh
執行過程太長,不做記錄!
由于我們沒有配置 DNS 解析,因此下方的錯誤忽略即可:
至此,Grid集群軟件安裝成功!
注意: 如果需要安裝 PSU 補丁,建議在建庫之前安裝,可以省去數據字典升級的步驟!
以 Grid PSU 補丁 31718723 為例,使用 root 用戶執行補丁安裝命令:(rac01&rac02)**
##解壓補丁包
cd /soft
unzip -q p31718723_112040_Linux-x86-64.zip
##切換到root用戶執行,需要拷貝到2節點也執行一次
opatch auto /soft/31718723 -oh $GRID_ORACLE_HOME
?? 注意: 需要先替換 grid 和 oracle 軟件的 OPatch 包為最新版本,否則無法成功安裝補丁!
三、創建 ASM 數據盤 DATA
這里創建的 DATA 磁盤組主要用于存放數據文件、日志文件等數據庫文件!
這里我們可以使用靜默創建或者圖形化方式創建:
1、靜默創建
asmca -silent -sysAsmPassword oracle -asmsnmpPassword oracle -oui_internal -configureASM -diskString '/dev/asm*' -diskGroupName DATA -diskList /dev/asm_data_1,/dev/asm_data_2,/dev/asm_data_3 -redundancy NORMAL -au_size 1
2、圖形化創建
asmca
點擊 create 創建 DATA:
點擊 OK 創建 DATA:
建議重啟兩臺主機,檢查重啟后Grid集群是否正常運行!
四、安裝Oracle軟件
配置 oracle 用戶 vnc 圖形界面:
##root用戶下切換到grid用戶
su - oracle
##執行vncserver,按提示輸入密碼即可
vncserver
##在vnc客戶端界面輸入192.168.56.10:2,輸入剛才輸入的密碼即可連接。
右鍵打開終端:
開始安裝:
##應用環境變量
source ~/.bash_profile
##進入安裝目錄
cd /soft/database
##執行安裝程序開始安裝,加上jar包防止彈窗不顯示問題
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
不配置 Oracle 郵件發送:
跳過軟件更新:
選擇僅安裝 oracle 軟件:
配置 oracle 用戶互信:
輸入密碼,點擊 setup 開始,成功之后點擊 Test 。
選擇語言:
選擇企業版安裝:
檢查用戶組,默認即可:
安裝前預檢查:
開始安裝 Oracle 軟件:
報錯解決:
?? 注意: Linux7 安裝 Oracle 11GR2 版本,oracle 軟件安裝過程中報錯:ins_emagent.mk,需要修改文件 /sysman/lib/ins_emagent.mk 來修復!
兩個節點都執行以下命令,然后點擊繼續:(rac01&rac02)
sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' "$ORACLE_HOME/sysman/lib/ins_emagent.mk
執行 root.sh 腳本:(rac01&rac02)
點擊下一步,安裝成功:
至此,Oracle 軟件已成功安裝。
注意: 如果需要安裝 PSU 補丁,建議在建庫之前安裝,可以省去數據字典升級的步驟!
以 Grid PSU 補丁 31718723 為例,使用 root 用戶執行補丁安裝命令:(rac01&rac02)**
##解壓補丁包
cd /soft
unzip -q p31718723_112040_Linux-x86-64.zip
##切換到root用戶執行,需要拷貝到2節點也執行一次
opatch auto /soft/31718723 -oh $ORACLE_ORACLE_HOME
?? 注意: 需要先替換 grid 和 oracle 軟件的 OPatch 包為最新版本,否則無法成功安裝補丁!
五、創建數據庫實例
在確保 grid 和 oracle 軟件和補丁都已安裝成功后,即可開始創建數據庫實例!
dbca
選擇rac模式:
選擇創建數據庫:
選擇自定義模板:
?? 注意: 這里我選擇的是 Custom Database 選項,可以自定義安裝組件!
填寫數據庫實例 ID:
關閉 EM,保留自動化系統 JOB:
填寫 SYS 密碼,需要記住:
選擇存放數據的 ASM 盤:DATA
不開啟閃回區,建庫后可隨時開啟:
選擇自定義組件,默認即可!
配置初始化參數:
?? 注意: 如果使用自動管理內存,建議使用 70%~90% 的物理內存,建議 /etc/shm 和物理內存一樣大!
block 默認 8192(即數據文件默認最大 32G),進程數增加到 1500:
選擇數據庫字符集,默認字符集為 AL32UTF8,國家字符集為 AL16UTF16,需根據業務實際情況進行修改:
開始建庫:
數據庫創建成功:
至此,數據庫實例創建完成!
六、數據庫優化配置(rac01)
1、開啟數據庫歸檔模式
關于開啟歸檔模式,具體可參考文章:
##關閉數據庫實例
srvctl stop database -d orcl
##開啟單個節點到mount模式
srvctl start instance -d orcl -i orcl1 -o mount
##開啟歸檔
alter database archivelog;
##設置歸檔路徑
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';
##重啟數據庫實例
srvctl stop instance -d orcl -i orcl1
srvctl start database -d orcl
##檢查歸檔
archive log list
2、配置定期刪除歸檔計劃任務
關于歸檔日志刪除,具體可參考文章:
##進入oracle用戶
su - oracle
##寫入腳本
{
echo '#!/bin/bash'
echo 'source ~/.bash_profile'
echo 'deltime=`date +"20%y%m%d%H%M%S"`'
echo "rman target / nocatalog msglog /home/oracle/scripts/del_arch_\${deltime}.log<<EOF"
echo 'crosscheck archivelog all;'
echo "delete noprompt archivelog until time 'sysdate-7';"
echo "delete noprompt force archivelog until time 'SYSDATE-10';"
echo 'EOF'
} >>/home/oracle/scripts/del_arch.sh
##寫入計劃任務
cat <<EOF>>/var/spool/cron/oracle
12 00 * * * /home/oracle/scripts/del_arch.sh
EOF
##手動執行測試
/home/oracle/scripts/del_arch.sh
3、設置密碼永不過期
sqlplus / as sysdba ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
Oracle 11GR2 版本需要手動設置密碼永不過期,12CR2 版本之后已經默認設置為永不過期了!
往期精彩文章
Oracle 一鍵巡檢自動生成 Word 報告
Oracle 一鍵安裝合集
Oracle一鍵安裝腳本的 21 個疑問與解答
Oracle一鍵巡檢腳本的 21 個疑問與解答
全網首發:Oracle 23ai 一鍵安裝腳本(非 RPM)
Oracle 19C 最新 RU 補丁 19.24 ,一鍵安裝!
Oracle Linux 7.9 一鍵安裝 Oracle 19C
RedHat 9.4(aarch64) 一鍵安裝 Oracle 19C
openEuler 22.03 LTS SP4 一鍵安裝 Oracle 19C RAC
RHEL 7.9 一鍵安裝 Oracle 19C 19.23 RAC
Oracle DataGuard GAP 修復手冊
優化 Oracle:最佳實踐與開發規范
DBA 必備:Linux 軟件源配置全攻略
Linux 一鍵配置時鐘同步全攻略
感謝您的閱讀,這里是 Lucifer三思而后行,歡迎點贊+關注,我會持續分享數據庫知識、運維技巧。




