Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103682935
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-27 23:25:21


 

最近跟老板要了一台LINUX服务器,服务器放在网通那边,配置的时候发生了很多事情,下面我就简单介绍一下,希望新手能够顺利装机成功。

由于这台机器以前是游戏服务器,所以上面没有任何服务,现在我要将其作为网站服务器。
问题一:
由于是远程管理,所以所有自己需要的文件都要从本地上传过去。

解决:这里推荐使用 WinSCP3这个上传软件,其使用简单功能不俗里面自带了putty。登陆以后其界面有点像FLASHFTP这样的上传软件。按CTRL+S可以更改本地目录和上传的远程目录。很简单,不用多说了。

问题二:
首先我想在服务器上安装HTTPD这个包,因为其很简单不用特殊的配置,就可以开启WEB服务。但是当我用
rpm -ivh httpd-devel-2.0.40-21.i386.rpm 
的时候出现下面的提示:
warning: httpd-devel-2.0.40-21.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
error: Failed dependencies:
httpd = 2.0.40 is needed by httpd-devel-2.0.40-21
libtool is needed by httpd-devel-2.0.40-21

解决:这是警告我没有安装关联包,很多人都在这上面吃到过苦头。有的人甚至改用其它的LINUX版本。下面介绍一条比较实用的命令
rpm --aid -ivh httpd-devel-2.0.40-21.rpm

这条命令是安装
httpd-devel-2.0.40-21.rpm包,如果缺少哪些包就在这个目录里自动安装所缺的包。如果所需要的包不存在,它也会为你显示出来缺少的包名。根据提示把你缺少的包安装好就可以正常应用了。

问题三:
因为要做APACHE和TOMCAT结合,所以我决定手动安装APACHE包,在我解压这个包以后
tar -zxvf apache*
以后,随后我敲入下面的命令
/configure --prefix=/usr/local/apache --enable-module=so
linux提示我没有C编译器,或者是没有定义编译器的路径。我便决定安装GCC,在LINUX光盘里面就可以找到GCC这个包,我使用
rpm --aid -ivh gcc-*
的时候提示我需要安装其它的关联包。在安装关联包的时候提示我要安装一个叫kernel-headers的包,但是这个包在linux光盘里面是没有的。究竟在哪里呢。

解决:
其实这个包就在LINUX光盘中,但是不叫
kernel-headers 而叫glibc-kernheaders-2.4-8.10.i386.rpm
当安装好之后APACHE命令可以执行。

问题四:
在设置JAVA环境的时候,配置好一切的时候在SSH窗口输入echo $JAVA_HOME的时候没有反映。这个时候别以为是自己设置错了,其实是你缺少了一个步骤

解决:
在设置了JAVA环境之后,要输入另一条命令将设置生效
#source /etc/profile

【IT168 服务器学院】Oracle是世界上使用最广泛的数据库,它可以运行在各种计算机上;也是当前最优秀的关系型数据库。以前,一至无缘接触。这两天,正好有空。就在自己的计算机上装了一遍,领略了一番她的魅力!
 
  一、准备工作

  1.下载oracle 9i for linux的源码包(一共有三个cpio.gz的文件lnx_920_disk1.cpio.gz,lnx_920_disk2.cpio.gz,lnx_920_disk3.cpio.gz)

      2.下载补丁。至少需要四个补丁文件:

QUOTE:
p3095277_9204_LINUX.zip 9.2.0.4.0的升级补丁包.
      p3006854_9204_LINUX.zip 在运行 runInstaller 之前打.
      p3119415_9204_LINUX.zip 在升级到9.2.0.4.0之后打.
      p2617419_210_GENERIC.zip 打3119415补丁所需要的.

  这几个补丁文件都可以在google上搜索到,其中p3095277_9204_LINUX.zip这个补丁有300多M,我在网上搜到了一个国内的下载站,速度有30多K/秒。另外三个,在itpub有人打包上传了。http://www.itpub.net/showthread.php?s=&threadid=171693&perpage=15&pagenumber=1

      3.修改内核参数

QUOTE:
#echo "kernel.sem=\"250 32000 100 128\"" >;>; /etc/sysctl.conf
      #echo "kernel.shmmax=2147483648" >;>; /etc/sysctl.conf

  第一条命令中的 250、32000、100、128 分别对应SEMMSL、SEMMNS、SEMOPM、SEMMNI这四个核心参数。
  上面是典型的核心参数配置.您可能需要根据您的实际环境进行适当的变动.

      4.检查设置

QUOTE:
# more /etc/sysctl.conf | grep kernel.s
        kernel.sysrq = 0
        kernel.shmmax=2147483648
        kernel.sem="250 32000 100 128"

  5.检查安装所需的rpm包是否齐全,确认以下rpm包都已经安装(如果你安装时选择了软件开发,那么基本上下面所列的包都已经安装了,如果没有安装,大部分在第三张光盘上,安装时注意一下顺序)

QUOTE:
# rpm -qa | grep compat
        compat-gcc-7.3-2.96.122
        compat-libstdc++-devel-7.3-2.96.122
        compat-gcc-c++-7.3-2.96.122
        compat-libstdc++-7.3-2.96.122
        compat-glibc-7.x-2.2.4.32.5
        compat-db-4.0.14-5
# rpm -qa | grep setarch
        setarch-1.3-1

  6.把gcc,g++更换为2.96的版本。

QUOTE:
# mv /usr/bin/gcc /usr/bin/gcc323
# ln -s /usr/bin/gcc296 /usr/bin/gcc
# mv   /usr/bin/g++ /usr/bin/g++323   
# ln -s /usr/bin/gcc296 /usr/bin/gcc

  7.设置用户及环境变量、安装目标路径

  a.增加用户和组

QUOTE:
groupadd dba          # 创建数据库管理员组
       groupadd oinstall     # 创建oracle文件的所有组
       useradd -c "Oracle software owner" -g oinstall -G dba oracle #创建oracle用户
       passwd oracle         #设置oracle用户的密码

  b.创建安装目标路径

QUOTE:
mkdir /opt/oracle
       mkdir /opt/oracle/product
       mkdir /opt/oracle/product/9.2.0
       chown -R oracle.oinstall /opt/oracle

       mkdir /var/opt/oracle
       chown oracle.dba /var/opt/oracle
       chmod 755 /var/opt/oracle

  c.设置环境变量

QUOTE:
su  - oracle
      vi .bash_profile加入下面的内容
      export LD_ASSUME_KERNEL=2.4.1 #这个参数必须指定,否则Java安装界面无法启动,这个参数实际上是为了避免Linux上的NPTL(Native POSIX Thread Library)和Oracle应用不兼容的问题.
     # Oracle Environment
     export ORACLE_BASE=/opt/oracle
     export ORACLE_HOME=/opt/oracle/product/9.2.0
     export ORACLE_SID=test
     export ORACLE_TERM=xterm
     # export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
     export NLS_LANG=AMERICAN;
     export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
     LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
     LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
     export LD_LIBRARY_PATH

     # Set shell search paths
     export PATH=$PATHORACLE_HOME/bin
    然后执行
    $ source .bash_profe #让配置文件生效

  8.设置swap和临时文件夹

      oracle对内存和swap要求比较高,Oracle 建议 Oracle 9i  服务器至少需要 512M 内存,两倍内存或不少于 400M 的交换 (swap) 空间。如果你没有足够的交换空间或内存,在数据库创建过程中,你的 Oracle 服务器将变得非常迟钝。 我的内存只有256M,512M的swap。在此,我新增了1000M的swap。

QUOTE:
su – root
    dd if=/dev/zero of=tmpswap bs=100M count=10
    chmod 600 tmpswap
    mkswap tmpswap
    swapon tmpswap

  另外,oracle的安装至少需要400M的/tmp临时空间。如果你/tmp下的空间不够,可以可以临时在另一个文件系统中建立一个/tmp 目录。

QUOTE:
su – root
   mkdir /;/tmp
   chown root.root /;/tmp
   chmod 1777 /;/tmp
   export TEMP=/; # used by Oracle
   export TMPDIR=/; # used by Linux programs

  当安装完 Oracle 之后,关闭 Oracle 并删除临时目录:

QUOTE:
su – root
  rmdir /;/tmp
  unset TEMP
  unset TMPDIR

  Oracle 磁盘空间 (Sizing Oracle Disk Space)仅安装数据库软件,大约需要2.5G 的磁盘空间。如果执行一个标准的数据库安装而不是自定义安装,则大约需要3.5G空间。

    9.解包安装文件。把下载的文件拷贝到/tmp中。最好以root身份来解压,否则可能会报错。

   a.解压gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz 

  b.解包

QUOTE:
cpio -idmv < lnx_920_disk1.cpio
   cpio -idmv < lnx_920_disk2.cpio
   cpio -idmv < lnx_920_disk3.cpio

  会生成Disk1,Disk2,Disk3三个文件夹, 好了,准备工作告一段落。万事俱备,只久安装了!

   二、安装

  1.打第一个补丁。运行runInstaller之前,需要打补丁3006854: 注意,必须以root身份运行.

QUOTE:
# unzip p3006854_9204_LINUX.zip

  会在当前目录下创建一个目录,进入到该目录中

QUOTE:
# cd 3006854
    #chmod +x *.sh
    # ./rhel3_pre_install.sh

  2.以root身份执行xhost +如果以oracle身份执行,会出现提示不能连接到display 0.0之类的错误。

     3.运行runinstall(激动人心的时刻到了!)

      su - oracle
      /tmp/Disk1/runInstaller (有文章说不要进入到Disk1的文件夹中再执行./runInstaller,否则会找不到其它的盘。我没有实验那样是否不行。)

  根据提示往下面安装,中间会提示你,有一个地方要组名,输入oinstall,另一个地方添数据库名和SID,请均填入orcl。 还会提示你用root身份执行一个脚本,按ctrl+shift+n新开一个终端窗口, 然后执行/tmp/的一个.sh文件。

  另外,relink 阶段,会报告两个错误:ins_oemagent.mk 和 ins_ctx.mk. 点 Ignore忽略,安装后升级到9.2.0.4的版本来消除这个bug.

  4.升级

  解包: unzip p3095277_9204_LINUX.zipcpio -icvd < 9204_lnx32_release.cpio 这个地方最好还以root身份解包,否则可能还会提示你权限不够。

  现在可以再次运行runInstaller,要先升级oui(最后一个选项)否则不让升级到9.2.0.4.而且,升级完oui以后,要退出oui然后再重新运行oui, 再升级到9.2.0.4.不退出继续升级会报告错误.升级过程中,仍然会出现ins_oemagent.mk错误,点 Ignore 忽略(可以通过下面的补丁解决)。然后还会提示你用root身份来执行一个/opt中的一个脚本,你同样开一个终端,用root身份来执行就可以了。

  5.打补丁

QUOTE:
su - oracle
$ unzip p3119415_9204_LINUX.zip
$ cd 3119415
$ export PATH=$PATH:/tmp/OPatch
$ export PATH=$PATH:/sbin        # the patch needs "fuser" which is located in /sbin
$ which opatch
/tmp/OPatch/opatch
$ opatch apply

  这个地方有一个问题需要注意,直接用oracle身份解压可能提示权限不够,用root身份解压,然后用oracle身份来执行还会提示你权限不够,你用root解压然后执行chmod 777 3119415,然后su - oracle;/tmp/Opatch/opatch apply就ok了。
   好了,大功告成了!  运行dbca命令来创建数据库,还有文档上说这个时候可能会出错,要修改dbca文件来解决,我没有遇到这个问题,如果你遇到了可以上google上找相关文档,来解决这个问题。

  三、清扫战场及实验

  1.删除临时文件(这些临时文件将近3G,不用我再说删除的意义了吧?)

QUOTE:
cd /tmp
       rm -rf *

  2.改回gcc,g++的版本,否则在以后编译安装其他软件时可能会有问题

QUOTE:
# mv /usr/bin/gcc323 /usr/bin/gcc
      # mv /usr/bin/g++323 /usr/bin/g++

  3.连接一下数据库,检查一下自己的劳动成果吧!

QUOTE:
su - oracle
      oracle$ sqlplus /nolog
      SQL>; connect / as sysdba
      SQL>; startup

  SQL>;这时你可以用create table来创建数据库了,和mysql提示符下的操作一样。

  如果你现在只是测试服务器,不是生产服务器,关机时别忘了在sql>;提示符下执行一下shutdown来关闭数据库,不然的话,关机的过程将变得非常漫长。
第一次接触oracle,感觉很辛苦,光是装一个oracle就这么费事!晕了好几次:)
好了,这是我安装oracle时的笔记(参考了N多文档)
Red Hat Enterprise Linux ES release 3 (Taroon)  Kernel 2.4.21-4.EL ON on i6868
    Oracle9i Release 9.2.0.4

首先除了LINUX和ORACLE安装盘之外,还要准备一些补丁包:
  p3095277_9204_LINUX.zip
下载地址:
  p2617419_210_GENERIC.zip 、   p3006854_9204_LINUX.zip、
p3119415_9204_LINUX.zip、   P3238244_9204_LINUX.zip
下载地址: http://www.itpub.net/showthread.php?s=&postid=1583482#post1583482


(一) Oracle公司声称在Linux下安装Oracle9i数据库至少要有512MB的内存和至少1GB或者两倍 内存大小的交换空间,哈哈!恰好我的机器刚好满足它的最低要求,不过我听说256M也能安装ORACLE,本人对此深信不疑,当系统内存大于2GB的服务器,交换空间可以介于2GB—4GB之间。
                  要检查内存空间,在命令行方式(bash环境)下执行如下命令: 
grep MemTotal /proc/meminfo 

要检查交换空间,在命令行下执行如下命令: 
grep SwapTotal /proc/meminfo

第二点是主机名和IP地址最好要手动设置
(二) 检查系统下是否有以下软件包
compat-libstdc++-7.3-2.96.122 
compat-gcc-c++-7.3-2.96.122 
compat-libstdc++-devel-7.3-2.96.122 
compat-db-4.0.14-5 
compat-gcc-7.3-2.96.122 
tcl-devel-8.3.5-92.i386.ipm
openmotif21-2.1.30-8
setarch-1.3-1
如果没有可以采用#rpm –ivh ……rpm 来安装,具体大多数在第三张盘上,还有,这些包有一定的依赖性,这就需要你来动手试了。
(三) 添加安装过程中需要用到的用户和组,这当中会用到二个用户一个是root,一个是oracle
#groupadd oinstall
#groupadd dba
#useradd –g oinstall –G dba oracle
#passwd oracle
(四) 新建安装目录
#mkdir –p /opt/oracle/product/9.2.0
#chown –R oracle.oinstall /opt/oracle
#mkdir /var/opt/oracle
#chown oracle.dba /var/opt/oracle
#chmod 755 /var/opt/oracle
(五)  设置内核参数,调节信号灯及共享内存
           (1)设置内核参数,调节信号灯及共享内存:
[root@sun root]# echo 250 32000 100 128 >; /proc/sys/kernel/sem
[root@sun root]# echo 536870912 >; /proc/sys/kernel/shmmax
[root@sun root]# echo 4096 >; /proc/sys/kernel/shmmni
[root@sun root]# echo 2097152 >; /proc/sys/kernel/shmall
[root@sun root]# echo 65536 >; /proc/sys/fs/file-max
[root@sun root]# echo 1024 65000 >; /proc/sys/net/ipv4/ip_local_port_range
当然为了一开机系统就能自动帮你设好这些参数,也可改动 /etc/sysctl.conf 这个文件,加入以下的语句:
    kernel.shmmax = 536870912
    kernel.shmmni = 4096
    kernel.shmall = 2097152
    kernel.sem = 250 32000 100 128
    fs.file-max = 65536
    net.ipv4.ip_local_port_range = 1024 65000
注意:如果你的共享内存不够大的话,在安装的过程中会提示ORA-27123错误,到时候你只要把/proc/sys/kernel/shmmax的值调大就可以了到于多大就看你的了
(六) oracle对文件的要求: 
编辑文件:/etc/security/limits.conf 加入以下语句: 
oracle    soft    nofile    65536 
oracle    hard    nofile   65536 
oracle    soft    nproc    16384 
oracle    hard    nproc    16384
(七)   设置oracle的环境
#su – oracle
  $ vi ~/.bash_profile
export LD_ASSUME_KERNEL=2.4.1
export DISPLAY=”192.168.9.205:0.0” (127.0.0.1:0.0) 
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=ora9i (数据库全局变量名)
export ORACLE_TERM=xterm (xterm窗口模式 vt100 终端调试模式)
export NLS_LANG=AMERICAN (设置语言AMERICAN英文)
export ORACLE_OWNER=oracle
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data     
export THREADS_FLAG=native 
export LD_LIBRARY_PATH=/opt/oracle/product/9.2.0/lib:/lib:/usr
/lib:/usr/local/lib 
export PATH=/opt/ora9/product/9.2/bin:$PATH  
export PATH=$PATH:$ORACLE_HOME/bin
然后注销再重新登录就可以,oracle 的环境就应该生效了
(八)      #xhost +192.168.0.2 (本地IP地址) 
(xhost disable访问控制,客户端可以从任何主机进行连接) 
这个命令用来保证oracle用户调用X11,否则无法安装
(九) 安装
在安装之前需要打一个补丁
为了应用这个补丁,可以运行: 
$su – root 
#unzip p3006854_9204_LINUX.zip 
Archive:p3006854_9204_LINUX.zip 
creating:3006854/ 
inflating:3006854/rhel3_pre_install.sh 
inflating:3006854/README.txt 

#cd 3006854 
#sh rhel_pre_install.sh 
Applying patch… 
Patch successfully applied
新开一个窗口#su - oracle 
在登录终端中切换到oracle用户: 
在oracle主目录里运行:#/mnt/cdrom/install/linux/runinstaller 

********************************************************* 
安装过程中的注意事项: 
1.在安装中让你输入 UNIX group name:oinstall (#groupadd oinstall) 
如果提示orainstRoot.sh权限问题,在root终端下执行: 
#sh /tmp/orainstRoot.sh 然后继续 
2.在安装中选择 software only 不要建数据库 
3. 安装过程中提示/opt/oracle/product/9.2 权限问题,可另开窗口修改权限为oracle-dba 
在结束的时候还会提示权限问题,另开窗口修改权限为root-root 
注意的是以下几点: 
Relink阶段,会出两个错误:ins_oemagent.mk 和 ins_ctx.mk. 点 Ignore 忽略. 不过在我安装的过程中还有一个错误会出现二次ins_rdbms.mk我选择了忽略,如果有人知道这个错误怎么修复请发信件告诉我

再安装过程中,系统会提醒你用root身份去执行两个sh文件,再root的登录终端中按提示操作就可以了 
(十) 升级oracle
# su - oracle
安装结束后,HTTPD会自动运行.在升级之前,需要将它停下来. 
$ cd $ORACLE_HOME/Apache/Apache/bin 
$ ./apachectl stop 
./apachectl stop: httpd stopped 
LISTENER也需要停下来. 
$ lsnrctl stop 
LSNRCTL for Linux: Version 9.2.0.1.0 - Production on 07-NOV-2003 16:25:41 
Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved. 
Connecting to (ADDRESS=(PROTOCOL=tcp)(PORT=1521)) 
The command completed successfully 
注意: 如果不停的话,oracle会提示不能覆盖文件.这个时候再去将服务停下来也可以,点Retry就可以了.
(十一)  打补丁
开始打补丁升级.  
解包: 
# unzip /home/oracle/p3095277_9204_LINUX.zip 
Archive: p3095277_9204_LINUX.zip 
inflating: 9204_lnx32_release.cpio 
inflating: README.html 
inflating: patchnote.css 
# cpio –idmv < /home/ora9/Disk1/9204_lnx32_release.cpio 
做完这个后,再切换到oracle用户控制台, 再次运行/home/oracle/Disk1/runInstaller升级,注意必须先选择最下面的安装选项,安装OUI 
要不然没有办法打那个最上面的升级补丁。 
升级完OUI后,要退出
$ cd $ORACLE_HOME/bin
$ ./runInstaller
选择第一个选项,将Oracle升级到9.2.0.4。 
这时候还是会有一个错误出现ins_oemagent.mk,再次选择忽略它,这个错误会在9.0.2.4补丁包被应用后由3119415_9204_LINUX.zip这个补丁修正。 

为了安装 opatch,可以运行: 
#su – oracle 
$cp p2617419_210_GENERIC.zip /tmp 
$cd /tmp 
$unzip p2617419_210_GENERIC.zip 

在应用补丁 3119415 之前,请确信 oracle 用户可以访问fuser。否则,补丁不能被应用,因为 opatch 要使用 fuser。 

为了应用补丁 3119415,可以运行: 
#su – oracle 
$unzip p3119415_9204_LINUX.zip 
$ cd 3119415 
$export PATH=$PATH:/tmp/OPatch 
$export PATH=$PATH:/sbin # the patch needs “fuser” which is located in /sbin 
$which opatch 
/tmp/OPatch/opatch 
$opatch apply

(十二)创建数据库
现在你可以使用 dbca 创建数据库: 
$su - oracle 
#dbca

启动和停止 Oracle 9i 数据库 (Startup and Shutdown of the Oracle 9i Database) 
1.sqlplus: 
Oracle 9i (9.0.1 & 9.2.0) 不再使用 svrmgrl,而改用 sqlplus。 

例如,启动数据库,可以运行下面的命令: 
#su – oracle 
$sqlplus /nolog 
SQL>;connect / as sysdba 
SQL>;startup 

斜杠 (/ -- slash) 使用 SYS 连接到方案 (schema)。本例中,将使用 SYS 数据库用户以 SYSDBA 身份连接到方案。SYSDBA 赋予用户如下特权: 
- sysoper privileges WITH ADMIN OPTION 
- create database 
- recover database until 

立即停止数据库,可以运行下面的命令: 
#su – oracle 
$sqlplus /nolog 
SQL>;connect / as sysdba 
SQL>;shutdown –immediate 

2.$ORACLE_HOME/bin/dbstart 和 $ORACLE_HOME/bin/dbshut 
也可以使用 $ORACLE_HOME/bin/dbstart 启动数据库,使用 $ORACLE_HOME 
/bin/dbshut 停止数据库。甚至可以将 $ORACLE_HOME/bin/dbstart 写入 /etc/rc.d/rc. local 启动脚本,当系统启动时,自动启动数据库。为了使 $ORACLE_HOME/bin/dbstart 和 $ORACLE_HOME/bin/dbshut 正常工作,需要将 /etc/oratab 文件中第 3 个字段的值由 N 改为 Y。

Oracle RAC 数据库创建过程中的注意事项 
· ORA-29807 错误 
在数据库创建过程的“创建数据字典视图”阶段中,您将接收到一个 ORA-29807 错误。如果您搜索日志文件,您将看到以下内容: 
drop operator XMLSequence
*
ERROR at line 1:
ORA-29807:specified operator does not exist
这是一个已知的问题 (Bug:2686156),并且可被忽略。要继续数据库创建过程,请单击 "Ignore" 按钮: 
 
· ORA-01430 错误 
在数据库创建过程的“增加 Oracle Spatial”阶段中,您将接收到一个 ORA-01430 错误。如果您搜索日志文件,您将看到以下内容: 
(SDO_ROOT_MBR mdsys.sdo_geometry)
  *
ERROR at line 2:
ORA-01430:column being added already exists in table
这是一个已知的问题,并可被忽略。要继续数据库创建过程,请单击 "Ignore" 按钮: 

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