后期安装

---(编译/晏子)

你必须在完成Oracle通用安装程序会话后执行某些后期安装步并配置Oracle8i。这章描述所需的步骤,还有一些可选的。

作为root用户执行的配置任务

作为root用户登录并且执行下列任务:

创建额外的Linux账号
验证数据库文件安全性
数据库自动启动和关闭(可选)

创建额外的Linux帐号

如果必要,用系统管理实用程序例如useradd创建额外的Linux帐号。在系统上的每个DBA用户必须是OSDBA组的一个成员。

用SQL*plus查询数据字典视图列出缺省数据库中的账号。数据库中的帐号基于在安装程序被选择的产品。

SQL> SELECT username FROM dba_users;

你应该删除你不需要的帐号。

验证数据库文件安全性

如果你以类似于美国NCSC C2或欧洲的ITSEC E3安全评估配置的方式配置Oracle8i,验证数据库文件安全性以保证 Oracle软件安装的完整性。如果安全不是一个问题,这项任务是可选的。

许多文件必须被保护以阻止非法存取安全数据。建议的文件模式和所属权如下:

表4-1 “在Oracle目录和文件上的访问权限”总结了对于目录和文件的不同类型的权限。


注意:

这些权限是缺省值并且不应该改变。 


4-1Oracle目录和文件上的访问权限
目录/文件  权限  注释 

所有数据库、redo日志和控制文件(这些文件的扩展名典型为.dbf、.log和.ctl

640

rw-r---- 

要维持数据的自由存取,所有数据库、redo日志控制文件必须是仅能由oracle账号和oinstall组可读的。

$ORACLE_HOME/bin/ 

751

rwxr-x--x 

必须是可由oracle软件拥有者写的,并且可被所有用户执行。 

oracle可执行文件,和下列网络可执行文件: $ORACLE_HOME/bin/oracle$ORACLE_HOME/bin/dbsnmp 

6751

rws-r-s--x

 

设置setuid和setgid位为6,这样可执行文件以oracle用户和dba组运行,不管谁执行他们。 

所有其他可执行文件。 

751

rwxr-x--x 

必须可被oracle账号写并且可被所有用户可执行。 

$ORACLE_HOME/lib/ 

755

rwxr-xr-x 

目录是可被拥有者读、写和执行,而其他用户可读且可执行。 

所有在$ORACLE_HOME/lib/下面的文件 

644

rw-r--r-- 

文件是可被拥有者读和写,而所有其他用户只读。 

$ORACLE_HOME/rdbms/log 

751

rwxr-x--x 

将目录中文件的访问限制为oracle账号和oinstall组。 

产品子目录例如$ORACLE_HOME/sqlplus$ORACLE_HOME/rdbms 

751

rwxr-x--x 

将日志文件的访问限制为oracle账号和oinstall组。 

$ORACLE_HOME/sqlplus $ORACLE_HOME/rdbms里面的文件

644

rw-r--r-- 

文件可被拥有者读和写,所有其他用户只读。 

$ORACLE_HOME/network/trace 

777

rwxrwxrwx

730

rwx-wx--- 

777允许在开发期间更广泛的访问来查看病创建跟踪文件。在生产系统中用730以确保只有oracle帐号和oinstall组成员能访问跟踪文件。 

在产品administration目录下面的所有文件,例如$ORACLE_HOME/rdbms/admin$ORACLE_HOME/sqlplus/admin 

644

-rw-r--r-- 

SQL脚本应该典型地作为SYS用户运行。 

数据库自动启动和关闭 (可选)

你可以配置系统在你的系统启动时自动启动Oracle数据库并在系统关闭时自动关闭Oracle数据库。自动化数据库启动是可选的,但是自动化关闭是推荐的,因为它保护数据库不适当的关闭。

dbshutdbstart脚本位于$ORACLE_HOME/bin目录并且可以用于自动化数据库启动和关闭。

dbstartdbshut脚本引用在oratab文件中同样的条目,因此脚本必须适用于同一个数据库集合。例如,你不能让dbstart已自动启动数据库sid1、sid2和sid3,而让dbshut仅关闭数据库sid1sid2。然而,你可以指定dbshut关闭当前dbstart根本没使用的数据库。要做到这样,在关闭文件中包括dbshut但是在系统启动文件中省略dbstart

也可见:

对于系统启动和关闭过程的描述,检查你的操作系统关于init命令的文档。 

自动化数据库启动和关闭

本过程必须对你想要配置成自动化启动和关闭的每个新数据库完成。执行下列任务建立dbstartdbshut脚本以便他们在系统启动被调用:

  1. 编辑/etc/oratab文件。

    oratab文件中的数据库入口以下列格式出现:

    ORACLE_SID:ORACLE_HOME:{Y|N}
    
    

    这里Y或N指定你是否想要dbstartdbshut脚本启动并关闭数据库。找出你想要启动的所有数据库入口。他们有第一列的sid指出。改变最后一个列为Y。

  2. /etc/rc.d/init.d目录下创建一个名为dbora(如果它还不存在)的文件。
  3. dbora文件末尾创建类似于下面的入口(如果他们还不存在)。确定给出完整的dbstart实用程序的路径。
    #!/bin/sh
    # Set ORA_HOME to be equivalent to the ORACLE_HOME 
    
    # from which you wish to execute dbstart and
    
    # dbshut
    
    # set ORA_OWNER to the user id of the owner of the 
    
    # Oracle database in ORA_HOME
    
    ORA_HOME=/u01/app/oracle/product/8.1.6
    
    ORA_OWNER=oracle
    
    if [! -f $ORA_HOME/bin/dbstart]
    
    then
    
    echo "Oracle startup: cannot start"
    
    exit
    
    fi
    
    case "$1" in
    
    'start')
    
    
    # Start the Oracle databases:
    # The following command assumes that the oracle login will not prompt the
    
    # user for any values
    
    
    su - $ORA_OWNER -c $ORA_HOME/bin/dbstart &
    
    ;;
    
    'stop')
    
    
    # Stop the Oracle databases:
    # The following command assumes that the oracle login will not prompt the
    
    # user for any values
    
    
    su - $ORA_OWNER -c $ORA_HOME/bin/dbshut &
    
    ;;
    
    esac
    

     

  4. 链接dbora,输入:
    # ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc0.d/K10dbora
    # ln -s /etc/rc.d/init.d/dbora /etc/rc.d/rc2.d/S99dbora
    

作为Oracle用户执行的配置任务

作为oracle用户执行下列任务。

更改Linux帐号的启动文件
更改oratab文件
使用任何所需的Oracle补丁
设置初始化参数

更改Linux 帐号启动文件

更改oracle帐号和Linux Oracle用户账号的启动文件。

设置环境变量

在使用Oracle8i产品前,在oracle账号的.profile.login文件中设置下列环境变量。 表 4-2 “环境变量设置”列出了推荐的设置。你这里使用的设置应该对应于“设置环境变量”中的你在安装期间使用的设置,设置环境变量的语法如下。

对Bourne或Korn shell:

variable_name=value; export variable_name

对C shell:

setenv variable_name value

注意:

你应该不定义那些与用于Oracle进程有相同名字的环境变量,例如:CKPT, PMONDBWR。 


4-2 环境变量设置
环境变量  建议设置 

LD_LIBRARY_PATH 

设置它包括$ORACLE_HOME/lib。 

ORACLE_BASE 

software_mount_point/app/oracle 

ORACLE_HOME 

$ORACLE_BASE/product/8.1.6 

ORACLE_SID 

当你被Oracle通用安装程序提示时,如果你不记得你输入的值,你可以在位于oraInventory_location/logs/installActions.log的安装程序日志文件中找到。

oraInventory_location定义在/etc/oraInst.loc中。 

PATH 

确保新的$ORACLE_HOME/bin目录包含在设定的PATH中。对于其他PATH要求见 2“前期安装”。 

CLASSPATH 

CLASSPATH 必须包括下列:

JRE_Location, $ORACLE_HOME/jlib,$ORACLE_HOME/product/jlib
注意: JRE_Location 被定义为$ORACLE_HOME/JRE。

 

TNS_ADMIN 

将它设置为Net8配置文件的地点。如果Net8配置文件不位于缺省地点之一,这个变量才需要设置。 

TWO_TASK 

设置TWO_TASK为定义在tnsnames.ora中的Net8连接字符串别名,客户软件将缺省地使用它与一个服务器连接。 

LD_LIBRARY_PATH

当使用共享库的Oracle产品时需要。设置LD_LIBRARY_PATH包括$ORACLE_HOME/lib

ORACLE_BASE

指定Oracle软件和管理文件结构的顶级目录。OFA建议的值是:

software_mount_point/app/oracle

例如:

/u01/app/oracle
ORACLE_HOME

指定一个包含给定版本的Oracle软件的目录。最佳灵活体系结构建议的值:

$ORACLE_BASE/product/release

例如:

/u01/app/oracle/product/8.1.6。
ORACLE_SID

指定Oracle系统标识符,或sid,它是Oracle服务器实例的名字。因为sid被结合进许多文件名,Oracle公司推荐把它限制为4个字符以避免在不同的操作系统上的文件名问题。

PATH

在Oracle软件安装以后,搜索路径应该包括所有下列路径:

CLASSPATH

CLASSPATH变量用于Java功能。CLASSPATH对不同的产品是不同的。对于更多的信息参考你的产品文档。除了任何事先存在的设置,CLASSPATH还必须包括下列JRE地点:

$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/product/jlib

变量product指出ORACLE_HOME任何产品目录,例如rdbmsnetwork,在这里找到一个JRE或java功能所需的文件。

TNS_ADMIN

要将Net8配置文件放在缺省地点以外的一个地点(/etc$ORACLE_HOME/network/admin),设置TNS_ADMIN环境变量为Net8 配置文件所在的目录。例如,如果tnsnames.ora/tns目录下,将TNS_ADMIN设置为/tns

Oracle产品将以下列次序寻找tnsnames.ora文件:

  1. 在当前的用户主目录的.tnsnames.ora文件 (注意在文件名字前的点)。
  2. $TNS_ADMIN/tnsnames.ora
  3. /etc
  4. $ORACLE_HOME/network/admin/

检查一个tnsnames.ora文件存在于在这些地点之一;否则,你可以是不能通过使用本地命名的Net8与一个数据库连接。

TWO_TASK

如果你有一个客户机/服务器配置,你可以设置TWO_TASK为客户软件将缺省地连接数据库的网络服务名。当 TWO_TASK被设置时,你不必指定数据库的网络服务名字用Oracle客户软件与它连接。关于网络服务名详见Net8 Adminstator指南Oracle8i for Linux Intel管理员参考

初始化oraenv ( coraenv )脚本

你可选择使用oraenvcoraenv脚本为oracle用户设置一个公用环境。对于oraenv脚本配置一个或多个实例,或如果你运行C shell,用coraenv脚本,安装下面的指令:

单个实例机器

在一台单个实例机器上, oracle账号的.bashrc、.profile.login文件中给环境变量ORACLE_SID,按照这些命令在登录时初始化oraenv(coraenv)文件。

对Bourne或Korn shell:

ORAENV_ASK=NO
export ORAENV_ASK
./usr/local/bin/oraenv

对C shell:

set ORAENV_ASK = NO

source /usr/local/bin/coraenv

unset ORAENV_ASK
多个实例机器

在一台多个实例的机器上,在oracle帐号的启动文件末尾包括实例名列表和必要的命令初始化oraenv(coraenv)。

对Bourne 或 Korn shell:

#! /bin/sh
echo“The SIDs on this machine are:”
cat /etc/oratab | awk -F: '{print $1}' | grep -v "#"
ORAENV_ASK="YES"
export ORAENV_ASK
./usr/local/bin/oraenv

对C shell:

#! /bin/csh
echo“The SIDs on this machine are: ”
cat /etc/oratab | awk -F: '{print $1}' | grep -v "#"
set ORAENV_ASK= "YES"
source /usr/local/bin/coraenv
更改其他Oracle用户启动文件

要为所有Oracle账号创建相同的环境,更改每个用户的启动文件,在启动文件的末尾包括下列行:

更改oratab 文件

如果你已经手工创建了一个数据库而不是使用Oracle数据库配置助手,你必须保证系统配置反映在/etc/oratab文件中。

以下列格式为系统上的每个服务器实例增加一个入口:

ORACLE_SID:ORACLE_HOME:{Y|N}

这里Y或N指出你是否想要激活dbstartdbshut脚本。Oracle数据库配置助手自动地为它创建的每个数据库增加一个入口。

使用任何所需的Oracle 补丁

Oracle8i版本包括了必须用于Oracle8i或其他产品的补丁。补丁可在Oracle8i版本2( 8.1.6 )CDROM的cd_rom_mount_point/patch目录下找到。对于安装指令看一下每个补丁包含的README文件。

设置初始化参数

与发布一起分发的缺省initsid.ora文件位于$ORACLE_BASE/admin/sid/pfile目录。一个init.ora模版文件也在$ORACLE_HOME/dbs中。文件包含为小型、中等和大规模数据库的设置,中等和大规模数据库设置有注释。规模大小的设置是彼此相对的,而不代表数据库实际的大小。

修改initsid.ora参数

当你使用Oracle数据库配置助手创建一个数据库时,你的initsid.ora参数自动被设置。你可以用一个Linux文本编辑器手工修改在initsid.ora重的初始化参数。通过关闭并重启数据库激活修改的initsid.ora文件。

对在参数文件中的ORACLE_HOME,不要使用符号字符例如问号(?)表示。

要在数据库启动时自动地联机退回(rollback)片断,你必须去掉initsid.ora文件中的back_segments

例如,将:

#rollback_segments =( r0 , r1 , r2 , r3 )

改为:

rollback_segments =( r0 , r1 , r2 , r3 )

也可看:

对于initsid.ora参数的信息,见 Oracle8i for Linux Intel管理员参考

Oracle产品的后期安装

对于你的安装有必要执行产品特定的步骤。不是所有产品都需要后期安装。

你设置你的Oracle产品前,阅读一下联机文档,见“访问安装的文档”。在完成本手册的配置任务前不必阅读产品文档,但是更复杂的调节需要产品文档的信息。

下列产品需要后期安装步骤:

Net8

配置一个完整的Oracle网络超出本手册范围,详细内容见Net8管理员指南

Net8基本配置在安装Net8期间有Oracle通用安装程序调用Net8配置助手进行的。对于Net8配置助手如何配置你的安装的解释,见“理解Net8配置”。对于作为一个独立工具运行的Net8配置助手的信息,建“ Net8配置助手”

用下列步骤验证并完成你的初始配置:

  1. 作为root登录并且通过在/etc/services文件加入下列入口为Net8监听器预留一个端口:
    listener_name 1521/tcp             #Net8 listener
    
    

    注意:

    1521是缺省端口。如果在你配置Net8监听器时,你选择了一个不同的端口,在/etc/services文件中指定该端口。 


  2. 使用命令检查监听器的状态:
    $ lsnrctl stauta [listener_name]
    
    

    如果监听器有不同于缺省名listener的一个名字,需要listener_name

    如果监听器不在运行,用下列命令启动它:

    $ lsnrctl start listener_name
    
    
  3. 在一个远端系统上安装和配置Oracle客户软件,如果必要,马上启动SQL*plus测试到服务器的连接。
    $ sqlplus username/password@net_service_name
    
    

如果你能成功地用SQL*Plus与服务器连接,你已在TCP/IP上建立了网络连接。对于更高级的网络配置,参考Net8管理员指南

Oracle选件

Oracle InterMedia

关于interMedia的文本,在LD_LIBRARY_PATH环境变量中包含$ORACLE_HOME/ctx/lib

如果你打算在你的起始安装后安装Oracle interMedia文本,保证你为数据字典至少有10MB的磁盘空间。

你的数据库必须包括专用于interMedia文本数据的表空间。验证表空间存在并作为Oracle interMedia文本的缺省和临时表空间。Oracle interMedia文本对它的缺省和临时表空间中使用DRSYS表空间。如果为Oracle interMedia文本的表空间不存在或你不想使用DRSYS表空间,在继续前创建额外的表空间。

