前言Oracle RAC是什么?
特點(diǎn):
那么,如何部署一套R(shí)AC數(shù)據(jù)庫(kù)環(huán)境呢? 大致步驟如下:
更多更詳細(xì)的腳本使用方式可以訂閱專欄:Oracle一鍵安裝腳本。 一、安裝前配置本文主機(jī)配置為
注意: 以下標(biāo)題中(rac01&rac02)代表節(jié)點(diǎn)一和節(jié)點(diǎn)二都需要執(zhí)行,(rac01)代表只需要節(jié)點(diǎn)一執(zhí)行。 1、Linux主機(jī)安裝(rac01&rac02)安裝 Linux 服務(wù)器可選擇:Centos,Redhat,Oracle Linux。
?? 注意: 上述 Linux 安裝包 和 Oracle 安裝包 可點(diǎn)擊鏈接跳轉(zhuǎn)獲?。?/p>
或者 可以獲取 百度網(wǎng)盤下載鏈接 以及博主的聯(lián)系方式 2、配置yum源并安裝依賴包(rac01&rac02)Linux遠(yuǎn)程連接工具:
Parallels Desktop掛載Linux主機(jī)鏡像: 掛載鏡像源: mount /dev/cdrom /mnt##配置yum源cat <<EOF>>/etc/yum.repos.d/local.repo[local]name=localbaseurl=file:///mntgpgcheck=0enabled=1EOF 安裝依賴包: 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 手動(dòng)上傳并安裝依賴包: rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpmrpm -e ksh-20120801-142.el7.x86_64rpm -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、網(wǎng)絡(luò)配置Linux 7 版本可以使用 rac01: ##配置Public IPnmcli connection modify eth0 ipv4.addresses 192.168.56.10/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes##配置Private IPnmcli 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 IPnmcli connection modify eth0 ipv4.addresses 192.168.56.11/24 ipv4.gateway 192.168.56.1 ipv4.method manual autoconnect yes##配置Private IPnmcli connection modify eth1 ipv4.addresses 172.0.0.2/24 ipv4.method manual autoconnect yes##生效nmcli connection up eth0 nmcli connection up eth1 最后,配置好網(wǎng)絡(luò)后,輸入命令 4、存儲(chǔ)配置(rac01&rac02)Windows 下配置 ISCSI 共享存儲(chǔ)可參考:
配置好共享存儲(chǔ)后,在 Linux 主機(jī)連接共享存儲(chǔ): ##iscsi識(shí)別共享存儲(chǔ)yum install -y iscsi-initiator-utils*##輸出targetname,10.211.55.18為iscsi共享存儲(chǔ)設(shè)備IP地址iscsiadm -m discovery -t st -p 10.211.55.18##連接共享存儲(chǔ)iscsiadm -m node -T iqn.2008-08.com.starwindsoftware:10.211.55.18-lucifer -p 10.211.55.18 -l lsblk 安裝 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_*; doprintf "%s %s\n" "$i" "$(udevadm info --query=all --name=/dev/mapper/"$i" | grep -i dm_uuid)" >>/dev/mapper/udev_infodonewhile read -r line; dodm_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.rulesdone </dev/mapper/udev_info##重載udevudevadm control --reload-rules udevadm trigger --type=devices 確認(rèn)配置完成后,分別在兩個(gè)節(jié)點(diǎn)輸入命令 5、hosts 文件配置(rac01&rac02)cat <<EOF>>/etc/hosts#Public IP192.168.56.10 rac01192.168.56.11 rac02#Private IP172.0.0.1 rac01-priv172.0.0.2 rac02-priv#Vip IP192.168.56.20 rac01-vip192.168.56.21 rac02-vip#Scan IP192.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 臨時(shí)生效: ##重啟后生效sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config setenforce 0##重啟后檢查getenforce
8、時(shí)間同步配置(rac01&rac02)首先需要禁用 chronyd 和 ntpd 服務(wù): ##禁用chronydyum install -y chrony timedatectl set-timezone Asia/Shanghai systemctl stop chronyd.service systemctl disable chronyd.service##禁用ntpdyum install -y ntpdate 配置計(jì)劃任務(wù),定時(shí)刷新系統(tǒng)時(shí)間: ##10.211.55.200為時(shí)間服務(wù)器IP,每天12點(diǎn)同步系統(tǒng)時(shí)間cat <<EOF>>/var/spool/cron/root 00 12 * * * /usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w EOF##查看計(jì)劃任務(wù)crontab -l##手動(dòng)執(zhí)行/usr/sbin/ntpdate -u 10.211.55.200 && /usr/sbin/hwclock -w 9、關(guān)閉透明大頁(yè)和 NUMA(rac01&rac02)Linux 7 配置內(nèi)核文件,關(guān)閉透明大頁(yè)和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/enabledcat /proc/cmdline
10、avahi-daemon 配置(rac01&rac02)有些主機(jī)安裝選擇最小化安裝,沒有安裝 avahi-daemon 功能,建議安裝之后禁用,防止以后誤操作導(dǎo)致出問(wèn)題: 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/networkNOZEROCONF=yes EOF 11、系統(tǒng)參數(shù)配置(rac01&rac02)安裝 Oracle 數(shù)據(jù)庫(kù)需要配置系統(tǒng)參數(shù),以下使用腳本命令一鍵式配置: ##配置參數(shù)文件memTotal=$(grep MemTotal /proc/meminfo | awk '{print $2}')totalMemory=$((memTotal / 2048))shmall=$((memTotal / 4))if [ $shmall -lt 2097152 ]; thenshmall=2097152fishmmax=$((memTotal * 1024 - 1))if [ "$shmmax" -lt 4294967295 ]; thenshmmax=4294967295ficat <<EOF>>/etc/sysctl.conf fs.aio-max-nr = 1048576fs.file-max = 6815744kernel.shmall = $shmallkernel.shmmax = $shmmaxkernel.shmmni = 4096kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = 262144net.core.rmem_max = 4194304net.core.wmem_default = 262144net.core.wmem_max = 1048576net.ipv4.conf.eth0.rp_filter = 1net.ipv4.conf.eth1.rp_filter = 2EOF##生效sysctl -p 12、系統(tǒng)資源限制配置(rac01&rac02)##配置limits.confcat <<EOF>>/etc/security/limits.conf oracle soft nofile 1024oracle hard nofile 65536oracle soft stack 10240oracle hard stack 32768oracle soft nproc 2047oracle hard nproc 16384oracle hard memlock 134217728oracle soft memlock 134217728grid soft nofile 1024grid hard nofile 65536grid soft stack 10240grid hard stack 32768grid soft nproc 2047grid hard nproc 16384EOF##配置pam.d/logincat <<EOF>>/etc/pam.d/login session required pam_limits.so session required /lib64/security/pam_limits.so EOF
13、用戶及組、目錄創(chuàng)建(rac01&rac02)創(chuàng)建安裝 Oracle 數(shù)據(jù)庫(kù)所需的用戶、組以及安裝目錄: ##組創(chuàng)建/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##用戶創(chuàng)建/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##修改用戶密碼為oracleecho "oracle" |passwd oracle --stdinecho "oracle" |passwd grid --stdin##創(chuàng)建軟件目錄mkdir -p /u01/app/11.2.0/gridmkdir -p /u01/app/gridmkdir -p /u01/app/oracle/product/11.2.0/dbmkdir -p /u01/app/oraInventorymkdir -p /backupmkdir -p /home/oracle/scriptschown -R oracle:oinstall /backupchown -R oracle:oinstall /home/oracle/scriptschown -R grid:oinstall /u01chown -R grid:oinstall /u01/app/gridchown -R grid:oinstall /u01/app/11.2.0/gridchown -R grid:oinstall /u01/app/oraInventorychown -R oracle:oinstall /u01/app/oraclechmod -R 775 /u01 14、環(huán)境變量配置(rac01&rac02)提前配置 profile 文件: grid 用戶: cat <<EOF>>/home/grid/.bash_profile################OracleBegin#########################umask 022export TMP=/tmpexport TMPDIR=\$TMPexport NLS_LANG=AMERICAN_AMERICA.AL32UTF8export ORACLE_BASE=/u01/app/gridexport ORACLE_HOME=/u01/app/11.2.0/gridexport ORACLE_TERM=xtermexport TNS_ADMIN=\$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/libexport ORACLE_SID=+ASM1export PATH=/usr/sbin:\$PATHexport PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATHalias sas='sqlplus / as sysasm'export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ ' EOF ?? 注意: 每個(gè)節(jié)點(diǎn)的 ORACLE_SID 不一樣(+ASM1/+ASM2),需要自行修改! oracle 用戶: cat <<EOF>>/home/oracle/.bash_profile################OracleBegin#########################umask 022export TMP=/tmpexport TMPDIR=\$TMPexport NLS_LANG=AMERICAN_AMERICA.AL32UTF8export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=\$ORACLE_BASE/product/11.2.0/dbexport ORACLE_HOSTNAME=rac01export ORACLE_TERM=xtermexport TNS_ADMIN=\$ORACLE_HOME/network/adminexport LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/libexport ORACLE_SID=orcl1export PATH=/usr/sbin:\$PATHexport PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/OPatch:\$PATHalias sas='sqlplus / as sysdba'export PS1="[\`whoami\`@\`hostname\`:"'\$PWD]\$ '################OracleEnd#########################EOF ?? 注意: 每個(gè)節(jié)點(diǎn)的 ORACLE_HOSTNAME(rac01/rac02)和 ORACLE_SID(orcl1/orcl2)不一樣,需要自行修改! 15、安裝介質(zhì)上傳解壓(rac01)安裝包使用 XFTP 工具進(jìn)行上傳,只需要上傳至一節(jié)點(diǎn) /soft 目錄下: ##創(chuàng)建安裝介質(zhì)存放目錄mkdir /soft##上傳安裝介質(zhì)到/soft目錄p13390677_112040_Linux-x86-64_1of7.zip p13390677_112040_Linux-x86-64_2of7.zip p13390677_112040_Linux-x86-64_3of7.zip##解壓安裝介質(zhì)cd /softunzip -q p13390677_112040_Linux-x86-64_1of7.zipunzip -q p13390677_112040_Linux-x86-64_2of7.zipunzip -q p13390677_112040_Linux-x86-64_3of7.zip##授權(quán)目錄chown -R oracle:oinstall /soft/databasechown -R grid:oinstall /soft/grid##root用戶下,cvuqdisk安裝(rac01&rac02)cd /soft/grid/rpmrpm -ivh cvuqdisk-1.0.9-1.rpm ##傳輸?shù)焦?jié)點(diǎn)二安裝scp cvuqdisk-1.0.9-1.rpm rac2:/tmprpm -ivh /tmp/cvuqdisk-1.0.9-1.rpm ?? 注意: 安裝包只需要在節(jié)點(diǎn)一上傳解壓即可! 至此,準(zhǔn)備工作已經(jīng)完成。 二、安裝 Grid 軟件(rac01)關(guān)于
配置 grid 用戶 vnc 圖形界面: ##root用戶下切換到grid用戶su - grid##執(zhí)行vncserver,按提示輸入密碼即可vncserver##在vnc客戶端界面輸入192.168.56.10:1,輸入剛才輸入的密碼即可連接。
##應(yīng)用環(huán)境變量source ~/.bash_profile##進(jìn)入安裝目錄cd /soft/grid##執(zhí)行安裝程序開始安裝,加上jar包防止彈窗不顯示問(wèn)題./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
配置 grid 用戶節(jié)點(diǎn)間互信: 點(diǎn)擊Test測(cè)試互信: 填寫 ASM 實(shí)例 SYS 用戶密碼為 oracle: https://pan.baidu.com/s/1f1nCwZxfeqsdWGKN1DiI9Q 18370031 補(bǔ)丁安裝:(rac01&rac02) ##上傳補(bǔ)丁包p18370031_112040_Linux-x86-64.zip##解壓補(bǔ)丁包c(diǎn)d /softunzip -q p18370031_112040_Linux-x86-64.zip##授權(quán)補(bǔ)丁包c(diǎn)hown -R grid:oinstall /soft/18370031##開始安裝補(bǔ)丁,兩個(gè)節(jié)點(diǎn)都需要執(zhí)行opatch napply -oh $ORACLE_HOME -local /soft/18370031 -silent
打好補(bǔ)丁后,開始執(zhí)行 root.sh 腳本:(rac01&rac02) ##root用戶下執(zhí)行/u01/app/oraInventory/orainstRoot.sh /u01/app/11.2.0/grid/root.sh
由于我們沒有配置 DNS 解析,因此下方的錯(cuò)誤忽略即可: 注意: 如果需要安裝 以 Grid PSU 補(bǔ)丁 ##解壓補(bǔ)丁包c(diǎn)d /softunzip -q p31718723_112040_Linux-x86-64.zip##切換到root用戶執(zhí)行,需要拷貝到2節(jié)點(diǎn)也執(zhí)行一次opatch auto /soft/31718723 -oh $GRID_ORACLE_HOME ?? 注意: 需要先替換 grid 和 oracle 軟件的 OPatch 包為最新版本,否則無(wú)法成功安裝補(bǔ)?。?/p> 三、創(chuàng)建 ASM 數(shù)據(jù)盤 DATA這里創(chuàng)建的 DATA 磁盤組主要用于存放數(shù)據(jù)文件、日志文件等數(shù)據(jù)庫(kù)文件! 這里我們可以使用靜默創(chuàng)建或者圖形化方式創(chuàng)建: 1、靜默創(chuàng)建 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、圖形化創(chuàng)建 asmca
四、安裝Oracle軟件配置 oracle 用戶 vnc 圖形界面: ##root用戶下切換到grid用戶su - oracle##執(zhí)行vncserver,按提示輸入密碼即可vncserver##在vnc客戶端界面輸入192.168.56.10:2,輸入剛才輸入的密碼即可連接。
##應(yīng)用環(huán)境變量source ~/.bash_profile##進(jìn)入安裝目錄cd /soft/database##執(zhí)行安裝程序開始安裝,加上jar包防止彈窗不顯示問(wèn)題./runInstaller -jreLoc /etc/alternatives/jre_1.8.0
兩個(gè)節(jié)點(diǎn)都執(zhí)行以下命令,然后點(diǎn)擊繼續(xù):(rac01&rac02) sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' "$ORACLE_HOME/sysman/lib/ins_emagent.mk 執(zhí)行 root.sh 腳本:(rac01&rac02) 注意: 如果需要安裝 以 Grid PSU 補(bǔ)丁 ##解壓補(bǔ)丁包c(diǎn)d /softunzip -q p31718723_112040_Linux-x86-64.zip##切換到root用戶執(zhí)行,需要拷貝到2節(jié)點(diǎn)也執(zhí)行一次opatch auto /soft/31718723 -oh $ORACLE_ORACLE_HOME ?? 注意: 需要先替換 grid 和 oracle 軟件的 OPatch 包為最新版本,否則無(wú)法成功安裝補(bǔ)??! 五、創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例在確保 grid 和 oracle 軟件和補(bǔ)丁都已安裝成功后,即可開始創(chuàng)建數(shù)據(jù)庫(kù)實(shí)例! dbca 選擇rac模式: 填寫數(shù)據(jù)庫(kù)實(shí)例 ID: block 默認(rèn) 六、數(shù)據(jù)庫(kù)優(yōu)化配置(rac01)1、開啟數(shù)據(jù)庫(kù)歸檔模式關(guān)于開啟歸檔模式,具體可參考文章:
##關(guān)閉數(shù)據(jù)庫(kù)實(shí)例srvctl stop database -d orcl##開啟單個(gè)節(jié)點(diǎn)到mount模式srvctl start instance -d orcl -i orcl1 -o mount##開啟歸檔alter database archivelog;##設(shè)置歸檔路徑ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=+DATA';##重啟數(shù)據(jù)庫(kù)實(shí)例srvctl stop instance -d orcl -i orcl1 srvctl start database -d orcl##檢查歸檔archive log list 2、配置定期刪除歸檔計(jì)劃任務(wù)關(guān)于歸檔日志刪除,具體可參考文章:
##進(jìn)入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##寫入計(jì)劃任務(wù)cat <<EOF>>/var/spool/cron/oracle12 00 * * * /home/oracle/scripts/del_arch.sh EOF##手動(dòng)執(zhí)行測(cè)試/home/oracle/scripts/del_arch.sh 3、設(shè)置密碼永不過(guò)期sqlplus / as sysdba ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; Oracle 11GR2 版本需要手動(dòng)設(shè)置密碼永不過(guò)期,12CR2 版本之后已經(jīng)默認(rèn)設(shè)置為永不過(guò)期了! |
|
來(lái)自: LuciferLiu > 《待分類》