您的位置:首页 > 数据库 > Oracle

Linux Redhat4.0下安装 Oracle10.2.0.1

2011-05-18 13:31 393 查看
搞了4天,终于在Redhat4.0上安装了Oracle,总结必不可少。。

开始我的Oracle实验之旅。。。

===================
安装Linux篇
===================
------------
1、安装VM
------------
VMWare三种网络连接(bridged、NAT、host-only)

VMWare支持三种类型的网络:
1、bridged(桥接模式)
在这种模式下,虚拟系统就像是局域网中的一台独立的主机,与宿主计算机平等的存在于网络中,你必须像对待局域网中的其他真正的机子一样来对待它(比如分配你的局域网所要求的网络地址、子网掩码、网关等)。
使用bridged模式的虚拟系统和宿主机器的关系:就像连接在同一个Hub上的两台电脑。
虚拟系统与宿主计算机以及宿主计算机所在网络的其他计算机都可以相互访问。如果你想利用VMWare在局域网内新建一个虚拟服务器,为局域网用户提供网络服务,就应该选择桥接模式。

2、NAT(网络地址转换模式)
这种模式下,虚拟系统的网卡连接到宿主计算机的VMware Network Adapter VMnet8网卡上(宿主计算机安装了VMWare软件后会自动添加VMware Network Adapter VMnet1和VMware Network Adapter VMnet8两个网卡,当然是在宿主计算机的"网络连接"里查看啰)。如果你希望你的虚拟系统连接外部网络,这种模式最简单,虚拟系统不用做任何网络设置就可以访问外部网络。

使用NAT模式的虚拟系统和宿主计算机的关系:宿主计算机就相当于是开启了DHCP功能的路由器,虚拟系统就是内网中的一台实际的机器,通过路由器的DHCP服务获得网络参数。
虚拟系统可以访问宿主计算机所在网络的其他计算机(反之不行),可以与宿主计算机互访。

3、Host-only(主机模式)
这种模式下,虚拟系统的网卡连接到宿主计算机的VMware Network Adapter VMnet1网卡上。默认情况下,虚拟系统只能与宿主计算机互访,这也是Host-only的名字的意义。此时相当于两台机器通过双绞线直连。

如果你想利用VMWare创建一个与网内其他机器相隔离的虚拟系统,进行某些特殊的网络调试工作,可以选择Host-only模式。

-------------------
2、安装 telnet
-------------------
telnet,无法连接 23端口
解决:关闭防火墙
Linux防火墙的关闭和开启
1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off

2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop

------------
3、启动 ftp
------------
vi /etc/xinetd.d/gssftp
将 disable 设置为 no
service xinetd restart

linux 查看 Windows 磁盘:fdisk -l ,但是虚拟机上就看不到了,因为是单独划的一片空间。只能用ftp了。

C:/Documents and Settings/yinjianquan>ftp 192.168.146.129
Connected to 192.168.146.129.
220 localhost.localdomain FTP server (Version 5.60) ready.
User (192.168.146.129:(none)): root
530 Must perform authentication before identifying USER.
Login failed.
ftp>

解决:
首先,如果正在使用vsftpd,可以先把其停掉,命令:service vsftpd stop,接下来需要编辑/etc/xinetd.d/gssftp配置文件,文件内容如下:
# default: off
# description: The kerberized FTP server accepts FTP connections
# that can be authenticated with Kerberos 5.
service ftp
{
disable = yes
flags = REUSE
socket_type = stream
wait = no
user = root
server = /usr/kerberos/sbin/ftpd
server_args = -l -a
log_on_failure += USERID
}

在文件中,我们要修改的内容有:
1、disable = yes 改为 disable =no ,系统默认ftp功能是无效的,修改使ftp功能生效。
2、server_args = -l -a 改为 server_args = -l。
without -a means : *enable weak authentication*
其中表示使用Kerberos 5验证机制,而一般的ftp是不支持该验证机制的。
修改完毕后,将其保存。

3、重启启动xinetd服务。请执行一下的命令(/etc/xinetd.d/):
service xinetd restart
service vsftpd restart
注:
1、建议gssftp配置文件中的user(user = root)不要使用root,最好使用其他的用户。
2、在Linux RHEL 5 或者更高版本中可能不存在gssftp,本人还没有接触到。

