Centos7.3使用脚本自动静默安装oracle11.2.0.4数据库
一直想着写一个脚本实现自动化安装oracle数据库。以下内容实验过几次了,可能还存在些小问题,如果在跑以下脚本中遇到问题,自己仔细排查即可
挣扎了好久,总算还是没实现,目前只能通过依次执行多个脚本来安装,起码比以前一个一个复制粘贴和修改好多了
我总共写了四个脚本来实现。主要是困在几个问题上,导致无法直接整合到一个脚本中,一个是脚本的执行用户需要从root转oracle再转root再转oracle(这个不知道能不能直接用sudo来解决,否则su - root时需要输入密码,这部分不好写),另一个是在oracle安装完成后需要另开一个窗口使用root用户执行两个脚本,还有一个是oracle安装过程中貌似会在./runInstaller命令时,会出现返回命令提示符了,过一两分钟,还会接着执行下去显示执行结果。
注意事项:这里我们需要用到两个oracle压缩文件,下载地址为https://pan.baidu.com/s/1c3zNv4 请自行下载1of7和2of7这两个文件,默认将所有用到的文件放到root家目录下。以下四个脚本文件也先统一写好,放在root家目录下
环境:
系统:centos7.3
内存:8G
第一个脚本preinstalloracle.sh,以root用户运行。执行完后需要重启电脑,需要注意看一下hostname是否修改好了
#!/bin/bash
#以root用户运行
#注意修改第三行的ip为自己的ip地址
echo "172.16.1.110 orcl orcl" >> /etc/hosts
cat >> /etc/sysconfig/network <<EOF
network=yes
hostname=orcl
EOF
第二个脚本secinstalloracle.sh,以root用户运行
#!/bin/bash
#以root用户运行
#内核参数设置kernel.shmall=2097152其中16G物理内存建议设为4194304类推8G应为2097152
#kernel.shmmax=4294967296一般设置为物理内存的一半,8G:4294967296也可以全部用完8***
yum install -y binutils compat-libstdc++- elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel ksh numactl-devel zip unzip
cat >> /etc/sysctl.conf <<EOF
fs.file-max =
fs.aio-max-nr =
kernel.shmall =
kernel.shmmax =
kernel.shmmni =
kernel.sem =
net.ipv4.ip_local_port_range =
net.core.rmem_default =
net.core.rmem_max =
net.core.wmem_default =
net.core.wmem_max =
EOF
sysctl -p #使配置文件生效
cat >> /etc/security/limits.conf <<EOF
oracle soft nproc
oracle hard nproc
oracle soft nofile
oracle hard nofile
EOF
cat >> /etc/pam.d/login <<EOF
session required /lib/security/pam_limits.so
session required pam_limits.so
EOF
cat >> /etc/profile <<EOF
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p
ulimit -n
else
ulimit -u -n
fi
fi
EOF
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
mkdir -p /u01/app/oracle/product/11.2./db_1
mkdir -p /u01/app/oracle/oradata
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/fast_recovery_area
chown -R oracle:oinstall /u01/app/oracle
chown -R oracle:oinstall /u01/app/oraInventory
chmod -R /u01/app/oracle
chmod -R /u01/app/oraInventory
systemctl disable firewalld
systemctl stop firewalld
setenforce
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
mv p13390677_112040_Linux-x86-64_1of7.zip /home/oracle
mv p13390677_112040_Linux-x86-64_2of7.zip /home/oracle
cp thiinstalloracle.sh /home/oracle/
cp fouinstalloracle.sh /home/oracle/
第三个脚本thiinstalloracle.sh,以oracle用户运行,su - oracle
#!/bin/bash
#以oracle用户运行,su - oracle
cat >> .bash_profile <<EOF
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=\$ORACLE_BASE/product/11.2./db_1
ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.UTF8
PATH=\$PATH:\$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
umask
EOF
source .bash_profile
unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
chown -R oracle:oinstall database
cd database/response
cp db_install.rsp db_install.rsp.bak
sed -i "s/^oracle.install.option=/oracle.install.option=INSTALL_DB_SWONLY/g" db_install.rsp
sed -i "s/^ORACLE_HOSTNAME=/ORACLE_HOSTNAME= orcl/g" db_install.rsp
sed -i "s/^UNIX_GROUP_NAME=/UNIX_GROUP_NAME=oinstall/g" db_install.rsp
sed -i "s/^INVENTORY_LOCATION=/INVENTORY_LOCATION=\/u01\/app\/oraInventory/g" db_install.rsp
sed -i "s/^SELECTED_LANGUAGES=en/SELECTED_LANGUAGES=en,zh_CN/g" db_install.rsp
sed -i "s/^ORACLE_HOME=/ORACLE_HOME=\/u01\/app\/oracle\/product\/11.2.0\/db_1/g" db_install.rsp
sed -i "s/^ORACLE_BASE=/ORACLE_BASE=\/u01\/app\/oracle/g" db_install.rsp
sed -i "s/^oracle.install.db.InstallEdition=/oracle.install.db.InstallEdition=EE/g" db_install.rsp
sed -i "s/^oracle.install.db.DBA_GROUP=/oracle.install.db.DBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.OPER_GROUP=/oracle.install.db.OPER_GROUP=dba/g" db_install.rsp
sed -i "s/^DECLINE_SECURITY_UPDATES=/DECLINE_SECURITY_UPDATES=true/g" db_install.rsp
cd ..
./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp #可能会包INS-13014目标不满足一些可选要求,查看日志,如果是pdksh缺少的话,可以忽略直接进行下一步。没有异常,不报错的话会在三两分钟后出现使用root用户执行orainstRoot.sh和root.sh的提示
第三脚本执行结果截图,需要等到最后那行提示success才可以回车,大概需要三四分钟
查看/tmp/OraInstall2019-05-10_03-42-57PM/installActions2019-05-10_03-42-57PM.log,可以看到其中一部分内容如下,如果只有这个报错,可以忽略跳过
所以,我们接着另开一个端口,以root用户身份执行
sh /u01/app/oraInventory/orainstRoot.sh
sh /u01/app/oracle/product/11.2./db_1/root.sh
第四个脚本fouinstalloracle.sh,以oracle用户运行,执行以下脚本之前需要先检测以下oracle用户环境变量是否设置正确,测试方法输入netc然后tab补全,如果不能自动补全为netca,则需要再次执行
source .bash_profile,直到可以自动补全netca和dbca等命令为止
#/bin/bash
#以oracle用户运行
netca /silent /responseFile /home/oracle/database/response/netca.rsp #静默方式配置监听
ls $ORACLE_HOME/network/admin/ #正常情况下会自动生成listener.ora sqlnet.ora
cd /home/oracle/database/response
cp dbca.rsp db
sed -i '78s/.*/GDBNAME= "orcl"/' dbca.rsp
sed -i '170s/.*/SID = "orcl"/' dbca.rsp
sed -i '211s/.*/SYSPASSWORD = "123456"/' dbca.rsp
sed -i '221s/.*/SYSTEMPASSWORD = "123456"/' dbca.rsp
sed -i '252s/.*/SYSMANPASSWORD = "123456"/' dbca.rsp
sed -i '262s/.*/DBSNMPPASSWORD = "123456"/' dbca.rsp
sed -i '360s/.*/DATAFILEDESTINATION=\/u01\/app\/oracle\/oradata/' dbca.rsp
sed -i '370s/.*/RECOVERYAREADESTINATION=\/u01\/app\/oracle\/fast_recovery_area/' dbca.rsp
sed -i '418s/.*/CHARACTERSET= "ZHS16GBK"/' dbca.rsp
sed -i '553s/.*/TOTALMEMORY= "3276"/' dbca.rsp #值设置为物理内存的60%
dbca -silent -responseFile /home/oracle/database/response/dbca.rsp #开始静默安装,安装结束后会提示100%,数据库也跟着起来了
ps -ef | grep ora_ | grep -v grep #检测oracle进程
lsnrctl status
最后,我们尝试创建一个用户,从外部进行连接,如果可以正常连接,说明没有问题了
sqlplus / as sysdba #进入数据库
select status from v$instance; #查看数据库运行状态
create user test identified by test; #创建数据库用户,连接时数据库实例名为orcl,用户名test密码test
grant connect to test;
grant resource to test;
使用navicat从另一台电脑上连接oracle数据库,测试效果
Centos7.3使用脚本自动静默安装oracle11.2.0.4数据库的更多相关文章
- redhat7.2静默安装Oracle11.2.0.4
redhat7.2静默安装Oracle11.2.0.4我们将oracle安装到/opt/oracle目录下,后面的环境变量则以此为基础.一.设置主机hosts映射vi /etc/hosts[plain ...
- RHEL5.6静默安装oracle11.2.0数据库实例脚本
脚本:单实例静默安装echo '[GENERAL] RESPONSEFILE_VERSION = "11.2.0" //查看虚拟机的版本,不能更改 OPERATION_TYPE = ...
- CentOS-6.4-DVD系统中安装Oracle-11.2.0.4
完整版见https://jadyer.github.io/2014/05/18/centos-install-oracle/ /** * CentOS-6.4-DVD系统中安装Oracle-11.2. ...
- Windows8安装Oracle11.2.0.1-0624,附带 DBCA建库、netca创建监听、配置PLSQL、定义客户端的环境变量 NLS_LANG、定义客户端的环境变量 TNS_ADMIN01
Windows8安装Oracle11.2.0.1 操作系统:Windows 8 企业版 64bit Oracle:11. ...
- CentOS 7.1静默安装11.2.0.3 64位单机数据库软件
第1章 CentOS 7.1静默安装11.2.0.3 64位单机数据库软件 1.1 安装前的准备工作 1.1.1 软件准备 1.1.2 检查硬件 注意这里的内存应该满足要求,不然 ...
- windows 系统如何安装 mysql 8.0.15 数据库?
windows 系统如何安装 mysql 8.0.15 数据库? 1. 下载安装包 下载地址:https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0. ...
- centos7静黙安装Oracle11.2.0软件响应文件oracle_install.rsp
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 oracle.i ...
- Centos7.3安装Oracle11.2.0.3
1.创建用户用户组 [root@smallcloud ~]# groupadd oinstall [root@smallcloud ~]# groupadd dba [root@smallcloud ...
- oracle静默安装完成后,重启数据库,错误ORA-01102: cannot mount database in EXCLUSIVE mode
静默安装oracle完成后,登录数据库激活用户,无法更改,提示未载入数据库,关闭后重启报错: 1.找到安装目录下的$ORACLE_HOME/dbs/ 目录下,查看当前使用lkORCL文件的用户(fus ...
随机推荐
- Oid 类
参考地址:https://docs.microsoft.com/zh-cn/dotnet/api/system.security.cryptography.oid?redirectedfrom=MSD ...
- Codeforces_Round_547 (Div. 3)题解
题目链接 传送门 A题 题目 题意 给你两个正整数\(n\)和\(m\),然后你可以进行无数次操作(每次操作可以将\(n\)扩大两倍,或者扩大三倍),问你是否能够得到\(m\). 代码实现如下 n, ...
- [转载]Fiddler界面详解
转载地址:http://www.cnblogs.com/chengchengla1990/p/5681775.html Statistics 页签 完整页签如下图: Statistics 页签显示当前 ...
- 题解 UVa11752
题目大意 输出所有小于 \(2^{64}-1\) 的正整数 \(n\), 使得 \(\exists p, q, a, b\in \mathbb{N+}, p\neq q\rightarrow a^p= ...
- LeetCode 983. Minimum Cost For Tickets
原题链接在这里:https://leetcode.com/problems/minimum-cost-for-tickets/ 题目: In a country popular for train t ...
- 极限挑战----3小时完成OA系统(失败)
今天老师要求三小时把OA系统做出了,之前一点也没接触过,对其不了解,而且这几天一直把时间放在六级了,对Web重视有点少. 最终我只做了登录和校验,可以显示富文本框,但不能提交数据库. 总之还有还多没有 ...
- 使用rbenv 进行ruby 多版本的管理
今天需要安装一个ruby 包,但是ruby 版本过低,以前使用过rvm,但是在安装rvm 的时候发现系统有异常 错误信息,发现还有另外一个不错的可选工具 rbenv 安装 我是mac 系统 使用bre ...
- [USACO06FEB] Stall Reservations 贪心
[USACO06FEB] Stall Reservations 贪心 \(n\)头牛,每头牛占用时间区间\([l_i,r_i]\),一个牛棚每个时间点只能被一头牛占用,问最少新建多少个牛棚,并且每头牛 ...
- 洛谷 P4071 [SDOI2016]排列计数 题解
P4071 [SDOI2016]排列计数 题目描述 求有多少种长度为 n 的序列 A,满足以下条件: 1 ~ n 这 n 个数在序列中各出现了一次 若第 i 个数 A[i] 的值为 i,则称 i 是稳 ...
- git下载指定分支到本地
从网上查了很多方法有很多种,自我感觉下面这种更方便 git clone xxx.git --branch 分支名/dev/...