記錄一下Oracle 19c standalone(單機(jī)ASM)靜默安裝的流程,方便遇到這個(gè)場(chǎng)景的時(shí)候可以快速部署上。以下配置經(jīng)過測(cè)試環(huán)境多次試錯(cuò)得出,如果有相同環(huán)境,改改ip主機(jī)名磁盤組應(yīng)該就能直接用。
一、環(huán)境
CentOS 7.7 內(nèi)存8G
磁盤組:DG_REDO 1Gx3 \ DG_DATA 10Gx2
二、配置
1.hosts文件
--替換ip 主機(jī)名
echo "192.168.10.8 xkdg" >> /etc/hosts
cat /etc/hosts
2.語言環(huán)境
--root
echo "export LANG=en_US.UTF8" >> ~/.bash_profile
cat ~/.bash_profile
source .bash_profile
3.創(chuàng)建用戶、組和目錄
--組
/usr/sbin/groupadd -g 60001 oinstall
/usr/sbin/groupadd -g 60002 dba
/usr/sbin/groupadd -g 60003 oper
/usr/sbin/groupadd -g 60004 backupdba
/usr/sbin/groupadd -g 60005 dgdba
/usr/sbin/groupadd -g 60006 kmdba
/usr/sbin/groupadd -g 60007 asmdba
/usr/sbin/groupadd -g 60008 asmoper
/usr/sbin/groupadd -g 60009 asmadmin
--用戶
useradd -u 61001 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,oper oracle
useradd -u 61002 -g oinstall -G asmadmin,asmdba,asmoper,dba grid
--設(shè)密碼
passwd grid
passwd oracle
--建目錄
mkdir -p /u01/app/19.0.0/grid
mkdir -p /u01/app/grid
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R grid:oinstall /u01
chmod -R 775 /u01
chown -R oracle:oinstall /u01/app/oracle
chown -R grid:oinstall /u01/app/oraInventory
4.yum源
--虛擬機(jī)環(huán)境記得先把盤掛上,再mount
mount /dev/sr0 /mnt
cd /etc/yum.repos.d
rm -rf *
cat <<EOF>> mnt.repo
[mnt]
name=mnt
baseurl=file:///mnt
gpgcheck=0
enabled=1
EOF
yum clean all
yum makecache
5.rpm包
下面應(yīng)該是全了,如果在precheck環(huán)節(jié)檢查出還有缺的,再單個(gè)裝吧
yum -y install bc gcc gcc-c++ binutils compat-libcap1 compat-libstdc++ dtrace-modules dtrace-modules-headers
dtrace-modules-provider-headers dtrace-utils elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel
ksh libaio libaio-devel libdtrace-ctf-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc librdmacm-devel
libstdc++ libstdc++-devel libxcb make smartmontools sysstat
yum -y install kmod*
yum -y install ksh*
yum -y install libaio*
yum -y install compat*
注意:compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm得單獨(dú)找來裝上
6.修改資源參數(shù)
--加到最后,單位KB
vi /etc/security/limits.conf
#SETTING for ORACLE
grid soft nproc 16384
grid hard nproc 16384
grid soft nofile 65536
grid hard nofile 65536
grid soft stack 32768
grid hard stack 32768
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft stack 32768
oracle hard stack 32768
oracle hard memlock unlimited
oracle soft memlock unlimited
--控制給用戶分配的資源
echo "session required pam_limits.so" >> /etc/pam.d/login
cat /etc/pam.d/login
7.修改內(nèi)核參數(shù)
vi /etc/sysctl.conf
# Oracle install config
fs.aio-max-nr = 1048576
fs.file-max = 6815744
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
kernel.panic_on_oops = 1
kernel.shmmax = 5033164800
kernel.shmall = 1228800
kernel.shmmni = 4096
##Huge page
vm.nr_hugepages = 2500
--生效
sysctl -p
8.關(guān)閉透明大頁
cat /sys/kernel/mm/transparent_hugepage/defrag [always] madvise never cat /sys/kernel/mm/transparent_hugepage/enabled [always] madvise never vi /etc/rc.d/rc.local if test -f /sys/kernel/mm/transparent_hugepage/enabled;then echo never > /sys/kernel/mm/transparent_hugepage/enabled fi if test -f /sys/kernel/mm/transparent_hugepage/defrag;then echo never > /sys/kernel/mm/transparent_hugepage/defrag fi chmod +x /etc/rc.d/rc.local
9.關(guān)閉numa
vi /etc/default/grub
在GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet numa=off" 這一行加上numa=off
--重新編譯
grub2-mkconfig -o /etc/grub2.cfg
10.共享內(nèi)存段
vi /etc/fstab
none /dev/shm tmpfs defaults,size=6G 0 0
--生效
mount -o remount /dev/shm
注意:這里記錄一下,配置完df -h能看到確實(shí)生效了,但是安裝前檢查還是有這個(gè)提示,得空再瞅瞅
11.禁用selinux,關(guān)閉防火墻
--禁用selinux
setenforce 0
vi /etc/selinux/config
--更改以下內(nèi)容為disabled,重啟操作系統(tǒng)才生效
SELINUX=disabled
--關(guān)閉防火墻:
systemctl stop firewalld
--禁止開機(jī)啟動(dòng):
systemctl disable firewalld.service
12.配置環(huán)境變量
--grid
su - grid
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/19.0.0/grid
export ORACLE_SID=+ASM
export LANG=en_US.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
alias s='sqlplus / as sysdba'
umask 022
export TMOUT=0
--oracle 改sid、uniquename
su - oracle
vi ~/.bash_profile
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=xkdg
export ORACLE_UNQNAME=xkdg
export LANG=en_US.UTF-8
export NLS_LANG=american_america.UTF8
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
export PATH=.:${PATH}:$HOME/bin:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch
export PATH=${PATH}:/usr/bin:/bin:/usr/bin/X11:/usr/local/bin
export PATH=${PATH}:$ORACLE_BASE/common/oracle/bin:/home/oracle/run
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/oracm/lib
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib:/usr/lib:/usr/local/lib
export CLASSPATH=$ORACLE_HOME/JRE
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/rdbms/jlib
export CLASSPATH=${CLASSPATH}:$ORACLE_HOME/network/jlib
export THREADS_FLAG=native
export TEMP=/tmp
export TMPDIR=/tmp
export GI_HOME=/u01/app/19.0.0/grid
export PATH=${PATH}:$GI_HOME/bin
export ORA_NLS10=$GI_HOME/nls/data
umask 022
export TMOUT=0
13.虛擬機(jī)添加磁盤
VMware關(guān)虛擬機(jī)添加磁盤
DG_REDO 1Gx3
DG_DATA 10Gx2
加完記得修改虛擬機(jī)存放文件夾下的.vmx文件,添加
disk.EnableUUID = “TRUE”
14.UDEV配置
好用來源:http://www.sunline.cc/issue/2279
1. 生成規(guī)則文件
touch /etc/udev/rules.d/99-oracle-asmdevices.rules
或者
touch /usr/lib/udev/rules.d/99-oracle-asmdevices.rules
2. 生成規(guī)則
沒有對(duì)sdb進(jìn)行分區(qū),執(zhí)行如下shell腳本,
for i in b c d e f;
do
echo "KERNEL==\"sd*\", SUBSYSTEM==\"block\", PROGRAM==\"/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/\$name\", RESULT==\"`/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i`\", SYMLINK+=\"asm-disk$i\", OWNER=\"grid\", GROUP=\"asmadmin\", MODE=\"0660\""
done
3. 將結(jié)果復(fù)制到 99-oracle-asmdevices.rules
將第二步的輸出粘貼入 99-oracle-asmdevices.rules 這個(gè)文件
KERNEL=="sd*", SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name", RESULT=="36000c2948ef9d9e4a7937bfc65888bc8", NAME="asm-diskb", OWNER="grid", GROUP="asmadmin", MODE="0660"
執(zhí)行
/sbin/partprobe /dev/sdb
/sbin/partprobe /dev/sdc
/sbin/partprobe /dev/sdd
/sbin/partprobe /dev/sde
/sbin/partprobe /dev/sdf
4. 用udevadm進(jìn)行測(cè)試,注意udevadm命令不接受/dev/sdc這樣的掛載設(shè)備名,必須是使用/sys/block/sdb這樣的原始設(shè)備名。
udevadm test /sys/block/sdb
udevadm test /sys/block/sdc
udevadm test /sys/block/sdd
udevadm test /sys/block/sde
udevadm test /sys/block/sdf
udevadm info --query=all --path=/sys/block/sdb
udevadm info --query=all --path=/sys/block/sdc
udevadm info --query=all --path=/sys/block/sdd
udevadm info --query=all --path=/sys/block/sde
udevadm info --query=all --path=/sys/block/sdf
udevadm info --query=all --name=asm-diskb
udevadm info --query=all --name=asm-diskc
udevadm info --query=all --name=asm-diskd
udevadm info --query=all --name=asm-diske
udevadm info --query=all --name=asm-diskf
5. 啟動(dòng)udev
/usr/sbin/udevadm control --reload-rules
systemctl status systemd-udevd.service
systemctl enable systemd-udevd.service
6. 檢查設(shè)備是否正確綁定
# ls -l /dev/asm* /dev/sdb
lrwxrwxrwx 1 root root 3 Nov 29 18:17 /dev/asm-diskb -> sdb
brw-rw---- 1 grid asmadmin 8, 16 Nov 29 18:17 /dev/sdb
三、Grid安裝
安裝包:LINUX.X64_193000_grid_home.zip
上傳路徑: /u01/app/19.0.0/grid
--直接切到grid解壓縮
su - grid
cd /u01/app/19.0.0/grid
unzip LINUX.X64_193000_grid_home.zip
--解壓完裝個(gè)包
cd /u01/app/19.0.0/grid/cv/rpm
rpm -ivh cvuqdisk-1.0.10-1.rpm
1. 編輯響應(yīng)文件
模板在 /u01/app/19.0.0/grid/inventory/response/grid_install.rsp
想了解參數(shù)具體用途的可以看模板里的說明
--touch gi.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_crsinstall_response_schema_v19.0.0
INVENTORY_LOCATION=/u01/app/oraInventory
oracle.install.option=HA_CONFIG
ORACLE_BASE=/u01/app/grid
oracle.install.asm.OSDBA=asmdba
oracle.install.asm.OSOPER=asmoper
oracle.install.asm.OSASM=asmadmin
oracle.install.crs.config.scanType=LOCAL_SCAN
oracle.install.crs.config.ClusterConfiguration=STANDALONE
oracle.install.crs.config.configureAsExtendedCluster=false
oracle.install.crs.config.gpnp.configureGNS=false
oracle.install.crs.config.autoConfigureClusterNodeVIP=false
oracle.install.crs.config.gpnp.gnsOption=CREATE_NEW_GNS
oracle.install.crs.configureGIMR=false
oracle.install.asm.configureGIMRDataDG=false
oracle.install.crs.config.useIPMI=false
oracle.install.asm.SYSASMPassword=Password123!
oracle.install.asm.diskGroup.name=DG_REDO
oracle.install.asm.diskGroup.redundancy=EXTERNAL
oracle.install.asm.diskGroup.AUSize=4
oracle.install.asm.diskGroup.disks=/dev/asm-diskb,/dev/asm-diskc,/dev/asm-diskd
oracle.install.asm.diskGroup.diskDiscoveryString=/dev/asm*
oracle.install.asm.monitorPassword=Password123!
oracle.install.asm.configureAFD=false
oracle.install.crs.configureRHPS=false
oracle.install.crs.config.ignoreDownNodes=false
oracle.install.config.managementOption=NONE
oracle.install.config.omsPort=0
oracle.install.crs.rootconfig.executeRootScript=false
注意:oracle.install.asm.configureAFD=false 因?yàn)槲业沫h(huán)境是CentOS所以設(shè)置的false,生產(chǎn)一般是RHEL得設(shè)為true
2. 安裝前precheck
--有問題按提示調(diào)整
/u01/app/19.0.0/grid/runcluvfy.sh stage -pre crsinst -n xkdg -fixup -verbose
3. 安裝過程
--安裝腳本
$ORACLE_HOME/gridSetup.sh -silent -responseFile /u01/app/19.0.0/grid/inventory/response/gi.rsp
--執(zhí)行結(jié)果,作為參考,記得手工執(zhí)行倆腳本
[grid@xkdg response]$ $ORACLE_HOME/gridSetup.sh -silent -responseFile /u01/app/19.0.0/grid/inventory/response/gi.rsp
Launching Oracle Grid Infrastructure Setup Wizard...
[WARNING] [INS-32047] The location (/u01/app/oraInventory) specified for the central inventory is not empty.
ACTION: It is recommended to provide an empty location for the inventory.
The response file for this session can be found at:
/u01/app/19.0.0/grid/install/response/grid_2022-03-09_10-31-11AM.rsp
You can find the log of this install session at:
/tmp/GridSetupActions2022-03-09_10-31-11AM/gridSetupActions2022-03-09_10-31-11AM.log
As a root user, execute the following script(s):
1. /u01/app/oraInventory/orainstRoot.sh
2. /u01/app/19.0.0/grid/root.sh
Execute /u01/app/19.0.0/grid/root.sh on the following nodes:
[xkdg]
Successfully Setup Software.
As install user, execute the following command to complete the configuration.
/u01/app/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19.0.0/grid/inventory/response/gi.rsp [-silent]
Moved the install session logs to:
/u01/app/oraInventory/logs/GridSetupActions2022-03-09_10-31-11AM
[grid@xkdg response]$ exit
logout
[root@xkdg cdrom]# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /u01/app/oraInventory to oinstall.
The execution of the script is complete.
[root@xkdg cdrom]# /u01/app/19.0.0/grid/root.sh
Check /u01/app/19.0.0/grid/install/root_xkdg_2022-03-09_10-33-58-938892079.log for the output of root script
[root@xkdg cdrom]#
4. 配置
--命令
/u01/app/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19.0.0/grid/inventory/response/gi.rsp -silent
--執(zhí)行結(jié)果
[grid@xkdg ~]$ /u01/app/19.0.0/grid/gridSetup.sh -executeConfigTools -responseFile /u01/app/19.0.0/grid/inventory/response/gi.rsp -silent
Launching Oracle Grid Infrastructure Setup Wizard...
You can find the logs of this session at:
/u01/app/oraInventory/logs/GridSetupActions2022-03-09_10-30-05PM
You can find the log of this install session at:
/u01/app/oraInventory/logs/UpdateNodeList2022-03-09_10-30-05PM.log
Successfully Configured Software.
進(jìn)行到這里可以 crsctl stat res -t 看看狀態(tài)了
四、創(chuàng)建DG_DATA磁盤組
su - grid
sqlplus / as sysasm
create diskgroup DG_DATA EXTERNAL redundancy disk '/dev/asm-diske','/dev/asm-diskf' attribute 'compatible.rdbms'='19.0','compatible.asm'='19.0','au_size'='4M';
五、安裝oracle軟件
安裝包:LINUX.X64_193000_db_home.zip
上傳路徑:/u01/app/oracle/product/19.0.0/dbhome_1
模板路徑:/u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_install.rsp
su - oracle cd $ORACLE_HOME unzip LINUX.X64_193000_db_home.zip
1. 編輯響應(yīng)文件
--cd /u01/app/oracle/product/19.0.0/dbhome_1/install/response/
--touch db.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v19.0.0
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/u01/app/oraInventory
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORACLE_BASE=/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
oracle.install.db.rootconfig.executeRootScript=false
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.memoryOption=false
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.managementOption=DEFAULT
oracle.install.db.config.starterdb.enableRecovery=false
2. 安裝
--命令
cd $ORACLE_HOME
./runInstaller -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db.rsp -skipPrereqs
--執(zhí)行結(jié)果,作為參考,記得執(zhí)行root.sh
[oracle@xkdg dbhome_1]$ ./runInstaller -silent -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/install/response/db.rsp -skipPrereqs
Launching Oracle Database Setup Wizard...
The response file for this session can be found at:
/u01/app/oracle/product/19.0.0/dbhome_1/install/response/db_2022-03-09_11-46-03PM.rsp
You can find the log of this install session at:
/u01/app/oraInventory/logs/InstallActions2022-03-09_11-46-03PM/installActions2022-03-09_11-46-03PM.log
As a root user, execute the following script(s):
1. /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
Execute /u01/app/oracle/product/19.0.0/dbhome_1/root.sh on the following nodes:
[xkdg]
Successfully Setup Software.
[oracle@xkdg dbhome_1]$ exit
logout
[root@xkdg tmp]# /u01/app/oracle/product/19.0.0/dbhome_1/root.sh
Check /u01/app/oracle/product/19.0.0/dbhome_1/install/root_xkdg_2022-03-09_23-47-30-636609348.log for the output of root script
六、DBCA建庫(kù)
模板 /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca.rsp
1. 響應(yīng)文件
cdb模式記得 createAsContainerDatabase=true
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0 gdbName=xkdg sid=xkdg databaseConfigType=SI policyManaged=FALSE createServerPool=FALSE serverPoolName= createAsContainerDatabase=true numberOfPDBs=1 pdbName=test01 useLocalUndoForPDBs=true pdbAdminPassword=Password123! templateName=/u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/General_Purpose.dbc sysPassword=Password123! systemPassword= Password123! runCVUChecks=true dbsnmpPassword=Password123! dvConfiguration=False olsConfiguration=False datafileJarLocation=/u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/templates/ datafileDestination=DG_DATA storageType=ASM diskGroupName=DG_DATA asmsnmpPassword=Password123! recoveryGroupName=DG_DATA characterSet=UTF8 nationalCharacterSet=AL16UTF16 registerWithDirService=FALSE listeners=LISTENER sampleSchema=FALSE memoryPercentage=50 databaseType=MULTIPURPOSE automaticMemoryManagement=FALSE dbsnmpPassword=Password123!
2.執(zhí)行
--命令
dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca1.rsp
--執(zhí)行結(jié)果
[oracle@xkdg dbca]$ dbca -silent -createDatabase -responseFile /u01/app/oracle/product/19.0.0/dbhome_1/assistants/dbca/dbca1.rsp
Prepare for db operation
7% complete
Registering database with Oracle Restart
11% complete
Copying database files
33% complete
Creating and starting Oracle instance
35% complete
38% complete
42% complete
45% complete
48% complete
Completing Database Creation
53% complete
55% complete
56% complete
Creating Pluggable Databases
60% complete
78% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/xkdg.
Database Information:
Global Database Name:xkdg
System Identifier(SID):xkdg
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/xkdg/xkdg.log" for further details.
[oracle@xkdg dbca]$
安裝完成
七、小結(jié)
后續(xù)打補(bǔ)丁、刷參數(shù)、改redo等等等。