===================
安装Oralce篇
===================
-------------------------
1、查看内存和交换空间
-------------------------
需要 内存:922M以上、交换空间:1.5G以上、空闲硬盘空间要3G以上
查看内存:grep MemTotal /proc/meminfo
查看交换空间:grep SwapTotal /proc/meminfo 或者 free -m (注意:关于proc目录的介绍)

添加交换空间:
mkswap /home/swap
swapon /home/swap
将此交换空间添加到/etc/fstab中
vi /etc/fstab
/home/swap swap swap defaults 0 0

[root@db2 oracledb]# free -m
total used free shared buffers cached
Mem: 1006 979 27 0 6 917
-/+ buffers/cache: 54 952
Swap: 3099 0 30999

给虚拟机添加硬盘空间: http://topic.csdn.net/u/20070202/23/0f198f0e-c982-4116-9d8a-bcd70ac1aa06.html

给虚拟机增加3块磁盘:
fdisk -l
/dev/sdb
/dev/sdc

给磁盘分区:
fdisk /dev/sdb
n (新建分区)
p (p:primary,e:extended )
partition number:1(分区编号,注意:sdc1 ,c是磁盘编号,1是分区编号)
First cylinder:
Last cylinder:
w(保存退出)

给磁盘格式化: mkfs.ext3 /dev/sdc

挂磁盘:
mkdir /mnt/sdc1
mount /dev/sdc1 /mnt/sdc1
这种重启就失效了,永久挂在需要修改 /etc/fstab
如:/dev/sdb1 /mnt/sdc1 ext3 defaults 0 0

错误:wrong fs type, bad option, bad superblock
解决:mount -l 查看挂载点,重启,然后格式化,再挂载

---------------------
2、tmp空间
---------------------
临时硬盘空间
Oracle10g安装程序在安装过程中需要400M以上的临时硬盘空间,建议使用“/tmp”文件夹
作为零时文件夹,如果“/tmp”文件没有足够的空间,可以新创建一个文件夹作为安装的
临时目录,之后设置环境变量TEMP和TMPDIR指向相应的位置,详见下面的操作代码。

登录进入Linux,在命令行方式(bash环境)下执行如下命令检查“/tmp”文件的空间:

$ df /tmp

如果“/tmp”文件空间不足,可以执行如下命令在另一个文件系统中创建“/tmp”文件:

$ su - root
# mkdir /<AnotherFilesystem>/tmp //如 # mkdir /home/temp
# chown root.root /<AnotherFilesystem>/tmp
# chmod 1777 /<AnotherFilesystem>/tmp
# export TEMP=/<AnotherFilesystem>
//如 # TEMP=/home/temp; export TEMP
# export TMPDIR=/<AnotherFilesystem>

//如 # TMPDIR=/home/temp; export TMPDIR

这样,在完成Oracle10g的安装之后,就可以通过如下命令删除先前创建的临时文件:
$ su - root
# rmdir /<AnotherFilesystem>/tmp
# unset TEMP
# unset TMPDIR

---------------------------
2、设置内核参数
---------------------------
semmsl: 250
semmns: 32000
semopm: 100
semmni: 128
shmmax: 536870912
shmmni :4096
shmall :2097152
file-max: 65536
ip_local_port_range:1024–65000

方法一:
在文件 /etc/sysctl.conf 中增加如下参数设置,当系统重启时参数将生效:
hmmax=2147483648
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
为了使重设的参数立即生效,还可以执行如下命令:
$ su - root
# sysctl –p

方法二:
貌似重启后就失效了
其中 semmsl、semmns、semopm、semmni在 /proc/sys/kernel/sem 里面设置:
echo 250 32000 100 128 > /proc/sys/kernel/sem
echo 536870912 > /proc/sys/kernel/shmmax
echo 4096 > /proc/sys/kernel/shmmni
echo 2097152 > /proc/sys/kernel/shmall
echo 65536 > /proc/sys/fs/file-max
echo 65000 > /proc/sys/net/ipv4/ip_local_port_range

---------------------
3、所需的rpm
---------------------
检查内核版本:uname -a,uname -r
rpm命令 http://networking.ctocio.com.cn/tips/132/9412132.shtml
查看 glibc的版本:rpm -qa |grep glibc
make-3.79.1
gcc-3.2.3-34 (gcc > glibc-devel > glibc-headers > glibc-kernheaders)
glibc-2.3.2-95.20
compat-db-4.0.14-5
compat-gcc-7.3-2.96.128
compat-gcc-c++-7.3-2.96.128
compat-libstdc++-7.3-2.96.128
compat-libstdc++-devel-7.3-2.96.128
openmotif21-2.1.30-8
setarch-1.3-1
libaio-0.3.96

---------------------
4、安装JDK
---------------------
./jdk-6u21-linux-i586.bin
将安装后的目录放到 /user/jdk1.6.0_21

Linux环境变量设置文件
/etc/profile
全局用户,应用于所有的Shell。
/$HOME/.profile
当前用户,应用于所有的Shell。
/etc/bash_bashrc
全局用户,应用于Bash Shell。
~/.bashrc
局部当前,应用于Bash Sell。

设置环境变量:
JAVA_HOME=/usr/jdk1.6.0_21
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export JAVA_HOME PATH CLASSPATH

让变量生效 :source /etc/profile

source命令用法:
source FileName
作用:在当前bash环境下读取并执行FileName中的命令。
注:该命令通常用命令“.”来替代。
如:source .bash_rc 与 . .bash_rc 是等效的。

------------------------
5、增加用户、用户组
------------------------
Oracle在安装和使用中需要用到特定用户(非root用户),按照Oracle的标准说明需要添
加3个专门用户和用户组,为了简化应用、方便装配,可以把Oracle的安装和使用归到一个
特定用户来完成,下面详细说明。
创建Oracle用户组,该用户组名为dba:
1. 以root用户登录系统
2. 运行groupadd dba命令添加dba用户组
# groupadd dba //创建Oracle的primary组
3. 运行groupadd dba命令添加oinstall用户组
# groupadd oinstall
4. 创建Oracle用户并赋予组权
# useradd -c "Oracle software owner" -g oinstall -G dba oracle
# passwd oracle
运行后系统创建了一个属于“dba”和“oinstall”用户组的用户“Oracle”,使用命令行环境(bash环境)
这个用户将作为系统的安装和使用用户,因此要妥善保存好!

su - username 事实上是切换用户 并使用被切换用户的环境变量的意思
su uesrname 是切换用户 但是使用当前用户的环境变量

-----------------------------------
6、设置oracle用户的环境变量
-----------------------------------
ORACLE_BASE=/oracle
ORACLE_HOME=/oracle/app/oracle/product/10.2.0.1/db_1 (注意这里我新建的目录 /oracle/app/oracle,因为)
ORACLE_SID=orcl
export ORACLE_HOME ORACLE_BASE ORACLE_SID
PATH=$PATH:$ORACLE_HOME/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib
NS_LANG=american_america.ZHS16GBK
LANG=american_america.ZHS16GBK
export PATH LD_LIBRARY_PATH NS_LANG LANG

------------------
7、安装Oracle
------------------
上传 Oracle10201_database_linux32.zip
unzip Oracle10201_database_linux32.zip
./runInstaller

安装过程中的错误:

没有设置内核参数
Checking for libaio-0.3.96; found Not found. Failed <<<< ok
Checking for rmem_default=262144; found rmem_default=110592. Failed <<<<
Checking for rmem_max=262144; found rmem_max=131071. Failed <<<<
Checking for wmem_default=262144; found wmem_default=110592. Failed <<<<
Checking for wmem_max=262144; found wmem_max=131071. Failed <<<<
Check complete. The overall result of this check is: Failed <<<<

物理内存不足 (调整虚拟机内存)
Checking physical memory requirements ...
Expected result: 922MB
Actual Result: 788MB
Check complete. The overall result of this check is: Failed <<<<
Problem: The system does not have sufficient physical memory to perform the install.
Recommendation: Increase the amount of physical memory available to your system before continuing with the installation.

交换空间不足 (给虚拟机增加磁盘,然后启动Linux,划分一个swap文件)
Checking available swap space requirements ...
Expected result: 1182MB
Actual Result: 1027MB
Check complete. The overall result of this check is: Failed <<<<
Problem: The system does not have the required swap space.
Recommendation: Make more swap space available to perform the install.

需要设置静态IP
Checking Network Configuration requirements ...
Check complete. The overall result of this check is: Not executed <<<<
Recommendation: Oracle supports installations on systems with DHCP-assigned public IP addresses.
However, the primary network interface on the system should be configured with a static IP address in order for the Oracle Software to function properly.
See the Installation Guide for more details on installing the software on systems configured with DHCP.

------------------
设置静态IP
------------------
ifconfig的更多参数说明查看相关帮助
手动改/etc/sysconfig/network-scripts/ifcfg-eth0文件
vi打开ifcfg-eth0文件
原内容:
DEVICE=eth0
BOOTPROTO=dhcp
HWADDR=00:03:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet

改为:
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.223
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
HWADDR=00:0uu3:47:2C:D5:40
ONBOOT=yes
TYPE=Ethernet

分别执行命令
/sbin/ifdown eth0
/sbin/ifup eth0
/etc/init.d/network restart //使设置的网关马上生效
ifup - 代表拨号的连接命令,该命令只要在命令行或终端中可以成功执行就可以了
ifdown - 代表断开连接的命令,同样该命令只要在命令行或终端中可以成功执行就可以了

HWADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上,这个字段是非常有用的,它保证设备接口被分配了正确的设备名 ,而不考虑每个网卡模块被配置的加载顺序.这个字段不能和MACADDR一起使用.
MACADDR=, 其中 以AA:BB:CC:DD:EE:FF形式的以太网设备的硬件地址.在有多个网卡设备的机器上.这个字段用于给一个接口分配一个MAC地址,覆盖物理分配的MAC地址 . 这个字段不能和HWADDR一起使用.

相关的几个重要文件和命令:
/etc/hosts
/etc/sysconfig/network
/etc/sysconfig/network-scripts/ifcfg-eth0
#hostname
#service network restart

===============
错误篇
===============
--------------
设置 SHELL
--------------
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib
# unset USERNAME
# umask 022
但TELNET上来用ORACLE登陆后错误如下:
: command not found
: command not found
': not a valid identifierME
': not a valid identifierY_PATH
': not a valid identifierSE 《-----------------SE 是 ORACLE_BASE的结尾
': not a valid identifierD 《------------------D 是 ORACLE_SID的结尾
': not a valid identifier
': not a valid identifier
: command not found
: command not found
': not a valid identifier
: command not found

解决方法:估计是我在windows上写的文件上传到linux时出的问题,最好是用linux的vi写.profile

echo $SHELL :显示当前的shell
shell-name :用shell名字可以切换shell,比如 bash,bsh,ksh,csh

如何修改linux或Unix用户的默认shell
1.若创建用户:
useradd -s /bin/ksh (红色字体可改你希望的shell)

2.如更改已经存在的用户的shell:
usermod -s /bin/ksh

-----------------------
用oracle登录时的错误
-----------------------
详细信息:/etc/X11/gdm/Presession/default: Registering your session with wtmp and utmp
解决方法:
在 oracle 用户的.profile里面加了个 export DISPLAY=192.168.146.129:0.0 ,把这句去掉、删除 TMPDIR目录里的内容,重启。。

---------------
疑难问题:
---------------
1、ftp很慢,未解决
2、设置了静态IP地址,这个问题还是没有解决,不影响安装oracle
Checking Network Configuration requirements ...
Check complete. The overall result of this check is: Not executed <<<<
Recommendation: Oracle supports installations on systems with DHCP-assigned public IP addresses.
However, the primary network interface on the system should be configured with a static IP address in order for the Oracle Software to function properly.
See the Installation Guide for more details on installing the software on systems configured with DHCP.

3、分区表丢失,没搞定如何安装testdisk工具
Disk /dev/sdb doesn't contain a valid partition table

===================
参考文档
===================

磁盘分区&格式化操练手记 http://lostu.blogbus.com/logs/16151061.html
mkfs.ext3 创建扩展分区失败 http://www.cublog.cn/u/1808/showart_370496.html
实例解说linux中fdisk分区的使用方法 http://www.examda.com/Linux/Instructs/060116/131758395.html
安装Oracle http://emuch.net/fanwen/439/58042.html
很全的安装oracle http://home.ixpub.net/space.php?uid=22032845&do=blog&id=408565
增加Swap分区文件 http://soft.zdnet.com.cn/software_zone/2007/1010/545261.shtml
设置静态IP地址: http://i.yoho.cn/logview/11756.html
oraInventory 目录 http://www.dbaroad.me/archives/2009/10/reinstall_orainventory.html

安装后的几个截图:



意思就是 /oracle/oraInventory/orainstRoot.sh 这个文件 oracle用户没权限执行,需要用root用户执行一下下。



Success。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yjq8116/archive/2010/08/28/5846231.aspx
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: