当前位置:Gxlcms > mysql > Oracle11gR2在LinuxCentOS5.3,RHEL5.4上的安装<转

Oracle11gR2在LinuxCentOS5.3,RHEL5.4上的安装<转

时间:2021-07-01 10:21:17 帮助过:17人阅读

Oracle11gR2 在 Linux CentOS 5.3,RHEL 5.4 上的安装 作者: Zinc Chen 邮箱: zinc.chen@live.cn 一. 安装操作系统 操作平台 : VMWARE 7.0.0 build-197124+CentOS-5.4-x86_64-bin-DVD.iso 数据库版本 : Oracle11gR2 针对 32/64 位 Linux ,请选用对应版本的

Oracle11gR2 在 Linux CentOS 5.3,RHEL 5.4 上的安装

作者: Zinc Chen 邮箱: zinc.chen@live.cn

一. 安装操作系统

操作平台 :

VMWARE 7.0.0 build-197124+CentOS-5.4-x86_64-bin-DVD.iso

数据库版本 :

Oracle11gR2 针对 32/64 位 Linux ,请选用对应版本的 Oracle

下载地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/112010-linx8664soft-100572.html

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip

辅助软件 :

SecureCRT( 用于远程执行命令 ) 、 winscp( 用于远程文件传输 )

要求内存不小于 1G ; / 更新:测试机不满足要求,但是在安装的时候可以选择忽略

在内存小于 4G , SWAP 应该是内存的 1.5 倍;

内存 4 到 16G , SWAP 和内存相同大小即可

内存超过 16G , SWAP 是 16G ;

( 我的虚拟机物理内存设置为 2G , SWAP 设置为 3G) ;

由于 11gR2 对于共享内存要求变大,因此系统共享内存应该大于 512* 进程数;
如果共享内存不足的话,会造成 ORA-845 或 ORA-1078 错误;
要求 /tmp 分区不少于 400M ,安装目录应大于 4G ;

4. 我的虚拟机配置情况:

宿主配置为四核心 Q9550, 内存 8G DDR2 800 的,主板 Intel G45 ,硬盘采用 320G*3 前段组 RAID0, 后段组 RAID5 ,操作系统为 Vista 64bit SP2

虚拟操作系统配置: CPU 双核心,内存 2048G ,硬盘 160G

硬盘分区情况如下:

SWAP 3072M <- 交换分区(根据内存大小按照 3 进行计算)

/boot 300M <- 启动分区(可以设置为 100M ,但是为了内核升级方便,建议使用 300M )

/ 15G <- 系统主目录(仅仅用于安装操作系统)

/ora 15G <-oracle 系统安装分区(仅仅用于 Oracle 应用程序)

/oradata 90G <-oracle 数据分区(仅仅用于存放 Oracle 数据,根据硬盘大小,约大约好)

/orabak 30G <- 备份分区(存放每日的数据备份,请根据备份策略与数据量进行合理计算)

/更新:实际使用中,先划分前面的分区,然后根据硬盘剩余对后面的空间进行划分,建议采用 LVM2 对分区进行管理,这样可以在线调整分区大小,灵活性比较高。

5. 默认服务器开启了 SSH ,在配置防火墙的时候注意检查一下,这样可以使用 SecureCRT 连接进入控制,使用 FileZilla 传输文件;

6. 安装系统的时候,可以直接选择依赖包,以解决 Oracle 安装的时候依赖关系,当然也可以在安装完基本系统以后再补充安装依赖包,建议采用后者,以避免操作太多导致混乱;

7. VM 中安装的话,需要安装 VM 相关的驱动 ( 点击 VM->Install VMware Tools) :

进入光盘路径: mount /media/cdrom /dev/cdrom

cd /media/cdrom

安装 VMwareTools : rpm –ivh VMwareTools-7.8.6-185404.i386.rpm

初始化图形界面: /usr/bin/vmware-config-tools.pl

重新启动 X : ctrl+alt+backspace

弹出 VM 的驱动光盘,挂载默认的系统盘,后面要用

二.配置系统,准备安装

检查硬件情况 ( 虚拟机情况 ) :

[root@ora ~]# grep "model name" /proc/cpuinfo

model name : Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz

model name : Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz

[root@ora ~]# grep MemTotal /proc/meminfo

MemTotal: 2075560 kB

[root@ora ~]# grep SwapTotal /proc/meminfo

SwapTotal: 3113340 kB

[root@ora ~]# free

total used free shared buffers cached

Mem: 2075560 1000572 1074988 0 59336 814732

-/+ buffers/cache: 126504 1949056

Swap: 3113340 0 3113340

[root@ora ~]# df -k /dev/shm

文件系统 1K- 块 已用 可用 已用 % 挂载点

tmpfs 1037780 0 1037780 0% /dev/shm

[root@ora ~]# df -k /tmp

文件系统 1K- 块 已用 可用 已用 % 挂载点

/dev/sda5 9920592 3165436 6243088 34% /

检查软件情况 (CentOS 5.3 的情况, RHEL 无需改动 ) :

[root@ora ~]# cat /proc/version

Linux version 2.6.18-128.el5 (mockbuild@builder16.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) #1 SMP Wed Jan 21 10:44:23 EST 2009

[root@ora ~]# uname -a

Linux ora.libcms.net 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux

[root@ora ~]# more /etc/issue

CentOS release 5.3 (Final)

Kernel \r on an \m

[root@ora ~]# cat /etc/hosts

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1 ora.libcms.net ora localhost.localdomain localhost

::1 localhost6.localdomain6 localhost6

将 CentOS 系统伪装成 RedHat

Vi /etc/redhat-release

修改为 :

Red Hat Enterprise Linux Server release 5.3 (Tikanga)

#cat /proc/partitions 查看现在分区

#cd /mnt 进入挂载目录

#mkdir cdrom 创建光盘挂载区

#mkdir usb 创建U盘挂载区

#mount /dev/sdb /mnt/usb 例如将sdb设备挂载到/mnt/usb目录下

#umount /mnt/usb 使用完毕后将设备卸载


linux的硬件设备在/dev目录下,光驱也是其中。
/dev/cdrom表示光驱,挂载光驱的方法如下(以root身份):


mkdir /mnt/cdrom
mount -t auto -o ro /dev/cdrom /mnt/cdrom #不加参数也能自动挂上。



以下是操作的屏幕复制内容:

linux@cdyemail:/$ ls /mnt #查看mnt下面有没有cdrom目录 ,这个是随意的目录。

cdrom iso usb winc wind

linux@cdyemail:/$ mount /dev/cdrom /mnt/cdrom #挂载发现没有权限

mount: 只有 root 才能进行此操作

linux@cdyemail:/$ su #切换到root用户,也可以用sudo 来取得root权限。

密码:

root@cdyemail:/# mount -t auto -o ro /dev/cdrom /mnt/cdrom #-t auto类型自动, -o ro只读模式

root@cdyemail:/# ls -l /mnt/cdrom #查看光盘内容

root@cdyemail:/# umount /mnt/cdrom #删除挂载的光驱

root@cdyemail:/# eject /dev/cdrom #弹出光驱

root@cdyemail:/#

附:

对于iso镜像文件可以进行挂载

mount -t iso9660 -o loop iso文件 /mnt/iso

你想安装:gcc-4.1.2-46.SEL5_4.2.i386.rpm的软件包,需要先安装相关的软件包,这都有依赖性。 如果,你只想安装gcc-4.1.2-46.SEL5_4.2.i386的软件包的话,就多加一个 --nodeps 的参数就好了

如:rpm -ivh --nodeps gcc-4.1.2-46.SEL5_4.2.i386.rpm

这就无需依赖其他的安装包了

rpm -ivh gcc-c++-4.1.2-46.el5.x86_64.rpm --nodeps --force

安装系统的依赖包 ( 注意对应版本 , 安装系统的时候如果已经处理,这里就无需要安装了 )

// 下面是 redhat 5.4 64bit 版本的命令

cd /media/cdrom

cd Server

rpm -ivh binutils-2.17.50.0.6-12.el5.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm

rpm -ivh compat-libstdc++-33-3.2.3-61.i386.rpm

rpm -Uvh elfutils-libelf-devel-static-0.137-3.el5.x86_64.rpm --nodeps

rpm -ivh elfutils-libelf-devel-0.137-3.el5.x86_64.rpm

rpm -ivh elfutils-libelf-0.137-3.el5.x86_64.rpm

rpm -Uvh elfutils-devel-static-0.137-3.el5.x86_64.rpm --nodeps

rpm -ivh elfutils-libs-0.137-3.el5.x86_64.rpm

rpm -ivh elfutils-devel-0.137-3.el5.x86_64.rpm

rpm -ivh glibc-headers-2.5-42.x86_64.rpm

rpm -ivh glibc-2.5-42.i686.rpm

rpm -ivh glibc-devel-2.5-42.i386.rpm

rpm -ivh glibc-2.5-42.x86_64.rpm

