Oracle9i在RedHat AS3.1下的安装

1.在安装AS3.1的过程中把所有的开发包都安装,这样就不用在另外找包安装这么麻烦了.以下几个包是需要的:
        compat-db-4.0.14-5.i386.rpm
        compat-gcc-7.3-2.96.122.i386.rpm
        compat-gcc-c++-7.3-2.96.122.i386.rpm
        compat-libstdc++-7.3-2.96.122.i386.rpm
        compat-libstdc++-devel-7.3-2.96.122.i386.rpm
        openmotif21-2.1.30-8.i386.rpm
        setarch-1.3-1.i386.rpm
        tcl-8.3.5-92.i386.rpm

       降低gcc和g++的版本.

        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/g++296 /usr/bin/g++

            2.修改部分参数

         #vi /etc/sysctl.conf
         加入:
         kernel.shmmax = xxxxx*1024*2(为内存的2倍,切换到字节。要是超过这个值,在运行dbca时会出现Ora-27123:Unable to attach to shared memeroy segment)
         kernel.shmmni=4096
         kernel.shmall=2097152
         kernel.sem=250 32000 100 128
         fs.file-max=65536
         net.ipv4.ip_local_port_range=1024 65000
         #vi /etc/security/limits.conf
         加入:
         oracle hard nofile 65536
         oracle soft nofile 65536
         oracle hard nproc 16384
         oracle soft nproc 16384

      3.建立Oracle用户

         #groupadd oinstall
         #groupadd dba
         #useradd -g oinstall -G dba oracle
         #passwd oracle
         设置环境变量(/etc/profile)
         export LD_ASSUME_KERNEL=2.4.1
         export ORACLE_BASE=/home/oracle
         export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
         export ORACLE_SID=test
         export ORACLE_TERM=xterm
         export TNS_ADMIN=$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
         export PATH=$PATH:$ORACLE_HOME/bin
         export LANG=en_us

        4.准备安装文件.(用oracle用户)

         $cd /home/oracle
         $cat ship_9204_linux_dis1.cpio |cpio -idmv
         $cat ship_9204_linux_dis2.cpio |cpio -idmv
         $cat ship_9204_linux_dis3.cpio |cpio -idmv

         5.打patch(p3006854_9204_LINUX.zip)

          #cd /home/oracle
          #unzip p3006854_9204_LINUX.zip
          #cd p3006854
          #sh rhel3_pre_install.sh

          6.开始安装,并按照提示以root身份执行两个sh.

          7.安装结束后,打两个patch(p3238244_9204_LINUX.zip & p2617419_210_GENERIC.zip)

          #cd /home/oracle
          #unzip p2617419_210_GENERIC.zip
          #export PATH=$PATH:/home/oracle/OPatch:/sbin
          #unzip p3238244_9204_LINUX.zip
          #cd 3238244
          #opatch apply
          $cd $ORACLE_HOME/network/lib
          $make -f ins_oemagent.mk install

          [说明]:p2617419的作用是提供opatch,然后p3238244能被打上,最后的重新link该文件是因为修复agentctl的错误.

         8.创建数据库

         $agentctl start
         $注释掉$ORACLE_HOME/bin/dbca中的118,121,123,124行
         $dbca创建数据库

===================================================

1.创建listener.ora($ORACHE_HOME/network/admin)

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC)))
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 220svr252)(PORT = 1521))
      )
    )
  )

IFILE = /home/oracle/product/9.2.0/network/admin/220svr252_webdb.lsr

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /home/oracle/product/9.2.0)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (GLOBAL_DBNAME = webdb.webex.com)
      (ORACLE_HOME = /home/oracle/product/9.2.0)
      (SID_NAME = webdb)
    )
  )

   说明:1.HOST = 220svr252的值要和/etc/hosts中的相同.

2.创建220svr252_webdb.lsr

220SVR252_WEBDB =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
     (PROTOCOL_STACK =
        (PRESENTATION = TTC)
        (SESSION = NS)
      )
      (ADDRESS_LIST =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 220SVR252)(PORT = 1521))
      )
    )
  )

SID_LIST_220SVR252_WEBDB =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = webdb.webex.com)
      (ORACLE_HOME = /home/oracle/product/9.2.0)
      (SID_NAME = webdb)
    )
  )
   说明:这里DB的名称是webdb,前面加上220svr252_是为了区别,没有特别的含义和标识.

3.启动DB

    $dbstart
    $lsnctl start 220svr252_webdb
    $sqlplus / nolog
    $connect / as sysdba
    $startup

=====================================

webdb 和opdb的安装基本相似.

   安装完oracle后创建相应的db,这里有两个db:220svr252_webdb 和220svr252_opdb.

   1.首先从sql文件中导入tablespace

     sqlplus system/pass@220svr252_webdb < cr_operation_tablespaces.sql

     注意:在导入这个tablespace之前,应该修改该文件中相应的信息,主要有两个地方,第一个是修改db存放的目录,然后是连接的数据库名称.

   2.从sql文件中导入user,这里添加了一个test/pass的用户.

     sqlplus system/pass@220svr252_webdb < cr_operation_users.sql

     同样要注意,在这之前要修改该文件中连接的数据库名称.

   3.防止万一,给test用户添加相应的权限.

      sqlplus system/pass@220svr252_webdb

      SQL>grant resource,connect to test;

    4.从正常运行的数据库中导出webdb.

      exp test/oracle@xxxx_xxxx owner=test log=test_web.log file=webdb.exp

     5.导入该文件到新的DB中:

     imp system/pass@220svr252_webdb file=webdb.exp ignore=y fromuser=test touser=test commit=Y log=imp_webdb.log

     在导入的过程中,忽略一些信息,一般是说shareplex用户不存在,该用户在DB完成后安装shareplex后会产生.

     opdb的方法是一样的,tablespace文件和user文件相同,不过一定要记得修改两文件中的信息.

===========================================================

现在有两个DB(oracle9i),webdb和opdb,两个DB之间有部分表需要进行复制,现在使用shareplex来实现,这两个DB都是安装在同一台box上,使用不同的Instance.

       1.运行安装文件,该文件需要在root用户中使用.
          #./SharePlex_Oracle-5.1.0.511-Linux-x86-Oracle92.run
          根据提示,把shareplex和data分别安装在/opt/shareplex/product和/opt/shareplex/vardir目录中.
          [注意]:在/etc/hosts中配置正确的hostname.

        2.建立复制端口的相关文件.这里使用8000做为复制端口.
          2.1.建立目录
                #mkdir /opt/shareplex/vardir/splex8000
                #cp -rf /opt/shareplex/vardir/* /opt/shareplrx/vardir/splex8000

          2.2.建立tablespace.
               CREATE TABLESPACE splex8000 DATAFILE
              '/home/oracle/oradata/opdb/splex8000.dbf' SIZE 50M AUTOEXTEND ON NEXT 100M MAXSIZE 1000M
               LOGGING
               ONLINE
               PERMANENT
               EXTENT MANAGEMENT LOCAL AUTOALLOCATE
               BLOCKSIZE 8K
               SEGMENT SPACE MANAGEMENT MANUAL;
               同样为webdb建立同样一个tablespace文件,并导入对应的库中.

           2.3.生效splex8000
              #SP_SYS_VARDIR=/opt/shareplex/vardir/splex8000 export SP_SYS_VARDIR
              #cd /opt/shareplex/product/bin
              #./clean_vardir.sh 9.2.0
              (9.2.0是oracle的版本,这个在安装shareplex的时候有提示)

        3.配置shareplex.
           #su - oracle
           #cd /opt/shareplex/product/bin
           #ORACLE_SID=opdb export ORACLE_SID
           #./ora_setup
           在配置过程中,要求为shareplex的运行选择tablespace,不要使用默认值,除了temp外,其余的都使用新建立的splex8000.
           [注意]:在这个配置过程中,安装程序会使用sqlplus登录DB,并且使用"connect / as sysdba"连接数据库,而ora_setup本身的属性是s,所以它是以root身份去sqlplus的,如果你们DB在root帐号下无法使用"connect /as sysdba",那么这个安装就无法进行下去,总是提示用户和密码不正确,解决方法就是:chown 755 /opt/shareplex/product/bin/*,chown oracle.oinstall /opt/shareplex/product/bin/*.

        4.启动和使用shareplex.
          4.1启动shell是:
             #!/bin/sh

             echo "Starting splex [port=8000 vardir=/opt/vardir/splex8000]"
             SP_SYS_VARDIR=/opt/shareplex/vardir/splex8000
              export SP_SYS_VARDIR
              SP_COP_TPORT=8000
              export SP_COP_TPORT
              SP_COP_UPORT=8000
              export SP_COP_UPORT

               /opt/shareplex/bin/sp_cop -u8000 &
              echo "Has been starting splex port=8000"
           4.2.使用shareplex.
              #/opt/shareplex/product/bin/sp_ctrl
              sp_ctrl >port 8000
           [注意]:因为两个DB是安装在同一台box上的,所以启动一次shareplex而且使用相同的端口8000就可以了.

         5.配置表的复制.
           5.1.OPDB-->WEBDB
               #cat /opt/shareplex/vardir/splex8000/config/op2web
                   datasource:o.opdb
                   test.CONFLICENSEINFO                test.CONFLICENSEINFO                220svr252@o.webdb
               #cat /opt/shareplex/vardir/splex8000/config/web2op
                   datasource:o.webdb                                                               
                    test.CORCONTACT                         test.CORCONTACT                         220svr252@o.opdb
             5.2.激活这两个文件.
               sp_ctrl > activate config op2web
               sp_ctrl > activate config web2op