也可见:

对于创建表空间的信息,见Oracle8i SQL参考。 

Oracle选件配置数据库

如果你在起始安装后安装额外的Oracle选件,使用Oracle数据库配置助手配置为你安装的选件配置你的数据库。

  1. 执行dbassist启动Oracle数据库配置助手,它位于:
    $ORACLE_HOME/bin/dbassist
    
    
  2. 选择 [Modify Database]。
  3. 从Oracle数据库配置助手检测到的列表中选择适当的数据库SID。你想要修改的数据库必须已经正在运行。
  4. 从列表中选择你想要启用的选件并按[Finish]按钮。

为所有选件和软件包,执行权限将授予PUBLIC。

恢复管理器

恢复管理器是一个自动恢复实用程序,作为Oracle8i的一部分安装。它在一个单独Oracle8i数据库的一个恢复目录中存储信息。该第2个Oracle8i数据库应该在一台分开的机器上安装以提供最大的差错保护。

要创建一个恢复目录,执行下列步骤:

  1. 从任何其他Oracle8i系统上将Oracle8i安装在一台分开的机器上并且为恢复目录创建一个数据库。

    如果你不编写一个特定的脚本创造数据库,用Oracle数据库配置助手创建一个典型的、预配置的数据库。缺省数据库对于恢复目录是足够的。

  2. 在恢复目录数据库中创建一个用户为RECOVERY_CATALOG_OWNER。
  3. 以RECOVERY_CATALOG_OWNER在Oracle恢复管理器的命令提示下运行create catalog

多线程服务器

配置成多线程服务器(MTS)的Oracle服务器对初始化参数SHARED_POOL_SIZE或使用LARGE_POOL_SIZE的定制配置要求较高的设置。如果你用Oracle通用安装程序安装了服务器,SHARED_POOL_SIZE的值自动由Oracle数据库配置助手为你设置。然而,如果你手工创建了一个数据库,你应该在initsid.ora文件中提高SHARED_POOL_SIZE的值。典型地, 你应该为每个预期的并发用户增加1KB。

Oracle预编译器


注意:

你不能独立于Oracle8i使用Oracle预编译器变换嵌入的PL/SQL。 


Pro*C/C++

$ORACLE_HOME/precomp/admin中的配置文件pcscfg.cfg必须在使用Proc*C/C++前为你的环境定制。这个文件安装室没有内容并且可以根据你特定要求用任何文本编辑器配置。

也可见:

对于为你的环境配置pcscfg.cfg的进一步信息见Proc*C/C++ Precompiler 程序员指南

Oracle支持的协议

所有支持的协议

在安装任何协议以后执行下列步骤:


注意:

如果TNS_ADMIN环境变量没设置或如果listener.ora不在缺省地点之一(/etc$ORACLE_HOME/network/admin),该过程失败。


  1. 验证你已为网络创建了并且安装了必要的配置文件。
  2. 要在机器重新启动时自动启动监听器,作为root用户登录并且在系统开始文件加入类似下列的行:
    su - oracle -c "lsnrctl start"
    
    

    在Linux Intel上,启动文件是/etc/rc.d/init.d/dbora

  3. 如果你有一种客户机/服务器配置,你必须在客户端上设置TWO_TASK环境变量指向服务器。在客户机器上设置TWO_TASK环境变量为服务器的服务名(可从tnsnames.ora文件中得到)。对于设置环境变量的信息,见“设置环境变量”
  4. 在服务器上启动监听器:
    $ lsnrctl start
    
    
  5. 检查监听器进程:
    $ lsnrctl stauts
    
    
  6. 作为oracle用户,启动SQL*Plus,测试连接:
    $ sqlplus username/password@service_name
    

设置安全套接字层

一旦安全套接字安装,你必须运行Net8配置助手正确为你的系统正确配置它。

Oracle 配置助手

本节介绍下列Oracle配置助手:

这些配置助手通常是安装会话期间运行,但是也可以以一个单独模式运行。象Oracle通用安装程序一样,这些助手的每一个也可以使应答文件非交互地运行。

Net8 配置助手

当Net8服务器或Net8客户被安装时,Net8配置助手自动由Oracle通用安装程序运行。见“理解Net8配置”

如果你用Oracle数据库配置助手在安装期间或安装以后创建一个数据库,它将自动用对新数据库必要的所有配置信息更新Net8配置。Oracle数据库配置助手要么在一个支持目录中注册数据库使得客户可以使用该目录连接数据库,要么它将在本地命名文件(tnsnames.ora)中创建一个入口,它马上能散发到客户机器上以连接数据库。

如果你选择单独进行Oracle8i客户安装,Net8配置助手将自动创建一个信息文件,它与任何你在安装期间的选择一致。安装程序将自动运行Net8配置助手来设置在你的客户安装的$ORACLE_HOME/network/admin目录中找到的本地命名文件中的一个网络服务名。

在安装完成以后,更详细的配置可用下列命令用Net8配置助手完成:

$ netasst

对于Net8的使用和配置的信息,见Net8管理员指南

Oracle 数据迁移助手

如果你安装了Oracle8i以使用先前软件版本的现有数据库,并且你没在安装期间选择升级数据库,在使用Oracle8 i装载数据库之前,省级或迁移数据库。

你可以用下列命令启动Oracle数据迁移助手:

$ odma

迁移一个数据库的过程超过本手册范围。详细指令和信息见Oracle8i迁移

Oracle 数据库配置助手

Oracle数据库配置助手可以创建一个缺省或定制的数据库,或它可以被用来配置一个存在的使用Oracle选件的数据库。助手能创建数据库或输出一系列shell脚本和SQL脚本,你能用来检查、修改和在以后运行。见“表明你的数据库环境”

你可能用下列命令启动Oracle数据库配置助手:

$ dbassist

为调用Oracle数据库配置助手的帮助,使用dbassist-help-h命令行参数。

访问安装的文档

你可以安装HTML和PDF格式的文档。Linux特定的文档文件从Oracle8i CDROM上安装。一般的文档文件从一般联机文档CDROM上安装。文档文件的地点根据下列规则决定:

要访问文档,把你的浏览器指向index.htmproducts.htm的任何一个(后者不要求一个支持框架的浏览器)。如果你比较喜欢纸质文档,你可以打印PDF文件。

你也能直接从CDROM访问文档。

Oracle 信息导航器

Oracle信息导航器是基于Java的搜索和浏览实用程序,与Oracle联机文档一起提供。如果你正在使用一个支持Java的浏览器,当你打开在CDROM顶层index.htm文件时,信息导航器自动运行。信息导航器用于Oracle文档,不管你是从CDROM阅读还是阅读安装的文件。

卸载Oracle软件

如果你是从你的系统上完全卸载Oracle软件,那么你必须用Net8配置助手删除Net8配置并且用Oracle数据库助手删除任何安装的数据库。两个助手必须在使用安装程序完全卸载Oracle软件之前运行。Oracle软件的部分卸载不必要求你也运行Oracle数据库配置助手或Net8配置助手。

要用Oracle 数据库配置助手卸载一个Oracle数据库:

  1. 启动Oracle数据库配置助手
    $ dbassist
    
    
  2. 从起始屏幕,选择“Delete a Database”。
  3. 按Next。
  4. 选择想要删除的数据库实例。
  5. 按Finish。确认你想要删除数据库出现在窗口中。

因为你一次只能删除一个数据库,你必须运行Oracle数据库配置助手并且对你想要删除的每个数据库重复这些步骤。

在你运行了Oracle数据库配置助手后,通过在命令行加/deinst参数调用它以卸载模式运行Net8配置助手:

$ netca  /deinst

要使用Oracle通用安装程序卸载Oracle软件:

  1. 启动安装程序,见“使用Oracle通用安装程序”
  2. 在“Welcome”的对话框上按[De-install Products]按钮或在任何安装程序屏幕上的[Installed Products]按钮。出现“Inventory”对话框,列出安装了的产品。
  3. 在“Inventory”对话框中,选择要卸载的任何产品,然后按[Remove]按钮。