rpm -ivh glibc-common-2.5-42.x86_64.rpm

rpm -ivh glibc-devel-2.5-42.x86_64.rpm

rpm -ivh gcc-4.1.2-46.el5.x86_64.rpm

rpm -ivh gcc-c++-4.1.2-46.el5.x86_64.rpm

rpm -ivh kernel-headers-2.6.18-164.el5.x86_64.rpm

rpm -ivh ksh-20080202-14.el5.x86_64.rpm

rpm -ivh libaio-0.3.106-3.2.i386.rpm

rpm -ivh libaio-0.3.106-3.2.x86_64.rpm

rpm -ivh libaio-devel-0.3.106-3.2.i386.rpm

rpm -ivh libaio-devel-0.3.106-3.2.x86_64.rpm

rpm -ivh libgcc-4.1.2-46.el5.i386.rpm

rpm -ivh libgcc-4.1.2-46.el5.x86_64.rpm

rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm

rpm -ivh libstdc++-4.1.2-46.el5.x86_64.rpm

rpm -ivh libstdc++-devel-4.1.2-46.el5.x86_64.rpm

rpm -ivh make-3.81-3.el5.x86_64.rpm

rpm -ivh sysstat-7.0.2-3.el5.x86_64.rpm

rpm -ivh unixODBC-2.2.11-7.1.i386.rpm

rpm -ivh unixODBC-devel-2.2.11-7.1.i386.rpm

rpm -ivh unixODBC-2.2.11-7.1.x86_64.rpm

rpm -ivh unixODBC-devel-2.2.11-7.1.x86_64.rpm

增加必须要的用户组与用户

[root@ora ~]# groupadd oinstall

[root@ora ~]# groupadd dba

[root@ora ~]# adduser -g oinstall -G dba oracle

[root@ora ~]# 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.

[root@ora ~]# df -h

[root@ora ~]# mkdir -p /ora/app/oracle/product/

[root@ora ~]# chown -R oracle:oinstall /ora

[root@ora ~]# chmod -R 775 /ora

[root@ora ~]# chown -R oracle:oinstall /oradata

[root@ora ~]# chmod -R 775 /oradata

[root@ora ~]# chown -R oracle:oinstall /orabak

[root@ora ~]# chmod -R 775 /orabak

修改内核参数

[root@ora ~]#vi /etc/sysctl.conf

kernel.shmmni = 4096

# semaphores: semmsl, semmns, semopm, semmni

kernel.sem = 250 32000 100 128

fs.file-max = 6815744

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 262144

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

fs.aio-max-nr= 1048576

[root@ora ~]#/sbin/sysctl -p

[root@ora ~]#/sbin/sysctl -a

为 oracle 用户设置 Shell 限制

[root@ora ~]# vi /etc/security/limits.conf

增加:

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

vi /etc/pam.d/login file

增加:

session required pam_limits.so\

vi /etc/profile

增加:

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

vi /etc/csh.login

增加:

if ( $USER == "oracle" ) then

limit maxproc 16384

limit descriptors 65536

endif

修改用户的启动脚本

su oracle

echo $SHELL

cd /home/oracle

vi .bash_profile

增加如下内容:

ORACLE_BASE=/ora/app/oracle

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

ORACLE_HOME_LISTNER=$ORACLE_BASE/product/11.2.0/dbhome_1

ORACLE_SID=orcl

PATH=$ORACLE_HOME/bin:$PATH

export ORACLE_BASE ORACLE_HOME ORACLE_HOME_LISTNER ORACLE_SID PATH

ORACLE_TERM=xterm

export ORACLE_TERM

TNS_ADMIN=$ORACLE_HOME/network/admin

export TNS_ADMIN

#set the user languages

#NLS_LANG="SIMPLIFIED CHINESE_CHINA".GBK

#LC_CTYPE=zh_CN.GBK

#LC_ALL=zh_CN.UTF8

#LANG=zh_CN.GBK

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib

CLASSPATH=$ORACLE_HOME/jdk/jre:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

export NLS_LANG LC_CTYPE LC_ALL LANG LD_LIBRARY_PATH CLASSPATH

umask 022

载入启动脚本:

source .bash_profile

上传 oracle 的安装文件到服务器,采用 SFTP 协议传输。

以 oracle 用户上传之 /ora 文件夹

[oracle@ora ora]$ unzip linux_11gR2_database_1of2.zip

[oracle@ora ora]$ unzip linux_11gR2_database_2of2.zip

二.安装 Oracle11gR2

