📄 oracle-howto.txt
字号:
TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - ProductionSystem parameter file is /home/oracle/7.3.3.0.0/network/admin/listener.oraLog messages written to /home/oracle/7.3.3.0.0/network/log/listener.logListening on: (ADDRESS=(PROTOCOL=tcp)(DEV=6)(HOST=192.168.1.1)(PORT=1521))Listening on: (ADDRESS=(PROTOCOL=ipc)(DEV=10)(KEY=700))Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))STATUS of the LISTENER------------------------Alias LISTENERVersion TNSLSNR for SCO System V/386: Version 2.3.3.0.0 - ProductionStart Date 23-FEB-98 20:38:50Uptime 0 days 0 hr. 0 min. 0 secTrace Level offSecurity OFFSNMP ONListener Parameter File /home/oracle/7.3.3.0.0/network/admin/listener.oraListener Log File /home/oracle/7.3.3.0.0/network/log/listener.logServices Summary... orcl has 1 service handler(s)The command completed successfullyLSNRCTL> exit ______________________________________________________________ 要停止监听程式: ______________________________________________________________ $ lsnrctlLSNRCTL for SCO System V/386: Version 2.3.3.0.0 - Production on 23-FEB-98 20:43:20Copyright (c) Oracle Corporation 1994. All rights reserved.Welcome to LSNRCTL, type "help" for information.LSNRCTL> stopConnecting to (ADDRESS=(PROTOCOL=tcp)(HOST=magic.com)(PORT=1521)(COMMUNITY=UK_SUP_TCPIP))The command completed successfullyLSNRCTL> exit ______________________________________________________________ 如果你的 DNS 并不传回指定的主机的 IP 地址,启动及结□监听程式会花一点时 间(依据 DNS 2-3 的逾时变数 (timeout variable),大致在 2-3 分钟之间)。 如果真的发生这情况,请耐心等待,不必担心。 5. 用户的设定5.1 视窗用户 在 PC 上使用较新版本的 Oracle Client Software 设定 SQL*Net 十分简单。最 佳(也最方便)得到一个运作完全正常的用户是使用 Oracle 提供的 SQL*Net Easy Configuration 工具。 这工具有一个精灵 (wizard) 的介面,可带领你设定 tnsnames.ora 及 sqlnet.ora 两个档案。 选择 "Add Database Alias" 及在被问及时打入代号名称。这代号是你用以指定 资料库的名称,这应该和资料库名称相同(这里是 orcl)。 在通讯协定 (protocol) 中选择 TCP/IP,在被问及时回答主机名称 (machine hosting the database) 及资料库名称 (instance name)。 就是这样了。 不过,即使你没有 SQL*Net Easy Configuration 工具也不用担心。你只需在 $ORACLE_HOME/network/admin 目录中建立和在伺服器中一模一样的 tnsnames.ora 和 sqlnet.ora 档。这样会使你得到相同的别名(这是一个好主意 )。 5.2 Unix 用户 UNIX 用户和视窗用户分别不大。如果你有 Oracle 的 Network Manager,做法和 以上差不多。没有的话,再说一次,只需使用和伺服器 $ORACLE_HOME/network/admin 目录中相同的设定档。 6. 自动启动及停止6.1 dbstart 及 dbstop Oracle 资料库的自动启动及停止可籍 Oracle 提供的 dbstart 及 dbshut 档达 成 (在 7.3.3.0.0 中)。这些档案又耍依靠 /etc/oratab 存在才能使用(虽然 更改 dbshut 和 dbstart 档可使解除这限制。) /etc/oratab 档格式如下: ______________________________________________________________ SID:ORACLE_HOME:AUTO ______________________________________________________________ 例如 ______________________________________________________________ orcl:/home/oracle/7.3.3.0.0:Yleaveup:/home/oracle/7.3.2.1.0:N ______________________________________________________________ 6.2 init.d 及 rc.d 要在开机关机时自动启动和结□资料库的话,你需要修改 Linux 的启动命令稿。 这并不困难,不过,我需要指出这些改动因应不同的 Linux 发行版本 (slackware, debian, redhat 等)而有所不同。我这些例子适用於 Redhat 5.0。要为你所用的 Linux 作出修改,请先参考你手头上的 Linux 文件。(虽然 这实际上应该适用於所有 Sys V UNIX。) 首先,我们要建立会执行 /etc/rc.d/init.d 目录中 dbshut 及 dbstart 的命令 稿。把以下档案命名为 /etc/rc.d/init.d/oracle: ______________________________________________________________ #!/bin/sh## /etc/rc.d/init.d/oracle# 解说∶启动及停止 Oracle 资料库和监听程式# 检查如何执行命令稿case "$1" in start) echo -n "Starting Oracle Databases: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle echo "----------------------------------------------------" >> /var/log/oracle su - oracle -c dbstart >> /var/log/oracle echo "Done." echo -n "Starting Oracle Listeners: " 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 -n "Shutting Down Oracle Listeners: " echo "----------------------------------------------------" >> /var/log/oracle date +"! %T %a %D : Shutting Down Oracle Databases 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 -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 1esac ______________________________________________________________ 不要吝啬於检查这个档案到底有没有真的正确地启动和停止系统中的资料库。请 检查记录档(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) parametersifile = 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -