首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>本站原创>linux原创>文章内容
Linux下安装Oracle817完美解决版
来源:www.vfocus.net 作者:vfocus 发布时间:2009-08-18  

目录
1. 概述 1
2. 安装过程 2
2.1. 安装前环境准备 2
2.1.1. linux安装 2
2.1.2. X终端配置(root) 2
2.1.3. 兼容包安装检查(root) 3
2.1.4. 安装binutils-2.10.91.0.2-3(root) 3
2.1.5. 安装Jdk1.1.8_v3(root) 4
2.1.6. 安装glibc2.1 (root) 4
2.1.7. 隐藏系统文件(root) 4
2.1.8. 修改系统内核参数(root) 5
2.2. 配置oracle用户环境变量 5
2.2.1. 创建oracle用户(root) 5
2.2.2. 创建链接(root) 5
2.2.3. 修改oracle登录脚本(oracle) 5
2.3. 安装oracle817 7
2.3.1. 准备安装文件(oracle) 7
2.3.2. 安装目录(root) 8
2.3.3. 安装server(oracle) 8
2.3.4. 安装client(oracle) 9
2.4. 恢复系统 9
2.4.1. 恢复系统文件(root) 9
2.4.2. 恢复binutil包(root) 10
2.5. 建库 10
2.5.1. 检查配置文件(oracle) 10
2.5.2. 执行建库脚本(oracle) 11
2.5.3. 执行建表脚本(oracle)* 11
2.5.4. 启动数据库和listener(oracle) 12
2.5.5. 插入基础数据(oracle) 12
2.5.6. 编辑自启动脚本 12

1. 概述
本文档适用于oracle817在redhat 7.2/9.0/ADS2.1for ia32平台版本linux平台的安装,请严格按照以下过程进行。
正文格式部分为推荐安装过程。经过测试无误。
斜体部分为相关文档建议,但未经证实,暂不推荐。
7.2和9.0安装过程稍有不同,以下将详细说明。
Ads2.1和9.0安装过程基本相同。
RH8.0的安装过程应该也与7.2类似。

注意事项:
1. 安装DBD需要$ORACLE_HOME/rdbms/demo和$ORACLE_HOME/rdbms/public下的一些头文件,如果只安装client端,可能会报错,可以从安装了server的服务器复制上述文件*.h
2. 如果安装oracle9(64位),需要修改DBD的Makefile,将oracle/lib替换为oracle/lib32,rdbms/lib替换为rdbms/lib32。同事修改.profile中的LD_LIBRARY_PATH
3. 前期准备:
linux81701.tar
glibc-2.1.3-stubs.tar.gz
i386-glibc-2.1-linux.tar.gz
binutils-2.10.91.0.2-3.i386.rpm
jdk118_v3-glibc-2.1.3.tar.bz2
因为 Oracle 自带了 JRE 1.1.8,所以不用单独安装

2. 安装过程
2.1. 安装前环境准备
2.1.1. linux安装
安装选项:
语言:en
安装类型:自定义
分区:自定义
安装包:完全
用户:oracle组dba HOME目录/home/oracle
防火墙设置:允许ssh,www, 允许X终端,信任eth0
也可以开放telnet/ftp
安装后检查:
能够通过ssh访问
能够通过sftp访问
2.1.2. X终端配置(root)
以root登录,配置xdm
cd /etc/X11/xdm
修改Xaccess,在最后一行添加10.0.0.*(客户机子网地址)
修改xdm-config,去掉最后一行前面的注释
启动xdm

配置后检查:
能够从远程用Xmanager/Xwin等工具访问。

异常情况:
X终端无法访问:检查防火墙设置
2.1.3. 兼容包安装检查(root)
#rpm –qa com*
对于RH7.2,确认安装以下的包(7个):
compat-egcs-c++-6.2-1.1.2.16
compat-libstdc++-6.2-2.9.0.16
compat-egcs-objc-6.2-1.1.2.16
compat-egcs-6.2-1.1.2.16
compat-libs-6.2-3
compat-glibc-6.2-2.1.3.2
compat-egcs-g77-6.2-1.1.2.16
对于RH9.0,确认安装一下的包(15)
compat-db-3.3.11-4
compat-libgcj-7.3-2.96.118
compat-pwdb-0.62-3
compat-libgcj-devel-7.3-2.96.118
compat-gcc-g77-7.3-2.96.118
compat-slang-1.4.5-5
compat-libstdc++-7.3-2.96.118
compat-libstdc++-devel-7.3-2.96.118
compat-gcc-java-7.3-2.96.118
comps-9-0.20030313
compat-gcc-7.3-2.96.118
compat-gcc-objc-7.3-2.96.118
compat-gcc-c++-7.3-2.96.118
如果是完全安装,则应该满足此步骤、

如果非完全安装,
安装文件:安装包/oracle/rh72(rh9)下
上传到任意目录(建议/home/oracle/patch/rh72)
可以通过以下命令安装
rpm –ihv -–force compat*
安装完毕后,cd ..退到上级目录,再检查是否安装成功。
2.1.4. 安装binutils-2.10.91.0.2-3(root)
说明:
这是工具包,它和的ld相关。但版本是redhat7.1的。原因是oracle817只认redhat7.1版本。
先#rpm –qa binutil*
检查并记录当前版本号,以后恢复

安装方法:
安装文件:安装包/oracle/ binutils-2.10.91.0.2-3.i386.rpm
上传到/home/oracle/patch
# rpm -Uvh --force --nodeps binutils-2.10.91.0.2-3.i386.rpm


2.1.5. 安装Jdk1.1.8_v3(root)
安装文件:安装包/oracle/ bunzip2 jdk118_v3-glibc-2.1.3.tar.bz2
上传到/home/oracle/patch目录
bunzip2 jdk118_v3-glibc-2.1.3.tar.bz2
cp jdk118_v3-glibc-2.1.3.tar /usr/local
cd /usr/local
tar -xvf jdk118_v3-glibc-2.1.3.tar
ln -s jdk118_v3 java
2.1.6. 安装glibc2.1 (root)
把i386.glibc-2.1-linux.tar.gz拷贝到根目录
使用root用户
tar zxvf i386.glibc-2.1-linux.tar.gz
2.1.7. 隐藏系统文件(root)
说明:
此步操作仅对RH9.0为必须。
RH7.2安装不用。
区别:
检查 /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh文件是否存在
RH9没有/usr/i386-glibc21-linux目录

#cd /usr/bin
#mkdir saved
#mv gcc cc ld saved
#ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-gcc gcc
#ln -s gcc cc
#ln -s /usr/i386-glibc-2.1-linux/bin/i386-glibc21-linux-ld ld

#cd /usr/lib
#mkdir saved
#mv libc.so libdl.so libm.so libpthread.so saved
#mv libc.a libdl.a libm.a libpthread.a saved
2.1.8. 修改系统内核参数(root)
说明:如果仅安装oracle客户端,此步骤可免。
#cd /proc/sys/kernel
# echo 268435456 > /proc/sys/kernel/shmmax
# echo -e "250 32000 100 128" > /proc/sys/kernel/sem
2.2. 配置oracle用户环境变量
2.2.1. 创建oracle用户(root)
如果安装linux时选择了创建oracle用户,则此步骤可免

groupadd dba
useradd –g oracle –d /home/oracle –m oracle -G dba
passwd oracle
并输入oracle用户的密码
2.2.2. 创建链接(root)
ln -s /usr/bin /usr/ucb
ln -s /bin/sh /usr/bin/sh
ln -s /bin/mkdir /usr/bin/mkdir

2.2.3. 修改oracle登录脚本(oracle)
修改/home/oracle/.bash_profile
可以参考安装目录下的相应文件
对于RH7.2
添加:
export LD_ASSUME_KERNEL=2.2.5
source /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
export ORACLE_BASE=$HOME
export ORACLE_HOME=$HOME
export ORACLE_SID=dbnms
export PATH=$PATH:$HOME/bin:.

修改完毕重新登录,
$gcc –v
执行gcc –v,观察其输出,应是:
Reading specs from /usr/lib/gcc-lib/i386-redhat-linux/2.96/specs
gcc version 2.96 20000731(Red Hat Linux7.3.2.96.110)

对于RH9.0
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME
# +------------------------------------------------------------+
# | FILE : .bash_profile |
# +------------------------------------------------------------+

umask 022
EDITOR=vi; export EDITOR
TERM=xterm; export TERM
TMPDIR=/tmp; export TMPDIR

# +--------------------------+
# | SETUP ORACLE ENVIRONMENT |
# +--------------------------+

export ORACLE_SID=dbnms
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin

export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data

export ORACLE_OWNER=oracle
export ORACLE_TERM=xterm

#export LDEMULATION=elf_i386_glibc21
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
# +--------------------------+
# | LINUX STUFF |
# +--------------------------+

export LD_ASSUME_KERNEL=2.4
#source /usr/i386-glibc2.1-linux/bin/i386-glibc21-linux-env.sh

# +--------------------------+
# | SETUP SEARCH PATH |
# +--------------------------+

PATH=$PATH:$ORACLE_HOME/bin:/opt/bin:/bin:/usr/bin:/usr/local/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/java/bin:.
export PATH
# +--------------------------+
# | SETUP JAVA ENVIRONMENT |
# +--------------------------+