cd /ora/database

./runInstaller 开始安装 .
选择高级安装 , 进行自定义安装

在 CentOS 的安装中 , 提示 pdksh 包找不到是正常现象, redhat5 以上的版本已经更名 pdksh 为 ksh 包了,前面我们已经安装了,所以可以忽略

在 CentOS 的安装中 , 会出现一个关于 oraInventory 目录的警告 , 点击 OK, 不用理会继续即可 , 在随后的窗口中将 /oraInventory 修改为 /ora/app/oraInventory
随后参数都是默认 , 在安装中会弹出一个要求执行 /ora/app/oraInventory/oraIinstRoot.sh 和 /ora/app/oracle/product/11.2.0/dbhome_1/root.sh 的提示框 , 可在命令行中 , 以 ROOT 用户执行这两个文件 , 进入 End of installtion 窗口 , 安装结束 .

[oracle@test database]$ ./runInstaller
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。 实际为 117329 MB 通过
检查交换空间: 必须大于 150 MB。 实际为 1983 MB 通过
检查监视器: 监视器配置至少必须显示 256 种颜色
>>> 无法使用命令 /usr/bin/xdpyinfo 自动检查显示器颜色。请检查是否设置了 DISPLAY 变量。 未通过 <<<<

未通过某些要求检查。必须先满足这些要求,

然后才能继续安装,那时将重新检查这些要求。

是否继续? (y/n) [n] y


原因:
当时是通过vnc登录的root,然后通过root切换到oracle用户的,注销通过oracle登录就可以!

三.连接测试

如果启动有问题lsnrctl: error while loading shared libraries: /home/oracle/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1: cannot restore segment prot after reloc: Permission denied

执行

semanage fcontext -a -t textrel_shlib_t /ora/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1
restorecon -R -v /ora/app/oracle/product/11.2.0/dbhome_1/lib/libclntsh.so.11.1

启动监听器: lsnrctl start

登陆: sqlplus "/as sysdba"

启动数据库: startup

关闭数据库: shutdown

关闭监听器: lsnrctl stop

启动 EM : emctl start dbconsole

关闭 EM : emctl stop dbconsole

启动 iSQL*Plus : isqlplusctl start

关闭 iSQL*Plus : isqlplusctl stop

如果希望让服务器自动启动,那么需要修改 /etc/oratab 中:

orcl:/ora/app/oracle/product/11.2.0/dbhome_1:Y

四.添加系统服务

作为 root 用户创建一个叫做 /etc/init.d/dbora 的文件,包括下面的内容:

#!/bin/sh

# description: Oracle auto start-stop script.

# chkconfig: - 20 80

#

# Set ORA_HOME to be equivalent to the $ORACLE_HOME

# from which you wish to execute dbstart and dbshut;

#

# Set ORA_OWNER to the user id of the owner of the

# Oracle database in ORA_HOME.

ORA_HOME=/ora/app/oracle/product/11.2.0/dbhome_1

ORA_OWNER=oracle

if [ ! -f $ORA_HOME/bin/dbstart ]

then

echo "Oracle startup: cannot start"

exit

fi

case "$1" in

'start')

# Start the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME"

su - $ORA_OWNER -c "emctl start dbconsole"

;;

'stop')

# Stop the Oracle databases:

# The following command assumes that the oracle login

# will not prompt the user for any values

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME"

su - $ORA_OWNER -c "emctl stop dbconsole"

;;

'restart')

$0 stop

$0 start

;;

esac

修改权限为 750

chmod 750 /etc/init.d/dbora

设置服务自动启动

chkconfig --level 345 dbora on

如果你遇上: cannot restore segment prot after reloc: Permission denied, 应该是 SELinux 的问题,可以考虑把它关闭。

四.添加自动备份服务

作为 root 用户创建一个叫做 /orabak/backup.sh 的文件,包括下面的内容:

#!/bin/bash

source /home/oracle/.bash_profile

# 初始化 Oracle 数据库

rq=$(date +%Y%m%d)

# 把当天日期赋予变量 rq

rm /orabak/backup/full_$rq.dmp

# 清空旧文件

exp system/springland file=/orabak/backup/full_$rq.dmp

log=/orabak/backup/full_$rq.log full=y compress=y

修改权限为 750

chmod 750 /orabak/backup.sh

设置 Cron 计划自动执行

nano /orabak/backup.txt

30 23 * * * /orabak/backup.sh

crontab –u root /orabak/backup.txt

crontab –l

/etc/init.d/crond restart

人气教程排行