oracle拨云见日第4篇之脚本安装11g
Posted 飞哥大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle拨云见日第4篇之脚本安装11g相关的知识,希望对你有一定的参考价值。
引言
上一篇文章带领大家在redhat6.4上一步一步安装了oracle11g,并且详细讲解了每一步操作,图文并茂相信可以帮到一些有需要朋友!
成功动手搭建过一次的朋友们有没有发现,在redhat上安装Oracle没有什么难得技术,只是操作步骤比较繁琐,总结出来主要步骤大概分为以下8个步骤:
1、安装依赖包
2、网络、主机名配置
3、内核参数修改
4、创建oracle安装对应的路径
5、修改oracle用户的策略(软硬限制),策略要每次登录生效
6、增加组、oracle用户及设置密码
7、资源配置文件修改(在~/bash_profile文件中设置环境变量)
8、关闭防火墙、selinux
oracle安装脚本
以上这8步操作其实没有什么技术含量,我们可以把这8步操作封装成5个脚本,以后我们就不需要再一步一步配置了,只要sh执行你的脚本就可以,脚本还可以复用,这样方便很多。
下面和大家分享一下我写的oracle安装准备脚本,这是一版比较基础的。朋友们把我的脚本看明白了,可以在我的脚本基础上,定制编写属于你自己的脚本。
1prepare.sh
#!/bin/sh
cat < /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=DB88
EOF
hostname DB88
cat < /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.8.88 DB88
EOF
`sed -i s/ONBOOT=no/ONBOOT=yes/g /etc/sysconfig/network-scripts/ifcfg-eth0`
service iptables stop
setenforce 0
`sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config`
mount -o loop /dev/cdrom /mnt
rm -rf /etc/yum.repos.d/*
cat < /etc/yum.repos.d/server.repo
[server]
name=server
baseurl=file:///mnt/Server
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
EOF
yum -y install binutils-* \\
compat-libstdc++-* \\
compat-libcap1-* \\
elfutils-libelf-* \\
elfutils-libelf-devel-* \\
gcc* \\
gcc-c++-* \\
glibc* \\
glibc-common-* \\
glibc-devel-* \\
glibc-headers-* \\
ksh-* \\
libaio-* \\
libaio-devel-* \\
libgcc-* \\
libstdc++-* \\
libstdc++-devel* \\
make-* \\
sysstat-* \\
unixODBC-* \\
unixODBC-devel-* \\
numactl-devel-* \\
pdksh-* \\
kernel-headers* \\
wget
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
echo "oracle" | passwd --stdin oracle
echo "umask 022" >>/home/oracle/.bash_profile
echo "stty erase ^H" >>/home/oracle/.bash_profile
echo "PATH=\\$PATH:\\$HOME/bin" >>/home/oracle/.bash_profile
echo "TMP=/tmp" >>/home/oracle/.bash_profile
echo "TMPDIR=\\$TMP" >>/home/oracle/.bash_profile
echo "ORACLE_BASE=/home/oracle/app/oracle" >>/home/oracle/.bash_profile
echo "ORACLE_HOME=\\$ORACLE_BASE/product/11.2.0/db_1" >>/home/oracle/.bash_profile
echo "ORACLE_SID=ecom" >>/home/oracle/.bash_profile
echo "ORACLE_TERM=xterm" >>/home/oracle/.bash_profile
echo "PATH=\\$PATH:\\$HOME/bin:\\$ORACLE_HOME/bin" >>/home/oracle/.bash_profile
echo "LD_LIBRARY_PATH=\\$ORACLE_HOME/lib:/lib:/usr/lib" >>/home/oracle/.bash_profile
echo "CLASSPATH=\\$ORACLE_HOME/JRE:\\$ORACLE_HOME/jlib:\\$ORACLE_HOME/rdbms/jlib" >>/home/oracle/.bash_profile
echo NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS">>/home/oracle/.bash_profile
echo "NLS_LANG=AMERICAN_AMERICA.ZHS16GBK" >>/home/oracle/.bash_profile
echo "export EDITOR=vi" >>/home/oracle/.bash_profile
echo "export TMP TMPDIR ORACLE_TERM CLASSPATH NLS_DATE_FORMAT ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH NLS_LANG EDITOR" >>/home/oracle/.bash_profile
mkdir -p /home/oracle/app/oracle
chmod -R 777 /home/oracle/app/oracle
chown -R oracle.oinstall /home/oracle
cd /tmp
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip
rm -rf p10404530_112030_Linux-x86-64_1of7.zip p10404530_112030_Linux-x86-64_2of7.zip
chmod -R 777 /tmp/database
chown -R oracle.oinstall /tmp/database
2prelimits.sh
#!/bin/bash
#Purpose:Change the /etc/security/limits.conf.
#Usage:Log on as the superuser(root),and then execute the command:#./3prelimits.sh
#Author:Asher Huang
echo "Now modify the /etc/security/limits.conf,but backup it named /etc/security/limits.conf.bak before"
cp /etc/security/limits.conf /etc/security/limits.conf.bak
echo "oracle soft nproc 2047" >>/etc/security/limits.conf
echo "oracle hard nproc 16384" >>/etc/security/limits.conf
echo "oracle soft nofile 1024" >>/etc/security/limits.conf
echo "oracle hard nofile 65536" >>/etc/security/limits.conf
echo "grid soft nproc 2047" >>/etc/security/limits.conf
echo "grid hard nproc 16384" >>/etc/security/limits.conf
echo "grid soft nofile 1024" >>/etc/security/limits.conf
echo "grid hard nofile 65536" >>/etc/security/limits.conf
echo "Modifing the /etc/security/limits.conf has been succeed."
3prelogin.sh
#!/bin/bash
#Purpose:Modify the /etc/pam.d/login.
#Usage:Log on as the superuser(root),and then execute the command:#./4prelimits.sh
#Author:Asher Huang
echo "Now modify the /etc/pam.d/login,but with a backup named /etc/pam.d/login.bak"
cp /etc/pam.d/login /etc/pam.d/login.bak
echo "session required /lib/security/pam_limits.so" >>/etc/pam.d/login
echo "session required pam_limits.so" >>/etc/pam.d/login
echo "Modifing the /etc/pam.d/login has been succeed."
4preprofile.sh
#!/bin/bash
#Purpose:Modify the /etc/profile.
#Usage:Log on as the superuser(root),and then execute the command:#./5preprofile.sh
#Author:Asher Huang
echo "Now modify the /etc/profile,but with a backup named /etc/profile.bak"
cp /etc/profile /etc/profile.bak
echo if [ $USER = "oracle" ]||[ $USER = "grid" ]; then >> /etc/profile
echo if [ $SHELL = "/bin/ksh" ]; then >> /etc/profile
echo ulimit -p 16384 >> /etc/profile
echo ulimit -n 65536 >> /etc/profile
echo else >> /etc/profile
echo ulimit -u 16384 -n 65536 >> /etc/profile
echo fi >> /etc/profile
echo fi >> /etc/profile
echo "Modifing the /etc/profile has been succeed."
5presysctl.sh
#!/bin/bash
#Purpose:Modify the /etc/sysctl.conf.
#Usage:Log on as the superuser(root),and then execute the command:#./6presysctl.sh
#Author:Asher Huang
echo "Now modify the /etc/sysctl.conf,but with a backup named /etc/sysctl.bak"
cp /etc/sysctl.conf /etc/sysctl.conf.bak
echo "fs.aio-max-nr = 1048576" >> /etc/sysctl.conf
echo "fs.file-max = 6815744" >> /etc/sysctl.conf
echo "kernel.shmall = 2097152" >> /etc/sysctl.conf
echo "kernel.shmmax = 1054472192" >> /etc/sysctl.conf
echo "kernel.shmmni = 4096" >> /etc/sysctl.conf
echo "kernel.sem = 250 32000 100 128" >> /etc/sysctl.conf
echo "net.ipv4.ip_local_port_range = 9000 65500" >> /etc/sysctl.conf
echo "net.core.rmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.rmem_max = 4194304" >> /etc/sysctl.conf
echo "net.core.wmem_default = 262144" >> /etc/sysctl.conf
echo "net.core.wmem_max = 1048586" >> /etc/sysctl.conf
echo "net.ipv4.tcp_wmem = 262144 262144 262144" >> /etc/sysctl.conf
echo "net.ipv4.tcp_rmem = 4194304 4194304 4194304" >> /etc/sysctl.conf
echo "Modifing the /etc/sysctl.conf has been succeed."
echo "Now make the changes take effect....."
sysctl -p
至此,oracle安装前期准备脚本编写完成了,下面让我们来测试一下劳动成果,进行后续的操作吧!
实战操作
1、挂载光盘
2、编写脚本
我们的脚本内容太多,只截取了一部分
3、给脚本授权
4、手工执行脚本
脚本运行时,输出的内容过多,只截取了开始部分
5、图形化详细安装
1、使用Oracle用户运行(图形界面)
2、安装oracle软件详细步骤
a、配置安全更新
是否通过oracle帐号,接收来自于oracle的安全更新
如果你有oracle帐号,在上面填写你的邮箱地址,然后勾选选项。如果没有oracle帐号,上面的邮箱不用填写,此处也不用勾选。
你没有设置一个邮箱地址。你不想了解配置中的关键安全问题?
b、下载更新软件
本次安装是为了更新软件,软件更新包括对安装程序系统要求检查补丁集更新(PSUS)的建议更新,和其他推荐的修补程序。
(1)通过oracle帐号下载
(2)使用提前下载好的软件更新
(3)跳过更新
我们是安装oracle,所以选择第3项,跳过更新
c、安装选项
选择下面这些安装的选项之这
注意:如果你想更新一个已经存在的oracle 11gR2实例,请选择"Upgrade an existing database"选项
(1)创建和配置一个数据库
(2)只安装数据库软件
(3)升级一个已经存在的数据库
此处选择:只安装数据库软件。后面我们再单独定制的,安装数据库实例。
d、Grid安装选项
选择一种你想安装的数据库类型
(1)安装单实例数据库
(2)安装oracle RAC集群数据库
(3)安装oracle RAC集群的一个节点
此处选择:安装单实例数据库。后面我们再单独讲RAC集群的安装
e、选择语言
选择 英语。虽然有简体中文,但是不建议选择,翻译的非常不舒服
f、数据库版本
你想安装哪个版本的数据库?
此处有2类选择,一种是企业版,一种是标准版(功能有限制)。在生产中我们选择企业版,它的功能是最全的。
g、安装位置
在oracle用户设置环境变量时,在.bash_profile中配置了ORACLE_BASE和ORACLE_HOME的路径,此处在安装oracle时,它会自动识别。
h、Create Inventory
选择Inventory的位置,保持默认即可。这个位置是ORACLE_BASE下创建的oraInventory目录,用于注册ORACLE_HOME下安装的数据库组件及其版本,存放oracle软件安装的目录信息。oracle数据库软件的升级、增删组件,都要用到Inventory。oracle的界面会创建一个有oraInst.ora的文件,指定全局的Inventory。
i、操作系统组
选择oracle使用的操作系统用户组
j、依赖条件检查
此处依赖检查时,提示:物理内存小了,少一个rpm包。可以忽略,并不影响我们安装oracle。
k、汇总信息
l、安装产品
安装过程中,弹框提示:使用root用户执行如下2个脚本
编辑更改/home/oracle/app/oraInventory的权限。
正在为组添加读写权限。
正在删除world的读、写、执行权限。
正在将/home/oracle/app/oraInventory的组名更改为oinstall。
脚本的执行已完成。
设置环境变量
m、完成
3、创建数据库详细步骤
a、在命令行下直接输入dbca
b、欢迎界面
c、创建一个数据库
如果已经有数据库了,此处还可以:修改数据库、删除数据库、管理模板
d、数据库模板
我们安装的是单实例数据库,此处选择默认项事务型数据库即可。如果安装的是RAC集群,要选择Custom Database。如果做的是OLAP,选项Data Warehouse。
e、设置全局库名和实例名
在oracle用户设置环境变量时,在.bash_profile中配置了ORACLE_SID,此处填写的值要和ORACLE_SID一样,注意大小写。
f、配置OEM
OEM是页面形式的监控和管理程序,此处不用安装,后面可以单独配置。
g、设置oracle软件中的用户密码
此处建议,所有用户设置成相同的密码,方便好记。
h、存储设置
我们安装的是单实例,所以使用默认的FileSystem即可。如果安装的是RAC集群,就可选择ASM磁盘组了。
i、闪回配置
闪回区用于恢复数据,以免系统发生故障时丢失数据, 启用归档用于将数据库设置为ARCHIVELOG模式,使当数据库出现失败时可以完全恢复数据库数据。
为了加快安装速度,此处不配置了,后面可以手工单独配置。
j、安装演示数据
如果选择,它会自动帮你创建几个用户、表、视图、数据。我们不用选择,后面可以自己根据需求来创建。
k、初始化参数
Memooey选项
默认是Typical,Oracle自动分配SGA和PGA,推荐物理内存的70%-80%
Sizing选项
同时连接到数据库的客户端进程最大数目,和java的数据库连接池结合使用。
Character Set选项
设置字符符集为UTF-8
Connection Mode选项
选择数据库工作在专用模式还是共享模式,生产中使用专用模式比较多,性能好一些。
l、数据库存储
此处用来设置:数据文件、控制文件、日志文件组
m、开始创建库
解锁scott用户,并为其设置密码
退出结束
至此,完成数据库建立的全部过程。
4、验证oracle安装结果
登录到oracle数据库环境下,查看当前库状态
从上图的查询结果,我们可以看出来,当前数据库是可读可写状态,oracle已经成功的安装了。
结束语
到此本篇文章就结束了,送给那些:
1、准备学习Oracle的朋友们
2、已经学习了Oracle,但是没有在Linux环境下安装成功oracle的朋友们
3、对Oracle感兴趣、对Linux感兴趣的朋友们
4、Oracle刚入门的朋友们
有一段时间没有写关于Oracle的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!
以上是关于oracle拨云见日第4篇之脚本安装11g的主要内容,如果未能解决你的问题,请参考以下文章
oracle拨云见日第8篇之Oracle11.2.0.1.0升级11.2.0.4.3
oracle拨云见日第9篇之Oracle10.2.0.1升级11.2.0.4.3