export JAVA_HOME=/usr/local/java

export CLASSPATH=$ORACLE_HOME /jdbc/lib/classes12.zip: $ORACLE_HOME/JRE: $ORACLE_HOME /jlib: $ORACLE_HOME /rdbms/jlib: $ORACLE_HOME /network/jlib:.

# +-------------+
# | "GREETINGS" |
# +-------------+
echo ".bash_profile executed"

2.3. 安装oracle817
2.3.1. 准备安装文件(oracle)
安装文件: linux81701.tar.gz
上传到/home/oracle目录,并解压缩,生成目录disk1
2.3.2. 安装目录(root)
以root身份创建oracle安装目录,建议不要更改,否则需要修改相应脚本。
#cd /
#mkdir oracle
#mkdir oradata1
#mkdir oradata2
#chown oracle:dba ora*
2.3.3. 安装server(oracle)
可以选择从本机图形界面直接安装
也可以选择远程通过X终端进行安装

$cd /home/oracle/Disk1
./runInstaller启动图形安装界面
安装选项:
oracle安装目录/oracle
安装语言:增加简体中文
安装server时选择custom,不要建库

解决中间出错:
在安装到最后Linking Oracle8i Enterprise Edition 8.1.7.0.1 , 97%时,会有一错误提示,
Error in invoking target install of makefile /u01/app/oracle/product/8.1.7/ctx/lib/ins_ctx.mk

则需要在另一终端窗口下运行glibc修补文件glibc-2_1_3-stubs_tar.gz, 在另一终端下登录作为oracle,然后

cd /u01/app/oracle/product/8.1.7
tar xvfz /usr/src/glibc-2_1_3-stubs_tar.gz
./setup_stubs.sh
等待结束后。
还没有完,然后再做下面的
cd /u01/app/oracle/product/8.1.7/ctx/lib
vi env_ctx.mk
更改1374行 (vi 文件,然后打入1374 G 直接跳到该行 )
CTXHX_LINKLINE=$(LINK) $(CTXLIB)ctxhx.$(OBJ_EXT) $(INSO_LINK) $(USRLIBS)
在最后加上 -ldl 变成
CTXHX_LINKLINE=$(LINK) $(CTXLIB)ctxhx.$(OBJ_EXT) $(INSO_LINK) $(USRLIBS) -ldl
再回到安装界面击retry.

安装过程中需要运行root.sh
先不要急着运行root.sh,因为文件的第102行和156行有错误,
把 RMF=/bin/rm -f 改为 RMF="/bin/rm -f"
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}`改为
RUID=`/usr/bin/id|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
保存后运行
./root.sh


配置完net8和lisener后结束

异常情况:
runInstaller图形界面无法正常启动:
检查x是否正常
检查java环境变量
前述工作是否没有完成?

2.3.4. 安装client(oracle)
可以选择从本机图形界面直接安装
也可以选择远程通过X终端进行安装

$cd /home/oracle/Disk1
./runInstaller启动图形安装界面
安装选项:
oracle安装目录/oracle
选择安装client,典型安装。

