资源描述
Redhat linux5.6下Oracle 10g (10.2.0.1)安装及升级到10.2.0.4
配置手册
· 安装准备
· RedHat Linux Server 5.6安装文件(RPM补丁包定制,全选,软件开发包下全部选择,语言选中文、英语即可)
· Oracle 10g(10.2.0.1)10201_database_linux_x86_64.cpio.gz安装文件p6810189_10204_Linux-x86-64.zip补丁文件(10.2.0.4)和p8350262_10204_Generic.zip补丁文件
· 硬件要求
· 物理内存至少2G
查看命令:grep MemTotal /proc/meminfo
· 交换分区:至少1G,最好是物理内存的2倍
查看命令:grep SwapTotal /proc/meminfo
· 硬盘空闲区 至少4G
查看命令:df -k
· 创建安装oracle 所需的组和用户
以下操作需要使用root账户创建。
· 创建oinstall用户组#
groupadd oinstall
· 创建dba用户组#
groupadd dba
· 创建oracle用户#
useradd -g oinstall -G dba oracle
· 初始化oracle用户密码#
passwd oracle
· 创建Oracle安装目录
本示例中,Oracle安装路径为:/oracle/product/10.2/db_1
· 创建oracle安装目录#
mkdir -p /oracle/product/10.2/db_1
· 修改目录所属用户为oracle用户#
chown -R oracle:oinstall /oracle
· 修改目录权限#
chmod -R 755 /oracle
· 配置linux内核参数
· 编辑/etc/sysctl.conf文件,添加或修改如下的行:
实际配置环境中,红色部分是需要修改行,蓝色部分为添加行。
(kernel.shmall 指一个内存段最大可用内存。如果服务器内存超过8G,可设置kernel.shmall = 4194304,kernel.shmmax常用设置为2147483648,最大设置为4294967296。
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
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.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144
#vi /etc/sysctl.conf
# Controls whether core dumps will append the PID to the core filename
# Useful for debugging multi-threaded applications
kernel.core_uses_pid = 1 下加入参数:
kernel.shmall=2097152
kernel.shmmax=2147483648
kernel.shmmni=4096
kernel.sem=250 32000 100 128
fs.file-max=65536
net.ipv4.ip_local_port_range=1024 65000
net.core.rmem_default=1048576
net.core.rmem_max=1048576
net.core.wmem_default=262144
net.core.wmem_max=262144
· 查看当前内核参数的值#
/sbin/sysctl -p
· 修改/etc/host.conf
增加下面内容,如果没有,oracle 的监听器无法启动
编辑/etc/hosts文件,修改本机主机名与ip地址对应关系
[root@linux5 ~]#vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost
192.168.1.2 linux5
关闭邮件服务操作命令
1#.service sendmail stop
2#.chkconfig --list sendmail (可以查看到sendmail在2,3,4,5时是自动启动的,而一般的系统设置为3,因此每次启动时sendmail还是会自动启动。)
3#.chkconfig --level 2345 sendmail off
· 为了提高在linux系统上运行软件的性能,必须对oracle用户设置下列shell 限定。
· 打开文件数和进程数的限制
加入下面的行到文件/etc/security/limits.conf
#* soft core 0
#* hard rss 10000
#@student hard nproc 20
#@faculty soft nproc 20
#@faculty hard nproc 50
#ftp hard nproc 0
#@student - maxlogins 4 下加入参数:
#vi /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
· 加入下面的行到文件/etc/pam.d/login
# pam_selinux.so open should only be followed by sessions to be executed in the user context
· session required pam_selinux.so open 下加入参数:
· #vi /etc/pam.d/login
· session required /lib/security/pam_limits.so
· 修改Linux的发行标记
如在redhat5上安装oracle,需要将文件 '/etc/redhat-release'的内容由:
Red Hat Enterprise Linux Server release 5 (Tikanga)
修改为:
Red Hat Enterprise Linux Server release 4 (Tikanga)
#vi /etc/redhat-release
Red Hat Enterprise Linux Server release 4 (Tikanga)
· 设置oracle用户环境变量
注意以下命令为,必需以oracle用户身分登录:
#su – oracle
· 修改/home/oracle/.bash_profile文件,添加以下行
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export ORACLE_SID=zytk32(数据库实例名)
export PATH=$ORACLE_HOME/bin:$PATH
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH 下面加入参数:
$vi /home/oracle/.bash_profile
export ORACLE_BASE=/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2/db_1
export ORACLE_SID=zytk32
export PATH=$ORACLE_HOME/bin:$PATH
1.上传安装文件和补丁文件:
LINUX中防火墙中开放XFTP,使用XFTP上传10201_database_linux_x86_64.cpio.gz和p6810189_10204_Linux-x86-64.zip到/home/oracle目录下
2.用oracle用户解压安装包:
gunzip 10201_database_linux_x86_64.cpio.gz
cpio -idmv < 10201_database_linux_x86_64.cpio
3.用root用户解压安装包:
unzip p6810189_10204_Linux-x86-64.zip
· 使用root用户登陆图形界面,执行以下命令:
xhost +
安装前请重新启动LINUX系统并用oracle用户登录图形界面安装。
如果LINUX是中文页面安装时出现乱码,需要在oracle用户下执行:
export LANG=en_US
安装结束时执行脚本请用root登录执行:
脚本命令1是:
[root@linux5 ~]# sh /oracle/oraInventory/orainstRoot.sh
脚本命令2是:
[root@linux5 ~]# sh /oracle/product/10.2/db_1/root.sh
注意:执行2个脚本时候一定要按回车运行结束,否则会提示File"/etc/oratab" is not accessible
· 切换到oracle用户(仍是图形页面登陆),安装oracle
./runInstaller
选择不创建数据库,NEXT安装;
next安装;
确保全部验证通过;
install安装;
执行脚本;
安装完成exit退出。
安装完成后打开网络配置助手,先配置监听程序;
$netca
监听配置完成。
升级oracle10G到10.2.0.4(升级Oracle到10.2.0.4--解决开户报错ora-03113通信通道的文件结束问题)
1.停止监听
$ lsnrctl stop
2.图形页面下:进入Disk1目录安装;
$ ./runInstaller
NEXT;
NEXT;
NEXT;
NEXT;
INSTALL安装;
root用户执行脚本;
[root@linux5 ~]# sh /oracle/product/10.2/db_1/root.sh
执行后按OK,EXIT升级完成。
启动监听;
$lsnrctl
$start
监听启动成功,查看监听;
$lsnrctl status
安装p8350262_10204_Generic.zip补丁,解决dbca建库到85%时EMCA Database Control报错的问题,如下图:
安装方法:
启动监听:$lsnrctl start
上传p8350262_10204_Generic.zip到/home/oracle目录下
解压补丁包:
$ unzip -q p8350262_10204_Generic.zip
$ cd 8350262
$ $ORACLE_HOME/OPatch/opatch apply
至此补丁包安装完成。
如果已经创建了数据库,那么请安装补丁、启动监听($lsnrctl start)启动数据库($sqlplus /nolog,$conn /as sysdba,$startup)后执行:
$ emca -deconfig dbcontrol db -repos drop -----删除Database Control, 删除repository
$ emca -config dbcontrol db -repos create -----创建Database Control 创建repository
$ emctl start dbconsole 启动Database Control
创建数据库dbca;
$dbca
next;
创建数据库,next;
选择一般用途或事物处理,这里我们用事物处理数据库,第四项。NEXT;
说明:一般用途或事物处理用在数据量小,DML频繁(即OLTP,联机事务处理),数据仓库(即OLAP,数据量大,DML少)。
输入数据库名和ISD名:zytk32,NEXT;
NEXT;
配置密码,NEXT;
NEXT;
NEXT;
启用归档这里不要打勾;以免为维护带来麻烦,NEXT;
NEXT;
注意数据库的字符集选择,否则数据库中文会乱码;NEXT;
NEXT;
FINISH;
OK;等待创建;
打开网络配置助手,配置命令方法和创建net服务名;
$netca
选择好后next;
NEXT完成。
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
NEXT;
FINISH;命令方法和创建net服务名配置完成。
数据库自启动的方法:
1.oracle用户修改/etc/oratab文件
[oracle@linux5 ~]$ vi /etc/oratab
最后面加入,修改 N为Y
zytk32:/oracle/product/10.2/db_1:Y
2.root用户修改/etc/rc.d/rc.local文件
[root@linux5 ~]# vi /etc/rc.d/rc.local
最后面加入
su - oracle -c "/oracle/product/10.2/db_1/bin/lsnrctl start"
su - oracle -c "/oracle/product/10.2/db_1/bin/dbstart start"
重启服务器,测试自自动正常与否,并手动测试停止启动数据库。
$lsnrctl status -----查看监听启动与否
$lsnrctl start -----启动监听
$lsnrctl stop -----停止监听
$sqlplus /nolog -----进入sqlplus环境,nolog参数表示不登录
$conn /as sysdba -----sysdba用户登录
$startup -----启动数据库
$shutdown -----停止数据库
$shutdown immediate -----不允许新的连接、不等待会话结束、不等待事务结束、做一个检查点并关闭数据文件.
其他问题说明:
· oracle 中文乱码的解决 root用户下修改 vi etc/sysconfig/i18n
LANG=”en_US.UTF-8”
· 配置oracle为自启动服务
以下操作使用root用户,
· vi /etc/rc.d/init.d/oracle,复制以下内容:
#!/bin/bash
# chkconfig: 2345 66 36
# /etc/rc.d/init.d/oracle
# description: starts the oracle database
#
ORA_HOME=/oracle/product/10.2/db_1
ORA_OWNER=oracle
case "$1" in
start)
echo -n "Starting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Starting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
stop)
echo -n "Shutting Down Oracle Listeners: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo -n "Shutting Down Oracle Databases: "
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
;;
restart)
echo -n "Restarting Oracle Databases: "
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle
echo "Done."
echo -n "Restarting Oracle Listeners: "
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle
su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle
echo "Done."
echo ""
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
date +"! %T %a %D : Finished." >> /var/log/oracle
echo "---------------------------------------------------------------------------------" >> /var/log/oracle
touch /var/lock/subsys/oracle
;;
*)
echo "Usage: oracle { start | stop | restart }"
exit 1
esac
exit 0
· 修改/etc/rc.d/init.d/oracle执行权限
chmod 755 /etc/rc.d/init.d/oracle
· 添加oracle服务
chkconig --add oracle
· 设置oracle服务自启动
chkconfig oracle on
· 启动、关闭、重启oracle命令
启动oracle数据库:
service oracle start
关闭oracle数据库:
service oracle stop
重启oracle数据库
service oracle restart
附录1:安装过程中遇到的问题及解决方法
· xhost:unable to open display
解决方法:
1)查看/etc/inittab文件里,把init3或者其他值改成init5
2)reboot system,用root用户通过图形界面进入系统,在终端里执行xhost + ,(一般在这里都xhost会执行成功,如果无法执行成功,那你图形肯定有问题!)
· 执行runInstaller时报错:Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2007-12-21_10-40-21PM/jre/lib/i386/libawt.so: libXp.so.6: cannot open shared object file: No such file or directory
解决方法:安装libXp.rpm。这个文件可以在linux安装文件中找到。如果是使用iso文件安装的,可以先挂载光驱:
mount /dev/cdrom /mnt
· 使用oracle用户,使用dbstart无法启动数据库的问题
· 检查dbstart文件
vi $ORACLE_HOME/bin/dbstart
检查ORACLE_HOME_LISTNER项的路径,将其改为$ORACLE_HOME,如下:
· 进行完上述操作后,重新执行dbstart时,数据库仍不能启动。此时,登陆sqlplus,使用命令startup mount;可以登陆。同时伴有,数据库起来后,重启机器后,执行dbstart又不能启动数据库的情况。
解决方法:检查 /etc/oratab文件,按下面方法操作。
此处还有一种修改方法:
#注释掉上面的行,增加下面行
$ORACLE_SID:$ORACLE_HOME:Y
· 如果执行dbstart仍不能启动,检查dbstart文件中的oratab项配置是否和下图中的一致,如果不一致修改。
· ORA-01031: insufficient privileges问题
先照着问题3的方法检查一遍。
· 在linux下挂载iso的方法
mount –o loop linux.iso /mnt/cd1
· 跟踪命令的执行过程
strace -v ps -ef 2> ps.txt 写入ps.txt文件
展开阅读全文