基於CentOS 7.7下安裝Oracle Database 19c

基於CentOS 7.7下安裝Oracle Database 19c

環境

版本與環境:

  • OS: CentOS 7.7.1908
  • Oracle Database: 19.3.0.0 -64bit
  • 網絡:政務內網
  • IP:100.100.100.123

說明:

  • 官方安裝手冊:
    https://docs.oracle.com/en/database/oracle/oracle-database/19/ladbi/index.html

安裝前準備

修改主機名,安裝前準備

# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb.01/" /etc/sysconfig/network
# hostnamectl set-hostname oracledb.01

配置本機IP地址(如果是分配好內網IP的雲機器,則不需要修改)

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
HWADDR=00:0c:29:57:c0:02
NETMASK=255.255.0.0
IPADDR=100.100.100.123
GATEWAY=255.255.0.0
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes

添加主機名與IP對應記錄

# vim /etc/hosts
100.100.100.123 oracledb.01

關閉Selinux

# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
# setenforce 0

配置YUM源

調整內存配置

調整Swap內存

查看物理內存

# grep MemTotal /proc/meminfo
MemTotal:       16777216 kB

查看Swap內存

# grep SwapTotal /proc/meminfo
SwapTotal:             0 kB

創建一個交換文件

# dd if=/dev/zero of=/swapfile bs=1M count=16384
16384+0 records in
16384+0 records out
17179869184 bytes (17 GB) copied, 23.5326 s, 730 MB/s

使用 mkswap 命令來設置交換文件

# mkswap /swapfile
mkswap: /swapfile: warning: don't erase bootbits sectors
        on whole disk. Use -f to force.
Setting up swapspace version 1, size = 16777212 KiB
no label, UUID=8d714f07-14ca-41f3-a742-bb0810552268

啓用交換分區:

# swapon /swapfile

查看當前的swap是否生效

# swapon -s
Filename                                Type            Size    Used    Priority
/swapfile                               file            16777212        0       -1

爲了使新的Swap區在下次開啓的時候自動啓動,追加以下代碼:

# vi /etc/fstab
/home/swapfile swap swap defaults 0 0

調整共享內存

查看共享內存的大小是否正確

df -h /dev/shm
Filesystem      Size  Used Avail Use% Mounted on
tmpfs           5.0G  0G  5G  0% /dev/shm

重新掛載共享內存

mount -o remount,size8g /dev/shm

寫入配置文件

vi /etc/fstab
tmpfs /dev/shm tmpfs  defaults,size=8G      0 0

安裝必要的組件包

yum安裝Oracle 19c依賴包和必要的系統組件

# yum install -y bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat net-tools unzip

其中,compat-libstdc+±33包在centOS7鏡像中已經移除,需要單獨下載安裝,我們下載好上傳到/tmp目錄下

# rpm -ivh /tmp/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm

檢驗必要包是否安裝成功

# rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' bc binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel fontconfig-devel glibc glibc-devel ksh libaio libaio-devel libX11 libXau libXi libXtst libXrender libXrender-devel libgcc libstdc++ libstdc++-devel libxcb make smartmontools sysstat net-tools unzip
bc-1.06.95-13.el7 (x86_64)
binutils-2.27-43.base.el7_8.1 (x86_64)
compat-libcap1-1.10-7.el7 (x86_64)
compat-libstdc++-33-3.2.3-72.el7 (x86_64)
compat-libstdc++-33-3.2.3-72.el7 (i686)
elfutils-libelf-0.176-4.el7 (x86_64)
elfutils-libelf-devel-0.176-4.el7 (x86_64)
fontconfig-devel-2.13.0-4.3.el7 (x86_64)
glibc-2.17-307.el7.1 (x86_64)
glibc-2.17-307.el7.1 (i686)
glibc-devel-2.17-307.el7.1 (x86_64)
glibc-devel-2.17-307.el7.1 (i686)
ksh-20120801-142.el7 (x86_64)
libaio-0.3.109-13.el7 (x86_64)
libaio-0.3.109-13.el7 (i686)
libaio-devel-0.3.109-13.el7 (x86_64)
libaio-devel-0.3.109-13.el7 (i686)
libX11-1.6.7-2.el7 (x86_64)
libX11-1.6.7-2.el7 (i686)
libXau-1.0.8-2.1.el7 (x86_64)
libXau-1.0.8-2.1.el7 (i686)
libXi-1.7.9-1.el7 (x86_64)
libXi-1.7.9-1.el7 (i686)
libXtst-1.2.3-1.el7 (x86_64)
libXtst-1.2.3-1.el7 (i686)
libXrender-0.9.10-1.el7 (x86_64)
libXrender-devel-0.9.10-1.el7 (x86_64)
libgcc-4.8.5-39.el7 (x86_64)
libgcc-4.8.5-39.el7 (i686)
libstdc++-4.8.5-39.el7 (x86_64)
libstdc++-4.8.5-39.el7 (i686)
libstdc++-devel-4.8.5-39.el7 (x86_64)
libstdc++-devel-4.8.5-39.el7 (i686)
libxcb-1.13-1.el7 (x86_64)
libxcb-1.13-1.el7 (i686)
make-3.82-24.el7 (x86_64)
smartmontools-7.0-2.el7 (x86_64)
sysstat-10.1.5-19.el7 (x86_64)
net-tools-2.0-0.25.20131004git.el7 (x86_64)
unzip-6.0-21.el7 (x86_64)

創建用戶和組

創建組

# /usr/sbin/groupadd -g 54321 oinstall
# /usr/sbin/groupadd -g 54322 dba
# /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 54330 racdba

