分分钟搭建Oracle环境 (r9笔记第23天)
在Oracle运维中,有一个很基础的工作就是安装数据库软件,而这个工作一般少则需要花费个把小时,多则半天。
如果我们有大批量的服务器安装任务,那么这种时候你肯定会希望从这种重复性劳动中解放出来,人工操作还是会有或多或少的差错,而且耗时。
所以我简单写了下面的脚本,可以很流畅的安装好Oracle软件,很多基础工作都统一配置好了。
比如目前我的脚本结构如下:
-rw-r--r-- 1 root root 4422615040 Jun 7 14:34 11204.tar
-rw-r--r-- 1 root root 608 Jun 7 15:19 1_ora_yum.sh
-rw-r--r-- 1 root root 695 Jun 7 14:34 2_os_init.sh
-rw-r--r-- 1 root root 185 Jun 7 15:24 3_fd_init.sh
-rw-r--r-- 1 root root 58 Jun 7 15:06 4_ora_profile.sh
-rw-r--r-- 1 root root 142 Jun 7 15:36 5_init_orahome.lst
-rw-r--r-- 1 root root 216 Jun 7 16:07 6_install_db.sh
-rw-r--r-- 1 root root 546 Jun 7 15:06 bash_profile
-rw-r--r-- 1 root root 110 Jun 7 16:07 install_all.sh
-rw-r--r-- 1 root root 1444 Jun 7 14:34 rhel6-source.repo
rhel6-source.repo是一个yum配置文件,是一个统一的yum源。
其它的脚本内容都是固定的模式统一配置。
1_ora_yum.sh是yum源安装的软件包
2_os_init.sh是配置系统级的操作,比如创建组,创建用户,资源配置等
3_fd_init.sh是配置文件系统级的目录,分区
4_ora_profile.sh是配置profile的内容,其实模板已经准备好了bash_profile,到时候直接拷贝即可。
5_init_orahome.lst是配置安装包的路径
6_install_db.sh是克隆安装数据库软件
其实上面的几个步骤看起来挺多,其实操作过程单一,很多配置完全可以统一。
可以统一放到脚本install_all.sh里面,只运行这个脚本,其实实践下来,安装一套软件,几分钟完全可以搞定。
脚本1的内容如下:
[root@dbcon_WT01 ora_init]# cat 1_ora_yum.sh
cp rhel6-source.repo /etc/yum.repos.d
yum list
yum install binutils -y
yum install compat-db -y
yum install control-center -y
yum install gcc -y
yum install gcc-c -y
yum install gcc-c++ -y
yum install glibc -y
yum install glibc-common -y
yum install gnome-libs -y
yum install libstdc -y
yum install libstdc++-devel -y
yum install make -y
yum install pdksh -y
yum install sysstat -y
yum install xscreensaver -y
yum install libaio-devel -y
yum install libaio -y
yum install setarch -y
yum install openmotif -y
yum install compat-gcc -y
yum install compat-libstdc -y
yum install gnome -y
脚本2 内容如下:
[root@dbcon_WT01 ora_init]# cat 2_os_init.sh
groupadd oinstall
groupadd dba
chattr -i /etc/passwd /etc/shadow
useradd -g oinstall -G dba oracle
echo "oracle soft nproc 2047" >> /etc/security/limits.conf
echo "oracle hard nproc 16384" >> /etc/security/limits.conf
echo "oracle soft nofile 65536" >> /etc/security/limits.conf
echo "oracle hard nofile 65536" >> /etc/security/limits.conf
echo "oracle soft stack 10240" >> /etc/security/limits.conf
echo "oracle soft memlock unlimited" >> /etc/security/limits.conf
echo "oracle hard memlock unlimited" >> /etc/security/limits.conf
脚本3的内容如下:
[root@dbcon_WT01 ora_init]# cat 3_fd_init.dh
cd /
mkdir -p /home/U01
ln -s /home/U01 U01
mkdir -p /U01/app/oracle/product/11.2.0.4
chown -R oracle:oinstall /U01/app/oracle
chown -R oracle:oinstall /U01/app/oracle/product/11.2.0.4
脚本4的内容如下:
[root@dbcon_WT01 ora_init]# cat 4_ora_profile.sh
cp /root/ora_init/bash_profile /home/oracle/.bash_profile
脚本5的内容如下:
[root@dbcon_WT01 ora_init]# cat 5_init_orahome.lst
mv /root/ora_init/11204.tar /U01/app/oracle/product
chown oracle:oinstall /U01/app/oracle/product/11204.tar
cp 6_install_db.sh /home/oracle
脚本6的内容如下:
[root@dbcon_WT01 ora_init]# cat 6_install_db.sh
cd /U01/app/oracle/product
tar -xvf /U01/app/oracle/product/11204.tar
perl $ORACLE_HOME/clone/bin/clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=OraDb11g_home1
bash_profile的内容如下:
[root@dbcon_WT01 ora_init]# cat bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export ORACLE_BASE=/U01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0.4
export ORACLE_SID=accdb0
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export TNS_ADMIN=/U01/app/oracle/product/11.2.0.4/network/admin/
umask 022
stty erase ^h
所有的脚本就这些了。安装的时候可以1个步骤1个步骤来完成,或者统一运行install_all.sh完成前5步,最后的安装软件的部分还是建议在oracle用户下安装。
- linux下搭建django记录笔记,未完稿,节后继续
- Java案例-打印图形与π
- 关于两个简单问题的分析(r9笔记第10天)
- 初步解读Golang中的接口相关编写方法
- Go语言获取Windows下文件是否隐藏
- Java案例-求a+aa+aaa+.......+aaaaaaaaa=?
- 【Go 语言社区】算法课程 第一季 第6节 建立三角形
- 最近的几个技术问题总结和答疑(五)(r9笔记第9天)
- hive学习笔记——Hive表中数据的导入和导出
- Java案例-求和与打印九九乘法表
- hive学习笔记——Hive表的创建
- 和开发讨论的一个数据变更需求(r9笔记第8天)
- Java案例-分数查等级程序
- Go语言的标准输入-scan 和bufio
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- laravel 错误处理,接口错误返回json代码
- Thinkphp 3.2框架使用Redis的方法详解
- Laravel validate error处理,ajax,json示例
- PHP 图片合成、仿微信群头像的方法示例
- python写文件时覆盖原来的实例方法
- Laravel 解决419错误 -ajax请求错误的问题(CSRF验证)
- PHP判断当前使用的是什么浏览器(推荐)
- PHP 计算两个时间段之间交集的天数示例
- laravel model 两表联查示例
- Laravel使用模型实现like模糊查询的例子
- Laravel 模型使用软删除-左连接查询-表起别名示例
- PHP上传图片到数据库并显示的实例代码
- Laravel 5.5 实现禁用用户注册示例
- 解决php用mysql方式连接数据库出现Deprecated报错问题
- Laravel自动生成UUID,从建表到使用详解