Linux下的ORACLE安装,成功率99.99999%

标签: linux oracle 功率 | 发表时间:2013-05-24 12:27 | 作者:kuuyee
出处:http://www.blogjava.net/

相信很多童鞋都有过在Linux上安装Oracle数据库的痛苦经历,其中绝大多数都是环境设置的问题。我给大家推荐一个国外大牛写的Oracle的安装脚本  OTK,是用Bash写的,这东东大大简化了Oracle安装过程,而且成功率达到99.9999%以上,只要确保你的Linux系统是干净的,那么按照这个教程,保证你会安装成功。

准备工作

OTK针对各种Linux提供了  安装文档,本文使用的RHEL5.5_x86_64位,数据库版本为11gR2,主要参考这个  文档

首先准备阿好如下的安装文件:

下载上述文件并放在 /var/tmp/oracle目录下。最好要把你的YUM源指向你的系统安装光盘或者ISO文件。

安装OTK

用root登陆,执行如下命令:

       # su - root         
# cd /var/tmp/oracle
# ls -1 oratool*
oratoolkit-1.0.2.1.5-1.noarch.rpm
# rpm -ivh oratoolkit-1.0.2.1.5-1.noarch.rpm
Preparing... ########################################### [100%]
1:oratoolkit ########################################### [100%]

otk已经帮我们建立了oracle用户,下面需要设置Oracle用户密码

       # passwd oracle         
Changing password for user oracle.
New UNIX password:
BAD PASSWORD: it is based on a dictionary word
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

解决环境依赖

这一步最爽,最为头疼的环境依赖问题轻松就解决了!首先要验证下你的系统还差什么没有满足要求,OTK脚本提供了智能的环境是否满足检查:

       # /opt/oracle/otk/current/bin/installManager swReqCheck osSetup11gR2.cfg         
...//省略大部分输出
20130521_165122: Info: Action swReqCheck of installManager ended with 7 WARNINGS

最后的结论告诉你的系统共有几个警告(我的系统是7个),你可以在输出日志中查看到底缺了什么。下面的一组命令很酷,让你一下子解决所有的问题:

       //先拼装命令         
# REQ_FILE_DIR="/opt/oracle/otk/current/conf/installManager/requirement"
# REQ_FILE_PATH="$REQ_FILE_DIR/ora11gR2-redhat-5-x86_64.pkg.lst"
# YUM_COMMAND=$(echo "yum install")
# YUM_COMMAND+=$(egrep -v "#" $REQ_FILE_PATH | grep 32-bit | awk '{ print " "$1".i[356]86" }')
# YUM_COMMAND+=$(egrep -v "#" $REQ_FILE_PATH | grep 64-bit | awk '{ print " "$1".x86_64" }')

//用echo看看最终拼装的命令是什么样
# echo $YUM_COMMAND

//执行命令
# $YUM_COMMAND

//再次执行环境检查
# /opt/oracle/otk/current/bin/installManager swReqCheck osSetup11gR2.cfg
...
20130521_170131: Info: Action swReqCheck of installManager ended successfully //这次验证成功了,环境已经满足Oracle安装要求

增强sqlplus

OTK提供了一个优化增强的sqlplus环境:

       # cd /opt/oracle/otk/current/tools/rlwrap/         
# ./configure
# make
# make install
# /usr/local/bin/rlwrap -v
rlwrap 0.30

使用installManager提取安装

切换到 /opt/oracle/otk/current/conf/installManager目录,编辑 osSetup11gR2.cfg来配置安装参数,包括内核参数、目录创建及所有授权等设置,如果你想默认安装就无需更改这个文件。

       # cd /opt/oracle/otk/current/conf/installManager/         
# vi osSetup11gR2.cfg
# sdiff -s osSetup11gR2.cfg sample/osSetup11gR2.cfg //对比哪些参数修改过
# /opt/oracle/otk/current/bin/installManager osSetup osSetup11gR2.cfg

把Oracle安装文件移入资源目录

otk默认读取oracle安装文件的目录是 /var/opt/oracle/repository,otk的 swInst实例安装命令会读取这个目录:

       # cd /var/tmp/oracle         
# chown oracle:oinstall *
# mv linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip /var/opt/oracle/repository/

定制oracle用户登录的PS1变量

这一步没什么实际意义,就是定制Oracle用户登录的提示符。

       # su - oracle        
------------------------------------------------------
oraToolKit environment variables
------------------------------------------------------
Installation directory : /opt/oracle/otk
Release : 1.0.2.1.5
$RUN directory : /opt/oracle/otk/1.0/bin
$LOG_BASE directory : /var/opt/oracle/otk/1.0/log
------------------------------------------------------
<SITE|COMPANY>:oracle@stquist1p:sidNotSet$ grep ^SITE .profile.custom.interactive
SITE="<SITE|COMPANY>"
<SITE|COMPANY>:oracle@stquist1p:sidNotSet$ vi .profile.custom.interactive
<SITE|COMPANY>:oracle@stquist1p:sidNotSet$ grep ^SITE .profile.custom.interactive
SITE="KuuYee"//修改这一行,可以显示你喜欢的内容
<SITE|COMPANY>:oracle@stquist1p:sidNotSet$ exit
# su - oracle
KuuYee:oracle@stquist1p:sidNotSet$

安装Oracle数据库

OTK没有采用Oracle Universal Installer( OUI),而是用 swInst来控制整个安装过程的:

       $ bash         
$ cd $INSTALL_CONF
$ cp sample/swInstEeSrv11gR2-Step1-linux-x86_64.cfg .
$ installManager swInst swInstEeSrv11gR2-Step1-linux-x86_64.cfg
$ su -
# /opt/oracle/eesrv/11.2.0/db1/root.sh
# exit

创建数据库实例

OTK采用 dbSetup来创建实例,首先要进入 $INSTALL_CONF目录配置实例参数

       $ cd $INSTALL_CONF         
$ ls -1 dbSetup*.cfg
dbSetup-dev.cfg
dbSetup-prod.cfg
dbSetup-test.cfg
$ vi dbSetup-prod.cfg //prod为生产模式
$ sdiff -s dbSetup-prod.cfg sample/dbSetup-prod.cfg
DB_NAME="idm_test" | DB_NAME="prod"
ORACLE_HOME="$ORACLE_BASE/eesrv/11.2.0/db1" | ORACLE_HOME="$ORACLE_BASE/sesrv/11.1.0/db1"
NLS_LANG=".AL32UTF8" | NLS_LANG=".UTF8"
SYSTEM_SIZE=1G | SYSTEM_SIZE=512M
TEMP_SIZE=2G | TEMP_SIZE=512M
UNDO_SIZE=2G | UNDO_SIZE=512M
USERS_SIZE=100M | USERS_SIZE=10M
LISTENER_PORT="1541" | LISTENER_PORT="1531"
MEMORY_TARGET=7G | MEMORY_TARGET=512M
MEMORY_MAX_TARGET=7G | MEMORY_MAX_TARGET=512M
SGA_TARGET=3G | SGA_TARGET=256M
PROCESSES=1000 | PROCESSES=100
$ installManager dbSetup dbSetup-prod.cfg //执行这部之前最好先配置下/etc/hosts文件,看下面说明

本文采用 dbSetup-prod.cfg生产环境模式配置,我们看到还有dev(开发环境)和test(测试环境),不过我没试过,有兴趣的童鞋可以试试。我在上面列出了我所作出的配置,原文并没有修改内存参数,我之所以修改是因为实际环境因为内存设置太小导致运行一段时间数据库经常挂掉,经过多次的调试而得到的经验值,这里需要说明下我的数据库配置:
OS:VMware虚拟机(RHEL5.5)
CPU:8核
内存:32G
硬盘:200GB
上面用 sdiff -s dbSetup-prod.cfg sample/dbSetup-prod.cfg命令可以对比下我的参数修改,左面是我的修改参数,右面是原参数,需要特别说明的是第二个参数 ORACLE_HOME,一定要自修修改,原来的参数是 $ORACLE_BASE/sesrv/11.1.0/db1,要修改为$ORACLE_BASE/ eesrv/11.2.0/db1,别改错了!

installManager dbSetup dbSetup-prod.cfg命令开始安装数据库实例,不过我建议你最好先配置下你的 /etc/hosts文件,加入下面的内容:

       127.0.0.1    你的hostname

接下来就是漫长的等待,大概需要几十分钟,具体根据你的机器配置情况。如果你最后看到如下的输出:

       ----------------------------------------------------------------------------------------------------         
20130522_091856: Info: Executing libmiscellaneous.getFooter function
20130522_091856: Info: Terminating installManager execution
20130522_091856: Info: Summary log file: /var/opt/oracle/otk/1.0/log-old/installManager/../installManager.log
20130522_091856: Info: Detailed log file: /var/opt/oracle/otk/1.0/log-old/installManager/dbsetup-20130522_090349.log
20130522_091856: Info: Action dbSetup of installManager ended successfully
----------------------------------------------------------------------------------------------------

Congratulations!你安装成功了。

下面登陆试试:

Note
OTK默认创建了一个 otk用户,密码也是 otk,  syssystem默认密码是 manager
       $ bash         
$ sourceProdEnv
$ sqlplus sys/manager@idm_dev as sysdba;
或者
$ sqlplus otk/otk@idm_dev

SQL*Plus: Release 11.2.0.1.0 Production on Wed May 22 11:05:16 2013

Copyright (c) 1982, 2009, Oracle. All rights reserved.


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL>

使用appctl管理oracle

OTK提供了一个ctl工具来帮我们管理Oracle实例:

       $ ctl status all //查看当前状态         
$ ctl stop all //停止数据库
$ ctl start all //启动数据库

使用backupuManager备份oracle

       $ cd $BACKUP_CONF         
$ vi prod.cfg
$ sdiff -s prod.cfg sample/prod.cfg DISK_DEVICE_MOUNT_POINT="/" | DISK_DEVICE_MOUNT_POINT="/backup01"
$ backupManager full prod.cfg

定时备份Job

       $ crontab -l|head -2         
# Example 1: Daily physical database backup
# 0 2 * * * [ -d $HOME/../current ] && (ksh -c '. ./.profile >/dev/null; backupManager full <sid_1>.cfg <sid_2>.cfg <sid_n>.cfg >/dev/null')
$ crontab -e
$ crontab -l|head -2
# Example 1: Daily physical database backup
0 2 * * * [ -d $HOME/../current ] && (ksh -c '. ./.profile >/dev/null; backupManager full prod.cfg >/dev/null')

创建EM管理控制台

otk并没有帮我们创建EM控制台,对于习惯用Web管理的用户很不方便,我们需要手工创建:

        $ emca -config dbcontrol db -repos recreate           

STARTED EMCA at May 22, 2013 11:18:41 AM
EM Configuration Assistant, Version 11.2.0.0.2 Production
Copyright (c) 2003, 2005, Oracle. All rights reserved. Enter the following information:
Database SID: idm_dev //输入sid
Listener port number: 1541 //监听输入端口
Listener ORACLE_HOME [ /opt/oracle/eesrv/11.2.0/db1 ]: //默认回车
Password for SYS user: //输入密码manager
Password for DBSNMP user: //输入密码manager
Password for SYSMAN user: //输入密码manager
Email address for notifications (optional): //默认回车
Outgoing Mail (SMTP) server for notifications (optional): //默认回车
-----------------------------------------------------------------

You have specified the following settings

Database ORACLE_HOME ................ /opt/oracle/eesrv/11.2.0/db1

Local hostname ................ localhost.localdomain
Listener ORACLE_HOME ................ /opt/oracle/eesrv/11.2.0/db1
Listener port number ................ 1541
Database SID ................ idm_dev
Email address for notifications ...............
Outgoing Mail (SMTP) server for notifications ...............

-----------------------------------------------------------------
Do you wish to continue? [yes(Y)/no(N)]: yes
May 22, 2013 11:19:20 AM oracle.sysman.emcp.EMConfig perform
INFO: This operation is being logged at /opt/oracle/cfgtoollogs/emca/idm_dev/emca_2013_05_22_11_18_40.log.
May 22, 2013 11:19:21 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Dropping the EM repository (this may take a while) ...
May 22, 2013 11:19:23 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully dropped
May 22, 2013 11:19:23 AM oracle.sysman.emcp.EMReposConfig createRepository
INFO: Creating the EM repository (this may take a while) ...
May 22, 2013 11:24:27 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Repository successfully created
May 22, 2013 11:24:30 AM oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
INFO: Uploading configuration data to EM repository (this may take a while) ... //可能会等一会
May 22, 2013 11:25:19 AM oracle.sysman.emcp.EMReposConfig invoke
INFO: Uploaded configuration data successfully
May 22, 2013 11:25:23 AM oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib
INFO: Software library configured successfully.
May 22, 2013 11:25:23 AM oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
INFO: Deploying Provisioning archives ...
May 22, 2013 11:25:45 AM oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
INFO: Provisioning archives deployed successfully.
May 22, 2013 11:25:45 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Securing Database Control (this may take a while) ...
May 22, 2013 11:25:58 AM oracle.sysman.emcp.util.DBControlUtil secureDBConsole
INFO: Database Control secured successfully.
May 22, 2013 11:25:58 AM oracle.sysman.emcp.util.DBControlUtil startOMS
INFO: Starting Database Control (this may take a while) ...
May 22, 2013 11:26:28 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: Database Control started successfully
May 22, 2013 11:26:28 AM oracle.sysman.emcp.EMDBPostConfig performConfiguration
INFO: >>>>>>>>>>> The Database Control URL is https://localhost.localdomain:1158/em <<<<<<<<<<< //这个是EM的访问链接
May 22, 2013 11:26:31 AM oracle.sysman.emcp.EMDBPostConfig invoke
WARNING:
************************ WARNING ************************

Management Repository has been placed in secure mode wherein Enterprise Manager data will be encrypted. The encryption key has been placed in the file: /opt/oracle/eesrv/11.2.0/db1/localhost.localdomain_idm_dev/sysman/config/emkey.ora. Please ensure this file is backed up as the encrypted data will become unusable if this file is lost.

***********************************************************
Enterprise Manager configuration completed successfully
FINISHED EMCA at May 22, 2013 11:26:31 AM

OK! 大功告成,相信各位童鞋都安装成功了,OTK的安装还是很稳健的,至少我安装了几十次都成功了!

最后祝各位童鞋好运!

2013-05-21


kuuyee 2013-05-24 12:27 发表评论

相关 [linux oracle 功率] 推荐:

Linux下的ORACLE安装,成功率99.99999%

- - BlogJava-首页技术区
相信很多童鞋都有过在Linux上安装Oracle数据库的痛苦经历,其中绝大多数都是环境设置的问题. 我给大家推荐一个国外大牛写的Oracle的安装脚本 . OTK,是用Bash写的,这东东大大简化了Oracle安装过程,而且成功率达到99.9999%以上,只要确保你的Linux系统是干净的,那么按照这个教程,保证你会安装成功.

Linux Ksplice,MySQL and Oracle

- Syn - DBA Notes
Oracle 在 7 月份收购了 Ksplice. 使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性. 现在该产品已经合并到 Oracle Linux 中. 目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了.

Linux下安装Oracle 11g

- - Oracle - 数据库 - ITeye博客
1、 下载安装VMware Workstation v9.0.2 虚拟机软件,下载rhel-server-6.0-x86_64-dvd.iso安装Red Hat Enterprise Linux 6 64-bit操作系统到VMware中,安装时候添加Linux用户Oracle. 2、 在Vmware虚拟机中设置光驱属性为使用ISO映像文件linux.x64_11gR2_database.iso,并连接到虚拟机,拷贝光驱中的Oracle11G安装文件夹database到虚拟机的/u02/目录下.

Linux 内核参数优化(for oracle)

- - CSDN博客数据库推荐文章
    Oracle 不同平台的数据库安装指导为我们部署Oracle提供了一些系统参数设置的建议值,然而建议值是在通用的情况下得出的结论,并非能完全满足不同的需求. 使用不同的操作系统内核参数将使得数据库性能相差甚远. 本文描述了linux下几个主要内核参数的设置,供参考.   共享内存是在系统内核分配的一块缓冲区,多个进程都可以访问该缓冲区.

Oracle 管理之 Linux 网络基础

- - CSDN博客数据库推荐文章
1、TCP/IP 网络配置文件. TCP/IP 网络配置文件. IP配置文件:/etc/sysconfig/network-scripts/ifcfg-eth0. 网管配置文件:/etc/sysconfig/network. 域名解析:/etc/host.conf. 主机配置:/etc/hosts.

linux 静默安装 oracle 11 - 简书

- -
linux 静默安装 oracle 11. 检查 swap分区、内存、磁盘大小. 下载 jdk-8u73-linux-x64.rpm. 使用 root 用户配置环境变量. 在/etc/hosts文件中添加主机名. 添加与主机名与IP对应记录,不然在安装数据库时会报错. 注:kernel.shmmax = 1073741824(byte)为本机物理内存的一半.

Linux中模拟诊断Oracle高CPU占用

- - CSDN博客推荐文章
1,在一个session中模拟CPU高使用率,如下:. 2,在shell窗口用top命令查看CPU使用情况:                                                                                                            .

[原]Linux HugePages 配置 与 Oracle 性能关系说明

- - David Dai -- Focus on Oracle
1.1 HugePages 介绍. 关于HugePages,有一些相关的专业术语,具体如下:. (1)  Page Table: A page table is thedata structure of a virtual memory system in an operating system to store themapping between virtual addresses and physical addresses.

Linux下 和 Windows 下 Oracle Instant Client 的安装.

- - Oracle - 数据库 - ITeye博客
Oracle数据库软件十分庞大,数据库引擎有好几个G. 通常情况下,我们的使用方式是安装一个Oracle数据库在服务器机器上,在客户端通过PL/SQL Developer、sqlplus等工具操作服务器上的数据,当然Oracle 10g后,OEM(企业管理器)已经是WEB版了,在浏览器中也可以同样操作数据库.

(总结)CentOS Linux下配置Oracle 11gR2为系统服务自动启动

- - 服务器运维与网站架构|Linux运维|互联网研究
PS:在Windows下安装完成Oracle 11gR2后,默认就开机自启动Oracle相关服务,但Linux下安装完后每次都得手动启动和关闭数据库(dbstart | dbshut)、监听器(lsnrctl)、控制台(emtcl). 如何把Oracle添加到Linux系统服务里开机自启动呢. 下面以CentOS 6.3为例详解,其他发行版一样通用.