CentOS 6.3(x86_64)下安装Oracle 10g R2

CentOS 6.3(x86_64)下安装Oracle 10g R2

目 录

一、硬件要求 二、软件 三、系统安装注意 四、安装Oracle前的系统准备工作 五、安装Oracle,并进行相关设置 六、升级Oracle到patchset 10.2.0.4 七、使用rlwrap调用sqlplus中历史命令

 

一、硬件要求

1、内存 & swap

Minimum: 1 GB of RAM Recommended: 2 GB of RAM or more

检查内存情况
# grep MemTotal /proc/meminfo
# grep SwapTotal /proc/meminfo

2、硬盘

由于CentOS安装后差不多有4~5G,再加上Oracle等等的安装,所以请准备至少10G的硬盘空间。

检查磁盘情况
# df -h

二、软件

系统平台:CentOS 6.3(x86_64)

CentOS-6.3-x86_64-bin-DVD1.iso

Oracle版本:Oracle 10g R2

10201_database_linux_x86_64.cpio

补丁:p6810189_10204

p6810189_10204_Linux-x86-64.zip

三、系统安装注意

系统安装时一定要安装桌面模式,否则无法安装oracle,另外请勿开启SELinux,oracle官方不建议使用SELinux,CentOS的防火墙也请暂时关闭,减少安装时的困扰。为防止Oracle安装过程中出现乱码,建议使用英文作为系统语言,进行Oracle的安装工作。

本文中所描述的系统命令,未经特殊标示,均为“#”代表root权限,“$”代表oracle权限。

四、安装Oracle前的系统准备工作

首先,请先以root账号登入作一些前置设定作业。

1、关闭防火墙、禁用SELinux

# setup

# vi /etc/selinux/config

修改SELINUX=disabled,然后重启。 如果不想重启系统,使用命令setenforce 0

2、安装依赖包

Oracle官方文档要求的安装包:

查看Oracle相关包是否已经安装:

用yum方式安装所需的包:

# yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat

最后还需要安装libXp这个Library,这个一定要安装,否则安装Oracle时会出现java Exception。

# yum install libXp

3、创建Oracle用户与组

在这里只讨论单主机环境,不考虑RAC环境的配置。

执行以下指令以新增oracle安装时所需要的使用者与群组。

(1) 建立群组oinstall  # groupadd oinstall

(2) 建立群组dba # groupadd dba

(3) 新增使用者oracle并将其加入oinstall和dba群组 # useradd -m -g oinstall -G dba oracle

(4) 测试oracle账号是否建立完成 # id oracle

(5) 建立oracle的新密码 # passwd oracle

4、将oracle使用者加入到sudo群组中

# vi /etc/sudoers

找到 root        ALL=(ALL)        ALL 这行,并且在底下再加入 oracle        ALL=(ALL)        ALL 输入wq!(由于这是一份只读文档所以需要再加上!)并且按下Enter

5、配置系统内核参数

# vi /etc/sysctl.conf

修改和添加以下内容:

kernel.shmall = 4294967296                           //表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改 kernel.shmmax = 68719476736                      //定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G kernel.shmmni = 4096                                    //用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改 kernel.sem = 250 32000 100 128                    //表示设置的信号量 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default=4194304                     //默认的接收窗口大小 net.core.rmem_max=4194304                        //接收窗口的最大大小 net.core.wmem_default=262144                      //默认的发送窗口大小 net.core.wmem_max=262144                         //发送窗口的最大大小

会有一些与目前的参数重复的,就修改成文件上提供的。

编辑完之后,储存,然后执行:

# sysctl -p

启用刚刚所做的变更。

6、编辑/etc/security/limits.conf

# vi /etc/security/limits.conf

添加以下四行 oracle  soft        nproc   2047 oracle  hard        nproc   16384 oracle  soft        nofile  1024 oracle  hard        nofile  65536

7、编辑/etc/pam.d/login

# vi /etc/pam.d/login

添加以下两行 session required /lib64/security/pam_limits.so session required pam_limits.so

8、修改/etc/profile

# vi /etc/profile

将以下代码新增到profile档案中。

复制代码
if [ $USER = "oracle" ]; thenif [ $SHELL = "/bin/ksh" ]; thenulimit -p 16384ulimit -n 65536elseulimit -u 16384 -n 65536fi
fi 
复制代码

9、修改Linux发行版本信息

由于Oracle 10g发行的时候,CentOS 6没有发行,所以Oracle 10g并没有对CentOS 6确认支持,需要修改文件让Oracle 10g支持CentOS 6。
我们需要手工修改Linux的发行注记,让Oracle 10g支持CentOS 6。
编辑/etc/redhat-release文件
# vi /etc/redhat-release
将其中的内容CentOS release 6.3 (Final)修改为redhat 4

10、创建Oracle安装文件夹以及数据存放文件夹

#mkdir /opt/oracle #mkdir /opt/oracle/102 #chown -R oracle:dba /opt/oracle

11、配置Linux主机
检查/etc/hosts文件中是否有localhost的记录(指向127.0.0.1即可),若没有的话,在后面配置Oracle监听的时候会出现一些问题,导致无法启动监听,在此手工添加此记录即可。

第一阶段到此完毕,接下来,完成这些设定之后,请先注销root账号,并且以oracle账号再次登入系统。

12、配置oracle用户环境变量

$ cd /home/oracle $ vi .bash_profile 修改并加入以下內容

ORACLE_BASE=/opt/oracle                      //上面创建的Oracle安装文件夹 ORACLE_HOME=$ORACLE_BASE/102 ORACLE_SID=orcl LD_LIBRARY_PATH=$ORACLE_HOME/lib PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export ORACLE_BASE ORACLE_HOME ORACLE_SID LD_LIBRARY_PATH PATH

保存后使用如下命令,使设置生效:

$ source /home/oracle/.bash_profile

五、安装Oracle,并进行相关设置

1、解压缩安装文件

将下载的10201_database_linux_x86_64.cpio放至即将安装oracle的文件夹/opt/oracle 回到终端模式并且进入到oracle文件夹:

$ cd /opt/oracle

解压缩10201_database_linux_x86_64.cpio

$ cpio -idmv < 10201_database_linux_x86_64.cpio

接着会看到一连串的解压缩动作。

解压缩完成会在同一个文件夹中看到database的文件夹,请进入到database文件夹中:

$ cd database

准备执行数据库安装,如果你的centos是中文环境,安装时会出现中文乱码,请下以下指令

$ export LANG=en_US

接着执行

$ ./runInstaller

如果无法看到安装界面,请使用root帐户执行如下命令后再运行安装程序:
# export DISPLAY=:0.0  # xhost +  $ ./runInstaller

遇到错误:Exception in ...... /lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXp.i686

分析:看报错信息"/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory",libXp需要安装i386的包,而不能安装X64的包。上面认为64位的linux需要安装64位的libXp包,所以导致这个问题。

再次执行 

$ ./runInstaller

遇到错误:Exception in ...... /lib/i386/libawt.so: libXt.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXt.i686

再次执行 

$ ./runInstaller

遇到错误:Exception in ...... /lib/i386/libawt.so: libXtst.so.6: cannot open shared object file: No such file or directory

解决:

# yum -y install libXtst.i686

再次执行 

$ ./runInstaller

开始执行安装程序。

由于相关的前置作业已经在之前做好了,在这个步骤只需要将UNIX DBA Group选择为dba以及输入SYS, SYSTEM等账号共享的database Password即可。然后选择Next即可。

同样的,将群组选择为dba群组,按Next

在这个步骤中,请点选Checking Network Configuration requirements为User Verified,接着按下Next

最后出现Install Summary画面,此时只要按下Install按钮,系统即开始安装。

安装过程...

安装进度大约到65%时会有错误提示: Error in invoking target 'collector' of makefile '/opt/oracle/102/sysman/lib/ins_emdb.mk'.

同时oraInventory/logs/目录下的安装日志文件里面会有如下类似错误提示:

这是oracle安装程序的一个bug,可以忽略此错误继续安装,对系统没什么影响。

在Configuration Assistants 时会出现错误提示:

OUI-25031:Some of the configuration assistants failed.

分析:主机名映射错误

解决:修改/etc/hosts文件,增加IP地址与主机名的映射如下:

接着会遇到错误提示:

ORA-27125:unable to create shared memory segment

解决:

1. 确定安装oracle所使用的用户组

# id oracle

可以看到oracle组dba id 为501。

2. 修改内核参数

echo "501" >/proc/sys/vm/hugetlb_shm_group

就可以了。

安装到数据库设置助理,可以在这边选取password management作密码的修改,如不需要修改,只需要按下ok按钮即可。

安装完成前,出现以下的设置脚本:

开启一个新的终端,su到root。

将要求执行的两段script依序执行。

/opt/oracle/oraInventory/orainstRoot.sh /opt/oracle/102/root.sh

执行画面如上图。 执行完后,回到安装窗口按下OK完成所有的oracle安装。安装完成会出现以下画面。

此时,您可以以上述网址,作为测试,登入账号可以为sys或system

http://CentOS-Oracle:5560/isqlplus http://CentOS-Oracle:5560/isqlplus/dba http://CentOS-Oracle:1158/em

以上画面都成功代表oracle已经正常安装了。

六、升级Oracle到patchset 10.2.0.4

1、升级软件

a. 关闭需要升级的实例

停止实例

SQL> SHUTDOWN IMMEDIATE

停止与该实例相关的所有后台进程

$ emctl stop dbconsole

$ isqlplusctl stop

$ lsnrctl stop

b. 备份Oracle数据库

c. 运行升级包升级软件

将补丁包p6810189_10204_Linux-x86-64.zip解压;进入解压后的目录,执行安装命令。

点击“Next”

指定Oracle Home 目录详细,点击“Next”

点击“Next”

点击“Next”

点击“Install”,进行安装。

升级过程...

需要执行脚本/opt/oracle/102/root.sh

开一个新窗口,在root账户下执行脚本。

执行完后,回到安装窗口按下“OK”完成所有的oracle安装。安装完成会出现以下画面。

点击“Exit”,退出Oracle的升级。

如果此前并没有创建数据库,那么升级到10.2.0.4到此就结束了。然后可以去创建新的数据库。

如果此前已经创建了数据库,那么按以下步骤升级数据库到10.2.0.4版本。

2、升级数据库

a. 更新数据字典

$ sqlplus / as sysdba;

SQL> STARTUP UPGRADE

SQL> SPOOL patch.log

SQL> @?/rdbms/admin/catupgrd.sql

升级过程比较长,请耐心等待。

升级完毕,总耗时38分钟26秒。

SQL> SPOOL OFF

b. 关闭并重启数据库

SQL> SHUTDOWN IMMEDIATE

SQL> STARTUP

c. 编译无效PL/SQL包

SQL> @?/rdbms/admin/utlrp.sql

编译成功。

d. 检查升级是否成功,如果所有组件的status都是valid表示升级成功。

SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;

e. 检查是否有升级错误

SQL> select * from utl_recomp_errors;

f. 修改系统兼容性参数

SQL> alter system set compatible='10.2.0.4.0' scope=spfile;

SQL> SHUTDOWN

SQL> STARTUP

升级完成。

七、使用rlwrap调用sqlplus中历史命令

  在Linux中运行SQL*Plus,不能调用历史命令;输错字符后也不能按Backspace键或Del键删除,虽然可以通过Ctrl+Backspace组合键实现删除功能,但是严重影响使用效率。使用第三方软件rlwrap可以实现以上功能。

  rlwrap提供了readline的封装(bash下命令的输入都是通过readline这个库来处理的。也就是说,上下箭头查看历史命令,Ctrl+r反向查找匹配历史输入,以及Ctrl+w, Ctrl+a等等操作都是由readline提供的),也就是说rlwrap提供一个输入环境,在这个输入环境下可以使用readline的各种功能。如果一个程序在命令行下接受输入,那么用rlwrap直接就可以得到像在bash下输入那样的效果。

7.1 安装rlwrap

rlwrap封装了readline,所以安装rlwrap之前需要安装readline库。可以通过yum方式安装,也可以下载源码包进行安装。官方网站:http://utopia.knoware.nl/~hlub/uck/rlwrap/

I. yum方式安装

CentOS系统默认的yum软件仓库中没有rlwrap这个包,需要通过第三方yum源安装。

a. 安装第三方yum源

# rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6                          //导入key

默认会在/etc/yum.repos.d/下创建epel.repo和epel-testing.repo两个配置文件。

b. 安装rlwrap和readline

# yum install rlwrap readline readline-devel

II. 源码包安装

其他Linux发行版如果源里没有rlwrap和readline的(如SUSE企业版默认没有这两个包),要分别下载这两个源码包编译安装一下。

a. 安装readline

