对于数据库的安装来说,我想很多朋友都是在虚拟机中完成实验过程的。
但在生产环境中,和虚拟机环境还是有很多区别和需要注意的地方的。
就以我近期为铁路主数据中心安装数据库的过程举例,为大家说明一下在生产环境中,安装Oracle的过程。
 
我们首先要了解清楚安装的具体信息,如:
数据库服务器的IP地址,服务器主机名,服务器用户名和口令;
操作系统版本(建议重装安装操作系统,这样更符合数据库的要求)
数据库版本,数据库安装路径,数据库实例名,数据库用户名和口令,数据库安装目录结构,数据相关配置等。
 
此片文章略过这些内容,直接进入安装过程。
 
 
第一步、创建相关组和用户:
 
# 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
 
第二步、挂在操作系统ISO文件:
 
由于生产环境中,可能存在缺少rpm包的情况,我们需要通过操作系统ISO介质,手动安装这些缺失的RPM包。
将安装rhel-server-7.7-x86_64-dvd.iso文件上传到/media目录中,进行挂载。
 
# mount -t iso9660 /media/rhel-server-7.7-x86_64-dvd.iso /mnt/iso7
 
同时也可以添加到/etc/fstab文件最后,实现重启后自己挂载
/media/rhel-server-7.7-x86_64-dvd.iso /mnt/iso7 iso9660 defaults 0 0
 
 
第三步、配置yum源
 
编辑/etc/yum.repo.d/目录中的文件,添加本地yum源
 
# vi local.repo
[local]
name=RHEL7.4
baseurl=file:///mnt/iso7
enabled=1
gpgcheck=0
 
 
第四步、安装PRM包
 
我们可以从Oracle的官方文档中了解到相关版本,所需要的RPM包。
 
本次安装的是Oracle 11.2.0.4 版本,因此安装的RPM包如下:
 
binutils-2.20.51.0.2-5.11.el6 (x86_64)
compat-libcap1-1.10-1 (x86_64)
compat-libstdc++-33-3.2.3-69.el6 (x86_64)
compat-libstdc++-33-3.2.3-69.el6.i686
gcc-4.4.4-13.el6 (x86_64)
gcc-c++-4.4.4-13.el6 (x86_64)
glibc-2.12-1.7.el6 (i686)
glibc-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6 (x86_64)
glibc-devel-2.12-1.7.el6.i686
ksh
libgcc-4.4.4-13.el6 (i686)
libgcc-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6 (x86_64)
libstdc++-4.4.4-13.el6.i686
libstdc++-devel-4.4.4-13.el6 (x86_64)
libstdc++-devel-4.4.4-13.el6.i686
libaio-0.3.107-10.el6 (x86_64)
libaio-0.3.107-10.el6.i686
libaio-devel-0.3.107-10.el6 (x86_64)
libaio-devel-0.3.107-10.el6.i686
make-3.81-19.el6
sysstat-9.0.4-11.el6 (x86_64)
 
 
使用yum命令进行安装:
yum install gcc compat-libcap1 gcc-c++ libgcc libstdc++ libaio libaio-devel make sysstat ksh glibc glibc-devel libstdc++-devel elfutils-libelf-develglibc-2.17-292.el7.i686 glibc-devel-2.17-292.el7.i686 libstdc++-4.8.5-39.el7.i686 libstdc++-devel-4.8.5-39.el7.i686 libaio-0.3.109-13.el7.i686 libaio-devel-0.3.109- 13.el7.i686
 
安装完成后,使用如下命令检查RPM包是否全部安装
rpm -q --qf '%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n' binutils \
compat-libcap1 \
compat-libstdc++-33 \
gcc \
gcc-c++ \
glibc \
glibc-devel \
ksh \
libgcc \
libstdc++ \
libstdc++-devel \
libaio \
libaio-devel \
make \
sysstat
 
由于在Redhat 7版本中安装11g数据库,需要使用RHEL6版本中的相关包,因此需要使用RHEL6的安装介质安装如下包:
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.i686.rpm
 
 
第五步、添加操作系统内核参数:
 
