全部博文(16)
分类: Oracle
2011-12-02 14:23:49
LINUX环境
配置JDK+TOMCAT+ORACLE数据
一、LINUX安装
没什么可说的,最简单的方式就是用服务器供应商提供的导航盘。其实使用RedHat ES 4的安装盘直接装也可以,大部分硬件都能识别。
硬盘配置:如果有多块盘,考虑磁盘的读写性能,可以使用RAID 0 方式。如果想确保数据的安全性,采用RAID5方式,不过RAID5的写性能不高。
安装LINUX主要注意分区问题:我采用自动分区,
SWAP分区最好设置为物理内存的2倍大小。
操作系统所使用的Swap区与内存也有一定的对应关系。
RAM Swap Space
---------------------------- ----------------------------
Between 1024 MB and 2048 MB 1.5 times the size of RAM
Between 2049 MB and 8192 MB Equal to the size of RAM
More than 8192 MB 0.75 times the size of RAM
/boot分区,默认100M,足以不用改动。
/usr, /home, /var , /tmp等可以不分配,把所有可用的磁盘空间全部分配置给”/”就可以了。
安装:
系统默认语言:当然是简体中文
为了安装Oracle时不用不断的安装需要的RPM包,我选择全部安装。
二、安装JDK 1、下载JDK:
从SUN的网站上下载需要的版本即可。我下载的是jdk-1_5_0_06-linux-i586-rpm.bin
2、安装以root身份# chmod 755 jdk-1_5_0_06-linux-i586-rpm.bin
# ./jdk-1_5_0_06-linux-i586-rpm.bin
按提示安装即可
运行完成后,JDK被自动安装到了/usr/java/jdk1.5.0_06中(只有非rpm的安装文件才会在任意目录中进行安装)
3、配置JAVA环境变量为了使JDK可以被系统的所有用户使用,用root身份编辑/etc/profile文件。如果只想给某个LINUX用户使用,可以编辑用户HOME目录中的 .bash_profile文件。
注:下面内容蓝色部分我增加和修改的部分,其它是profile文件原有内容
#view /etc/profile
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
pathmunge () {
if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
fi
}
# Path manipulation
if [ `id -u` = 0 ]; then
pathmunge /sbin
pathmunge /usr/sbin
pathmunge /usr/local/sbin
fi
pathmunge /usr/X11R6/bin after
# No core files by default
ulimit -S -c 0 > /dev/null 2>&1
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HOSTNAME=`/bin/hostname`
HISTSIZE=1000
if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
INPUTRC=/etc/inputrc
fi
export JAVA_HOME=/usr/java/jdk1.6.0_21
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/opt/tomcat
export CATALINA_HOME=/opt/tomcat
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
for i in /etc/profile.d/*.sh ; do
if [ -r "$i" ]; then
. $i
fi
done
if [ $USER = "oracle" ]; then
if [ $SHELL ="/bin/ksh" ]; then
ulimit -p 168384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
unset i
unset pathmunge
4、测试JDK
Jdk安装完成后,切换一下身份,再以root身份登录进行以下操作。
# java –version
java version "1.5.0_06"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode, sharing)
安装成功
三、安装TOMCAT 1、下载可以从 下载需要的版本,由于Tomcat本就是JAVA环境下运行的,所以不用区分LINUX/WINDOW版本。可以下载.tar.gz,也可以下载.zip的。我下载了
apache-tomcat-5.5.16.zip
2、安装 3、创建tomcat用户便于后面设置自动启动TOMCAT。
用root身份:# useradd tomcat
#passwd tomcat
#mkdir /opt/tomcat
#chown –R tomcat:tomcat /opt/tomcat
#chmod –R 775 /opt/tomcat
4、用tomcat账号登录
1. 将apache-tomcat-5.5.16.zip上传到/opt/tomcat目录中
2. 安装非常简单,将下载的压缩包直接解压就可以了。
$unzip apache-tomcat-5.5.16.zip
解完成后在当前目录下会有apache-tomcat-5.5.16文件夹
由于在安装JDK时我们设置了系统的JAVA环境变量,因此应该可以执行tomcat的启动文件
$cd apache-tomcat-5.5.16/bin
$./startup.sh
报错,不能执行。
换到root身份
$su root
$Password:
#cd /opt/tomcat/apache-tomcat-5.5.16/bin
#chmod 775 *.sh
#exit
再启,报logs/Catalina.log不可访问
#chmod 775 /opt/tomcat/ apache-tomcat-5.5.16/logs
再启,OK,成功了。
5、设置自动启动:为了使用tomcat可以和操作系统一起启动,避免需要手工登录命令行方式启动。
从网上收了一些资料,整理试用,最终试验成功。
一. 简单的方法
以root身份编写一个服务脚本tomcat保存到/etc/rc.d/init.d下,
# cd /etc/rc.d/init.d
# vi tomcat
#!/bin/sh
# Linux Tomcat init
#
JAVA_HOME=/usr/java/jdk1.6.0_21
export JAVA_HOME
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
PATH=$JAVA_HOME/bin:$PATH
CATALINA_BASE=/opt/tomcat/apache-tomcat-5.5.30
export CATALINA_BASE
CATALINA_HOME=/opt/tomcat/apache-tomcat-5.5.30
export CATALINA_HOME
exec $CATALINA_HOME/bin/catalina.sh $*
保存退出.
#chmod 775 /etc/init.d/tomcat3
1. 建立服务连接
ln -s /etc/init.d/tomcat1 /etc/rc.d/rc2.d/S99tomcat3
ln -s /etc/init.d/tomcat1 /etc/rc.d/rc3.d/S99tomcat3
ln -s /etc/init.d/tomcat1 /etc/rc.d/rc5.d/S99tomcat3
大功告成!重启服务器!测试tomcat
#reboot
二. 复杂而专业的方法
前面介绍的应该是最简单的让Tomcat自动启动的方法了,但是它有两个不足
1. 无法指定启动Tomcat服务的用户,会导致Tomcat已超级用户运行,存在重大的安全隐患
2. 系统关闭的时候无法自动停止Tomcat服务
在Linux下,Tomcat可以作为一个守护进程来启动以及停止,这个必须借助于项目commons-daemon中的jsvc工具。Tomcat安装完后就带有这个工具的源码{tomcat}/bin/jsvc.tar.gz。按照下列命令安装这个工具:
解压: tar zxvf jsvc.tar.gz
配置: cd jsvc-src
# chmod 775 configure
# ./configure --with-java=/usr/java/jdk1.6.0_15
编译: make
检验: ./jsvc –help
jsvc工具本身带了一个脚本用来启动和停止Tomcat守护进程,但是在试验中发现该脚本无法设置为自动启动,显示的错误信息是:tomcat 服务不支持 chkconfig,因此修改了此脚本,修改下载的脚本里面有关路径的信息以及要启动Tomcat的用户(用户必须已存在).
拷贝脚本到/etc/rc.d/init.d目录下的tomcat文件,给该脚本赋予可执行权限(chmod 775 tomcat),你可以使用命令/etc/rc.d/init.d/tomcat start|stop 来验证守护进程是否可以正常启动和停止。脚本内容如下:
[root@GD-ORA10g tomcat]# vi /etc/rc.d/init.d/tomcat 这一行不是脚本内容
#!/bin/sh
#
# Startup Script for Tomcat5
#
# chkconfig: 345 88 14
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#设定自己的参数
JAVA_HOME=/usr/java/jdk1.6.0_15
CATALINA_HOME=/opt/tomcat/apache-tomcat-5.5.25
DAEMON_HOME=$CATALINA_HOME/bin
#需要在系统中设定一个没有权限的
#用户来运行,这样比较安全
TOMCAT_USER=tomcat
TMP_DIR=/var/tmp
CATALINA_OPTS=
CLASSPATH=.:\
$JAVA_HOME/lib/tools.jar:\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
start(){
echo -n $"Starting $prog: "
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Djava.io.tmpdir=$TMP_DIR \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
RETVAL=$?
[ $RETVAL = 0 ] && touch /var/lock/subsys/jsvc
[ $RETVAL = 0 ] && echo_success || echo_failure
echo
return $RETVAL
}
stop(){
echo -n $"Stopping $prog: "
#
# Stop Tomcat
#
PID=`cat /var/run/jsvc.pid`
kill $PID
RETVAL=$?
[ $RETVAL = 0 ] && rm /var/lock/subsys/jsvc
[ $RETVAL = 0 ] && echo_success || echo_failure
echo
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo "Usage $0 start/stop"
exit 1
;;
esac
可以用如下命令测试:
# /etc/rc.d/init.d/tomcat start
# /etc/rc.d/init.d/tomcat stop
接下来就是把这个脚本设置成系统启动时自动执行,系统关闭时自动停止,使用如下命令:
#chkconfig --add tomcat
重新启动系统后可以启动的过程中看到Starting Tomcat ..... [OK]的信息,这样就完成设置过程。
另一个安装过程
1、安装J2SDK(我的是下载后放在/root里面的下)
#cd
#./jdk-1_5_0_09-linux-i586.bin 翻到最后输入yes
#mv jdk1.5.0_09 /usr/local/java 移动文件夹jdk1.5.0_09到/usr/local/里面并改名为java
2、安装tomcat
#cd
#tar xvfz apache-tomcat-5.5.20.tar.gz
#mv apache-tomcat-5.5.20 /usr/local/tomcat 移动文件夹apache-tomcat-5.5.20 到/usr/local/里面并改名为tomcat
3、设置环境变量
#vi /etc/profile 在profile最后面加下以下内容
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
#source /etc/profile 使环境变量生效
4、安装jsvc
#cd /usr/local/tomcat/bin
#tar xvfz jsvc.tar.gz
#cd jsvc-src
#sh support/buildconf.sh
#chmod 755 configure
#./configure --with-java=/usr/local/java (改成你的JDK的位置)
#make
5、添加脚本让tomcat自动启动
#useradd tomcat5 添加用户
#groupadd tomcat 添加组
#usermod -G tomcat tomcat5 把tomcat5加入tomcat组
#chown -R tomcat5 /usr/local/tomcat 设置用户tomcat5对tomcat的权限
#cp /usr/local/tomcat/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat 移动文件tomcat5.sh到/etc/init.d/里面并改名为tomcat
#chmod 755 /etc/init.d/tomcat
#vi /etc/init.d/tomcat
我自己的内容如下,大家根据自己的情况修改
#!/bin/sh
#
# Startup Script for Tomcat5
#
# chkconfig: 345 88 14
# description: Tomcat Daemon
# processname: jsvc
# pidfile: /var/run/jsvc.pid
# config:
#
# Source function library.
. /etc/rc.d/init.d/functions
#
prog=tomcat
#
JAVA_HOME=/usr/local/java
CATALINA_HOME=/usr/local/tomcat
DAEMON_HOME=/usr/local/tomcat/bin
#TOMCAT_USER=tomcat5
TOMCAT_USER=tomcat5
# for multi instances adapt those lines.
TMP_DIR=/var/tmp
PID_FILE=/var/run/jsvc.pid
CATALINA_BASE=/usr/local/tomcat
CATALINA_OPTS=
CLASSPATH=\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar
case "$1" in
start)
#
# Start Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-user $TOMCAT_USER \
-home $JAVA_HOME \
-Dcatalina.home=$CATALINA_HOME \
-Dcatalina.base=$CATALINA_BASE \
-Djava.io.tmpdir=$TMP_DIR \
-wait 10 \
-pidfile $PID_FILE \
-outfile $CATALINA_HOME/logs/catalina.out \
-errfile '&1' \
$CATALINA_OPTS \
-cp $CLASSPATH \
org.apache.catalina.startup.Bootstrap
#
# To get a verbose JVM
#-verbose \
# To get a debug of jsvc.
#-debug \
exit $?
;;
stop)
#
# Stop Tomcat
#
$DAEMON_HOME/jsvc-src/jsvc \
-stop \
-pidfile $PID_FILE \
org.apache.catalina.startup.Bootstrap
exit $?
;;
*)
echo "Usage tomcat.sh start/stop"
exit 1;;
esac
#service tomcat start 测试tomcat能不能启动
#chkconfig tomcat on
#chkconfig --list tomcat
注意:
在tomcat文件的头两行的注释语句中,需要包含chkconfig和description两部分内容(确认不要拼写错误,),否则在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示。
chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 - 代替运行级别。在tomcat中表示脚本在运行级2、3、4、5启动,启动优先权为10,停止优先权为90。
description行对服务进行描述,可以用 “\” 跨行注释。
三 简便方法
1.在ROOT用户下
2.新建tomcat文件(没有任何扩展名)
3.粘贴如下内容:(注意修改里边的路径信息)
#!/bin/sh
#
# tomcat: Start/Stop/Restart tomcat
#
# chkconfig: 2345 80 20
# description: Tomcat is a Java Servlet Container
#
#
# match these values to your environment:
export CATALINA_BASE=/opt/tomcat/apache-tomcat-5.5.25
export CATALINA_HOME=/opt/tomcat/apache-tomcat-5.5.25
export CATALINA_TMPDIR=/opt/tomcat/apache-tomcat-5.5.25/temp
export JRE_HOME= /usr/java/jdk1.6.0_17
#
# Source function library.
. /etc/rc.d/init.d/functions
#
TOMCAT=/opt/tomcat/apache-tomcat-5.5.25
name=tomcat
#
start() {
RETVAL=$?
$TOMCAT/bin/catalina.sh start
echo -n $"Starting "$name": "
[ $RETVAL = 0 ] && success || failure
echo
return $RETVAL
}
#
stop() {
RETVAL=$?
$TOMCAT/bin/catalina.sh stop
echo -n $"Stopping "$name": "
[ $RETVAL = 0 ] && success || failure
echo
return $RETVAL
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
;;
status)
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
;;
esac
exit $RETVAL
4.#chmod 755 tomcat --赋权限
5.#service tomcat start/restart/stop --验证脚本是否有错误
6.#chkconfig –add tomcat
7.重启系统是在服务端查看是否有如下信息:
启动 tomcat [成功]
四、安装ORACLE 1、以root身份登录系统a) 打开一个本地终端会话,如:X Termianl
b) 如果没有在本地安装Xterm软件,输入如下命令,允许远程主机在本地XServer上运行显示X应用程序
$ xhost fully_qualified_remote_host_name
$ telnet fully_qualified_remote_host_name
c) $ su – root
Password:
#
2、硬件需求d) 至少1024MB物理内存
e) 交换分区大小为物理内存的1.5倍以上
f) /tmp 400MB磁盘空间
g) 1.5 GB and 3.5GB 磁盘空间用于安装Oracle软件
确保系统满足下列需求:
1. 判断物理内存大小
# grep MemTotal /proc/meminfo
2. 检查交换分区大小
# grep SwapTotal /proc/meminfo
3. 检查临时空间大小 # df –k /tmp
4. 检查确盘空间大小 # df –k
5. 查看CPU信息 # grep “model name” /proc/cpuinfo
l 查看物理CPU的个数
cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
l 查看逻辑CPU的个数
cat /proc/cpuinfo |grep "processor"|wc –l
l 查看CPU是几核
cat /proc/cpuinfo |grep "cores"|uniq
l 查看CPU的主频
cat /proc/cpuinfo |grep MHz|uniq
是否为超线程?
如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。
cat /proc/cpuinfo | grep physical | uniq -c
4 physical id : 0
4 physical id : 1
l 查看CPU是否支持64位
# cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l
8
(结果大于0, 说明支持64bit计算. lm指long mode, 支持lm则是64bit)
3、软件环境需求 3.1操作系统Red Hat Enterprise Linux AS/ES 3.0/4.0
Red Hat Enterprise Linux AS5.0(update N)
若在版本为5.0下安装Oracle10G的话需要修改/etc/redhat-release文件
vi /etc/redhat-release
把Red Hat Enterprise Linux Server release 5 (Tikanga)改成
Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
保存退出。
查看/etc/selinux/config文件是否有如下参数,确认SELINUX已经禁用:
#vi /etc/selinux/config
SELINUX=disabled
Red Hat Linux 4.0
# cat /etc/issue
Red Hat Enterprise Linux ES release 4 (Nahant)
Kernel \r on an \m
h) Linux 内核版本
i. Red Hat Enterprise 4.0 (2.4.21-27.EL 2.6.9-5.EL or later)
[root@jianpgo /]# uname -r
2.6.9-5.EL
i) 要求已经安装的软件包
使用rpm –q 检查已经安装的软件包,如果在安装Redhat ES4.0时是完全安装,将不用进行如下操作。
# rpm -q package_name
[oracle@qxt ~]$ rpm -q binutils-2.15.92.0.2-10.EL4
binutils-2.15.92.0.2-10.EL4
[oracle@qxt ~]$ rpm -q compat-db-4.1.25-9
compat-db-4.1.25-9
…..
检查如下的rpm包是否安装,我装的这台服务器中蓝色的表示没有安装,需要从LINUX的安装光盘上手工安装。
binutils-2.15.92.0.2-10.EL4
compat-db-4.1.25-9
compat-libstdc++-296-2.96-132.7.2
control-center-2.8.0-12
gcc-3.4.3-9.EL4
gcc-c++-3.4.3-9.EL4
glibc-2.3.4-2
glibc-common-2.3.4-2
gnome-libs-1.4.1.2.90-44.1???
libstdc++-3.4.3-9
libstdc++-devel-3.4.3-9
make-3.80-5
pdksh-5.2.14-30???
sysstat-5.0.5-1
xscreensaver-4.18-5.rhel4.2???
setarch-1.6-1
libaio-0.3.102-1
libaio-devel-0.3.102-1
如果检查发现某个RPM包没有安装,则将安装光盘中的rpm包上传到服务器中,然后以root身份进行安装,如:
# rpm –iv sysstat-5.0.5-1.i386.rpm
在安装某些RPM包时,可能还需要其它的包先安装,我的最终整理是如下的包,安装要有先后顺利,安装的时候会提示,我不在这里说明。
[root@qxt rpm]# ls
binutils-2.15.92.0.2-10.EL4.i386.rpm glibc-profile-2.3.4-2.i386.rpm
compat-libstdc++-296-2.96-132.7.2.i386.rpm glibc-utils-2.3.4-2.i386.rpm
compat-libstdc++-33-3.2.3-47.3.i386.rpm glib-devel-1.2.10-15.i386.rpm
gcc-3.4.3-9.EL4.i386.rpm libaio-0.3.102-1.i386.rpm
gcc-c++-3.4.3-9.EL4.i386.rpm libaio-devel-0.3.102-1.i386.rpm
glibc-devel-2.3.4-2.i386.rpm libstdc++-3.4.3-9.EL4.i386.rpm
glibc-headers-2.3.4-2.i386.rpm libstdc++-devel-3.4.3-9.EL4.i386.rpm
sysstat-5.0.5-1.i386.rpm
3.2检查网络设置$ ORACLE_HOSTNAME=GD-ORA10g.db.guodu.net
$ export ORACLE_HOSTNAME
以上可以配置在oracle用户的.bash_profile中
1、 创建系统群组及用户账号,以root身份操作
/usr/sbin/groupadd oinstall
/usr/sbin/groupadd dba
/usr/sbin/groupadd oper
/usr/sbin/useradd -g oinstall -G dba,oper oracle
修改主群组
# /usr/sbin/usermod -g oinstall -G dba,oper oracle
注:必须为oracle帐号设置密码,否则无法进行图形安装
3.3检查nobody用户账号是否存在# id nobody
如果存在则继续下一步,如果账号不存在则通过如下命令创建nobody账号
# /usr/sbin/useradd nobody
3.4设置系统内核参数
# vi /etc/sysctl.conf
增加如下内容
kernel.shmall = 2097152
# 1G/2 1073741824=2G/2 #必须是物理内存一半以字节为单位
kernel.shmmax = 536870912
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
16G=8589934592 8G=4294967296 4G=2147483648 1G=536870912
2G=1073741824
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
kernel.sem = 250 32000 100 128
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
3.5设置oracle用户的shell环境限制为了提高软件在LINUX系统上的性能,必须对oracle用户的shell限制做修改
1.
# vi /etc/security/limits.conf
增加如下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
2.
#vi /etc/pam.d/login
增加或修改如下内容:
session required /lib/security/pam_limits.so
session required pam_limits.so
3、针对oracle用户,修改系统默认的shell环境脚本文件
# 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
创建安装oracle的应用的主目录
mkdir -p /opt/raid5/oracle
mkdir –p /opt/raid1/redo_file
chown -R oracle:oinstall /opt/raid5/oracle
chown -R oracle:oinstall /opt/raid1/redo_file
chmod -R 775 /opt/raid5/oracle
chmod -R 775 /opt/raid1/redo_file
mkdir /opt/raid5/oracle/oradata
chown -R oracle:oinstall /opt/raid5/oracle/oradata
chmod 775 /opt/raid5/oracle/oradata
mkdir /opt/raid5/oracle/flash_recovery_area
chown oracle:oinstall /opt/raid5/oracle/flash_recovery_area
chmod 775 /opt/raid5/oracle/flash_recovery_area
mkdir -p /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle
mkdir /opt/oracle/oradata
chown -R oracle:oinstall /opt/oracle/oradata
chmod 775 /opt/oracle/oradata
mkdir /opt/oracle/flash_recovery_area
chown oracle:oinstall /opt/oracle/flash_recovery_area
chmod 775 /opt/oracle/flash_recovery_area
3.6设置Oracle用户环境变量1. 使用Xmanager,打开一个可以运行X程序的Xterm终端
2. 输入如下命令使确保X Window应用程序能够显示在当前系统上
$ xhost 192.168.168.78
我的电脑IP是192.168.168.78
修改oralce用户的环境变量
$ vi /home/oracle/.bash_profile
我的配置内容如下:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
umask 022
ORACLE_HOSTNAME=TBank.guodu
ORACLE_BASE=/opt/oracle
ORACLE_HOME=$ORACLE_BASE/product/10.2
ORACLE_SID=gdqxt
#NLS_LANG=CHINESE_CHINA.ZHS16GBK
ORA_NLS10=$ORACLE_HOME/nls/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib:/usr/local/lib:/usr/lib
export ORACLE_HOSTNAME ORACLE_BASE ORACLE_HOME ORACLE_SID NLS_LANG ORA_NLS10
export LD_LIBRARY_PATH
TEMP=/tmp
TMPDIR=/tmp
export TEMP TMPDIR
PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export PATH
unset USERNAME
注意:PATH环境变量中,$ORACLE_HOME/bin必须在 /usr/X11R6/bin之前
如果设置变量NLS_LANG=CHINESE_CHINA.ZHS16GBK
创建数据库时会报错
ORA-12705:Cannot access NLS data files or invalid environment specified
重新启动服务器
[Root]# reboot
4、安装oracle以oracle用户身份上传数据的压缩包到服务器中/home/oracle,10201_database_linux32.zip
使用Xmanager的xstart登录到服务器,否则必须在服务器本地安装oracle无法远程安装,因为oracle的安装需要可以运行Xwindow程序的端终才成,普通的远程管理软件不能在远程安装oracle。这里我推荐大家使用Xmanager.
[oracle@qxt ~]$ unzip 10201_database_linux32.zip
解压后进入安装文件目录
如果是64位的数据库,则:
$ gunzip filename.cpio.gz
$ cpio -idmv < filename.cpio
[oracle@qxt ~]$ cd database
[oracle@qxt database]$ pwd
/home/oracle/database
[oracle@qxt database]$ ls
doc install response runInstaller stage welcome.html
安装:
[oracle@qxt database]$ ./runInstaller
注:一下是基本安装,如果想在安装时就修改某些参数,请选择高级安装
可以修改:内存使用百分比、REDO日志文件位置、是否建立事例表空间、数据文件位置等。也可在高级安装中选择只安装软件,不安事例,在安装后,可以使用如下命令建立实例:# /opt/oracle/product/10.2/assistants/dbca
[root@qxt 10.2]# ./root.sh
Running Oracle10 root.sh script...
The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/app/oracle/product/10.2
Enter the full pathname of the local bin directory: [/usr/local/bin]:
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...
Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
安装结束后,数据库自动启动,包括侦听程序和数据库实例以及其它的相关管理工具。如果想停止服务器,重启再启动数据库请参见下面的操作
注:如果时手动建立的实例或安装64位ORACLE,那么可能会在/opt/oracle/product/10.2/network/admin下缺少3个文件,需要手工建立,分别是:listener.ora sqlnet.ora tnsnames.ora
5 管理oracle数据库 1) 启动数据库监听su -oracle——切换Oracle用户(如果使用su oracle ,则启动时不运行.bash_profile用户环境配置文件)
$ lsnrctl start——启动监听
2) 启动数据库$ sqlplus "/ as sysdba"——用sys用户登陆sqlplus
SQL> startup——启动数据库
SQL> exit——退出sqlplus
或者
$dbstart
$ ps -ef|grep ora_——查看oracle进程
$ ps -ef|grep lsnr——查看oracle监听进程
4) 关闭数据库$ sqlplus "/ as sysdba"
SQL> shutdown immediate——关闭数据库 或 shutdown abort
SQL> exit
或者
$dbshut
注:必须修改/etc/
5) 停止数据库监听$ lsnrctl stop---停止监听
6)EM管理工具在Server端,可以通过如下命令启动EM工具控制台:
$ emctl start dbconsole
同样停止OEM可以输入如下命令:
$ emctl stop dbconsole
Oracle的dbstart 和 dbshut 脚本要安装完成后不能直接执行,为了在操作系统重启时自动关闭数据库,自动启动数据库,可以进行如下配置。可以参考oracle的官方文档管理员指南。
2. 修改/etc/oratab
[oracle@GD-ORA10g etc]$ vi oratab
# This file is used by ORACLE utilities. It is created by root.sh
# and updated by the Database Configuration Assistant when creating
# a database.
# A colon, ':', is used as the field terminator. A new line terminates
# the entry. Lines beginning with a pound sign, '#', are comments.
#
# Entries are of the form:
# $ORACLE_SID:$ORACLE_HOME:
#
# The first and second fields are the system identifier and home
# directory of the database respectively. The third filed indicates
# to the dbstart utility that the database should , "Y", or should not,
# "N", be brought up at system boot time.
#
# Multiple entries with the same $ORACLE_SID are not allowed.
gdqxt:/opt/oracle/product/10.2:Y #将N改成Y这样就可以在命令行执行dbstart,dbshut
3. 编写服务脚本
用root身份登录:(最好要在此用户建立文件,不要上传文件,可能回车由问题)
#vi /etc/init.d/dbora
内容如下:
#!/bin/bash
#
#################FUNCTION#############
#
# AutoStart Oracle and listener
# AutoStop Oracle and listener
#
#####################################
case "$1" in
start)
echo "Starting Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Databasee as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "dbstart" >> /var/log/oracle
echo "Done."
echo "Starting Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Starting Oracle Listeners as part of system up." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "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 "Stoping Oracle Listeners ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Listener as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "lsnrctl stop" >> /var/log/oracle
echo "Done."
rm -f /var/lock/subsys/oracle
echo "Stoping Oracle Databases ... "
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Stoping Oracle Databases as part of system down." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
su - oracle -c "dbshut" >>/var/log/oracle
echo "Done."
echo ""
echo "-------------------------------------------------" >> /var/log/oracle
date +" %T %a %D : Finished." >> /var/log/oracle
echo "-------------------------------------------------" >> /var/log/oracle
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: oracle {start|stop|restart}"
exit 1
esac
存盘退出
#chmod 775 /etc/init.d/dbora
4. 建立服务连接
ln -s /etc/init.d/dbora /etc/rc.d/rc2.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc2.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
ln -s /etc/init.d/dbora /etc/rc.d/rc6.d/S99dbora
--------------------------------------------------------------------------------
要在重新启动时停止数据库,我们需要以下连结∶
--------------------------------------------------------------------------------
$ ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora # 停止
$ ln -s /etc/init.d/dbora /etc/rc.d/rc6.d/S99dbora # 重新启动
大功告成!关闭或重启服务器!测试tomcat,测试Oracle
#reboot
五、卸载Oracle
oracle的卸载
1. 运行 $ORACLE_HOME/bin/localconfig delete
2. rm -rf $ORACLE_BASE/*
3. rm -f /etc/oraInst.loc /etc/oratab
4. rm -rf /etc/oracle
5. rm -f /etc/inittab.cssd
6. rm -f /usr/local/bin/coraenv /usr/local/bin/dbhome /usr/local/bin/oraenv
7. 删除oracle用户和组
两种办法
第一,能够从时间服务器time.nist.gov同步。在/etc/crontab中加入:
00 0 1 * * root rdate -s time.nist.gov
第二,自己建个时间服务器
1). # rpm -ivh ntp-4.1.2-4.EL3.1.i386.rpm
2). # vi /etc/ntp.conf
注释一行
restrict default ignore
加入一行
restrict 192.168.10.0 mask 255.255.255.0 notrust nomodify notrap
3). # vi /etc/ntp/step-tickers
加入一行
pool.ntp.org
这样每次ntpd启动时,会自动连接该国际标准时间服务器;
4). # service ntpd start
5). # netstat -an |grep 123
确保该端口以udp方式开放
时间客户端配置(192.168.10.2)
1). # ntpdate 192.168.10.1
应该显示同步成功
2). # crond –e
加入
0-59/10 * * * * /usr/sbin/ntpdate 192.168.10.1
表示每隔10分钟同步一次时间
七、开启关闭防火墙1) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
2) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
3)防火墙开放端口
vi /etc/sysconfig/iptables
增加:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
如要开21等端口就把3306替换成21端口即可。
重启iptable:
service iptables restart
八、Xmanager配置1.修改/etc/X11/xdm/Xaccess文件,找到 #*#any host can get a login window这一行,去掉前面的
2.修改/etc/X11/gdm/gdm.conf文件,打到[xdmcp]节,修改Enable=false为true或1,DisplayPerHost=9,保证Port=177
3.修改/etc/inittab文件,将id:3:initdefault:改成id:5(是5不需要更改),x:5:respawn:/usr/bin/gdm(原来的行注释掉)
4.修改/etc/X11/xdm/xdm-config的最后一行,在displayManager.requestPort:0前面加上一个!号
5.iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT
九、 网关自启动设置1. 建立启动网关的用户
useradd gdqxt
2. 为该用户设置密码
passwd gdqxt
输入密码两次,完成密码设置。
3. 将网关程序上传到该用户的主目录中/home/gdqxt
4. 在/etc/init.d下创建服务文件,命名为服务名 ex.(smsgateway)
5. 在smsgateway中添加如下内容
#!/bin/bash
# chkconfig: 35 95 1
# description: script to start/stop smsgateway
case $1 in
start)
sh /opt/startsms.sh
;;
stop)
sh /opt/stopsms.sh
;;
)
echo "Usage: $0 "
;;
esac
保存退出
附权限 chmod 775 smsgateway
加入自动启动
chkconfig –add smsgateway
查看自启动设置
chkconfig –list smsgateway
以后可以用以下命令启动和停止脚本
service smsgateway start
service smsgateway stop
6. 编写启动和停止脚本
在相应目录下,在这里我指定的是/opt/startsmsgateway这个路径,可以自行更改
vi /opt/startsmsgateway.sh
#!/bin/sh
source /etc/profile
cd /home/qxt
sudo -b -u qxt java -jar GDCMPPClient.jar > ./log/log.log &
保存退出。
附权限
chmod 755 startsmsgateway.sh
若要启动多个jar包,在下面用同样的语法写入即可。要注意日志的输出,命令正常的执行必须保证在该目录下存在log这个目录才可以。
这样启动的脚本就已经完成,停止的脚本需要杀进程,有待进一步完善。
重启机器验证是否能够自动启动。
若需要关闭开启某些服务的自动启动,以root权限输入 ntsysv进入配置界面修改即可。
补充:关于防火墙的配置
利用iptables关闭端口方法如下:例如要关闭3306端口:
iptables -A INPUT --sport 3306 -j DROP
iptables -A OUTPUT --dport 3306 -j DROP
开放1521端口:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 1521 -j ACCEPT
25端口:
iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 25 -j ACCEPT
十.Oracle 查看字符集select userenv('language') from dual
十一 Oracle启动时异常我每次安装完数据库后,启动dbstart 启动数据库时都会报下面的错误,
Failed to auto-start Oracle Net Listene using /ade/vikrkuma_new/oracle/bin/tnslsnr
解决方法:修改dbstart这个文件,ORACLE_HOME_LISTNER=$ORACLE_HOME。