Chinaunix首页 | 论坛 | 博客
  • 博客访问: 84700
  • 博文数量: 16
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-06-30 13:52
文章存档

2016年(1)

2011年(15)

分类: Oracle

2011-12-02 14:23:49

LINUX环境

配置JDK+TOMCAT+ORACLE数据

一、LINUX安装 3

二、安装JDK 3

1、下载JDK 3

2、安装以root身份 3

3、配置JAVA环境变量 3

4、测试JDK 5

三、安装TOMCAT 5

1、下载 5

2、安装 5

3、创建tomcat用户 5

4、用tomcat账号登录 6

5、设置自动启动: 6

四、安装ORACLE 9

1、以root身份登录系统 9

2、硬件需求 10

3、软件环境需求 10

31操作系统 10

3.2检查网络设置 11

3.3检查nobody用户账号是否存在 12

3.4设置系统内核参数 12

3.5设置oracle用户的shell环境限制 12

3.6设置Oracle用户环境变量 13

4、安装oracle 14

管理oracle数据库 17

1) 启动数据库监听 17

2) 启动数据库 17

3) 查看数据库进程 18

4) 关闭数据库 18

5) 停止数据库监听 18

6)EM管理工具 18

6、自动启动Oralce 18

一、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  设置用户tomcat5tomcat的权限

#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文件的头两行的注释语句中,需要包含chkconfigdescription两部分内容(确认不要拼写错误,),否则在执行“chkconfig --add tomcat”时,会出现“tomcat服务不支持chkconfig”的错误提示。 

chkconfig这行表示缺省启动的运行级别以及启动和停止的优先级,如该服务缺省不再任何运行级启动,则以 代替运行级别。在tomcat中表示脚本在运行级2345启动,启动优先权为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 

5. 查看CPU信息 # grep model name /proc/cpuinfo

查看物理CPU的个数

cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l

查看逻辑CPU的个数

cat /proc/cpuinfo |grep "processor"|wc –l

查看CPU是几核

cat /proc/cpuinfo |grep "cores"|uniq

查看CPU的主频

cat /proc/cpuinfo |grep MHz|uniq

是否为超线程?

如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

cat /proc/cpuinfo | grep physical | uniq -c

       physical id      : 0

       physical id      : 1

查看CPU是否支持64
cat /proc/cpuinfo | grep flags | grep ' lm ' | wc -l

8

(结果大于0, 说明支持64bit计算. lmlong 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 检查已经安装的软件包,如果在安装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 

我的电脑IP192.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/oracle10201_database_linux32.zip

使用Xmanagerxstart登录到服务器,否则必须在服务器本地安装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.

安装结束后,数据库自动启动,包括侦听程序和数据库实例以及其它的相关管理工具。如果想停止服务器,重启再启动数据库请参见下面的操作

注:如果时手动建立的实例或安装64ORACLE,那么可能会在/opt/oracle/product/10.2/network/admin下缺少3个文件,需要手工建立,分别是:listener.ora   sqlnet.ora  tnsnames.ora

管理oracle数据库 1) 启动数据库监听 

      su -oracle——切换Oracle用户(如果使用su oracle ,则启动时不运行.bash_profile用户环境配置文件

      $ lsnrctl start——启动监听 

2) 启动数据库 

      $ sqlplus "/ as sysdba"——用sys用户登陆sqlplus 

      SQL> startup——启动数据库 
      SQL> exit——退出sqlplus 
      或者 
      $dbstart 

3) 查看数据库进程 

    $ 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

6、自动启动Oralce

Oracledbstart 和 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用户和组

六、linux下配置时间同步服务器

两种办法

第一,能够从时间服务器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=falsetrue1DisplayPerHost9,保证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

阅读(3106) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

8866xiang2012-02-28 09:47:11

分区问题一般要看你的需求,我一般分三个区,有时也选择默认分区。

背包包1112011-12-04 03:18:26

分区问题详细要注意设么呢?