准备工作--安装Oracle服务器
我认为Microsoft Windows是个不错的操作系统,它在市场方面获得了空前的成功,并造就了盖茨、巴尔默等百亿富翁。它简单易用,得到了广泛地普及,几乎每个计算机爱好者都会操作Windows,几乎每个程序员都会Windows编程。目前为了占领市场,排挤Linux,Windows2000在PC的预装费用从以前Windows9x的65$,降到40$. 不过,SUN公司的Solaris8(支持IA-64)也宣布近乎免费!
总之,自由软件时代的脚步声似乎可以听到了! 届时计算机行业的工程师主要靠技术靠服务挣钱。我这篇文章就是总结基于"免费/自由"的 Oracle on Linux的一些简单经验。如果你喜欢它,就是承认了我劳动,要是您有空给我提个补充建议,那我就更高兴了。
声明: 本文当可以转载,但应先求作者同意。
版本号:Oracle8i HowTo V.66
发布时间:2000.2.9
作者:江苏太仓丁聚岗
--------------------------------------------------------------------------------
现在假设你要在Linux上安装Oracle服务器,请先过以下5关:
系统要求
规划硬盘
创建用户
创建目录
设置参数
1.系统要求
前提条件是能够安装运行Linux,然后应满足以下硬件要求:
内存 Requirements
Memory 最小要求128 MB RAM.更多(256MB+)内存可以提高性能,
更多的选件(JServer..),供多的用户需要供多的内存!!
SwapSpace 建议2倍内存
CD-ROM Oracle采用ISO 9660格式CD-ROM,下载安装可以省略。
硬盘要求- Oracle8i EE Oracle8i Client
最小 660 MB N/A
典型 811 MB 306 MB
操作系统 Linux kernel 2.2 +
操作系统联接库- GLIBC package v2.1
2.规划硬盘
对于10以下并发用户的系统,可以用一个硬盘,建立oracle分区(或目录),只要保证剩余磁盘空间1500MB+,一般就可以安装运行Oracle8(不用interMedia,JServer等较大较难选件)。
但是,如果选用Oracle8i,恐怕是为了支持更大规模的应用。与Oracle8i匹配的目前最佳的Intel硬件组合应该是:
2xCPU PIII(L440GX+主板),512MB ECC,3块SCSI硬盘(组装参考价:4万元)
3块SCSI硬盘的规划应该是:
#1 操作系统 访问少,寿命长
#2 Oracle软件
系统数据 system,tools,rbs,
temp,user等表空间
读多写少,变化不大
#3 用户数据 读写频繁,经常备份
关于容错:
三个日志文件、控制文件要分别分布在三个硬盘上
三块硬盘都有备有,或有一台备份服务器,定期更新数据
通过FTP,Samba等在网络上备份关键的数据文件。
通常的数据库应用,都是这么一种结构:
所有的数据表归dbo所有,以此用户开发程序
创建各类读写角色,授权读写部分表
创建表的同义词,通常是public synonym
创建一批数据用户,授与某种读写角色
因此,一个Oracle应用的数据通常在一个表空间->1-2个数据文件->1块硬盘!!,如果有另外的应用可再加硬盘。
3.创建用户和用户组
推荐使用图形界面的kuser工具,
即:KDE - User Manager
先建组dba,oper,
再建用户“oracle”, Shell= /bin/sh, Group=dba, Set Passwd=******
通常来说,用户“oracle”拥有数据库软件的安装、升级等管理权限。在你的Oracle8i服务器上,它甚至比root用户还重要!!! 你可以从字符界面以oracle用户登录Linux,然后运行Oracle数据库服务!这样更节省内存。
4.创建目录
推荐使用图形界面 GONE的Home Dir或KDE的File Manager,它们会更方便完成下面功能。
root 创建oracle多登录点:
root$ mkdir /u01
或者是直接做一个硬盘分区/u01
授权别人读写:
root$ chmod 755 /u01
或直接改变所有者:
root$ chown oracle.dba /u01
oracle 继续创建目录,按照Oracle习惯:
oracle$ mkdir /u01/app
oracle$ mkdir /u01/app/oracle/product/8.1.5
技巧:建立目录别名(符号连接)以便快速又好记忆:
root$ ln -s /u01/app/oracle/product/8.1.5 /ora
root$ ln -s /home/oracle /orame
5.设置参数
按照下文的内容编辑 .bash_profiile, 另存为 .profile
[oracle@lin oracle]$ more .profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/ora/bin:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="oracle"
ORACLE_HOME=/ora; export ORACLE_HOME
LD_LIBRARY_PATH=/ora/lib; export LD_LIBRARY_PATH
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=ora8; export ORACLE_SID
ORACLE_TERM=386; export ORACLE_TERM
TMPDIR=/var/tmp; export TMPDIR
# umask 022 (only if umask does not default to 022)
export USERNAME BASH_ENV PATH
用env检查一下参数设置:
[oracle@lin orainst0]$ env
USERNAME=oracle
ORACLE_SID=ora8
LD_LIBRARY_PATH=/ora/lib
ORACLE_BASE=/u01/app/oracle
BASH_ENV=/home/oracle/.bashrc
ORACLE_TERM=386
DISPLAY=172.17.2.22:0.0
ORACLE_HOME=/ora
接下来就可以执行安装程序了(需要KDE或AnotherLevel,目前不能从GONE安装!)
先安装jre,即JAVA Runtime Environment,版本=jre116v5,用/usr/local/jre =>指向你安装的jre116v5,然后是oracke815补丁。安装时要注意"DISPLAY"设置问题。
千万不要心急,40分钟装完基础部分,10分钟安装补丁,最后才能创建数据库!
Oracle8i软件安装过程
准备软件
1)光盘安装
首先要加载光盘,可以简单地执行命令: mount /mnt/cdrom
或者使用KDE的图形界面,执行fsconf ==> Acsee local driver ==> /dev/cdrom ==> Mount !!!
这里,你也要先安装 JRE(Jave运行环境) 116v5,准备好Oracle815patch_EE(企业版补丁8/27/99 6,4M)。
2)下载方式:
一共要下载3个文件(参考:详细下载地址)
JRE 116v5,Java 运行环境(6M jre_1.1.6-v5-glibc-x86.tar.gz)
Oracle815 EE, 企业版(07/19/99 256M 815ship.tgz)
Oracle815patch_EE, 企业版补丁(08/27/99 6,4M linux_81501patch_ee.tgz)
把下载的压缩文件分别复制到一个空文件夹中,然后解压缩它:
JRE : 请试试
6,292,578 jre_1.1.6-v5-glibc-x86.tar.gz
复制到空目录,然后解开,
tar -xvzf jre_1.1.6-v5-glibc-x86.tar.gz
连接/复制/改名新建的jre116v5目录为 /usr/local/jre
Oracle815 EE, 企业版
cp 815ship.tgz /home/oracle/orainst0/
cd /home/oracle/orainst0/
tar -xvzf 815ship.tgz .
Oracle815patch_EE, 企业版补丁
cp linux_81501patch_ee.tgz /home/oracle/patche/
cd /home/oracle/patche/
tar -xvzf linux_81501patch_ee.tgz .
4.执行安装程序(需要KDE或AnotherLevel,目前不能从GONE安装!)
先安装jre,即JAVA Runtime Environment,版本=jre116v5
用/usr/local/jre =>指向你安装的jre116v5
千万不要心急,40分钟装完基础部分,10分钟安装补丁,最后才能创建数据库!
安装过程:
从设置Xwindow 开始安装
推荐采用KDE界面,如果oracle用户也在服务器上登录安装, root制定Xwindow显示,我曾在安装时遇到一个"DISPLAY"设置问题。
[root@lin /root]$ xhost +172.17.2.22
172.17.2.22 being added to access control list
看到上面added信息,oracle用户可以如此开始安装:
[oracle@lin orainst0]$ ./runI*
Initializing Java Virtual Machine from /usr/local/jre/bin/jre. Please wait...
如果是远程登录到服务器上,比如从172.17.2.21执行,则应该
[oracle@lin orainst0]$ xhost +172.17.2.21
172.17.2.21 being added to access control list
当然要求事先定义DISPLAY=172.17.2.22:0.0 了:
[oracle@lin orainst0]$ DISPLAY=172.17.2.22:0.0
[oracle@lin orainst0]$ export DISPLAY
同样执行runInstaller
[oracle@lin orainst0]$ ./runI*
Initializing Java Virtual Machine from /usr/local/jre/bin/jre. Please wait...
安装选项
典型安装,最后提示DBCA数据库助理安装“不完善”,不过还可以继续使用;
最小化安装,不要试图从DBCA数据库助理生成数据库,因为还需要事先安装“补丁”;
自定义安装,如果很熟练,可以挑选部件,同样要先安装“补丁”。
安装补丁
[oracle@lin patche]$ ./linux*
这里同样有很多错误提示,它通过检查子目录文件数目来判断是否继续安装,所以你一定不要动它的文件。
几个问题----如果遇到安装问题,
请对照一下我的参数表,然后再看看我的参数文件“环境变量简要表 .profile”,它是从 .bash_profile 编辑修改过来的。
[oracle@lin orainst0]$ env
USERNAME=oracle
HISTSIZE=1000
HOSTNAME=lin.tcyy.com
LOGNAME=oracle
ORACLE_SID=ora8
HISTFILESIZE=1000
MAIL=/var/spool/mail/oracle
LD_LIBRARY_PATH=/ora/lib
ORACLE_BASE=/u01/app/oracle
TERM=ansi
HOSTTYPE=i386
PATH=/usr/bin:/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin:/ora/bin:/home/ora cle/bin
KDEDIR=/usr
HOME=/home/oracle
INPUTRC=/etc/inputrc
SHELL=/bin/sh
PS1=[\u@\h \W]\$
USER=oracle
TMPDIR=/var/tmp
BASH_ENV=/home/oracle/.bashrc
ORACLE_TERM=386
DISPLAY=172.17.2.22:0.0
ORACLE_HOME=/ora
OSTYPE=Linux
SHLVL=1
_=/usr/bin/env
设置“环境变量简要 表 .profile”它是从 .bash_profile 编辑修改过来的。
[oracle@lin oracle]$ more .profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:/ora/bin:$HOME/bin
BASH_ENV=$HOME/.bashrc
USERNAME="oracle"
ORACLE_HOME=/ora; export ORACLE_HOME
LD_LIBRARY_PATH=/ora/lib; export LD_LIBRARY_PATH
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_SID=ora8; export ORACLE_SID
ORACLE_TERM=386; export ORACLE_TERM
TMPDIR=/var/tmp; export TMPDIR
# umask 022 (only if umask does not default to 022)
export USERNAME BASH_ENV PATH
安装过程中间,它要求root用户执行 root.sh,你要先修改读写权限:
[root@lin /ora]$ chmod 750 root.sh
[root@lin /ora]$ ./root.sh
程序执行结果,生成了下面一个文件/etc/oratab:
[oracle@lin oracle]$ more /etc/oratab
# *:/u01/OraHome1:N
# ORCL8:/u01/OraHome1:Y
ora8:/ora:Y
它的意思是定义自动启动的名称(ora8),dbstart,dbshut也要这个参数,不然就得是用 svrmgrl 来startup。
注意为了简化目录名称,我试用了符号联接:
/ora -> /u01/app/oracle/product/8.1.5
/orame -> /home/oracle
至此,Oracle软件安装完毕,可以试着从DBCA数据库助理生成数据库了:
[oracle@lin /ora]$ ./bin/dbass*
创建数据库
说明:这里的经验是多次重装Oracle-->建库-->WebDB,细心总结的,而安装软件是很费时费事的,每次要不止6个小时。
这里先谈对几个术语的解释。
在线事务处理OLTP/决策支持,前者用于小而多实时处理,后者用于大而少的统计查询。
并发用户/并发连接, 同时连接的用户数/相同用户同时连接数。
日志文件,redolog,用于重做数据库
控制文件, control,记载运行状态。
表空间/文件/表/数据,表示oracle的数据库结构。
创建数据库
按照Oracle的说法,创建数据库有3种方法:
1) 安装时生成
2) 安装后使用DBCA创建
3) 使用手工命令
具体过程(个人经验):
方法1 不行,
Oracle也说安装过程不创建数据库,只是在最后启动数据库创建助理DBCA,但你不要相信它,那也行不通,因为你必须在数据库创建之前,安装补丁,那个讨厌又必须的东西。
方法3 太难;
方法2最好!
方法2使用图形化的工具:数据库创建助理DBCA, 你可以一步步 输入或选择参数,最小化安装的时间40分钟,标准规模完全安装的时间90分钟(奔3-500/192MB内存),通常需要2个多小时。
工具用法:启动DBCA
[oracle@lin /ora] bin/dbas*
注意:自定义数据库的参数
数据库文件的位置、大小、增长方式。例如:
system = /u01/app/oracle/oradata/ora8/orasys01.dbf 188M next 100K
Users = /home/oracle/oradata/ora8/orausr01.dbf 20M next 128K
重置字符集
缺省值 = US7ASCII, 要求Windows客户端注册表与之对应, 否则乱码,
Hkey_Local_machine \Software\Oracle\NLS_Lang=American.America.US7ASCII
实际上,Oracle客户端大多是支持中文的,甚至作为了缺省值。并且,如果Oracle WebDB开发一个中文电子商务站点,你的英文不成问题;但要向一个小公司Oracle DBA新手推广WebDB作为管理工具,不能总是English面孔吧,所以应该选择中国中文国标字字符集 ZHS16GBK (中国简化汉字16位国标字库),相应的客户端配置为:
Hkey_Local_machine\Software\Oracle\NLS_Lang = SIMPLIFIED CHINESE_CHINA.ZHS16GBK ,
National Chartset 是国家语言,为Nchar等N 类型准备的。
服务器成功案例
服务器最小化安装,兼容=8.0.5,不要任何选件(Option);
最小化安装完毕,更改兼容=8.1.0,启动DBCA修改数据库,添加除了interMedia之外的4个部件(因为interMedia需要在\ora\ord\adu,..\vid中预先装入单独产品,否则提示*.sql,*.plb找不到,如果你有了这些interMedia产品,可以使用DBCA修改数据库,添加这些选项,并且要事先更改兼容=8.1.5),安装成功;
自定义安装,软件系统和数据库文件分别装在不同硬盘上,并改变文件大小、增长方式, 字符集=ZHS16GBK, (Oracle 建议的中文字符集=ZHS16cGB231280), 安装成功;
WebDB成功案例
服务器字符集=US7ASCII,客户端是ZHS16GBK或WE8ISO8859P1,WebDB也算安装成功,但只能用OPERA3.6操作,附加的Simplified Chinese在微软 IE5 浏览器显示为?????乱码,我因此判断是因为 Windows.ZHS16GBK ==> Oracle.US7ASCII7bit)出错。
最小化安装,即兼容8.0.5,语言都是ZHS16GBK, 但是,不要选择任何附加语言,这时的浏览器只能显示English,不会根据浏览器缺省语言显示中文;
WebDB最理想的境界:服务器中等安装(即兼容8.1.0),C/S语言都是ZHS16GBK, 为浏览器添加附加语言Simplified Chinese, 浏览器语言显示中/英文完全正常。
一些经验
字符集要求一致,要么都是US7ASCII,要么都是ZHS16GBK。
记住:Oracle for Windows的英文字符集是WE8ISO8859P1, 而不是Oracle Server for Linux/Unix的缺省字符集US7ASCII。同样地,Oracle for Windows的重文字符集是ZHS16GBK, 而不是Oracle Server for Linux/Unix的缺省字符集ZHS16CGB231280, 但是ZHS16GBK 兼容 ZHS16CGB231280。
中文/英文字符集转换将会影响效率,最好选择完全中文。
安装WebDB时,一定要新建目录和Home,选择附加语言(Simplified Chinese)时要求字符集一致。比如你的WebDB for WinNT4英语是 WE8ISO8859P1,那么你就无法向Oracle.US7ASCII服务器添加附加语言Simplified Chinese,因为US7ASCII和WE8ISO8859P1之间只能正确交换7位字符集比如英语或法语。
下面这个想法也是行不通的:定制安装WebDB2.1,装完SqlPlus, SupportFiles, 和 Net8 后,修改字符集与数据库服务器一致,再来安装 WebDB2.1 和 Listener, 以便添加附加语言Simplified Chinese. 但是,每次当你启动安装程序时,都得设定一个字符集并同时作为变量供整个安装过程使用,所以不可能中途改变字符集并使之生效。
移植一个产品:你的Windows NT4有WebDB2.1了,但是Personal Oracle里有一个Navigator很好用, 那么你可以找到 Nav8.exe, Nav8cmd.dll, Navrsus.dll(英语支持), Navrszhs.dll(汉语支持)共4个文件复制到当前的 [OraWeb21]\bin 里来,即可使用“Oracle8导航器”了:在桌面或菜单目录中添加Nav8.exe的快捷方式。
想想看:你的Windows NT4有了Personal Oracle(只是部分产品或其他), 能不能在它的目录里再装载 WebDB服务? 哪怕不选择附加语言支持。
手工建库
重点讨论方法3:
你需要 较好的Linux和Oracle基础,或者要鼓足勇气,增加信心才行。
请参考帮助文献: [oracle@lin oracle]$ more /ora/rdbms/install/create/READ*
首先定义好 ORACLE_SID,ORACLE_HOME等参数,
编写参数文件$ORACLE_HOME/dbs/init.ora
对db_name, instance_name and service_name 稍微做修改
set compatible ="8.1.5"
依次执行以下命令脚本:
crdb1.sh |
crdb2.sh |-- To create database files, data dictionary views
crdb3.sh | and add PL/SQL support
replicate.sh --- Advanced replication option
ordinst.sh |__ Oracle Intermedia
imedia.sh |
drsys.sh |__ Oracle interMedia Text
context.sh |
java.sh --- Oracle Jserver
spatial.sh --- Oracel Spatial
timeseries.sh --- Oracel TimeSeries
virage.sh --- Oracle Visual Information Retrieval
sqlplus1.sh |
sqlplus2.sh |-- Demos and SQL*Plus help tables
sqlplus3.sh |
你不必依次全部执行,我在数据库创建助理DBCA里也只是1) 2)
1)The first three scripts (crdb1.sh, crdb2.sh and crdb3.sh) would create a database and
2)the scripts sqlplus1.sh, sqlplus2.sh and sqlplus.sh would create some demo tables.
Once the database is created, you could run other scripts mentioned above to use the respective 8i feature,
3) e.g., for Jserver, run the java.sh script.
4)To enable Oracle Intermedia Text, run the scripts - drsys.sh and context.sh, in this order only.
5) Similarly, for Oracle Intermedia, run ordinst.sh followed by imedia.sh.
下面是我用 "数据库创建助理DBCA" 生成的参数文件几个参数:
[oracle@lin /ora]$ more dbs/initora8.ora
instance_name = ora8
control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl")
processes = 50
log_buffer = 163840
# audit_trail = false # 审计和interMedia 的软件系统有漏洞
rollback_segments = (r01, r02, r03, r04) // 记住去掉“#”
compatible = "8.0.5" //
根据选件内容,compatible可以是 8.1.0,8.1.5,
修改数据库方法:同样启动DBCA
[oracle@lin /ora] bin/dbas*
数据库系统管理
----启动/关闭Oracle
本文的讲述Oracle三个核心工具之一:svrmgrl ,
一、先介绍一套简便方法:使用系统命令开关数据库
二、详细介绍服务器管理核心工具svrmgrl
三、SQL*Plus 部分管理任务,测试数据库
Oracle正常工作需要启动两个服务:数据库服务器实例,数据库SQL*Net8服务。
关于SQL*Net8服务的资料,请参考Lsnrctl(Net8)的相关超级联结。
一、简便方法:使用系统命令开关数据库
1)启动服务器 dbstart
2)关闭服务器 dbshut
3)网络监听服务(请参考联接)lsnrctl
1)启动服务器
[oracle@lin /ora]$ dbstart
该命令校验用户身份后,调用SVRMGR工具,完成一下工序:
启用缺省参数文件init.ora, 初始化内存,登录,打开数据库。
如果需要更多的控制参数,请看svrmgrl工具。
2)关闭服务器
[oracle@lin /ora]$ dbshut
该命令校验用户身份,调用SVRMGR工具,完成一下工序:
SVRMGR> Connected.
SVRMGR> Database closed.
Database dismounted.
ORACLE instance shut down.
SVRMGR>
Server Manager complete.
Database "ora8" shut down.
3)网络监听服务
启动: lsnrctl start
停止: lsnrctl stop
二、高级工具:详细介绍 svrmgrl
启动方法:
[oracle@lin /ora]$ svrmgrl
Oracle Server Manager Release 3.1.5.0.0 - Production
Oracle8i Enterprise Edition Release 8.1.5.0.1 - Production
With the Partitioning and Java options
PL/SQL Release 8.1.5.0.0 – Production
如何获得使用帮助
打入help,得到: 下面是简单的语法描述,详细资料请看Oracle Server Manager User@#s Guide.
SVRMGR> help
STARTUP [DBA] [FORCE] [PFILE=filespec] [EXCLUSIVE | SHARED]
[MOUNT dbname | OPEN dbname] [NOMOUNT]
SHUTDOWN [NORMAL | IMMEDIATE | ABORT]
MONITOR For graphical modes only, bring up a monitor
ARCHIVE LOG [START] [STOP] [LIST] [NEXT] [] [ALL] [@#destination@#]
RECOVER { [DATABASE [MANUAL] ] | [TABLESPACE ts-name [,tsname]] }
CONNECT [username [/password] ] [INTERNAL] [@#@@#instance-spec]
DISCONNECT
SET options: INSTANCE, ECHO, TERMOUT, TIMING, NUMWIDTH, CHARWIDTH
SHOW LONGWIDTH, DATEWIDTH, AUTOPRINT and for SHOW: ALL, SPOOL
EXIT
REM
SQL statements can also be executed.
以系统用户oracle登录:
SVRMGR> connect internal
Connected.
关闭数据库,现在尝试一下?!
SVRMGR> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
启动数据库吧, 我想给它指定参数,并且打开:
SVRMGR> startup pfile=/ora/dbs/initora8.ora open ora8
ORACLE instance started.
Total System Global Area 23670160 bytes
Fixed Size 64912 bytes
Variable Size 6656000 bytes
Database Buffers 16777216 bytes
Redo Buffers 172032 bytes
Database mounted.
Database opened.
测试一下啦, 先看看数据库的系统文件吧:
SVRMGR> select * from system.sysfiles;
TSNAME FNAME BLOCKS
------------------------------ -------------------------------------------------
SYSTEM /u01/app/oracle/oradata/ora8/system01.dbf 89600
OEM_REPOSITORY /u01/app/oracle/oradata/ora8/oemrep01.dbf 2560
RBS /u01/app/oracle/oradata/ora8/rbs01.dbf 6144
TEMP /u01/app/oracle/oradata/ora8/temp01.dbf 5120
USERS /u01/app/oracle/oradata/ora8/users01.dbf 5120
INDX /u01/app/oracle/oradata/ora8/indx01.dbf 5120
6 rows selected.
嗯, 感觉不错, 我会了,谢谢。现在退出休息一下吧。
SVRMGR> exit
Server Manager complete.
三、 SQL*Plus 部分管理任务,测试数据库
在你第一次使用数据库时,它的至少有两个管理员账户:
sys / change_on_install, 不要像以前那样,给一个自己都不知道的口令。切记:在你安装webdb时,需要它。
system / manager 系统缺省的管理员,记住再给它建造一个工具表空间,作为他的却省表空间:tools.
现在试一下sqlplus:
[oracle@lin /ora]$ sqlplus system/manager
SQL*Plus: Release 8.1.5.0.0 - Production on Sun Nov 7 10:08:30 1999
SQL> select * from tab;
SQL> select * from sys.tab;
SQL> exit
最后提一下,Oracle+Linux 需要内存128MB,如果你运行了Apache Web进程的,那更需要内存。
[oracle@lin /ora]$ free
total used free shared buffers cached
Mem: 192984 116904 76080 53212 5652 78064
-/+ buffers/cache: 33188 159796
Swap: 530104 0 530104
Oracle Net8 网络配置和联接
1)服务器端配置Listener:
添加Listeners , 设置选择 DataBase Name方式,填写2个参数 { HomeDir = /ora/ , SID =ora8 }
2)启动Net8服务lsnrctl start
3)停止Net8服务lsnrctl stop
4)参数文件摘要
5)客户端配置:添加 Net Service Name ,同Windows客户端一样格式
1)服务器端配置Listener:
执行/ora/bin/netasst
填写描述->首选Oracle服务:
。PROTOCOL = TCP
。HOST = 172.17.2.22
。PORT = 1521
查看生成的 Net8 Server配置文件:listener.ora
[oracle@lin admin]$ more listener.ora
# LISTENER.ORA Configuration File:/ora/network/admin/listener.ora
# Generated by Oracle Net8 Assistant
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(PROTOCOL_STACK =
(PRESENTATION = TTC)
(SESSION = NS)
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(ORACLE_HOME = /ora)
(SID_NAME = ora8)
)
)
### 如果指明监听服务的"全局名",则有类似这一行:(GLOBAL_DBNAME = ora8)
2)启动Net8服务lsnrctl start
首先你可以这样取得帮助:
[oracle@lin /ora]$ lsnrctl
LSNRCTL> help
然后开始启动:start
[oracle@lin bin]$ lsnrctl start
联接时,机器会逐步告诉你正在启动…,正在联接…,已经联接的状态,最后他说成功啦! 下面是一些简要信息:
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:54
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Starting /ora/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 8.1.5.0.0 - Production
System parameter file is /ora/network/admin/listener.ora
Log messages written to /ora/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 8.1.5.0.0 - Production
Start Date 19-NOV-99 22:02:54
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security OFF
SNMP OFF
Listener Parameter File /ora/network/admin/listener.ora
Listener Log File /ora/network/log/listener.log
Services Summary...
ora8 has 1 service handler(s)
The command completed successfully
以上提示说,1个服务被处理,命令成功完成。
3)停止Net8服务lsnrctl stop
最简单的方法是 [oracle@lin /ora]$ lsnrctl stop
有时侯,进程出了差错,tnslsnr没有响应,像WindowsNT常犯的毛病一 样,
这里有一个强硬的手段:先找出它的进程号,然后 kill掉!
[oracle@lin /ora]$ ps -ef|grep tns
oracle 1331 1 0 15:51 ? 00:00:00 /ora/bin/tnslsnr LISTENER -inher
或使用更少的参数也能找到tnslsnr:
[oracle@lin /ora]$ ps -e
PID TTY TIME CMD
1331 ? 00:00:00 tnslsnr
现在杀死PID = 1331的进程:
[oracle@lin /ora]$ kill 1331
LSNRCTL象 SVRMGRL一样,是一个服务器管理程序,有不少参数,或者说是 子程序,带星号的是一个外部程序。
[oracle@lin bin]$ lsnrctl stop
LSNRCTL for Linux: Version 8.1.5.0.0 - Production on 19-NOV-99 22:02:50
(c) Copyright 1998 Oracle Corporation. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS)))
The command completed successfully
Listeners =DataBase Name = Global DB Name =ora8, HomeDir = /ora/ ,SID =ora8
[oracle@lin oracle]$ cd /ora/net*/ad*
[oracle@lin admin]$ ls
listener.ora namesini.sql samples sqlnet.ora
namesdrp.sql namesupg.sql sqlnet.fdf tnsnames.ora
下面是在 Windwos NT/98 上远程控制 TNSLSNR 的情形(图略)。
4)参数文件摘要
[oracle@lin admin]$ more /u01/app/oracle/admin/ora8/pfile/initora8.ora
db_name = ora8
instance_name = ora8 ## "事例名"是关键字
service_names = ora8
control_files = ("/u01/app/oracle/oradata/ora8/control01.ctl", "/u01/app/oracle/oradata/ora8/control02.ctl")
db_block_buffers = 8192
shared_pool_size = 4194304
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
log_buffer = 163840
log_archive_start = true
log_archive_dest_1 = "location=/u01/app/oracle/admin/ora8/arch"
log_archive_format = %t_%s.dbf
# 切记打开回滚段
rollback_segments = (r01, r02, r03, r04)
# global_names = false ### 监听服务无需指明"全局名"
# oracle_trace_enable = true
# define directories to store trace and alert files
background_dump_dest = /u01/app/oracle/admin/ora8/bdump
core_dump_dest = /u01/app/oracle/admin/ora8/cdump
user_dump_dest = /u01/app/oracle/admin/ora8/udump
db_block_size = 2048
remote_login_passwordfile = exclusive
os_authent_prefix = ""
compatible = "8.1.5" ## 也可以兼容 "8.0.5"
5)客户端网络配置
[oracle@lin admin]$ more tnsnames.ora
# TNSNAMES.ORA Configuration File:/ora/network/admin/tnsnames.ora
# Generated by Oracle Net8 Assistant
使用net8助理,结果自动保存在 tnsnames.ora 中,
[oracle@lin /ora]$ netass* 添加Service: 名称ora8,参数如下:
PROTOCOL=TCP HOST=172.17.2.22 PORT=1521 Oracle_SID=ora8
机器解释成一个Oracle服务器地址包:
( DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.17.2.22)(PORT=1521))
(PROTOCOL_STACK=(PRESENTATION=TTC)(SESSION=NS))
)
一般说来,客户端采用Windows9x/NT/2000,因为这里软件开发容易,程序员和工具较为普及。
Windows 客户端网络配置与此类似,其内容见于: \OraNT\net80\Admin\tnsname.ora
ORA8.WORLD =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.17.2.22)(PORT = 1521))
(CONNECT_DATA = (SID = ora8))
)
-------------------------------------------
在Windows2000(beta3专业版)中安装Personal Oeacle8.05时,监听服务安装失败,
只要理解以上oracle结构原理,可以手工复制Net8文件,修改配置:
copy CD-ROM\.\NT_x86\server\lsnrctl80.exe,tnslsnr80.exe,tnsping80.exe C:\orant\bin
copy CD-ROM\.\listener.ora C:\orant\net80\admin
我不久前有这么一次经历。
<=>
Delphi/C++, PowerBuilder开发Oracle应用
为什么需要多个版本? 因为可能开发新应用,也可能维护一个旧的应用。
Delphi/C++ 开发Oracle应用的多种版本的参数对照表
PowerBuilder开发Oracle应用的多种版本的参数对照表(以PB6为例)
Oracle8, MSsql7各有什么优势?
以下特性对于10个以上的客户端/用户数很重要!
特性\平台 Oracle8 MSSQL7
可移植性
多平台: Unix, Linux,Windows 锁定在Windows!!!
同义词 create public synonym emp for system.emp; ?///
系统日期 select sysdate from dual; select getdate();
select current_timestamp;
系统用户 select user from dual; select user_id;
select user_name; select suser;
主机id ??/ select host_id; [char8]
序列号 create sequence regist7 start with 10000;
select regsit7.nextval into :orderid from dual
//,可以取currval,授权其他用 ???
-----------------------------------------------
Delphi/C++ 开发Oracle应用的多种版本的参数对照表
配置工具:borland BDE Administrator
配置文件:borland Shared\BDE\idapi.cfg
在 SQL Explorer 中新建一个别名:
Object ===> New ... ===> ORACLE ===>myORACLE8
关键参数 参数值 Oracle版本
DLL32 SQLORA8.DLL
SQLORA32.DLL ora8.x
ora7.x/8.x
VENDER INIT ORA805.DLL
OCI.DLL
OCIW32.DLL
ORANT.DLL ORA80x.DLL
ora8x
ora8x for Win32
<= ora7x.dll
其他参数 :
如果提示供应商有问题,就复制ORA7x.dll 到: ORANT.DLL再试!!
NET PROTOCOL SQL*Net1, SQL*Net2, Net8
SERVER NAME see TNSNAME.ORA , create by netasst
USER NAME exmple: SCOTT/tiger,
-----------------------------------------------
PowerBuilder开发Oracle应用的多种版本的参数对照表:(以PB6为例)
PowerBuilder6快速安装路径:CDROM:\pb6\setup
SQL*net版本 pb动态库 Profile参数名 参数值 适用Oracle版本
SQL*net16
ora7.2以前 pbOR760.dll Profile name
Server
Login ID
Password oracle70
@t:ora8
scott
tiger ora7.0
ora7.x/8.x
ora7.x/8.x
SQL*net32
ora7.x/8.x pbO7260.dll
pbO7360.dll Profile name
Server
Login ID
Password oracle73
@tns:ora8
scott
tiger ora7.0
ora7.x/8.x
ora7.x/8.x
ora8.x
NET8 pbO8060.dll Profile name
Server
Login ID
Password oracle8
ora8
scott
tiger
其他参数 :
如果提示供应商有问题,就复制ORA7x.dll 到: ORANT.DLL再试!!
NET PROTOCOL SQL*Net1, SQL*Net2, Net8
SERVER NAME see TNSNAME.ORA , create by netasst
USER NAME exmple: SCOTT/tiger,
--------------------------------------------------------------------------------
Upgrade/Patch installation instructions for
Oracle 8i Enterprise Edition for Intel-Linux
--------------------------------------------------------------------------------
1. Shutdown any running database instances
2. Get the patch file linux_81501patch_ee.tgz
3. Create a directory and extract the patch file
mkdir orapatch
cd orapatch
tar xvzf linux_81501patch_ee.tgz
4. Set the environment varibale ORACLE_HOME to the location of your
Oracle 8i Enterprise Edition installation and run the script
linux_81501patch_ee.sh to apply the patch.
5. Startup your database instances
6. Please read the FAQ provided along with the patch
7. This patch fixes the following problems:
955067 - LIBSKGSP8.SO NOT FOUND AS ALL USERS BUT ORACLE
941530 - USE OF THE SUPPLIED RELINK SHELLSCRIPT FAILS
960290 - 8.0.5->8.1.3 SQL*NET CONNECTION ATTEMPT DUMPS CORE
962324 - NETASST DOESNT RUN RETURNS TO THE UNIX PROMPT WITH NO ERRROS
* Last Updated 9/03/99
I. Installation Issues----------------------
1. Which JRE version is required for running the Oracle Universal Installer(OUI) and where is this available ?
Use JRE 1.1.6 v5 from . The JRE 1.1.7 v3 (green threads) also should work, though not tested,which is also availble from this site.
Download and install the above mentioned JRE in any location where thereis enough disk space and create a symbolic link from /usr/local/jreto the location where JRE was installed.
2. On what window managers was OUI tested ?
OUI runs on fvwm and KDE.
There is a bug in the Enlightenment package used with GNOME on Red Hat 6.0that causes the Oracle Universal Installer (OUI) to fail. You may downloadthe RPM upgrade for the Enlightenment package,enlightenment-0.15.5-37.i386.rpm from the Red hat Errata site at .
3. Could not locate gmake in the installed Linux distribution.
Make /usr/bin/gmake as symbolic link to /usr/bin/make.
$ su - root$ cd /usr/bin$ ln -s gmake make$ exit
4. OUI couldn@#t determine the free disk space though there is enough spaceand instead displayed some warnings.
It@#s a bug in the installer. Please ignore the warnings andcontinue the installation.
5. When OUI reached installing protocol support, an empty list boxis displayed where the network protocols should have been listed.Unable to select any protocol.
Only the TCP/IP adapter is supported which is default and built-in, andso the screen is blank.
6. Just before the DB Assistant is launched, a dialog is displayed withthe warning:"JNLS Exception: oracle.ntp.jnls.JNLSException Unable to find anyNational Character Sets. Please check your Oracle installation."
This is a known problem (884001). Ignore the warning
7. Which one do we install to launch dbassist - JDK or JRE ?
Download and install JRE 1.1.6 v5 as mentioned above, before launchingthe dbassist.
8. While adding PL/SQL support, the DB Assistant complained thatdbmssml.sql script was missing.
Apply patch 8.1.5.0.1 or above and launch dbassist.
9. While testing the database creation using the dbassist, we haveobserved that, on a 4-way SMP system, it took more than 4 hours tocreate the database, if all the options are enabled. This may affectthe performance of the machine during this time.
You could either select the option to create scripts and run them ORuse the scripts provided in $ORACLE_HOME/rdbms/install/create to createthe database. The scripts in $ORACLE_HOME/rdbms/install/createtake ORACLE_SID as the parameter. Before running these scripts copy theinit.ora available in this directory as $ORACLE_HOME/dbs/init.oraand modify any parameters in this to suit your requirements, at a minimumchange the db_name, instance_name and service_name parameters.To enable the 8i features set the compatible parameter to "8.1.5" in theinit.ora file.
The order in which to run these scripts is
crdb1.sh |crdb2.sh |-- To create database files, data dictionary viewscrdb3.sh | and add PL/SQL supportreplicate.sh --- Advanced replication optionordinst.sh |__ Oracle Intermediaimedia.sh |drsys.sh |__ Oracle interMedia Textcontext.sh |java.sh --- Oracle Jserverspatial.sh --- Oracel Spatialtimeseries.sh --- Oracle TimeSeriesvirage.sh --- Oracle Visual Information Retrievalsqlplus1.sh |sqlplus2.sh |-- Demos and SQL*Plus help tablessql
关于jre_1.1.6-v5有多处可以下载,请试试看
6,292,578 jre_1.1.6-v5-glibc-x86.tar.gz
下载后复制到空目录,然后解开,
tar -xvzf jre_1.1.6-v5-glibc-x86.tar.gz
复制/改名为 /usr/local/jre
关于 Oracle8i,oracle805,WebDB,OAS,补丁下载有一个捷径,可以请试试看,如果非要这样,你也要遵守Oracle公司的协议,在OTN及其研究会注册一下。
07/20/99 12:00上午 621 815README
07/19/99 12:00上午 29,360,128 815ship.1
.....
07/19/99 12:00上午 22,303,468 815ship.9
07/19/99 12:00上午 257,184,492 815ship.tgz 企业版
10/28/00 04:17下午 29,360,128 815shipstd.1
... ...
10/28/00 04:19下午 27,955,443 815shipstd.9
10/18/00 05:31下午 262,836,467 815shipstd.tgz 标准版
03/01/99 12:00上午 171,305,412 Oracle8051EE_Intel.tgz
06/02/99 12:00上午 3,281 README
08/27/00 11:27上午 6,419,391 linux_81501patch_ee.tgz 企业版补丁
02/05/99 12:00上午 794,538 lnxpatch.tgz
02/03/00 10:29上午 Directory oas
08/06/99 12:00上午 283,567,537 oas407ship_tar.gz 应用服务器
01/31/00 12:35下午 Directory webdb
08/02/99 12:00上午 92,069,519 webdb2_0_0528_tar.gz 万维网数据库
-------------------------------------------------------------------
下载方式,可以在windows进行,通过刻录光盘、FTP、Samba、兼容磁盘分区等方式,让Linux读到。
文章来源于领测软件测试网 https://www.ltesting.net/