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