Oracle 19C 單機部署
本文介紹Oracle數據庫19c中的64位的在Oracle的Linux 7(OL7)64位安裝。
這篇文章是基於服務器安裝最少2G Swap和disable SELinux設置
文章目錄
1.0 安裝準備
1.1 硬件檢查
1.1.1 硬盤空間檢查
/tmp目錄大小至少:1GB
安裝Oracle Database所需空間:8GB
1.1.2 內存檢查
內存最小: 2GB
Swap最小: 2GB
1.2 寫入Hosts 解析
在 “/etc/hosts” 寫入包含服務器的名稱。
#格式:
<IP-address> <fully-qualified-machine-name> <machine-name>
echo '172.10.128.20 Ora19C.com Ora19C' >> /etc/hosts
1.3 安裝依賴
yum install -y https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-18c-1.0-1.el7.x86_64.rpm
yum install bc binutils compat-libcap* compat-libstdc* glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat
1.4 寫入內核參數
cat > /etc/sysctl.d/98-oracle.conf <<EOF
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
EOF
#加載內核參數
sysctl -p /etc/sysctl.d/98-oracle.conf
1.5 寫入用戶limit
cat > /etc/security/limits.d/oracle-database-preinstall-18c.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 134217728
oracle soft memlock 134217728
EOF
1.6 關閉SELinux 和 防火牆
sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
systemctl stop firewalld
systemctl disable firewalld
1.7 創建用戶和組
常見用戶組說明
組 | 角色 | 權限 |
---|---|---|
oinstall | 安裝和升級oracle軟件 | |
dba | sysdba | 創建、刪除、修改、啓動、關閉數據庫,切換日誌歸檔模式,備份恢復數據庫 |
oper | sysoper | 啓動、關閉、修改、備份、恢復數據庫,修改歸檔模式 |
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle
#修改密碼
echo 'oracle' | passwd --stdin oracle
1.8 創建安裝目錄
mkdir -p /data/oracle/product/19.0.0/dbhome_1
mkdir -p /data/oradata
chown -R oracle:oinstall /data
chmod -R 775 /data
1.9 配置環境變量
cat >> /home/oracle/.bash_profile <<EOF
#Oracle Settings
export TMP=/tmp
export TMPDIR=\$TMP
export ORACLE_HOSTNAME=Ora19C
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_UNQNAME=orcl
export ORACLE_SID=orcl
#Oracle data dir
export DATA_DIR=/data/oradata
export ORA_INVENTORY=/data/oraInventory
export PATH=/usr/sbin:/usr/local/bin:\$PATH
export PATH=\$ORACLE_HOME/bin:\$PATH
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
EOF
2.0 靜默安裝數據庫
2.1 預配應答命令
不對db_install.rsp 文件修改,直接在命令行進行配置
cd /data/oracle/product/19.0.0/dbhome_1
# 靜默安裝
./runInstaller -ignorePrereq -waitforcompletion -silent \
-responseFile ${ORACLE_HOME}/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=${ORA_INVENTORY} \
SELECTED_LANGUAGES=en,en_GB \
ORACLE_HOME=${ORACLE_HOME} \
ORACLE_BASE=${ORACLE_BASE} \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_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 \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
#安裝完後根據提示
/data/oraInventory/orainstRoot.sh
/data/oracle/product/19.0.0/dbhome_1/root.sh
2.2 靜默建庫
#普通數據庫
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword Oracle19c \
-systemPassword Oracle19c \
-createAsContainerDatabase false \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 2048 \
-storageType FS \
-datafileDestination "${DATA_DIR}" \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
#可插拔數據庫
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbname emrep -responseFile NO_VALUE \
-characterSet AL32UTF8 \
-sysPassword Oracle19c \
-systemPassword Oracle19c \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName orapdb \
-pdbAdminPassword Oracle19c \
-databaseType MULTIPURPOSE \
-automaticMemoryManagement false \
-totalMemory 1024 \
-redoLogFileSize 50 \
-emConfiguration NONE \
-ignorePreReqs
刪庫命令:
dbca -silent -deleteDatabase -sourcedb orcl -sid orcl -sysDBAUserName orcl -sysDBAPassword Oracle19c
2.3 在/etc/oratab 標記實例爲 Y
sed -i 's/dbhome_1:N/dbhome_1:Y/' /etc/oratab
2.4 啓用Oracle管理文件(OMF),並確保該實例啓動時PDB開始。
sqlplus / as sysdba <<EOF
alter system set db_create_file_dest='${DATA_DIR}';
alter pluggable database ${PDB_NAME} save state;
exit;
EOF
參考文檔: