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

搜尋
首頁資料庫mysql教程Linux下的ORACLE安装,成功率99.99999%

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

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

准备工作

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

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

  • linux.x64_11gR2_database_1of2.zip

  • linux.x64_11gR2_database_2of2.zip

  • oratoolkit-1.0.2.1.5-1.noarch.rpm

下载上述文件并放在 /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>:oracle@stquist1p:sidNotSet$ grep ^SITE .profile.custom.interactive         
SITE="<site>"         
<site>:oracle@stquist1p:sidNotSet$ vi .profile.custom.interactive         
<site>:oracle@stquist1p:sidNotSet$ grep ^SITE .profile.custom.interactive         
SITE="KuuYee"//修改这一行,可以显示你喜欢的内容         
<site>:oracle@stquist1p:sidNotSet$ exit         
# su - oracle         
KuuYee:oracle@stquist1p:sidNotSet$</site></site></site></site></site>

安装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')</sid_n></sid_2></sid_1>

创建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      <p>      </p><p>OK! 大功告成,相信各位童鞋都安装成功了,OTK的安装还是很稳健的,至少我安装了几十次都成功了!</p>     <p>      </p><p>最后祝各位童鞋好运!</p>      <p>2013-05-21</p> <img  src="/static/imghwm/default1.png" data-src="http://www.blogjava.net/kuuyee/aggbug/399719.html" class="lazy"    style="max-width:90%"  style="max-width:90%" alt="Linux下的ORACLE安装,成功率99.99999%" > <br> <br> <p align="right">  kuuyee 2013-05-24 12:27   发表评论</p><p> <img  src="/static/imghwm/default1.png" data-src="http://www.68idc.cn/help/uploads/allimg/150125/0RAWD2-0.gif" class="lazy" border="0" title="IT 资讯" alt="Linux下的ORACLE安装,成功率99.99999%" > 
    </p><p class="copyright">
        原文地址:Linux下的ORACLE安装,成功率99.99999%, 感谢原作者分享。
    </p>
    
    


陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
MySQL的許可與其他數據庫系統相比如何?MySQL的許可與其他數據庫系統相比如何?Apr 25, 2025 am 12:26 AM

MySQL使用的是GPL許可證。 1)GPL許可證允許自由使用、修改和分發MySQL,但修改後的分發需遵循GPL。 2)商業許可證可避免公開修改,適合需要保密的商業應用。

您什麼時候選擇InnoDB而不是Myisam,反之亦然?您什麼時候選擇InnoDB而不是Myisam,反之亦然?Apr 25, 2025 am 12:22 AM

選擇InnoDB而不是MyISAM的情況包括:1)需要事務支持,2)高並發環境,3)需要高數據一致性;反之,選擇MyISAM的情況包括:1)主要是讀操作,2)不需要事務支持。 InnoDB適合需要高數據一致性和事務處理的應用,如電商平台,而MyISAM適合讀密集型且無需事務的應用,如博客系統。

在MySQL中解釋外鍵的目的。在MySQL中解釋外鍵的目的。Apr 25, 2025 am 12:17 AM

在MySQL中,外鍵的作用是建立表與表之間的關係,確保數據的一致性和完整性。外鍵通過引用完整性檢查和級聯操作維護數據的有效性,使用時需注意性能優化和避免常見錯誤。

MySQL中有哪些不同類型的索引?MySQL中有哪些不同類型的索引?Apr 25, 2025 am 12:12 AM

MySQL中有四種主要的索引類型:B-Tree索引、哈希索引、全文索引和空間索引。 1.B-Tree索引適用於範圍查詢、排序和分組,適合在employees表的name列上創建。 2.哈希索引適用於等值查詢,適合在MEMORY存儲引擎的hash_table表的id列上創建。 3.全文索引用於文本搜索,適合在articles表的content列上創建。 4.空間索引用於地理空間查詢,適合在locations表的geom列上創建。

您如何在MySQL中創建索引?您如何在MySQL中創建索引?Apr 25, 2025 am 12:06 AM

toCreateAnIndexinMysql,usethecReateIndexStatement.1)forasingLecolumn,使用“ createIndexIdx_lastNameEnemployees(lastName); 2)foracompositeIndex,使用“ createIndexIndexIndexIndexIndexDx_nameOmplayees(lastName,firstName,firstName);” 3)forauniqe instex,creationexexexexex,

MySQL與Sqlite有何不同?MySQL與Sqlite有何不同?Apr 24, 2025 am 12:12 AM

MySQL和SQLite的主要區別在於設計理念和使用場景:1.MySQL適用於大型應用和企業級解決方案,支持高性能和高並發;2.SQLite適合移動應用和桌面軟件,輕量級且易於嵌入。

MySQL中的索引是什麼?它們如何提高性能?MySQL中的索引是什麼?它們如何提高性能?Apr 24, 2025 am 12:09 AM

MySQL中的索引是數據庫表中一列或多列的有序結構,用於加速數據檢索。 1)索引通過減少掃描數據量提升查詢速度。 2)B-Tree索引利用平衡樹結構,適合範圍查詢和排序。 3)創建索引使用CREATEINDEX語句,如CREATEINDEXidx_customer_idONorders(customer_id)。 4)複合索引可優化多列查詢,如CREATEINDEXidx_customer_orderONorders(customer_id,order_date)。 5)使用EXPLAIN分析查詢計劃,避

說明如何使用MySQL中的交易來確保數據一致性。說明如何使用MySQL中的交易來確保數據一致性。Apr 24, 2025 am 12:09 AM

在MySQL中使用事務可以確保數據一致性。 1)通過STARTTRANSACTION開始事務,執行SQL操作後用COMMIT提交或ROLLBACK回滾。 2)使用SAVEPOINT可以設置保存點,允許部分回滾。 3)性能優化建議包括縮短事務時間、避免大規模查詢和合理使用隔離級別。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強大的PHP整合開發環境

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具