编辑/etc/sysctl.conf文件,增加相关内容
# vi /etc/sysctl.conf
 
# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
 
# oracle-database-server-12cR2-preinstall setting for fs.file-max is 6815744
fs.file-max = 6815744
 
# oracle-database-server-12cR2-preinstall setting for kernel.sem is '250 32000 100 128'
kernel.sem = 250 32000 100 128
 
# oracle-database-server-12cR2-preinstall setting for kernel.shmmni is 4096
kernel.shmmni = 4096
 
# oracle-database-server-12cR2-preinstall setting for kernel.shmall is 1073741824 on x86_64
kernel.shmall = 1073741824
 
# oracle-database-server-12cR2-preinstall setting for kernel.shmmax is 4398046511104 on x86_64
kernel.shmmax = 4398046511104
 
# oracle-database-server-12cR2-preinstall setting for kernel.panic_on_oops is 1 per Orabug 19212317
kernel.panic_on_oops = 1
 
# oracle-database-server-12cR2-preinstall setting for net.core.rmem_default is 262144
net.core.rmem_default = 262144
 
# oracle-database-server-12cR2-preinstall setting for net.core.rmem_max is 4194304
net.core.rmem_max = 4194304
 
# oracle-database-server-12cR2-preinstall setting for net.core.wmem_default is 262144
net.core.wmem_default = 262144
 
# oracle-database-server-12cR2-preinstall setting for net.core.wmem_max is 1048576
net.core.wmem_max = 1048576
 
# oracle-database-server-12cR2-preinstall setting for net.ipv4.conf.all.rp_filter is 2
net.ipv4.conf.all.rp_filter = 2
 
# oracle-database-server-12cR2-preinstall setting for net.ipv4.conf.default.rp_filter is 2
net.ipv4.conf.default.rp_filter = 2
 
# oracle-database-server-12cR2-preinstall setting for fs.aio-max-nr is 1048576
fs.aio-max-nr = 1048576
 
# oracle-database-server-12cR2-preinstall setting for net.ipv4.ip_local_port_range is 9000 65500
net.ipv4.ip_local_port_range = 9000 65500
 
 
 
第六步、修改用户资源配置
 
编辑/etc/security/limits.conf文件,增加相关内容:
# vi /etc/security/limits.conf
 
# /etc/security/limits.conf
#
#This file sets the resource limits for the users logged in via PAM.
#It does not affect resource limits of the system services.
#
#Also note that configuration files in /etc/security/limits.d directory,
#which are read in alphabetical order, override the settings in this
#file in case the domain is the same or more specific.
#That means for example that setting a limit for wildcard domain here
#can be overriden with a wildcard setting in a config file in the
#subdirectory, but a user specific setting here can be overriden only
#with a user specific setting in the subdirectory.
#
#Each line describes a limit for a user in the form:
#
#<domain>        <type>  <item>  <value>
#
#Where:
#<domain> can be:
#        - a user name
#        - a group name, with @group syntax
#        - the wildcard *, for default entry
#        - the wildcard %, can be also used with %group syntax,
#                 for maxlogin limit
#
#<type> can have the two values:
#        - "soft" for enforcing the soft limits
#        - "hard" for enforcing hard limits
#
#<item> can be one of the following:
#        - core - limits the core file size (KB)
#        - data - max data size (KB)
#        - fsize - maximum filesize (KB)
#        - memlock - max locked-in-memory address space (KB)
#        - nofile - max number of open file descriptors
#        - rss - max resident set size (KB)
#        - stack - max stack size (KB)
#        - cpu - max CPU time (MIN)
#        - nproc - max number of processes
#        - as - address space limit (KB)
#        - maxlogins - max number of logins for this user
#        - maxsyslogins - max number of logins on the system
#        - priority - the priority to run user process with
#        - locks - max number of file locks the user can hold
#        - sigpending - max number of pending signals
#        - msgqueue - max memory used by POSIX message queues (bytes)
#        - nice - max nice priority allowed to raise to values: [-20, 19]
#        - rtprio - max realtime priority
#
#<domain>      <type>  <item>         <value>
#
 
