导读
作者:杨漆
16年关系型数据库管理,从oracle 9i 、10g、11g、12c到Mysql5.5、5.6、5.7、8.0 到TiDB获得3个OCP、2个OCM;运维路上不平坦,跌过不少坑、熬过许多夜。把工作笔记整理出来分享给大伙儿,希望帮到大家少走弯路、少熬夜。
最近新项目建设需要(外部开发商程序限制),要求部署20套独立Oracle数据库(缘何如此设计不详,接到任务只能执行)。
1.如果按照官方文档一台一台开图形化方式部署,20套DB的搭建初步预估会消耗掉一位DBA一周的时间。
2.如果采用静默安装+手动部署的方式,也将消耗2~3个工作日。
提问:如何提高产能,让一位DBA在半天内完成20套及以上Oracle DB的部署呢(甚至DBA可以不用参与,主机工程师就能轻松搞定此项工作)?
答:调试一套有效的脚本,一键安装,自动化批量部署。
哈哈 有了它,仅需一位主机工程师在1个工作日便能搞定上百台Oracle DB的安装部署,人均产能大大提升(且减少人为操作失误概率),企业产能、效率得到飞速提升!
分享一套我调试好的自动化脚本如下,希望可以帮到大家:
(仅抛砖引玉,各位大拿可在此脚本基础上根据自身环境、设备硬件情况做调整、二次开发)
#!/bin/sh
echo "start Oracle install !"
## ifconfig eth0|grep 'inet addr'|awk -F ":" '{print $2}'|awk '{print $1}' ##取本机IP地址
## ifconfig ens192|awk -F '[ ]+' 'NR==2 {print$3}' ##取本机IP地址
## 配置 Ip 和 hostname自解析
cat >>/etc/hosts<<EOF
127.0.0.1 `hostname`
::1 `hostname`
`ifconfig ens192|grep 'inet'|awk '{print $2}'` `hostname`
EOF
## redhat7.2 需要打的包 (不同版本需要打的OS包不同,需根据实际情况调整)
yum -y install autoconf
yum -y install automake
yum -y install binutils
yum -y install binutils-devel
yum -y install bison
yum -y install cpp
yum -y install dos2unix
yum -y install ftp
yum -y install gcc
yum -y install gcc-c++
yum -y install lrzsz
yum -y install python-devel
yum -y install compat-db*
yum -y install compat-gcc-34
yum -y install compat-gcc-34-c++
yum -y install compat-libcap1
yum -y install compat-libstdc++-33
yum -y install compat-libstdc++-33.i686
yum -y install glibc-*
yum -y install glibc-*.i686
yum -y install libXpm-*.i686
yum -y install libXp.so.6
yum -y install libXt.so.6
yum -y install libXtst.so.6
yum -y install libXext
yum -y install libXext.i686
yum -y install libXtst
yum -y install libXtst.i686
yum -y install libX11
yum -y install libX11.i686
yum -y install libXau
yum -y install libXau.i686
yum -y install libxcb
yum -y install libxcb.i686
yum -y install libXi
yum -y install libXi.i686
yum -y install libXtst
yum -y install libstdc++-docs
yum -y install libgcc_s.so.1
yum -y install libstdc++.i686
yum -y install libstdc++-devel
yum -y install libstdc++-devel.i686
yum -y install libaio
yum -y install libaio.i686
yum -y install libaio-devel
yum -y install libaio-devel.i686
yum -y install ksh
yum -y install libXp
yum -y install libaio-devel
yum -y install numactl
yum -y install numactl-devel
yum -y install make
yum -y install sysstat
yum -y install unixODBC
yum -y install unixODBC-devel
yum -y install elfutils-libelf-devel
yum -y install redhat-lsb-core
## 解压oracle12c安装软件(软件可官网下载,都是正版)
cd /root/
unzip linuxx64_12201_database.zip
## 创建用户、目的地址、并授予权限
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/useradd -g oinstall -G dba oracle
chown -R oracle:oinstall /root/
mkdir -p /u01/app/oraInventory
mkdir -p /u01/app/oracle/product
chown -R oracle:oinstall /u01/app/
chmod -R 775 /u01/app
##设置OS级 Oracle用户密码
echo "oracle" |passwd --stdin oracle
echo inventory_loc=/u01/app/oraInventory >>/etc/oraInst.loc
echo inst_group=oinstall >>/etc/oraInst.loc
##关闭selinux 和 防火墙
cat >>/etc/sysconfig/selinux<< EOF
SELINUX=disabled
EOF
service iptables stop
## 16G 内存的内核参数设置(结合自己机器实际情况进行调整):
cat >>/etc/sysctl.conf<< EOF
# 16G Memory OLTP
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194300
kernel.shmmax = 13743895347
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
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
EOF
sysctl -p
##用户限制
cat >>/etc/security/limits.conf<< EOF
* soft nproc 4096
root soft nproc unlimited
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
oracle hard memlock 134217728
oracle soft memlock 134217728
EOF
## 修改用户登陆限制
echo "session required /lib/security/pam_limits.so">>/etc/pam.d/login
echo "session required pam_limits.so">>/etc/pam.d/login
##配置环境变量
su - oracle
cat >>~/.bash_profile<< EOF
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
umask 022
PATH=/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/sbin
LD_LIBRARY_PATH=/usr/lib:/usr/X11R6/lib
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product
ORACLE_SID=orcl
LD_LIBRARY_PATH=$ORACLE_HOME/rdbms/lib:$ORACLE_HOME/lib:$LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$PATH
export PATH LD_LIBRARY_PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export LC_ALL=en_US.UTF-8
export PATH
EOF
chown oracle:oinstall -R /root/
cd /root/database
##安装数据库软件 + DB
./runInstaller -force -silent -responseFile /root/db.rsp
##在root下执行
exit
/usr/local/oraInventory/orainstRoot.sh
/root/database/runInstaller -executeConfigTools -responseFile /root/db.rsp -silent
## 安装监听
su - oracle
netca /silent /responsefile /root/netca.rsp
lsnrctl start
## 安装DB,此步可省略
dbca -silent -createDatabase -responseFile /root/dbca.rsp
##设置开机自启动
sed -i 's/db_1:N/db_1:Y/g' /etc/oratab
sed -i 's/ORACLE_HOME_LISTNER=$1/ORACLE_HOME_LISTNER=$ORACLE_HOME/g' $ORACLE_HOME/bin/dbstart
sed -i 's/ORACLE_HOME_LISTNER=$1/ORACLE_HOME_LISTNER=$ORACLE_HOME/g' $ORACLE_HOME/bin/dbshut
cat >>/etc/rc.d/rc.local<<EOF
su oracle -lc “/u01/app/oracle/product/12/db_1/bin/lsnrctl start”
su oracle -lc “/u01/app/oracle/product/12/db_1/bin/dbstart”
EOF
chmod +x /etc/rc.d/rc.local
echo "Oracle Success installed !"
echo "Oracle Success installed !"
echo "Oracle Success installed !"
复制
备注:新server上需要提前准备好的4个基础工作:
- 1.数据库安装包 linuxx64_12201_database.zip
- 2.yum挂载好OS镜像
- 3.oracle_singleDB_auto_install.sh自动化部署脚本
- 4.静默应答文件
最后修改时间:2021-07-29 10:31:02
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
单机还好,你要是rac就牛了
3年前

1
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
800次阅读
2025-04-18 14:18:38
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
602次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
551次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
537次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
511次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
503次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
473次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
386次阅读
2025-05-05 19:28:36
Oracle数据库Hint大全,31个使用案例,速来下载!
陈举超
371次阅读
2025-04-16 21:25:19
Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-00600)
潇湘秦
334次阅读
2025-04-16 17:05:16