CentOS静默安装Oracle
一、准备工作
1.安装环境介绍
系统:CentOS 7.5 64位
Oracle版本:Oracle 11gR2
2.下载Oracle安装文件
下载的两个压缩包:
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
3.检查系统版本
命令:$ uname -m
命令:$ cat /etc/redhat-release
4.修改主机名
$ sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network
$ hostname oracledb
5.添加主机名与IP对应记录
$ vim /etc/hosts
在末尾处添加:本机IP地址 oracledb
6.关闭Selinux
$ sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
$ setenforce 0
7.创建用户和组
root用户:创建Oracle安装组oinstall,数据库管理员组dba,及Oracle用户
$ groupadd -g 200 oinstall
$ groupadd -g 201 dba
$ useradd -u 440 -g oinstall -G dba oracle #(主组oinstall,其它组:dba)
$ passwd oracle #(P)
$ id oracle #查看oracle用户信息
8.修改内核参数(root用户)
$ vim /etc/sysctl.conf
在末尾添加如下内容:
net.ipv4.ip_local_port_range= 9000 65500
fs.file-max = 6815744
kernel.shmall = 10523004
kernel.shmmax = 6465333657
kernel.shmmni = 4096
kernel.sem = 250 32000 100128
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=4194304
net.core.wmem_max=1048576
fs.aio-max-nr = 1048576
$ sysctl -p #使配置生效
9.修改系统资源限制(root用户)
$ vim /etc/security/limits.conf
在末尾添加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
10.修改用户验证选项(root用户)
$ vim /etc/pam.d/login
在 session required pam_namespace.so 下面添加如下内容:
session required pam_limits.so
11.创建安装目录及设置权限(root用户)
$ mkdir -p /opt/app/oracle/
$ chmod 755 /opt/app/oracle/
$ chown oracle.oinstall -R /opt/app/oracle/
12.设置Oracle环境变量
$ su - oracle #切换至oracle用户,可以开启两个远程窗口,分别登录root用户和oracle用户
$ vim ~/.bash_profile
在注释原PATH后,增加以下内容:
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export ORACLE_SID=orcl
export ORACLE_PID=ora11g
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
$ source ~/.bash_profile #立即生效
$ env | grep ORA #查看环境变量是否完成
二、安装及配置
1.安装依赖(root用户)
所需依赖如下:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
使用yum -y install安装依赖
$ yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
检查是否全部安装,如果存在没安装的单独进行安装
$ rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
2.安装Oracle
安装unzip:yum -y install unzip。如已安装请忽略。
将下载的Oracle压缩包放入/opt目录下,在/opt目录下进行解压。
$ unzip linux.x64_11gR2_database_1of2.zip
$ unzip linux.x64_11gR2_database_2of2.zip
修改database目录权限
$ chown oracle.oinstall -R /opt/database/
解压后得到database目录,其中包含response目录,该目录中有三个rsp文件,用来作为静默安装时的应答文件的模板。
三个文件作用分别是:
db_install.rsp:安装应答
dbca.rsp:创建数据库应答
netca.rsp:建立监听、本地服务名等网络设置的应答
将db_install.rsp备份一份
$ cp db_install.rsp db_install.rsp.bak
修改静默安装的配置文件
$ vim db_install.rsp
修改结果如下:
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracledb
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/opt/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/opt/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/opt/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ora11g
oracle.install.db.config.starterdb.SID=ora11g
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=1500
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true //一定要设为 true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
$ less /opt/database/response/db_install.rsp |grep -v "#"|grep -v "^$" #查看配置
开始静默安装(oracle用户)
$ cd /opt/database/ #进入/opt/database目录
$ ./runInstaller -silent -force -responseFile /opt/database/response/db_install.rsp
安装需要一段时间,如果想看安装进度,可以再打开一个窗口,输出会话日志。
$ tail -f /opt/app/oracle/oraInventory/logs/installActions2019-05-29_11-40-32AM.log
(/opt/app/oracle/oraInventory/logs/installActions2019-05-29_11-40-32AM.log上图红框部分)
当出现Successfully Setup Software.证明已经安装成功,然后根据提示以root用户执行脚本。
$ sh /opt/app/oracle/oraInventory/orainstRoot.sh
$ sh /opt/app/oracle/product/11.2.0/db_1/root.sh
三、配置监听程序
监听命令
启动监听:lsnrctl start
停止监听:lsnrctl stop
重启监听:lsnrctl reload
查看监听:lsnrctl status
1.配置监听(oracle用户)
$ $ORACLE_HOME/bin/netca /silent /responseFile /opt/database/response/netca.rsp
2.查看监听(oracle用户)
$ lsnrctl status
3.静默dbca建库
$ vim /opt/database/response/dbca.rsp
修改如下内容:
GDBNAME = "orcl" //78 行 编码
SID="orcl" //149行 编码 SID
CHARACTERSET="AL32UTF8" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码
执行:
$ $ORACLE_HOME/bin/dbca -silent -responseFile /opt/database/response/dbca.rsp
执行完后会先清屏,然后输入两次密码后开始自动创建。
4.启动数据库
$ sqlplus / as sysdba
使用show parameter;或者select table_name from dba_tables看看是否正常。
5.开机自动监听、启动Oracle
$ vim /etc/oratab
改为如下内容:
$ vim /etc/rc.local
在末尾添加如下内容:
su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'
然后执行
$ chmod +x /etc/rc.local
6.开放1521端口
查看防火墙状态
$ systemctl status firewalld.service
启动|关闭|重新启动 防火墙
$ systemctl [start|stop|restart] firewalld.service
查看端口是否开放:
$ firewall-cmd --query-port=1521/tcp
永久开放1521端口号:
$ firewall-cmd --permanent --zone=public --add-port=1521/tcp
重启防火墙:
$ systemctl restart firewalld.service