#*               soft    core            0
#*               hard    rss             10000
#@student        hard    nproc           20
#@faculty        soft    nproc           20
#@faculty        hard    nproc           50
#ftp             hard    nproc           0
#@student        -       maxlogins       4
 
# End of file
 
oracle          hard    nofile          65536
oracle          soft    nofile          1024
oracle          hard    nproc           16384
oracle          soft    nproc           2047
 
 
oracle          hard    stack           32768
oracle          soft    stack           10240
oracle          hard    memlock         3145728
oracle          soft    memlock         3145728
 
 
第七步、安装图形化界面(可选)
 
如果需要通过图形进行数据库的安装,可以配置此步骤:
 
yum -y groupinstall "X Window System"
yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
 
配置默认启动为图形方式
unlink /etc/systemd/system/default.target
ln -fs /lib/systemd/system/graphical.target /etc/systemd/system/default.target
 
 
第八步、配置Oracle用户环境变量
 
在oracle用户家目录中,/home/oracle/.bash_profile文件里添加如下内容:
 
export ORACLE_BASE=/home/oracle/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=CADB
 
 
第九步、静默安装数据库软件
 
由于,大多数生产环境都不建议安装gnome,所以没有图形化的支持。因此我们大多数使用响应文件进行数据库软件的静默安装:
 
./runInstaller -silent -responseFile /home/oracle/db_install.rsp
 
db_install.rsp脚本内容为:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=ca-database1
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/app/oraInventory
SELECTED_LANGUAGES=en
ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/home/oracle/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.EEOptionsSelection=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oper
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
DECLINE_SECURITY_UPDATES=true
oracle.installer.autoupdates.option=SKIP_UPDATES
oracle.install.db.isRACOneInstall=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.enableSecuritySettings=true
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.automatedBackup.enable=false
 
安装过程如下:
$ ./runInstaller -silent -responseFile /home/oracle/db_install.rsp
Starting Oracle Universal Installer...
 
Checking Temp space: must be greater than 120 MB.   Actual 1087 MB    Passed
Checking swap space: must be greater than 150 MB.   Actual 8191 MB    Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2019-10-28_06-08-19PM. Please wait ...[oracle@sdedu database]$ [WARNING] [INS-13014] Target environment do not meet some optional requirements.
   CAUSE: Some of the optional prerequisites are not met. See logs for details. /u01/app/oraInventory/logs/installActions2019-10-28_06-08-19PM.log
   ACTION: Identify the list of failed prerequisite checks from the log: /u01/app/oraInventory/logs/installActions2019-10-28_06-08-19PM.log. Then either from the log file or from installation manual find the appropriate configuration to meet the prerequisites and fix it manually.
You can find the log of this install session at:
 /u01/app/oraInventory/logs/installActions2019-10-28_06-08-19PM.log
The installation of Oracle Database 11g was successful.
Please check '/u01/app/oraInventory/logs/silentInstall2019-10-28_06-08-19PM.log' for more details.
 
As a root user, execute the following script(s):
        1. /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
 
 
Successfully Setup Software.
 
 
 
第十步、静默创建数据库
 
使用响应文件进行数据库的静默安装:
 
dbca -silent -responseFile dbca.rsp
 
dbca.rsp 脚本内容为:
#-----------------------------------------------------------------------------
# GENERAL section is required for all types of database creations.
#-----------------------------------------------------------------------------
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = ""
SID = "CADB"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
CHARACTERSET = "ZHS16GBK"
#-----------------------*** End of CREATEDATABASE section ***------------------------
 
 
第十一步、连接数据库
 
$ sqlplus / as sysdba
 
SQL*Plus: Release 11.2.0.4.0 Production on Tue Oct 29 11:00:16 2019
 
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
 
SQL> select name from v$database;
 
NAME
---------
CADB
 
 
最后,数据库安装完成。