oracle拨云见日第4篇之脚本安装11g

莫道桑榆晚,为霞尚满天。这篇文章主要讲述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.1localhost localhost.localdomain localhost4 localhost4.localdomain4
::1localhost 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 installbinutils-* \\
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的读、写、执行权限。
【oracle拨云见日第4篇之脚本安装11g】正在将/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的博文了,感谢一直关注我的新老朋友,有你们的支持我会一起写下去!     

    推荐阅读