六笨哥
分类: Oracle
2009-11-05 14:27:11
很多童鞋对64位Linux环境如何安装ORACLE10G都是一个很头痛的问题
首先要说明的是,官方也有相应的文档安装,只要认真阅读官方文档,都可以搞掂Oracel的安装。但是实际过程中,会有一些问题需要解决
下面把安装过程和大家分享一下,以免更多人像我一样花费大量的时间在莫名其妙的问题上
本文档参照了相关说明,旨在结合具体环境说明问题
但水平原因可能还是没有说明白,欢迎大家提意见
第一步
安装RH LINUX AS4
图形化安装,比较简单,为安装ORACLE注意
a.SWAP分区要设的足够大,最好在2G以上
b.安装包含的包要自选,开发包最好都钩上
分区表规划范本
Partition 空间大小
----------------------------------------------------------------
/boot 512MB
/swap 16GB swap一般为实体内存的2倍
/ 20GB
/home 4G
/tmp 8GB
/var 10GB
/u01 36G
/u02 106G
/backup 36G
如果有空间剩余的話,留留着用。
第二步
检查版本和需要的工具包
该部分基本没什么问题。
uname -r //内核版本
rpm -q gcc make binutils openmotif glibc //基本软件包,必须需要
rpm -q gcc make binutils openmotif setarch compat-db compat-gcc openmotif compat-gcc-c++ compat-libstdc++ compat-libstdc++-devel
//相关文档记载需要检查这些软件包,但有些是没有的,事实证明也确实是不需要的。
/******************************************
//RHEL AS 4的发行注记中提到这些软件包已经被删除:
//compat-gcc
//compat-gcc-c++
//compat-glibc
//compat-libstdc++
//compat-libstdc++-devel
//所以他们再也不需要被安装上了。
*********************************************/
grep MemTotal /proc/meminfo //检查内存
grep SwapTotal /proc/meminfo //检查交换分区
df -h //查看硬盘情况
第三步
针对 Oracle 配置 Linux
3.1 创建oracle安装群组和账号
groupadd oinstall
//添加组
groupadd dba
//添加组
useradd -m -g oinstall -G dba oracle
id oracle //验证
passwd oracle //设置密码
mkdir -p /u01/app/oracle //主目录
mkdir -p /u02/oradata //数据库文件目录
chown -R oracle:oinstall /u01/app/oracle/ /u02/oradata/ //目录关系
chmod -R 755 /u01/app/oracle/ /u02/oradata/ //读写权限设置
3.2 配置 Linux 内核参数
按照官方说明,应该配置如下参数:
内核参数
调整linux相关参数(用root账号)
sysctl.conf
limits.conf
login
profile
#edit /etc/sysctl.conf file
cp /etc/sysctl.conf /etc/sysctl.conf.old`date +%Y%m%k%M`
#touch /etc/sysctl.conf;chown root:root /etc/sysctl
echo>>/etc/sysctl.conf "#-----add by `date +%c`-----Start"
echo>>/etc/sysctl.conf "kernel.sem = 250 32000 100 128"
echo>>/etc/sysctl.conf "kernel.shmmax = 536870912"
echo>>/etc/sysctl.conf "net.ipv4.ip_local_port_range = 1024 65000"
echo>>/etc/sysctl.conf "#Network Setting"
echo>>/etc/sysctl.conf "net.core.rmem_default=262144"
echo>>/etc/sysctl.conf "net.core.wmem_default=262144"
echo>>/etc/sysctl.conf "net.core.rmem_max=262144"
echo>>/etc/sysctl.conf "net.core.wmem_max=262144"
echo>>/etc/sysctl.conf "#-----add by `date +%c`-----END"
sysctl -p
#edit /etc/security/limits.conf file
cp /etc/security/limits.conf /etc/security/limits.conf.old`date +%Y%m%k%M`
echo>>/etc/security/limits.conf "#-----add by `date +%c`-----Start"
echo>>/etc/security/limits.conf " oracle
soft
nproc
16384 "
echo>>/etc/security/limits.conf " oracle
hard
nproc
16384 "
echo>>/etc/security/limits.conf " oracle
soft
nofile
65536 "
echo>>/etc/security/limits.conf " oracle
hard
nofile
65536 "
echo>>/etc/security/limits.conf "#-----add by `date +%c`-----END"
#edit /etc/pam.d/login and backup the file
cp /etc/pam.d/login /etc/pam.d/login.old`date +%Y%m%k%M`
echo>>/etc/pam.d/login "#-----add by `date +%c`-----Start"
echo>>/etc/pam.d/login " session
required
/lib/security/pam_limits.so "
echo>>/etc/pam.d/login "#-----add by `date +%c`-----End"
#edit /etc/profile and buckup file,append under line to /etc/profile
cp /etc/profile /etc/profile.old`date +%Y%m%k%M`
echo>>/etc/profile "#-----add by `date +%c`-----Start"
echo>>/etc/profile ' if [ $USER = "oracle" ]; then'
echo>>/etc/profile '
if [ $SHELL = "/bin/ksh" ]; then'
echo>>/etc/proflie '
ulimit -p 16384'
echo>>/etc/profile '
ulimit -n 65536
'
echo>>/etc/profile '
else'
echo>>/etc/profile '
ulimit -u 16384 -n 65536
'
echo>>/etc/profile '
fi
echo>>/etc/profile ' fi'
echo>>/etc/profile "#-----add by `date +%c`-----End"
#after add to profile perform "$ unlimit" command to auth
ulimit -a
source /etc/profile
3.3 配置ORACLE环境(以下步骤用oracle账号):
cat /home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#Oracle Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0
export PATH=$PATH:$ORACLE_HOME/bin
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
#export NLS_LANG=AMERICAN_AMERICA.ZHT16BIG5
export NLS_LANG=AMERICAN_AMERICA.UTF8
export TNS_ADMIN=$ORACLE_HOME/network/admin
export ORACLE_SID=oracle
export ORACLE_TERM=xterm
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export CLASSPATH=$ORACLE_HOME/JRE/lib:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib
export LD_ASSUME_KERNEL=2.4.1
然后执行
source /home/oracle/.bash_profile
3.4.安装oralce
3.4.1.解压安装包
cpio –idmv
< 10201_database_linux_x86_64.cpio
3.4.2.开始安装
可以直接在本地主机上安装,也可通过仿真终端软件(Xmanager)远程安装。
3.4.2.1进入解压后的软件目录后,运行安装命令即可进入安装画面。
./runInstaller
3.4.2.2.安装文件路径以及HOME的指定
3.4.2.3. 选择安装类型:企业版,第一次安装可选择只安装软件,以后再单独创建数据库
3.4.2.4. Oracle10g自动检查操作系统是否符合安装的条件,当检查有不符的地方会有提示,需检查调整内核参数再重新检查:
3.4.2.5.最后选择部件并检查安装清单,然后点击安装
3.4.2.7.期中要用root账号运行两个脚本,最后安成完成
3.4.3.创建数据库(同oracle9i)
dbca
3.4.4.创建临听器(同oracle9i)
netca
3.4.5.设成开机自动启动数据库(用root账号)
改/etc/oratab 最后一行
sid:/oracle/product/10.2.0.1:N
=>
sid:/oracle/product/10.2.0.1:Y
改/etc/rc.local
echo "su - oracle -c 'lsnrctl start'" >> /etc/rc.local
echo "su - oracle -c 'dbstart'" >> /etc/rc.local
3.4.6.验证安装是否成功
1)验证是否安装成功:
sqlplus system/yourpassword@yoursid
SQL> select * from tab;
2)关闭、启动正常
sqlplus /nolog
SQL> connect /as sysdba
SQL> shutdown immediate
SQL> conn /as sysdba
SQL> startup
3)查看监听器状态
lsnrctl status
从10.2.0.1升级到10.2.0.4
$ isqlplusctl stop
$ lsnrctl stop
1、删除oraInventory目录,目录位置记录在oraInst.loc文件中
$ more /etc/oraInst.loc
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
$ rm -rf /u01/app/oracle/oraInventory
2、删除$ORACLE_HOME目录
$ rm -rf $ORACLE_HOME
3、删除其它oracle文件
$ su -
# rm -f /usr/local/bin/oraenv
rm -f /usr/local/bin/coraenv
rm -f /usr/local/bin/dbhome
# rm -f /etc/oraInst.loc
rm -f /etc/oratab
4、将oracle用户删除(若要重新安装,可以不删除)
# userdel -r oracle
5、将用户组删除(若要重新安装,可以不删除)
# groupdel oinstall