在CentOS 7 靜默安裝 Oracle 19c 數據庫
硬件要求
- 至少 2GB 內存(推薦 8GB 以上)
- 至少 10GB 空閑磁盤空間
- Swap 分區至少為內存的 1.5 倍
操作系統要求
- CentOS 7.x 64 位系統
- 已安裝必要的依賴包
以下案例是按64G內存,文件路徑為/data/u01/
一、前置條件
1.禁用 SELinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0
2.關閉防火墻
systemctl stop firewalld
systemctl disable firewalld
二、準備系統環境
1.驗證操作系統版本
cat /etc/redhat-release
uname -m
#確保輸出顯示CentOS 7和x86_64架構
2.創建必要的用戶和組
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
echo "oracle" | passwd oracle --stdin
3.創建安裝目錄并
mkdir -p /data/u01/app/oracle/product/19.3.0/dbhome_1
mkdir -p /data/u02/oradata
mkdir -p /data/u01/app/oraInventory
chown -R oracle:oinstall /data/u01 /data/u02
chmod -R 775 /data/u01 /data/u02
4.驗證目錄權限
ls -ld /data/u01/oracle
ls -ld /data/u01/oraInventory
5.安裝依賴包
yum install -y binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 \
compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc \
glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel \
libaio-devel*.i686 libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel \
libstdc++-devel*.i686 libXi libXi*.i686 libXtst libXtst*.i686 make sysstat
#以下是驗證是否安裝完
rpm --query --queryformat "%{NAME}-%{VERSION}.%{RELEASE} (%{ARCH})\n" binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.i686 libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.i686 libXi libXi*.i686 libXtst libXtst*.i686
6.配置內核參數
cat >> /etc/sysctl.conf << EOF
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 4294967296 # 16GB (64GB內存的1/4)
kernel.shmmax = 34359738368 # 32GB (物理內存的一半)
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
EOF
# 使配置生效
sysctl -p
7.配置oracle用戶限制
cat >> /etc/security/limits.conf << EOF
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 32212254720 # 30GB (約為內存的一半)
oracle soft memlock 32212254720
EOF
8.配置oracle用戶環境變量
以oracle用戶登錄:
su - oracle
設置環境變量(使用 /data 路徑),編輯.bash_profile:
cat >> ~/.bash_profile << EOF
export ORACLE_BASE=/data/u01/app/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=\$PATH:\$ORACLE_HOME/bin
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
export TMP=/tmp
export TMPDIR=\$TMP
EOF
# 使環境變量生效
source ~/.bash_profile
單獨查詢
echo $ORACLE_SID
echo $ORACLE_HOME
echo $ORACLE_BASE
echo $PATH
三、下載并解壓 Oracle 19c 安裝文件
1.解壓安裝包
# 假設安裝文件已下載到/data目錄,使用root用戶執行
unzip /data/u01/V982063-01.zip -d $ORACLE_HOME
2.創建響應文件
cd /data/u01/oracle/database/response
cp db_install.rsp db_install.rsp.bak
編輯db_install.rsp文件,修改以下參數:
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/u01/oraInventory
ORACLE_HOME=/data/u01/oracle/product/19c/dbhome_1
ORACLE_BASE=/data/u01/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSOPER_GROUP=oper
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
3.開始靜默安裝
cd /data/u01/oracle/database
./runInstaller -silent -responseFile /data/u01/oracle/database/response/db_install.rsp -ignorePrereqFailure
#或者執行 $ORACLE_HOME/runInstaller -silent -responseFile $HOME/db_install.rsp -ignorePrereq
4.運行root腳本
安裝完成后,按照提示以root用戶運行:
su - root
/data/u01/oraInventory/orainstRoot.sh
/data/u01/oracle/product/19c/dbhome_1/root.sh
exit
四、創建數據庫
1.創建數據庫響應文件
cd /data/u01/oracle/database/response
cp dbca.rsp dbca.rsp.bak
編輯dbca.rsp文件,修改以下參數:
responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v19.0.0
gdbName=orcl
sid=orcl
databaseConfigType=SI
policyManaged=false
createServerPool=false
force=false
createAsContainerDatabase=false
templateName=General_Purpose.dbc
sysPassword=Oracle123
systemPassword=Oracle123
characterSet=AL32UTF8
nationalCharacterSet=AL16UTF16
initParams=sga_target=20G,pga_aggregate_target=6G,processes=1000
2.靜默創建數據庫
dbca -silent -createDatabase -responseFile /data/u01/oracle/database/response/dbca.rsp
#或者 netca -silent -responseFile $HOME/netca.rsp
3.驗證數據庫
sqlplus / as sysdba
SQL> SELECT name, open_mode FROM v$database;
SQL> SELECT tablespace_name FROM dba_tablespaces;
SQL> exit
五、配置監聽
1.創建監聽
netca -silent -responsefile /data/u01/oracle/database/response/netca.rsp
2.驗證監聽
lsnrctl status
六、配置自動啟動
1.編輯/etc/oratab
echo "orcl:/data/u01/oracle/product/19c/dbhome_1:Y" >> /etc/oratab
2.創建啟動腳本
#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
ORA_HOME=/data/u01/oracle/product/19c/dbhome_1
ORA_OWNER=oracle
case "\$1" in
'start')
su - \$ORA_OWNER -c "\$ORA_HOME/bin/dbstart \$ORA_HOME"
su - \$ORA_OWNER -c "\$ORA_HOME/bin/lsnrctl start"
;;
'stop')
su - \$ORA_OWNER -c "\$ORA_HOME/bin/dbshut \$ORA_HOME"
su - \$ORA_OWNER -c "\$ORA_HOME/bin/lsnrctl stop"
;;
esac
EOF
chmod 750 /etc/init.d/oracle
chkconfig --add oracle
chkconfig oracle on

浙公網安備 33010602011771號