Linux 版 (精华区)

发信人: netiscpu (网中鸟~~毕设论文中), 信区: Linux
标  题: [CLDP]Oracle Database HOWTO
发信站: 紫 丁 香 (Tue Jun 15 19:22:07 1999), 转信

【 以下文字转载自 cnlinux 讨论区 】
【 原文由 kevin 所发表 】
发信人: xg (xg), 信区: Linux
发信站: BBS 水木清华站 (Tue Sep 22 17:23:58 1998)


                             Oracle Database HOWTO
                                       
作者:Paul Haigh, paul@nailed.demon.co.uk
译者:曾达康, a9504480@graduate.hku.hk

   1.2 版, 一九九八年八月四日(翻译日期︰一九九八年八月三十一日)
     _________________________________________________________________
   
   在 Linux 系统中安装及设定 Oracle 资料库伺服器之指南。
     _________________________________________________________________
   
1. 导言

     * 1.1 版本历史
     * 1.2 Copyright
     * 1.3 Disclaimer
     * 1.4 本 HOWTO 的目的
     * 1.5 系统要求
     * 1.6 Oracle Corporation 的新消息
       
2. 安装 Oracle 软件

     * 2.1 伺服器的准备工夫
     * 2.2 从光碟安装
     * 2.3 安装後的工作
       
3. 建立一个资料库

     * 3.1 建立初始档 (Initialisation File)
     * 3.2 建立资料库安装命令稿
     * 3.3 执行资料库的安装安令稿
     * 3.4 启动资料库
     * 3.5 停止资料库
     * 3.6 建立内定用户 (Default User)
       
4. 在伺服器上设定 SQL*Net

     * 4.1 tnsnames.ora
     * 4.2 listener.ora
     * 4.3 sqlnet.ora
     * 4.4 开始及结朿监听程式
       
5. 用户的设定

     * 5.1 视窗用户
     * 5.2 Unix 用户
       
6. 自动启动及停止

     * 6.1 dbstart 及 dbstop
     * 6.2 init.d 及 rc.d
       
7. 其他事宜

     * 7.1 Intelligent Agent
       
8. 疑难排解

     * 8.1 我不能在 Oracle 7.2.x 中建立资料库。
     * 8.2 7.3.4.x 的 svrmgrl 产生 segmentation fault。
       
9. 荣誉
     _________________________________________________________________
   
1. 导言

1.1 版本历史

     * 0.1 版 - 一九九八年二月廿一日 - Paul Haigh - 最先的版本。
     * 0.2 版 - 一九九八年三月一日 - Paul Haigh - 加上了校对者的评论。
     * 1.0 版 - 一九九八年三月十日 - Paul Haigh - 在 LDP 出版。
     * 1.1 版 - 一九九八年六月二十日 - Paul Haigh - 重新整理及加上疑难排解
       。
     * 1.2 版 - 一九九八年八月四日 - Paul Haigh - 加上 Oracle Corporation
       的新闻及删去未来改进一节。
       
1.2 Copyright

   The Oracle Database HOWTO copyright (c) 1998, Paul Haigh.
   
   Like all Linux HOWTO documents, this may be reproduced and distributed
   in whole or in part, in any medium, physical or electronic, so long as
   this copyright notice is retained on all copies.
   
   Commercial redistribution is allowed and encouraged; however the
   author would like to be notified of such distributions. You may
   translate this HOWTO into any language whatsoever provided that you
   leave this copyright statement and disclaimer intact, and that you
   append a notice stating who translated the document.
   
1.3 Disclaimer

   While I have tried to include the most correct and up to date
   information available to me, I cannot guarantee that usage of
   information in this document does not result in loss of data or
   equipment. I provide NO WARRANTY about the information in the HOWTO
   and I cannot be made liable for any consequences resulting from using
   the information in this HOWTO.
   
1.4 本 HOWTO 的目的

   在这 HOWTO 中我会尝试说明如何安装及管理一个在 Linux 上执行的 Oracle 资
   料库,我会特别说明 Oracle 伺服器的安装,SQL*Net 的设定及用户 (client)
   的设定。
   
   这文件并不是一份有关使用及管理一个 Oracle 资料库的入指引。如果你想要这
   类资料,O'Reilly 及其他出版商都有推出这方面的佳作。
   
   我也不会说明在 Unix 上 Oracle 程式的开发过程。如果你对这有绝对需要,我
   建议你从 SCO 处购买 SCO development system (包括 OpenServer 5.x)。据我
   所知,这可以十分合理的十九块美元从 www.sco.com 得到。
   
1.5 系统要求

   要跟从这篇 HOWTO 的内容,你需要以下东西。
     * Oracle Server CD 中的 SCO Openserver (7.3.3.0.0 版)
       
                这必须是合法的版本。记著 Oracle 是一间牟利的公司,她会对其
                产品收费。如果你想要免费而又支援 SQL 的资料库,请用
                PostgresSQL 或其他类以程式。
                
                你也可从 Oracle 网页中下载一个 tar 档案,从中得到一个六十
                天的试用许可证 (license) 及安装 Oracle 。我并没有亲自试过
                它,它是未经确认的。
                
     * 一台 Linux 伺服器
       
                如果没有的话,你就不会阅读这文件了,是吗?
                
     * 2.0.30+ 的核心
       
                我不保证这些指示对任何其他核心来说准确。(我对 2.0.30 也不
                作出保证……)
                
     * iBCS
       
                安装及使用你所用的平台的最新版本非常重要。(我正在使用
                Redhat Linux 的 iBCS-2.0-10.i386.rpm。)
                
     * 大量磁碟空间
       
                600 Mb 以上是个合理的数字。使用更少的空间也可以,但你需要
                作出一些牺牲,我从不这样开始。不过,我会尝试指出在哪里可腾
                出空间。
                
     * 32Mb 以上记忆体
       
                我知道这听起来很多,特别是以 Linux 来说, 但请记著 Oracle
                是个复杂的软件。在 SCO,你不会觉得有问题!
                
                我不是说 Oracle 不能在较少记忆体的情形下工作,不过这样会少
                过 Oracle 的建议,我也不赞成这样做。
                
     * Oracle 的许可证 (License)
       
                我知道我已提出过,但我想大家知道这是重要的。没有许可证而使
                用 Oracle 的软件是违法的。
                
1.6 Oracle Corporation 的新消息

   Oracle 屈服於来自 Linux 社群的压力。Oracle Corporation 已经决定向在
   Linux 平台的 Oracle 8 提供官方支援。据 Oracle 网址说,这将会在一九九八
   年十二月推出。
   
   更好的消息是 Oracle 会把 Oracle 应用软件移植到 Linux 平台。根据 Oracle
   的网页,这应该会在一九九九年上半年推出。
   
   参考资料:
     * [1]http://www.oracle.com/html/linux.html
     * [2]http://www.news.com/News/Item/0,4,24436,00.html
     * [3]http://www.zdnet.com/pcweek/news/0720/20morac.html
       
2Area       4313316 bytes
Fixed Size                       41876 bytes
Variable Size                  4140368 bytes
Database Buffers                122880 bytes
Redo Buffers                      8192 bytes
Database mounted.
Database opened.
SVRMGR> exit
Server Manager complete.
       ______________________________________________________________
     
3.5 停止资料库

   先旨声明,在未关闭一个 Oracle 资料库的情况下重新启动 Linux 很有可能会使
   资料库损毁。
   
   因此,在我们执行 Linux 的 shutdown 指令前最好先关闭资料库:
       ______________________________________________________________
     
$ svrmgrl

Oracle Server Manager Release 2.3.3.0.0 - Production

Copyright (c) Oracle Corporation 1994, 1995. All rights reserved.

Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SVRMGR> connect internal
Connected.
SVRMGR> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR> exit
Server Manager complete.
       ______________________________________________________________
     
3.6 建立内定用户 (Default User)

   在建立资料库时,会自动产生两个特别的用户:
       ______________________________________________________________
     
Username                Password

SYSTEM                  MANAGER
SYS                     change_on_install
       ______________________________________________________________
     
   这些用户通常是用来保存标准的资料字典 (data dictionary) 资料在资料库中。
   尽快把密码修改是一个好主意。
   
   可以这样做:
       ______________________________________________________________
     
sqlplus system/manager

SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.


Connected to:
Oracle7 Server Release 7.3.3.0.0 - Production Release

SQL> alter user system identified by <newpassword>;

User altered.

SQL> alter user sys identified by <newpassword>;

User altered.

SQL> exit;
Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production
       ______________________________________________________________
     
   用户 system/manager 就如 UNIX 中的 root,因此我们要建立另一个权力较少的
   用户以防损失。(记著要先开启资料库才建立用户。)
   
   连接到 SQL*Plus 及建立用户:
       ______________________________________________________________
     
$ sqlplus system/manager

SQL*Plus: Release 3.3.3.0.0 - Production on Sat Feb 21 12:43:33 1998

Copyright (c) Oracle Corporation 1979, 1996.  All rights reserved.


Connected to:
Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production

SQL> create user <user> identified by <psw>
  2  default tablespace users
  3  temporary tablespace temp;

User created.

SQL> grant connect, resource to <user>

Grant succeeded.

SQL> exit
Disconnected from Oracle7 Server Release 7.3.3.0.0 - Production Release
PL/SQL Release 2.3.3.0.0 - Production
       ______________________________________________________________
     
   系统中已有一个新用户,你可以用他来试用新系统。要签入 Oracle 资料库:
       ______________________________________________________________
     
$ sqlplus <user>/<password>
       ______________________________________________________________
     
   如果这在没有错误讯息的情况下完成,你已有一个运作中的 Oracle 资料库。如
   果你只会从这部电脑连接到这资料库,而不会从其他地方,你可休息了!
   
   不过,如果你像大部分人般想设定网络软件使你可以从其他电脑连接,请继续读
   下去。
   
4. 在伺服器上设定 SQL*Net

   所有这些档案都会用於设定 Oracle 的网络软件(SQL*Net,和 Oracle8 的
   Net8 差不多)。这些档案应该都建立在伺服器中的
   $ORACLE_HOME/network/admin 目录。
   
4.1 tnsnames.ora

   TNSNAMES.ORA 档设定所有这电脑提供的服务。现在我们描述所有挂上了伺服器的
   资料库。对伺服器上所有资料库你要加上类似以下的一段:
       ______________________________________________________________
     
orcl.world =
  (DESCRIPTION =
    (ADDRESS_LIST =
        (ADDRESS =
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = <INSERT HOST NAME OF SERVER HERE> )
          (Port = 1521)
        )
        (ADDRESS =
          (COMMUNITY = tcp.world)
          (PROTOCOL = TCP)
          (Host = <INSERT HOST NAME OF SERVER HERE> )
          (Port = 1526)
        )
    )
   (CONNECT_DATA = (SID = ORCL)
    )
  )
       ______________________________________________________________
     
4.2 listener.ora

   listener.ora 档描述所有其他电脑可得到的服务及伺服器的监听程式
   (listener) 所需的所有设定。
   
   它有一段包括监听程式名称、监听程式地址、监听程式提供服务的资料库及参数
   设定 (listener name, listener address, databases served by the
   listener and configuration parameters)。
   
   这里有一个例子:
       ______________________________________________________________
     
# 监听程式名称及所收听的地址
LISTENER =
        ( ADDRESS_LIST =
                (ADDRESS =
                        (PROTOCOL=tcp)
                        (HOST=<INSERT HOST>)
                        (PORT=1521)
                        (COMMUNITY=UK_SUP_TCPIP)
                )
                (ADDRESS =
                        (PROTOCOL=ipc)
                        (KEY=700)
                        (COMMUNITY=UK_SUP_TCPIP)
                )
        )

# 列出监听程式提供的服务
SID_LIST_LISTENER=
        (SID_LIST=
                (SID_DESC=
                        (SID_NAME=orcl)
                        (ORACLE_HOME=/home/oracle/7.3.3.0.0)
                )
        )

# 开始参数设定
TRACE_LEVEL_LISTENER=OFF
TRACE_FILE_LISTENER = "listener"
LOG_FILE_LISTENER = le
        echo -n "Shutting Down Oracle Databases: "
        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)
        echo -n "Restarting Oracle Databases: "
        echo "----------------------------------------------------" >> /var/log
/oracle
        date +"! %T %a %D : Restarting Oracle Databases as part of system up."
>> /var/log/oracle
        echo "----------------------------------------------------" >> /var/log
/oracle
        su - oracle -c dbstop >> /var/log/oracle
        su - oracle -c dbstart >> /var/log/oracle
        echo "Done."
        echo -n "Restarting Oracle Listeners: "
        su - oracle -c "lsnrctl stop" >> /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
        ;;
  *)
        echo "Usage: oracle {start|stop|restart}"
        exit 1
esac
       ______________________________________________________________
     
   不要吝啬於检查这个档案到底有没有真的正确地启动和停止系统中的资料库。请
   检查记录档(log file),看看有没有错误讯息。
   
   弄妥这命令稿後,我们要在正确的执行等级目录 (runlevel directories)
   /etc/rc.d/rcX.d 中建立及删除符号连结 (symbolic links)。
   
   以下指令确保在执行等级 2, 3 及 4 下会叫出资料库︰
       ______________________________________________________________
     
