淘先锋技术网

首页 1 2 3 4 5 6 7

oracle11g静默安装

前言

  • oracle安装目录和数据目录为/data/oracle
  • 必须配置yum源,至少要有本地yum源

安装oracle的初始化脚本,需要使用root执行

vi init_oracle.sh
把下面内容复制进去

#!/bin/bash
## 服务器hostname
HOSTNAME=db-01
## 配置主机名和hosts
if [ "$(hostname)" != "${HOSTNAME}" ]; then
	echo "${HOSTNAME}" > /etc/hostname
	hostname ${HOSTNAME}
	IP=`ip r | egrep "eth|ens" | grep "proto kernel" | awk '{print $9}'`
	echo "$IP ${HOSTNAME}" >>/etc/hosts
fi
echo -e "\033[32m ---- hostname设置成功  设置为${HOSTNAME} ---------- \033[0m"
sleep 1
## 关闭防火墙和selinux
[ "$(getenforce)" != "Disabled" ] && sed -i "s/SELINUX=enforcing/SELINUX=disabled/g "/etc/selinux/config && setenforce 0
systemctl stop firewalld
systemctl disable firewalld
echo -e "\033[32m ---- 已关闭selinux和防火墙 ------------------------ \033[0m"
sleep 1
## 创建用户及组
groupadd oinstall 
groupadd dba
useradd -g oinstall -G dba oracle
#修改oracle用户的密码为oracle,正式环境建议把密码改复杂些
echo oracle | passwd --stdin oracle
echo -e "\033[32m ---- 已创建oracle用户,属组为oinstall dba ---------- \033[0m"
sleep 1
#安装oracle所需依赖包
echo -e "\033[32m ---- yum安装oracle所需依赖包 ----------------------- \033[0m"
yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel ksh

## 修改内核参数
echo -e "\033[32m ---- 修改内核参数 ---------------------------------- \033[0m"
grep "fs.aio-max-nr" /etc/sysctl.conf || cat >> /etc/sysctl.conf << EOF
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 100 128 
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
EOF
sysctl -p
sleep 1
## 用户的限制文件
echo -e "\033[32m ---- 设置用户的限制文件 ---------------------------- \033[0m"
grep "oracle" /etc/security/limits.conf  || 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
EOF
sleep 1
## 修改/etc/pam.d/login文件
echo -e "\033[32m ---- 修改/etc/pam.d/login文件 ---------------------- \033[0m"
grep "pam_limits.so" /etc/pam.d/login ||echo "session  required   /lib64/security/pam_limits.so 
session  required   pam_limits.so" >> /etc/pam.d/login
sleep 1
## 创建安装目录
echo -e "\033[32m ---- 创建安装目录为/data/oracle -------------------- \033[0m"
mkdir -p /data/oracle/{product/11.2.0/dbhome_1,oradata,oraInventory,recovery_area}
chown -R oracle:oinstall /data/oracle
chmod 775 /data/oracle

执行初始化脚本

chmod +x init_oracle.sh
./init_oracle.sh

上传安装包到/data

官网下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

解压安装包

安装包上传到/data/目录下,常见的安装包有两种。
1、 这类安装包只需要unzip解压一次即可;
在这里插入图片描述

unzip oracle_11g_soft_rhel.zip

2、这类安装包,需要解压1和2。
在这里插入图片描述

unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip

授权

chown -R oracle.oinstall database/
chmod 777 -R database/

登录oracle用户,设置环境变量

切换到oracle用户后,后面的安装全部用oracle用户执行,除非特殊说明的。

su - oracle
cat "ORACLE_BASE" .bash_profile || echo 'export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64:/usr/local/lib64
export ORACLE_SID=weihe
export NLS_ >> .bash_profile
source .bash_profile 

安装oracle

数据库安装

db_install.rsp为安装应答配置文件
修改配置文件db_install.rsp,并安装

cd /data/database/response
vim db_install.rsp

在指令模式下输入:set nu可以显示行号,下列行的内容需要修改。

29行 oracle.install.option=INSTALL_DB_SWONLY	//安装方式选项
37行 ORACLE_HOSTNAME=db-01	//你的服务器hostname
42行 UNIX_GROUP_NAME=oinstall	//前面创建的oracle属组
49行 INVENTORY_LOCATION=/data/oracle/oraInventory	//数据存放位置
86行 SELECTED_LANGUAGES=en,zh_CN	//指定安装的语言,指定英文和中文
91行 ORACLE_HOME=/data/oracle/product/11.2.0/dbhome_1	//oracle家目录
96行 ORACLE_BASE=/data/oracle	//oracle安装目录
107行 oracle.install.db.InstallEdition=EE	//ORACLE安装版本,EE是企业版
154行 oracle.install.db.DBA_GROUP=dba	//前面创建的oracle用户dba属组
160行 oracle.install.db.OPER_GROUP=oinstall		//前面创建的oracle用户工作属组
213行 oracle.install.db.config.starterdb.characterSet=ZHS16GBK	//设置oracle字符集,常用ZHS16GBK和AL32UTF8,根据实际情况决定。都支持中文。
336行 oracle.install.db.config.starterdb.storageType=FILE_SYSTEM_STORAGE	//指定存储类型,单机为文件系统存储,rac使用ASM_STORAGE
344行 oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=/data/oracle/oradata	//文件系统存储的位置
351行 oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=/data/oracle/recovery_area	//备份存储路径
400行 DECLINE_SECURITY_UPDATES=true    //一定要设为true

执行安装命令

cd /data/database/
./runInstaller -silent -responseFile /data/database/response/db_install.rsp 
  • [INS-13013] 目标环境不满足一些必需要求 加上 -ignorePrereq
  • 安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在进行,如果出现[FATAL],则安装程序已经停止了。

成功安装的输出打印如下:

[oracle@db-01 database]$ ./runInstaller -silent -responseFile /data/database/response/db_install.rsp 
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 6088 MB    通过
检查交换空间: 必须大于 150 MB。   实际为 1023 MB    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2021-04-01_11-49-27AM. 请稍候...[oracle@db-01 database]$ [WARNING] [INS-32055] 主产品清单位于 Oracle 基目录中。
   原因: 主产品清单位于 Oracle 基目录中。
   操作: Oracle 建议将此主产品清单放置在 Oracle 基目录之外的位置中。
[WARNING] [INS-13014] 目标环境不满足一些可选要求。
   原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2021-04-01_11-49-27AM/installActions2021-04-01_11-49-27AM.log
   操作: 从日志 /tmp/OraInstall2021-04-01_11-49-27AM/installActions2021-04-01_11-49-27AM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。
可以在以下位置找到本次安装会话的日志:
 /data/oracle/oraInventory/logs/installActions2021-04-01_11-49-27AM.log
Oracle Database 11g 的 安装 已成功。
请查看 '/data/oracle/oraInventory/logs/silentInstall2021-04-01_11-49-27AM.log' 以获取详细资料。

以 root 用户的身份执行以下脚本:
	1. /data/oracle/oraInventory/orainstRoot.sh
	2. /data/oracle/product/11.2.0/dbhome_1/root.sh


Successfully Setup Software.

[oracle@db-01 database]$ 

在出现下列信息的时候,需要执行配置脚本,新打开一个窗口使用root用户执行。

以 root 用户的身份执行以下脚本:
	1. /data/oracle/oraInventory/orainstRoot.sh
	2. /data/oracle/product/11.2.0/dbhome_1/root.sh
[root@db-01 ~]# /data/oracle/oraInventory/orainstRoot.sh
更改权限/data/oracle/oraInventory.
添加组的读取和写入权限。
删除全局的读取, 写入和执行权限。

更改组名/data/oracle/oraInventory 到 oinstall.
脚本的执行已完成。
[root@db-01 ~]# /data/oracle/product/11.2.0/dbhome_1/root.sh
Check /data/oracle/product/11.2.0/dbhome_1/install/root_db-01_2021-04-01_11-55-57.log for the output of root script
[root@db-01 ~]# 

出现“Successfully Setup Software.”后,说明安装成功,继续下一步。

配置监听

  • netca.rsp 是建立监听、本地服务名等网络设置应答的配置,该配置文件一般不需要改

执行初始化命令

cd /data/database
netca /silent /responsefile /data/database/response/netca.rsp
[oracle@db-01 database]$ netca /silent /responsefile /data/database/response/netca.rsp

正在对命令行参数进行语法分析:
参数"silent" = true
参数"responsefile" = /data/database/response/netca.rsp
完成对命令行参数进行语法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 监听程序启动:
    正在运行监听程序控制: 
      /data/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start LISTENER
    监听程序控制完成。
    监听程序已成功启动。
监听程序配置完成。
成功完成 Oracle Net Services 配置。退出代码是0
  • 执行成功后,会在/opt/oracle/11.2.0/network/admin目录下生成sqlnet.ora和listener.ora两个文件
    在这里插入图片描述
  • 完成后通过命令ss -lnt”可以查看到1521端口已开
[oracle@db-01 database]$ ss -lnt | grep 1521
LISTEN     0      128          *:1521                     *:* 

建库

  • dbca.rsp 创建数据库时应答配置文件
  • 修改配置文件response/dbca.rsp,静默建立新库
50行 RESPONSEFILE_VERSION = "11.2.0"  //不能更改
60行 OPERATION_TYPE = "createDatabase"	//操作类型为创建数据库
78行 GDBNAME = "weihe.oracle.com"  //全局数据库的名字=SID+主机域名,sid可以自己定制,但是不要使用默认的orcl
170行 SID = "weihe"    //对应的实例名字,在前面设置环境变量的时候,有配置sid,需要一致。
190行 TEMPLATENAME = "General_Purpose.dbc" //建库用的模板文件
360行 DATAFILEDESTINATION = /data/oracle/oradata //数据文件存放目录
370行 RECOVERYAREADESTINATION=/data/oracle/recovery_area //恢复数据存放目录
418行 CHARACTERSET = "ZHS16GBK"   //字符集,重要!!! 建库后一般不能更改,所以建库前要确定清楚。
553行 TOTALMEMORY = "5120"    //oracle内存5120MB,可以根据服务器资源情况调整。
589行 SYSDBAPASSWORD = "password"	//sysdba用户的密码,在这里不设置的话,后面会提示要输入。
211行 SYSPASSWORD = "password"	//sys用户的密码,在这里不设置的话,后面会提示要输入。
221行 SYSTEMPASSWORD = "password"	//system用户的密码,在这里不设置的话,后面会提示要输入。
  • 配置完之后,执行命令
dbca -silent -responseFile /data/database/response/dbca.rsp
  • 执行命令返回建库进度,到100%表示已经完成安装。
  • 创建完成后,可以使用sqlplus登录数据库了。
    在这里插入图片描述

附监听配置,很多人在修改监听端口的时候会报错,这里给一份监听的模板:
监听文件所在目录为:$ORACLE_HOME/network/admin/
listener.ora

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = weihe)
    )
   (SID_DESC =
       (GLOBAL_DBNAME = ORACLE)
       (SID_NAME = weihe)
      )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 11521))
    )
  )

ADR_BASE_LISTENER = /data/oracle

tnsnames.ora

WEIHE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.5)(PORT = 11521))
  (CONNECT_DATA =
    (SERVER = DEDICATED)
    (SERVICE_NAME = weihe)
))

有关创建用户、创建表空间、授权等文档,参考:
https://blog.csdn.net/qq_39853326/article/details/114586246