准备工作--安装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
作者:江苏太仓丁聚岗
uudingju@public1.sz.js.cn
--------------------------------------------------------------------------------
现在假设你要在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
:
请试试
ftp://ftp.progsoc.uts.edu.au/pub/Linux/java/JDK-1.1.6/i386/glibc/v5/
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
SoftwareOracleNLS_Lang=American.America.US7ASCII
实际上,Oracle客户端大多是支持中文的,甚至作为了缺省值。并且,如果Oracle
WebDB开发一个中文电子商务站点,你的英文不成问题;但要向一个小公司Oracle
DBA新手推广WebDB作为管理工具,不能总是English面孔吧,所以应该选择中国中文国标字字符集
ZHS16GBK
(中国简化汉字16位国标字库),相应的客户端配置为:
Hkey_Local_machineSoftwareOracleNLS_Lang
=
SIMPLIFIED
CHINESE_CHINA.ZHS16GBK
,
National
Chartset
是国家语言,为Nchar等N
类型准备的。
服务器成功案例
服务器最小化安装,兼容=8.0.5,不要任何选件(Option);
最小化安装完毕,更改兼容=8.1.0,启动DBCA修改数据库,添加除了interMedia之外的4个部件(因为interMedia需要在oraordadu,..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]in
里来,即可使用“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
et80Adminnsname.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_x86serverlsnrctl80.exe,tnslsnr80.exe,tnsping80.exe
C:orantin
copy
CD-ROM.listener.ora
C:orant
et80admin
我不久前有这么一次经历。
<=>
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
SharedBDEidapi.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:pb6setup
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,
-------------------------------------------------------------------
文件下载提示
-------------------------------------------------------------------
关于jre_1.1.6-v5有多处可以下载,请试试看
ftp://ftp.progsoc.uts.edu.au/pub/Linux/java/JDK-1.1.6/i386/glibc/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及其研究会注册一下。
ftp://ftp.oracle.com/pub/www/otn/linux/
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读到。
结束