$ ln -s ../init.d/oracle /etc/rc.d/rc2.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc3.d/S99oracle
$ ln -s ../init.d/oracle /etc/rc.d/rc4.d/S99oracle
       ______________________________________________________________
     
   要在重新启动时停止资料库,我们需要以下连结︰
       ______________________________________________________________
     
$ ln -s ../init.d/oracle /etc/rc.d/rc0.d/K01oracle          # 停止
$ ln -s ../init.d/oracle /etc/rc.d/rc6.d/K01oracle          # 重新启动
       ______________________________________________________________
     
7. 其他事宜

7.1 Intelligent Agent

   如果你需要 Oracle Intelligent Agent,我发现你不需修改任何设定便能执行它
   。要启动 IA 的话︰
       ______________________________________________________________
     
$ lsnrctl dbsnmp_start
       ______________________________________________________________
     
   要停止 IA︰
       ______________________________________________________________
     
$ lsnrctl dbsnmp_stop
       ______________________________________________________________
     
   不会出现任何讯息说明启动或停止 intelligent agent 是否成功。不过,在用户
   端它有对 Enterprise Manager 作出回应,所以我假设它运作正常。
   
8. 疑难排解

   这里有一些关疑难排解的提示。
   
8.1 我不能在 Oracle 7.2.x 中建立资料库。

   Oracle 7.2.x 产品错误地假设你想设定平行伺服器 (parallel server)。内置的
   init.ora 档中有以下一句︰
       ______________________________________________________________
     
# define parallel server (multi-instance) parameters
ifile = ora_system:initps.ora
       ______________________________________________________________
     
   要解决这问题只需把它变为注解︰
       ______________________________________________________________
     
# define parallel server (multi-instance) parameters
#ifile = ora_system:initps.ora
       ______________________________________________________________
     
8.2 7.3.4.x 的 svrmgrl 产生 segmentation fault。

   有不少人报告过这问题给我。Gerald Weber gerald_weber@master.co.at 解决了
   它︰
       ______________________________________________________________
     
Hi Paul,

首先非常感谢你的帮助,不过,你所想到的问题全都和我所遇到的无关。
问题出在於 iBCS 模拟器。
似乎 Oracle 执行了一个目前版本的 iBCS 并不支援的系统设定呼叫 (sysconf-calls)。
请看以下的 trace︰

<7>[22]615 sysconf(34)
<7>iBCS2 unsupported sysconf call 34
<7>[22]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>
<7>[24]615 sysconf(34)
<7>iBCS2 unsupported sysconf call 34
<7>[24]615 sysconf error return linux=-22 -> ibcs=22 <Invalid argument>

解决方法︰修正 iBCS 源程式码。使用以下的修正档︰


--- sysconf.c   Sun Apr 19 19:19:15 1998
+++ sysconf.c.ori       Sun Apr 19 19:28:45 1998
@@ -60,7 +60,6 @@
 #define _SC_JOB_CONTROL        5
 #define _SC_SAVED_IDS  6
 #define _SC_VERSION    7
-#define _SC_HACK_FOR_ORACLE 34

 #define _SC_PAGESIZE   11

@@ -97,11 +96,6 @@
                case _SC_SAVED_IDS: {
                        return (1);
                }
-
-               case _SC_HACK_FOR_ORACLE: {
-                 return (1);
-               }
-

                case _SC_PAGESIZE: {
                  return PAGE_SIZE;
       ______________________________________________________________
     
9. 荣誉

   这文件根据 Bob Withers, bwit@pobox.com 的一篇文件写成。其他资料是来自
   Georg Rehreld, rehfeld@wmd.de 和 David Mansfield, david@claremont.com
   所写的文件。
   
   其他的校对工作由 Bob Withers, Mark Watling,
   mwatling@mjw-ltd.demon.co.uk, Peter Sodhi, petersodhi@unn.unisys.com
   and Greg Hankins, greg.hankins@cc.gatech.edu 完成。
   
   我要多谢所有参与这篇文件的人的支持及所作出的研究。特别要多谢 Bob
   Withers 和 Mark Watling 的附加意见及作出的帮忙。

References

   1. http://www.oracle.com/html/linux.html
   2. http://www.news.com/News/Item/0,4,24436,00.html
   3. http://www.zdnet.com/pcweek/news/0720/20morac.html
--
子在川上曰:逝者如斯夫!!  ICQ UID:6921087 

--
☆ 来源:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: bbsroxette.bbs@bbs.n]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: dns.mtlab.hit.ed]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.195毫秒