oper組非必要,我們這裏不創建

# groupadd -g 54323 oper

創建用戶

# /usr/sbin/useradd -u 54321 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba oracle

grid用戶非必要,我們這裏不創建

# /usr/sbin/useradd -u 54331 -g oinstall -G dba,asmdba,backupdba,dgdba,kmdba,racdba grid

設置用戶密碼

# echo "oracle"|passwd --stdin oracle

修改系統相關配置

調整內核參數

# vim /etc/sysctl.d/97-oracle-database-sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 17179869183
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

修改後使之生效

# /sbin/sysctl -p
# /sbin/sysctl --system

其中,kernel.shmmax和kernel.shmall根據實際情況調整

  • kernel.shmmax:單位b,最小536870912(512 M),建議不小於內存一半,最大值爲內存值-1;
  • kernel.shmall:取值計算:內存(單位KB)/4KB。

因爲我們單機只安裝Oracle,所以取最大值,計算方式如下:
查詢內存大小

# grep MemTotal /proc/meminfo
MemTotal:       16777216 kB

計算:
kernel.shmmax = 16777216 kB * 1024 -1 = 17179869183‬
kernel.shmall = 16777216 kB / 4 kB = 4194304

另,其他內存大小最大值參考:

內存 kernel.shmmax kernel.shmall
4G(32位) 4294967295 2097152
8G 8589934591 2097152
16G 17179869183 4194304
32G 34359738367 8388608
64G 68719476735 16777216
128G 137438953471 33554432

修改用戶限制

調整Oracle用戶

# cat >> /etc/security/limits.conf <<EOF
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 3145728
oracle soft memlock 3145728

EOF

如果創建了grid用戶,則也需調整

# cat >> /etc/security/limits.conf <<EOF
grid soft nproc 2047
grid hard nproc 16384
grid soft nofile 1024
grid hard nofile 65536
grid soft stack 10240
grid hard stack 32768
grid hard memlock 3145728
grid soft memlock 3145728

EOF

配置PAM驗證

# cat  >> /etc/pam.d/login <<EOF
session required /lib64/security/pam_limits.so
session required pam_limits.so

EOF

修改環境變量

修改Oracle用戶的環境變量

# cat >> /home/oracle/.bash_profile <<EOF
umask 022
export ORACLE_HOSTNAME=oracledb.01
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=orcl19c
export LANG="zh_CN.UTF-8"
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export PATH=$PATH:$ORACLE_HOME/bin

EOF

如果創建了grid用戶,則相應的也要修改其環境變量。

開始安裝

解壓數據庫軟件

創建Oracle目錄,授權,cd到Oracle安裝包路徑下,解壓Oracle到ORACLE_HOME。

注意,從18c開始,安裝包必須解壓到ORACLE_HOME路徑下進行安裝!

# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
# chown -R oracle:oinstall /u01/app/
# chmod -R 775 /u01/app/
# su - oracle
$ unzip - q LINUX.X64_193000_db_home.zip -d $ORACLE_HOME

修改響應文件db_install.rsp

響應文件,我們統一複製到/home/oracle/etc/下面,然後授權

# su - oracle
$ cp $ORACLE_HOME/install/response/db_install.rsp /home/oracle/etc/
$ chmod 600 /home/oracle/etc/db_install.rsp

編輯響應文件

可以把需要修改的內容直接追加到文件末尾

# cat >> /home/oracle/etc/db_install.rsp <<EOF
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=oinstall
oracle.install.db.OSBACKUPDBA_GROUP=backupdba
oracle.install.db.OSDGDBA_GROUP=dgdba
oracle.install.db.OSKMDBA_GROUP=kmdba
oracle.install.db.OSRACDBA_GROUP=racdba
oracle.install.db.rootconfig.executeRootScript=true
oracle.install.db.rootconfig.configMethod=ROOT
# 如果oracle.install.option配置爲INSTALL_DB_AND_CONFIG,則需配置以下參數:
# oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
# oracle.install.db.config.starterdb.globalDBName=orcl19c
# oracle.install.db.config.starterdb.SID=orcl19c
# oracle.install.db.config.starterdb.memoryLimit=6144
# oracle.install.db.config.starterdb.password.ALL=oracle

EOF

執行安裝

開始靜默安裝Oracle數據庫軟件

# su - oracle
$ $ORACLE_HOME/runInstaller -silent -ignorePrereq -responseFile /home/oracle/etc/db_install.rsp

注意,安裝其間會提示輸入root用戶密碼以執行腳本。

啓動監聽

Oracle用戶下啓動監聽

# su - oracle
$ lsnrctl start

創建數據庫

修改響應文件dbca.rsp

複製到/home/oracle/etc/目錄下,授權。

# su - oracle
$ cp $ORACLE_HOME/assistants/dbca/dbca.rsp /home/oracle/etc/
$ chmod 600 /home/oracle/etc/dbca.rsp 

編輯響應文件

可以把需要修改的內容直接追加到文件末尾

# cat >> /home/oracle/etc/dbca.rsp <<EOF
gdbName=orcl19c
sid=orcl19c
templateName=General_Purpose.dbc
characterSet=AL32UTF8
sysPassword=oracle
systemPassword=oracle
dbsnmpPassword=oracle
totalMemory=6144
databaseType=OLTP

EOF

執行建庫

開始靜默創建數據庫

# su - oracle
$ dbca -silent -createDatabase -responseFile /home/oracle/etc/dbca.rsp

至此,Oracle數據庫安裝部署完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章