# wget ftp://ftp.gnu.org/gnu/readline/readline-6.2.tar.gz
# tar zxvf readline-6.2.tar.gz
# cd readline-6.2/
# ./configure
# make
# make install

b. 安装rlwrap

# wget http://utopia.knoware.nl/~hlub/rlwrap/rlwrap-0.37.tar.gz
# tar zxvf rlwrap-0.37.tar.gz
# cd rlwrap-0.37/
# ./configure
# make
# make install

7.2 设置sqlplus的系统别名

# vim /home/oracle/.bash_profile

在尾部添加:

alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'

退出oracle用户再重新登录就OK了。现在Linux下的sqlplus用起来就像cmd中一样了。

 

CentOS 6.3(x86_32)下安装Oracle 10g R2

http://www.cnblogs.com/mchina/archive/2012/11/06/2737472.html

Linux Oracle服务启动&停止脚本与开机自启动

http://www.cnblogs.com/mchina/archive/2012/11/27/2782993.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/288765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

比__autoload 更灵活的 spl_autoload_register 用法

直接上代码了&#xff1a; <?php function loadclass( $class ) { $file $class . .php; if (is_file($file)) { require_once($file); } } spl_autoload_register( loadclass ); $obj new Test1(); $obj->TestFunction(); ?> 以上php代码有一个函数loadclass有…

php短信接口怎么用,php短信接口接入详细过程

短信接口被广泛应用于互联网产品&#xff0c;在开发网站或app等应用时会经常遇到接入短信接口的需求&#xff0c;接入短信接口详细过程如下&#xff1a;首先需要找到一家短信接口服务商&#xff0c;获取短信接口调用地址和相关接入参考文档&#xff0c;这里就以动力思维乐信短信…

存储世界瞬息万变 SSD掀行业浪潮

存储世界瞬息万变&#xff0c;数据创建和共享速度也确实惊人。近几年&#xff0c;企业级存储市场群雄逐鹿&#xff0c;烽烟四起。SSD厂商迅速崛起&#xff0c;大杀四方。其性能、可靠性和容量秒杀“前任”HDD&#xff0c;尤其是惊人的速度更是受到用户追捧。 在虚拟化、云计算、…

numpy拼接_巧用numpy切分图片

昨晚发了接受投稿文章&#xff0c;昨晚就有读者积极来文章啦&#xff0c;几轮邮件交流了修改意见后&#xff0c;今天就发布啦&#xff0c;这篇的稿费是300。之前无聊在刷视频的时候看到这么一个有意思的视频&#xff08;现在视频找不到&#xff0c;忘记关键字了 &#xff09;&a…

tcp有限状态机分析

tcp有限状态机分析2011-11-23 0 个评论 收藏 我要投稿 这幅图是TCP的状态机&#xff0c;看了2个小时&#xff0c;分析总结如下&#xff1a;&#xff08;1&#xff09;CLOSED 状态时初始状态。&#xff08;2&#xff09;LISTEN:被动打开&#xff0c;服务器端的 状…

C# 11 的这个新特性,我愿称之最强!

前言在日常开发中我们经常会将JSON、XML、HTML、SQL、Regex等字符串拷贝粘贴到我们的代码中&#xff0c;而这些字符串往往包含很多的引号"&#xff0c;我们就必须将所有引号逐个添加转义符\进行转义。这个转义十分麻烦&#xff0c;且容易出错&#xff0c;而当我们们需要替…

php调用数据库中的图片地址显示不出来,图片显示不出来,但是数据库里有显示...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼index.phpinclude con.php;?>#container{width: 17%;margin: auto auto;}.news_list {list-style: none;}.loadmore {color: #ffffff;border-radius: 5px;width: 60%;height: 50px;font-size: 15px;background: rgba(148, 175,…

互联网打响云上争夺战:从计算到生态

阿里云&#xff1a;用人工智能治理城市 国内互联网企业的战场今年已从“地面”上升到“云端”&#xff0c;BAT先后对各自的云计算进行了品牌升级&#xff0c;网易等企业也开始积极参战&#xff0c;利用在技术积累及原有领域等方面的优势&#xff0c;通过与相关方合作&#xff0…

C# WPF UI框架MahApps切换主题

概述本指南将向您介绍MahApps.Metro如何切换主题&#xff0c;所有的MahApps.Metro的主题都包含在单独的资源字典中。如何使用主题您可以在以下可用配色方案中进行选择&#xff1a;"Red", "Green", "Blue", "Purple", "Orange&quo…

