前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在半个工作日内完成20套以上Oracle DB的部署?

如何在半个工作日内完成20套以上Oracle DB的部署?

原创
作者头像
杨漆
修改2021-06-21 11:01:31
2450
修改2021-06-21 11:01:31
举报
文章被收录于专栏:TidbTidb

**导读**

> 作者:杨漆

> 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上需要提前准备好的3个基础工作:

1.数据库安装包 linuxx64_12201_database.zip

2.yum挂载好OS镜像

3.oracle_singleDB_auto_install.sh自动化部署脚本

4.静默应答文件

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档