2.4. 恢复系统
2.4.1. 恢复系统文件(root)
此步骤仅对RH9.0有效
cd /usr/bin
rm -f gcc cc ld
mv ./saved/* .
rmdir saved
cd /usr/lib
mv ./saved/* .
rmdir daved
2.4.2. 恢复binutil包(root)
对于RH7.2
安装文件:安装包/oracle/RH72/ binutils-2.11.90.0.8-9.i386.rpm
上传到/home/oracle/patch/rh72
#cd /home/oracle/patch/rh72
# rpm -e --nodeps binutils-2.10.91.0.2-3
#rpm –ihv –-force –-nodeps binutils-2.11.90.0.8-9.i386.rpm
恢复后检查gcc –v和ld –v

对于RH9
安装文件:安装包/oracle/RH9/binutils-2.13.90.0.18-9.i386.rpm
上传到/home/oracle/patch/rh72
#cd /home/oracle/patch/rh72
# rpm -e --nodeps binutils-2.10.91.0.2-3
#rpm –ihv –-force -–nodeps binutils-2.13.90.0.18-9.i386.rpm
恢复后检查gcc –v和ld -v

对于Rhads21
安装文件:安装包/oracle/Rhas21/binutils-2.11.90.0.8-12.i386.rpm
上传到/home/oracle/patch/rhas21
#cd /home/oracle/patch/rh72
# rpm -e --nodeps binutils-2.10.91.0.2-3
#rpm –ihv –-force –-nodeps binutils-2.11.90.0.8-12.i386.rpm
恢复后检查gcc –v和ld -v
2.5. 建库
2.5.1. 检查配置文件(oracle)
安装文件:安装包/数据库建库脚本/database/*.ora
根据实际安装的服务器内存配置,可以对initdbnms.ora文件参数进行适当修改。
以1G内存为例
l57:db_block_buffers = 20000
l59:shared_pool_size = 200M
以2G内存为例
l57:db_block_buffers = 50000
l59:shared_pool_size = 400M

根据实际的服务器名称,修改listener.ora
L11,L19:将dbsvr修改为实际的数据库服务器主机名或ip地址

根据实际的服务器名称,修改tnsnames.ora
L7:将dbsvr修改为实际的数据库服务器主机名或ip地址
2.5.2. 执行建库脚本(oracle)
安装文件:安装包/数据库建库脚本/database
上传到/home/oracle/crdb
oracle登录
$cd /home/oracle/crdb/database
$chmod +x *sh
确认sqlplus、svrmgrl命令可以运行
请确认/oradata1 /oradata2目录已存在且属主为oracle

$./dbcrt.sh 创建目录,复制配置文件
如果有个别步骤失败,请手工逐一运行。
$./dbcrt1.sh 调用svrmgrl创建数据库文件
$./dbcrt2.sh 调用svrmgrl创建数据库表空间
$./dbcrt3.sh

安装后检查:
可以通过sqlplus system/manager访问数据库。
Select * from tab;
26rows

异常情况:
1. dbcrt.sh中cp oratab /etc失败:可能是权限问题,oracle应在root组(root.sh)。
2.5.3. 执行建表脚本(oracle)*
更新建表脚本
打开最新的PDM文件,选择generate database
选项:
drop table/view/index/pk/fk
选择所有表、视图、sequence、type导出
注意:
对于PD8.5,需要在sequence/type/view前加上前缀
对于PD9,需要去掉sequence/type名字上的括号
注意检查拓扑表的T_Device表的nodecode字段是否有错

安装文件:安装包/数据库建库脚本/nms
上传到/home/oracle/crdb
oracle登录
$cd /home/oracle/crdb/nms
$chmod +x *sh
$./cre_nms.sh


安装后检查:
通过sqlplus slview/slview可以登录数据库
通过PLSQL Developer或DBAStudio检查slview和sldata用户的存储过程是否创建正常。
如果不正常,可以通过重新执行相应的sql语句来重建。
如果仍然失败,检查相应的sequence/type/view是否正常创建。
检查/oracle/admin/dbnms/create/cre*.log检查安装是否正常结束
如果有异常,建议手工运行各sql语句

如果系统安装完毕无法增加设备,多半是此处脚本运行有问题。
2.5.4. 启动数据库和listener(oracle)
检查/oracle/network/admin下的l*ora和t*.ora的配置,修改ip地址
$lsnrctl
>start
启动监听进程

2.5.5. 插入基础数据(oracle)
建议通过远程sqlplus/PB连接数据库执行
直接在linux环境执行有乱码问题(可能是环境变量的问题)
@basedata.sql
2.5.6. 编辑自启动脚本
root# vi /etc/oratab
将最后的N改为Y
简单的服务启动脚本:
root#vi /etc/rc.local
添加以下内容:
su - oracle -c ‘lsnrctl start’
su - oracle -c ‘dbstart’


附录:解决oracle的字符集问题

SQL> SHUTDOWN IMMEDIATE; -- or NORMAL

SQL> STARTUP MOUNT;
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
SQL> ALTER DATABASE OPEN;
SQL> ALTER DATABASE CHARACTER SET ;
SQL> SHUTDOWN IMMEDIATE; -- or NORMAL
SQL> STARTUP;


 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·OPENVPN安装手册
·openssh记录sftp详细日志,并chr
·ssh-3.2记录sftp日志,并且chroo
·用linux构建仗剑江湖mud游戏服务
·Linux高可用(HA)集群笔记heartbe
·关于日志记录系统设计思想
·unix入侵及防御心得(一)(2)
·unix入侵及防御心得(一)(1)
·linux下的Informix安装配置
·Informix的数据库优化
·Linux下apache运行mysql,cgi,p
·改的一个非GBK的JSP的webshell
  相关文章
·ssh-3.2记录sftp日志,并且chroo
·Linux下apache运行mysql,cgi,p
·linux下的Informix安装配置
·Informix的数据库优化
·在 RHEL3 上安装 Oracle 10g
·openssh记录sftp详细日志,并chr
·用mod_gzip对Apache1.3做Web压缩
·lvs+heard负载均衡文档(DR)
·Linux高可用(HA)集群笔记heartbe
·OPENVPN安装手册
·改的一个非GBK的JSP的webshell
·unix入侵及防御心得(一)(2)
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved