前言:我自己根据网上的帖子尝试静默安装Oracle11g失败了很多次,所以将自己最终测试成功的步骤写下来,希望可以帮助到更多的人。
文章目录
一、系统环境
操作系统:CentOS 7.7 64位
内存:2G
二、安装前的准备
1、关闭SeLinux
[root@localhost ~]# vim /etc/selinux/config
SELINUX=disabled
SELINUXTYPE=targeted
2、关闭防火墙
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# systemctl disable firewalld
3、安装依赖包、其他工具包
[root@localhost ~]# yum -y install gcc gcc-c++ make binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst numactl-devel sysstat unixODBC unixODBC-devel kernel-headers pcre-devel readline
[root@localhost ~]# yum -y install unzip
[root@localhost ~]# rpm -ivh rlwrap-0.43-2.el7.x86_64.rpm --nodeps
4、检测是否31个包都有安装
[root@localhost ~]# 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
5、创建用户、用户组
[root@localhost ~]# groupadd oinstall && groupadd dba && useradd -g oinstall -G dba oracle
[root@localhost ~]# echo "111111" | passwd --stdin oracle && id oracle
6、修改内核参数
[root@localhost ~]# vim /etc/sysctl.conf
添加以下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
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
使内核新配置生效
[root@localhost ~]# sysctl -p
7、修改用户限制
[root@localhost ~]# vim /etc/security/limits.conf
添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
8、修改/etc/pam.d/login 文件
[root@localhost ~]# vim /etc/pam.d/login
添加以下内容
session required /lib64/security/pam_limits.so
session required pam_limits.so
9、修改/etc/profile 文件
[root@localhost ~]# vim /etc/profile
添加以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
使配置生效
[root@localhost ~]# source /etc/profile
10、修改主机名
[root@localhost ~]# hostnamectl set-hostname db
11、设置 oracle 用户环境变量
[root@localhost ~]# su - oracle
[oracle@db ~]$ vim .bash_profile
注释掉下面一行
export $PATH
然后,添加以下内容
export ORACLE_BASE=/data/u01/app/oracle
export ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=american_america.AL32UTF8
使配置生效
[oracle@db ~]$ source .bash_profile
12、重启
[oracle@db ~]$ exit
[root@localhost ~]# reboot
三、安装Oracle数据库
1、创建安装包文件存放目录
[root@db ~]# mkdir -p /data/u01/{app,software}
[root@db ~]# mkdir -p /data/u01/app/oracle/product/11.2.0/dbhome_1
[root@db ~]# mkdir /data/u01/app/oracle/{oradata,oraInventory,fast_recovery_area}
2、授权并上传软件包
[root@db ~]# chown -R oracle:oinstall /data/u01
[root@db ~]# chmod -R 775 /data/u01
以oracle用户上传Oracle安装包/data/u01/software目录下
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
== oracle 用户下执行 ==
3、解压安装包文件
[oracle@db ~]$ cd /data/u01/software
[oracle@db software]$ unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
4、修改静默安装响应文件
[oracle@db software]$ mkdir ~/response && cd ~/response
[oracle@db software]$ cp /data/u01/software/database/response/* ~/response
[oracle@db response]$ vim db_install.rsp
内容如下(不清楚的不要随意删除):
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
# 安装并自动配置数据库实例和监听 建议首次安装用:INSTALL_DB_AND_CONFIG
oracle.install.option=INSTALL_DB_AND_CONFIG
ORACLE_HOSTNAME=db
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/u01/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/u01/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=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=orcl
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=512
oracle.install.db.config.starterdb.installExampleSchemas=true
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=Aa111111
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=/data/u01/app/oracle/oradata
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
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
5、开始安装
[root@db response]$ cd /data/u01/software/database/
[root@db database]$ ./runInstaller -silent -ignorePrereq -responseFile /home/oracle/response/db_install.rsp
三、设置服务启动
== oracle 用户下执行 ==
1) 修改$ORACLE_HOME/bin/dbstart
[oracle@db ~]$ vim ORACLE_HOME/bin/dbstart
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
2) 修改$ORACLE_HOME/bin/dbshut
[oracle@db ~]$ vim $ORACLE_HOME/bin/dbshut
将 ORACLE_HOME_LISTNER=$1 修改为 ORACLE_HOME_LISTNER=$ORACLE_HOME
3) 修改/etc/oratab文件
[oracle@db ~]$ vim /etc/oratab
修改oracle服务启动配置,将文件中下面一行中的“N”,修改为“Y”,让数据库启动时候一起启动实例
orcl:/data/u01/app/oracle/product/11.2.0/dbhome_1:Y
== root 用户下执行 ==
4) 建立自启动脚本
[root@db ~]# vim /etc/rc.d/init.d/oracle
添加以下内容(有些值如ORACLE_HOME和ORACLE_USER等根据实际情况可以修改):
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is an Object-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/var/lock/subsys/oracle
ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_USER=oracle
case "$1" in
'start')
if [ -f $LOCKFILE ]; then
echo $0 already running.
exit 1
fi
echo -n $"Starting Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch $LOCKFILE
;;
'stop')
if [ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo -n $"Stopping Oracle Database:"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm -f $LOCKFILE
;;
'restart')
$0 stop
$0 start
;;
'status')
if [ -f $LOCKFILE ]; then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
5) 修改/etc/init.d/oracle服务文件权限
[root@db ~]# chmod 755 /etc/init.d/oracle
6) 设置为开机启动
[root@db ~]# chkconfig oracle on
7) 进行测试
# 测试启动:
[root@db ~]# service oracle start
# 测试停止:
[root@db ~]# service oracle stop
# 测试重启:
[root@db ~]# service oracle restart
8) 重启。
[root@db ~]# reboot
== oracle用户下执行 ==
9) 检查服务是否启动
[oracle@db ~]$ lsnarctl status
[oracle@db ~]$ ps -ef|grep tns
四、PLSQL配置
1、安装PLSQL工具
PLSQL安装目录:D:\Program Files\PLSQL Developer
2、安装Oracle客户端及常用工具包
1)下载Oracle12版本的客户端,以及SQL Plus、Data Pump工具包,解压至PLSQL安装目录下。
Oracle客户端及常用工具包解压目录:D:\Program Files\PLSQL Developer\instantclient_12_2
注:因为11g的客户端工具中没有Data Pump工具,所以我直接下载了12版本的客户端和SQL Plus、Data Pump工具包
2)在Oracle客户端目录下新建tnsname.ora,并添加以下内容:
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.191.131)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE = DEDICATED)
(SERVICE_NAME = orcl)
)
)
3)配置环境变量
ORACLE_HOME: D:\Program Files\PLSQL Developer\instantclient_12_2
TNS_ADMIN : D:\Program Files\PLSQL Developer\instantclient_12_2
NLS_LANG: AMERICAN_AMERICA.AL32UTF8
PATH: 添加:%ORACLE_HOME%
4)配置PLSQL
找到Configure(配置)–>Preferences(首选项)–>Oracle–>Connection(连接),配置下面两项:
Oracle Home(Oracle 主目录名):D:\Program Files\PLSQL Developer\instantclient_12_2
OCI Library(OCI 库):D:\Program Files\PLSQL Developer\instantclient_12_2\oci.dll
四、静默删除
[root@db ~]# dbca -silent -deleteDatabase -sourceDB <数据库名>