|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
采用DBaaS解决方案,他们也可以使用同大企业一样的技术。在大型组织中,DBaaS可以提供部门级解决MySQL学习教程,而无需IT部门和采购部门的介入,提供更快和更容易的方法来实现小型解决方案。oracle|unix|window
IanAdam,SAICLtd
DavidStien,SAICLtd
翻译:Fenng
择要
ORACLE是广为人知的Unix硬件平台上的抢先的数据库体系。ORACLE用户和办理员因而熟习Unix平台上的ORACLE架构和它下面的工具和技能,并从他们的数据库失掉最年夜的收益。相反,Windows上的ORACLE架构就不那末的被广为懂得。这篇文章从一个DBA的角度考查了两个操纵体系之间的关头的异同点。
简介
在看了几本使人扫兴的这方面的书以后,我们写了这篇文章。那些书的通病是试图做太多的事变--在细节上报告Windows和ORACLE。我们的这篇文章假定读者熟习Unix平台上的ORACLEDBA的事情。因而本文将剖析两个平台上的ORACLE的关头的差别而不是重新教你ORACLE的技能。我们不想把它作为你的一份细致的引导大概是手册的替换品,现实上它大概勉励你浏览一些手册。作为数据库服务器平台,它只会触及一些Unix和Windows上相干的长处,这就是本文的目标。
典范
这个例子利用linux上的ORACLE8i,实例名字叫作eighti。Windows2000下面的ORACLE8i的实例名字叫作atei。
客户端对ORACLE的会见
当客户端毗连到ORACLE时,一般的来讲ORACLE服务器的平台与客户真个使用有关。这实践上很难说清。ORACLEDBA和体系办理职员更体贴操纵体系平台,他们有的时分会基于需求(如运转工夫和可扩大性)选择平台。更一般的情形下,他们承受(或是接办)给定的平台并进修从中失掉最年夜受害。
关于WINDOWS2000
值得一提的是Windows2000是从WindowsNT晋级而来。在这两个操纵体系之间有良多的类似点,Windows2000也有些新的特征。微软从NT4.0的晋级路子见下表。
两个体系间有良多类似点:
-------------------------------------------------------------------------------------
NT4.0Windows2000
-------------------------------------------------------------------------------------
NT4.0WorkstationWindows2000Professional
NT4.0ServerWindows2000Server
NT4.0EnterpriseEditionWindows2000Advancedserver
UnixWindows2000Datacenterserver
-------------------------------------------------------------------------------------
ORACLE背景历程
上面这句话关于用过ORACLE的人来讲是会很熟习的:"每个运转着的ORACLE数据库都对应一个ORACLE实例,当一个数据库在数据库服务器(不思索呆板的范例)上启动的时分,ORACLE分派一块叫做SystemGlobalArea(SGA)的内存地区并启动一个大概多个ORACLE历程。SGA和ORACLE历程合起来称作ORACLE实例。"DD摘自ORACLE8iConcepts[4LLeverenz,1999]。处置背景历程是放在首位的,也是分歧的操纵体系之间最分明的差别。
ORACLE在UNIX上的背景历程
任何毗连到UNIX的用户都能够很简单的观察ORACLE的背景历程:
%ps-ef|grepeighti|grep-vgrep
oracle8184511016:37:18?0:00ora_pmon_eighti
oracle8184531016:37:19?0:00ora_dbw0_eighti
oracle8184571016:37:19?0:04ora_ckpt_eighti
oracle8184611016:37:19?0:00ora_reco_eighti
oracle8184551016:37:19?0:02ora_lgwr_eighti
oracle8184591016:37:19?0:01ora_smon_eighti
oracle81916819167016:43:46?0:00oracleeighti
(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
最初一行的ORACLE历程与一个SQL*Plus会话相干,其他的历程都是背景历程。在ORACLE中我们能够经由过程输出SQL*Plus会话观察这些历程:
SELECTsid,spid,osuser,s.program
FROMv$processp,v$sessionsWHEREp.addr=s.paddr;
SIDSPIDOSUSERPROGRAM
-------------------------------------------------------------------
118451oracle8oracle@saic02(PMON)
218453oracle8oracle@saic02(DBW0)
318455oracle8oracle@saic02(LGWR)
418457oracle8oracle@saic02(CKPT)
518459oracle8oracle@saic02(SMON)
618461oracle8oracle@saic02(RECO)
719168oracle8sqlplus@saic02(TNSV1-V3)
7rowsselected.
每个背景历程都有一行,另有一行信息是与SQL*Plus会话相干的,SPID对应响应的UNIX历程号。
在WINDOWS2000上的ORACLE背景历程
回到WINDOWS上,从操纵体系中观察背景历程有些坚苦。从义务办理器中大概会看到运转着的使用(义务办理器的观察办法:在义务栏点击右键选择"义务办理器")。在服务器上ORAC
LE能够是可用的,运转着的使用倒是不成见的。历程表切实其实显现一个历程叫做ORACLE.EXE,
观察alertlog显现ORACLE的一切背景历程都是启动的:
PMONstartedwithpid=2
DBW0startedwithpid=3
LGWRstartedwithpid=4
CKPTstartedwithpid=5
SMONstartedwithpid=6
RECOstartedwithpid=7
要看实践的背景历程,必要运转分外的软件,比方,历程观察器。该软件能够从Windows
2000CD中失掉(WindowsNT的话能够从资本包中失掉)。
在Windows2000上,ORACLE实例是作为一个单一的Windows2000历程(ORACLE.EXE)完成的。这个历程包含实例所必要完成的每一个义务的线程。
因而一个线程对应每一个ORACLE背景历程。ORACLE.EXE历程作为一个服务运转,能够从把持面板的服务中观察到ORACLEServiceSID。其他的服务也能够如许把持。
这同意ORACLE在没有效户登录服务器的时分也延续的运转。关于共享主处置器资本的一切的历程来讲,ORACLE可以到达高速、低负荷的高低文切换。
在Unix下显现ORACLE中的历程,我们也能够经由过程输出复杂的SQL语句来到达。为了显现PID列,SQL语句做了些稍微的修改。要注重PID婚配告诫日记中呈报的值。
SELECTs.sid,p.pid,p.spidsignaled,s.osuser,s.program
FROMv$processp,v$sessions
WHEREp.addr=s.paddr;
SIDPIDTHREADIDOSUSERPROGRAM
-------------------------------------------------------
121088SYSTEMORACLE.EXE
231172SYSTEMORACLE.EXE
341180SYSTEMORACLE.EXE
451192SYSTEMORACLE.EXE
561212SYSTEMORACLE.EXE
671220SYSTEMORACLE.EXE
781200AdministratorSQLPLUSW.EXE
7rowsselected.
每个背景历程都有一行,另有一行信息是与SQL*Plus会话相干。程序名字并没有指明背景历程的名字,和在Unix中一样,这些名字能够经由过程和v$bgprocess毗连失掉。
SELECTs.sidSID,p.spidTHREADID,p.programPROCESSNAME,bg.nameNAME
FROMv$processp,v$sessions,v$bgprocessbg
WHEREp.addr=s.paddr
ANDp.addr=bg.paddr
ANDbg.paddr00;
SIDTHREADIDPROCESSNAMENAME
-----------------------------------------------
11088ORACLE.EXEPMON
21172ORACLE.EXEDBW0
31180ORACLE.EXELGWR
41192ORACLE.EXECKPT
51212ORACLE.EXESMON
61220ORACLE.EXERECO
6rowsselected.
断闭会话
提交SQL命令ALTERSYSTEMDISCONNECTSESSION能够断闭会话。有的时分必要在操纵体系级别断闭会话,在UNIX上,经由过程kill命令完成,后面例子中的SQL会话能够经由过程输出UNIX命令断开:
kill-919168
在Windows2000上能够用orakill断开一个会话。orakill是Windows平台上的ORACLE的一个特天命令,默许安装在$ORACLE_HOMEin下。在命令行下输出orakill能够观察它的用法。后面例子中的SQL*Plus会话能够经由过程输出以下的命令断开:
orakillatei1200
Killofthreadid1200ininstanceateisuccessfullysignaled.
在Windows2000中,假如一个断开的会话标志为"markedforkill"可是没被删除,orakill会停止它。要记着杀失落一个背景历程总不是个好主张,特别是Windows上,会招致历程溃散,乃至招致数据库不成用。
Windows2000注册表
和其他的Windows2000中的使用那样,ORACLE的年夜多半的设建都在注册表中。应当看看HKEY_LOCAL_MACHINEOFTWAREORACLE上面都有甚么。这些参数中的一些在前面会具体会商。和ORACLE服务相干的参数和其他的服务一样存贮在一样的地位:
HKEY_LOCAL_MACHINEYSTEMCurrentControlSetervices。
情况变量
在Unix中两个最主要的变量是ORACLE_HOME和ORACLE_SID。一旦这些变量设定的话,使用就能够运转并连接到当地数据库。一般也把$ORACLE_HOME/bin包括在$PATH
中以便在利用ORACLE工具(如:sqlplus)的时分免除输出全路径的贫苦。
Windows2000中能够翻开命令行设定ORACLE_SID变量再连接到当地数据库。其他的值能够从注册表中失掉。
MULTIPLEORACLEHOMES
Windows2000周全撑持多个ORACLEhome。之前在WindowsNT上这是个次要的成绩,一向到ORACLE8.0.4今后才入手下手撑持。最后得对这一点的撑持很低劣。ORACLEHomeSelector,ORACLE8i的一个新的使用工具,改动情况路径,使选择的ORACLEhome路径作为主的home。只是复杂的改动体系路径,把ORACLE选择的BIN目次放在启动路径中。
每个BIN目次都有一个ORACLE.KEY文件,指明在注册表中ORACLE程序在那里能够找ORACLE_HOME和其他的情况变量。假如在服务器下面只要一个数据库,一般在注册表中设定ORACLE_SID。不外,不要设定ORACLE_HOME,关于ORACLE产物来讲基本不必要,大概会招致成绩。
文件体系
多ORACLEhome的撑持同意在Windows下面完成Unix的OFA尺度。这极年夜的简化了从Unix的过渡。OFA目次树的顶层的名字有差别,不外次要的子目次和文件名字在两种操纵体系中都是分歧的。
Unix
NT
ORACLE_BASE
/oracle/app/oracle
D:Oracle
ORACLE_HOME
/oracle/app/oracle/product/8.1.7
D:OracleOra817
Admindirectories
/oracle/app/oracle/admin
D:OracleAdmin
Databasefiles
/db01/oradata/SID
D:OracleOradataID
/db02/oradata/SID
F:OracleOradataID
/db03/oradata/SID
G:OracleOradataID
服务办理器
从ORACLE8i入手下手,服务办理器的名字在分歧的平台上都分歧了,都叫做svrmgrl。之前在
WindowsNT上ORACLE的实行文件名字跟着版本变化而改动,关于那些在多平台上事情的人来讲这很使人厌恶,特别是在利用一些命令(imp、exp等)的时分。
------------------------------------------------------------------
ORACLE服务器版本Windows服务器办理器可实行文件
------------------------------------------------------------------
7.3svrmgr23
8.0svrmgr30
8.1svrmgrl
------------------------------------------------------------------
要注重servermanager正在慢慢被减少(译者注:9i中完全减少了svrmgrl),一些分外的功效被加到了SQL*Plus中。
PartI.ToBeContinued…..
到2009年,甲骨文的数据库Oracle已经诞生了30周年,而MySQL却连它的一半时间都没有。微软的SQLServer仅仅比MySQL大两年,但是SQLServer的发布是建立在Sybase的基础上。 |
|