网盘搜索插件php源码,百度云网盘搜索引擎 PHP版 v1.0

百度云网盘搜索引擎是一个以PHPMySQL进行开发的网盘搜索引擎源码。百度云网盘搜索引擎运行运行环境 开始之前你需要安装* PHP 5.3.7 * MySQL* Python 2.7 ~* [xunsearch](//xunsearch.com/) 搜索引擎项目的目录结构___大致是这样的--- indexer/ #索引--- spider/ #爬虫--- sql/…

IDC:第一季度全球服务器市场收入下滑4.6% 市场为重大升级做准备

根据IDC全球服务器市场季度追踪报告&#xff0c;2017年第一季度全球服务器市场的厂商收入同比下滑4.6%。整个服务器市场的增长继续放缓&#xff0c;大多数超大规模服务提供商都在等待今年第二季度部署英特尔新的Skylake处理器。高端服务器销售继续拖累整体市场表现&#xff0c;…

最通俗易懂的依赖注入之服务注册与注入

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事这篇文章是 ASP.NET 6 依赖注入系列文章的第 4 篇&#xff0c;点击上方蓝字可以阅读整个系列。在上一篇文章中&#xff0c;我们讨论了依赖注入的服务容器与服务作用域。接下来&#xff0c;在这篇文章中&#xff0c;我们继…

linux之可视化查看磁盘大小并且删除大文件

1 问题 可视化查看磁盘大小并且删除大文件&#xff0c;之前我一直没有找到好的办法&#xff0c;原谅我的无知。 2 操作 我们直接搜索Disk Usage Analyzer 然后一个一个目的的点击查看&#xff0c;如下图 我们就可以清晰的看到文件占用大小&#xff0c;我们就可以很好的删除了…

php Heredoc应用说明

Heredoc部分实现界面与代码的准分离 我们如下的例子可以了解 Heredoc&#xff1a; <?php $name http://blog.csdn.net/a757291228; echo <<<HRERDOC <html> <head> <title>http://blog.csdn.net/a757291228</title> </head>…

Win10用户远超4亿 Win10 RS2明年年初发布

10月26日晚22:00&#xff0c;微软Win10新品发布会在纽约芝士举行。发布会前&#xff0c;微软宣布目前最新的操作系统Windows 10已经迎来了4亿的用户&#xff0c;Windows 10的使用小时数&#xff0c;已经达到了2000亿&#xff0c;游戏时间也增长了500%。 同时微软还宣布&#xf…

bootstrap导航

HTML <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IE-edge"><!-- 开启IE8渲染模式 --><meta name"viewport" cont…

一个类可以实现多个接口吗_Java入门:基础知识(面向对象:接口)

接着上一篇的基础知识&#xff0c;今天俺们来学习一下&#xff1a;面向对象(万物皆对象)三大特征(封装、继承、多态)接口接口 概述&#xff1a;接口是一种引用数据类型&#xff0c;是方法的集合&#xff0c;接口的内部主要是定义方法&#xff0c;包含常量、抽象方法(JDK7及以…

生成条形码二维码DataMatrix条码.EAN码.39码.交叉25码.UPC码.128码.93码.ISBN码.Codabar等...

1.引用Spire.Barcode在Nuget包中安装Spire.Barcode2.生成条形码//创建 BarcodeSettings对象BarcodeSettings settings new BarcodeSettings();//设置条形类型为EAN-13settings.Type BarCodeType.EAN13;//设置条形码数据settings.Data "58465157484";//使用校检set…

多云战略:企业如何精益求精?

随着为企业用户提供更多的选择和更高的灵活性&#xff0c;多云模式正在开始受到他们的关注。但正如实施一个单一的云部署一样&#xff0c;企业需要为多云计算实施进行精心评估&#xff0c;从而选择正确的云服务供应商。在某些情况下&#xff0c;那些市场的非主流供应商可能会为…

最常用的动态sql语句梳理Mybatis(转)

公司项目中一直使用Mybatis作为持久层框架&#xff0c;自然&#xff0c;动态sql写得也比较多了&#xff0c;最常见的莫过于在查询语句中使用if标签来动态地改变过滤条件了。Mybatis的强大特性之一便是它的动态sql&#xff0c;免除了拼接sql带来的各种麻烦&#xff0c;在开发项目…