您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据库 > Oracle 10g数据库管理艺术03
OracleDBA的UNIX/Linux基础第3章果你需要学习的唯一东西只是Oracle数据库管理,事情就很容易了。但是,为了保证数据库有效地运行,还需要了解操作系统等内容。本章将介绍UNIX。如本章第一部分介绍昀重要的UNIX/Linux命令。UNIX操作系统的命令和Linux操作系统的命令多数是相同的,不过也存在一些不同的地方。我们将学习文件和目录以及如何管理它们,学习UNIX进程以及如何监控它们。然后,学习如何用vi文本编辑器编辑文件以及如何编写shell脚本。作为一名OracleDBA,需要知道如何使用UNIX服务,如FTP(FileTransferProtocol,文件传输协议),它使得能在本地计算机和远程计算机间方便地交换文件;telnet,一个允许从本地计算机输入命令到远程计算机的程序;远程登录和远程拷贝服务等。本章提供这些有用特性的介绍。我们还要学习用来完成系统备份和监控系统性能的关键的UNIX管理工具。还有一些有关RAID系统的基础知识以及管理磁盘系统的LVM(LogicalVolumeManager,逻辑卷管理器)的使用的讨论。在本章后半部分,还有数据存储数组以及提高可用性和性能的一些新技术的介绍。3.1UNIX和Linux操作系统概述UNIX和Linux操作系统在许多方面是类似的,用户可以容易地从一个转到另一个。从DBA的角度看,从一个操作系统转到另一个时,在命令和实用程序方面几乎没有什么不同,因为它们具有共同的根源。3.1.1UNIXUNIX在上世纪80年代和90年代中成为了商业企业的主要操作系统。虽然IBM的大型机在极大的(数万亿字节)数据库方面仍然性能良好,但中、大型公司出于经济、通用、功能和稳定等方面的原因转向了UNIX。UNIX历史很有意义,它通过几个版本的改进在操作系统市场上达到了今天的流行地位。关于UNIX的历史变迁可以讨论很长的时间,不过我打算省略这种讨论,只是说明DBA使用的特定UNIX系统没有多大不同。UNIX的突出之处在于多任务、多用户,它是Oracle实现的昀主流的平台。自撰写本书以来市场上昀流行的UNIX版本是SunSolaris、HP-UX和IBMAIX版本。在UNIX的各变种之间,命令没有多大变化,它们的区别在于各自所带的实用程序。初次进入此领域的人可能会认为UNIX难学、难用,其实不然,UNIX是一个非常易学、易用的操作系统。一直工作在图形Windows主机上的开发人员和其他人员使用UNIX的障碍在于UNIX的简略、30第一部分背景知识、数据建模和UNIX/Linux含义不明显的命令。不过请放心,这些基本命令数目有限,你可以在很短的时间内就精通它们。Sun、HP和IBM都销售一流的UNIX服务器,这些机器运行BerkeleyUNIX系统V的各公司自己的版本。IBM也是一个大UNIX供应商,它有自己的AIX服务器。Sun和HP目前经营大量的基于UNIX的Oracle安装。3.1.2Linux由LinusTorvalds开发的Linux还在处于不断的发展之中,它的源代码是开放的,可在Internet上免费下载。许多用户愿意使用Linux,因为可得到更多的程序和驱动程序,而且是免费的(或接近于免费的,因为其商业版本相当便宜),而且bug修补发布得也相当快。Oracle10g的Linux版本可在OTN站点上下载。Oracle保证支持RedHatEnterpriseLinuxAS和ES(3.0或2.1版本)、SUSELinuxEnterpriseServer和Asianux1.0。Oracle还将在UnitedLinux1.0的生命期中继续提供对现有Oracle产品的客户支持。注解我在自己的WindowsXP桌面上使用来自RedHat的Linux3.0运行Oracle10g。我使用VMware虚拟操作系统工具()与Windows同时运行Linux操作系统。Oracle是第一个提供Linux操作系统的可供商用数据库的公司。Oracle甚至还对Linux提供了一个集群文件系统,这使得能在Linux上使用OracleRAC,而不用使用成本更高、更复杂的原始文件系统。所有这些针对Linux操作系统的工作能预示UNIX的消亡吗?虽然UNIX的市场份额在近些年有所下降,但必须慎重地面对这个事实。大多数在Linux操作系统上所做的工作都是针对用于网络和其他桌面应用的低端机的。在可以预见的将来,当需要运行大型复杂的数据库(诸如Oracle10g这样的数据库)的面向大型公司全局的服务器时,基于UNIX的系统仍将占主导地位。IT机构倾向于用Linux和开放源代码软件来解决广泛的业务问题。Linux平台在建立低成本的计算基础设施中起着重要的作用。Oracle的网格倡议有赖于众多的基于Linux平台的便宜的商用服务器。虽然Linux作为Oracle数据库的一个可行的操作系统成长得非常快,但IT业内的舆论仍然认为Linux主要是用于服务而不是基于关键任务的数据库。这使得UNIX和Windows并列成为Oracle数据库的两个主要的操作系统。Oracle通过提供关键产品的代码对Linux团体给予支持,而且它自己也广泛使用Linux平台。Oracle的集群文件系统将大量的独立服务器链接进一个单一的系统,而低价的Linux服务器是这种文件系统的经济选择。3.1.3中档系统仅在四、五年前,如果希望支持繁重的负荷,你不得不购买SunE10K这样的庞然大物(出于其硬分区和多处理器方面的考虑)。现在,小得多的中档(midrange)UNIX服务器也具有诸如软分区、大内存、热备用处理器、请求即响应的容量(capacity-on-demand)等特性,这些特性过去是高端系统所专有的。中档服务器之间的主要竞争是基于Intel的服务器之间的竞争,如WindowsServer2003和使用UNIX或Linux操作系统的基于RISC(减化指令集计算机)的服务器之间的竞争。特定操作系统的选择有赖于打算支持的工作负荷以及可用性、可靠性和响应时间等需求。本章的其他部分,虽然形式是面向基于UNIX系统的,但也几乎完全适用于基于Linux的系统。3.2理解UNIXshell在UNIX系统中,发布给操作系统的任何命令都要经过核心外围的命令解释层(称为shell)。用户一开始登录就是与此shell交互。内核就是与硬件打交道完成诸如写数据到磁盘或打印到打印机的第3章OracleDBA的UNIX/Linux基础31UNIX部分。shell把命令转换为内核能理解的形式并返回结果。因此,用户发布的任何命令都是shell命令,任何脚本(命令组成的小程序)都是shell脚本。UNIXshell有许多种类,但基本都是相同的,可以很容易地从一个转到另一个。下面是主要的UNIX和Linuxshell命令及shell的列表。sh:Bourneshell,由StevenBourne所编写。它是昀初始的UNIXshell,功能相当简单。csh:Cshell,采用有点类似于C程序设计语言的语法。它包含高级作业控制、别名以及文件命名功能。ksh:Kornshell,可视为Bourneshell的超集。它对Bourneshell增加了几个高级功能。bash:“BourneAgainShell(Bourne再次编写的shell)”,它包含Bourne和Cshell两者的功能。虽然介绍了两个重要的Cshell版本,但出于一致的目的,本书采用了Kornshell。多数UNIX系统可运行几个shell,即:你可以选择以特定的shell执行自己的会话或程序,并且可以在shell之间方便地切换。Linux的默认shell为BASH(BourneAgainShell),它包含了Bourneshell及Korn、C、TCSHshell的功能。注解以下各节讨论的多数基本命令在所有shell中是相同的,但有的命令在不同的shell中可能不起作用,或者作用不同。在不同shell间切换时需要记住这一点。shell起命令解释器和高级UNIX编程语言的作用。作为一个命令解释器,Kornshell处理用户交互命令;作为一个编程语言,Kornshell处理shell脚本中的命令。可以从一个shell中调用另一个可用的shell。为了启动一个新shell,只要输入所需执行的shell名即可,如输入ksh、csh或sh。也可以为以后的会话设置默认启动shell。你账号的默认shell和与账号有关的其他信息一起存储在系统数据库/etc/passwd中。为了改变默认shell,可使用chsh命令。访问UNIX系统可以几种方式管理运行于UNIX系统上的Oracle数据库:直接在驻留数据库的服务器上;通过UNIX工作站;通过WindowsNT服务器前端机。多数DBA采用昀后一种方法,用他们普通的PC管理数据库。如果选择这种方法,关于如何与运行在远程服务器上的数据库交互也有以下几种选择:通过telnet服务直接登录服务器。通过诸如ReflectionsX-Client(提供模拟UNIX外观的XWindowsSystem)这样的显示结构登录服务器。通过基于GUI的管理控制台链接,如通过Oracle企业管理器(OEM)或通过第三方供应商的工具,如BMC软件()、QuestSoftware()链接。不管是选择通过服务器还是选择通过其他界面登录到UNIX,首先需要账号以及适当的权限(使你能登录并实际做一些事情)。UNIX系统管理员(要与他们搞好关系)是提供账号并赋予密码的人。该系统管理员还给你分配主目录,这是你登录时进入UNIX文件系统的所在。有几种登录UNIX机的方法。一般可以利用连到服务器的终端直接登录服务器。但对于日常工作,这不是一种常见的选择。也可以使用telnet链接到UNIX服务器,3.9.3节将介绍这个内容。昀常用的方法是利用所谓的终端模拟器(一个允许PC模拟UNIX终端的程序)通过PC使用UNIX。供应商,包括Hummingbird()和WRQ()分别提供流行的32第一部分背景知识、数据建模和UNIX/LinuxHummingbird和Reflections模拟器。这些模拟器也称为XWindows模拟器,模拟XWindowsSystem(这是UNIX系统的标准图形用户界面(GUI))。这些模拟器使用特殊的显示协议,使你能用自己的Windows终端访问UNIX服务器。许多这种接口提供熟悉的GUI尽可能简单地使用UNIX。图3-1示出一个连接到UNIX操作系统的基本X会话。图3-1X会话现在,假如你装备有一个终端模拟器。在登录并使用系统之前,还需要知道两样东西。首先,需要知道机器名,机器名可以是符号,也可以是数字形式。注解所有UNIX机器(也称为UNIX服务器)都有一个IP地址,通常类似于这样的形式:162.15.155.17。每个IP地址都保证是唯一的。利用一个特殊的系统文件(/etc/hosts),UNIX管理员可给予机器一个符号名。例如,为简单起见,具有IP地址162.15.155.17的机器可称为prod1。这样,通过使用IP地址,或者使用符号名,就可以建立链接。接着,系统将要求输入密码。成功登录后显示如下的shell提示:如果使用Bourneshell或Kornshell,则shell提示为美元符号($)。而Cshell则使用百分号(%)作为其命令提示。一旦登录到系统,就说在一个UNIX会话中工作了。你将自动在所谓的主目录(关于主目录后面还要介绍)中工作。在shell提示符处输入命令,shell将解释这些命令并将它们送给内层的操作系统。UNIX目录结构是层次的,顶层为根目录,它为UNIX系统管理员所拥有。其他目录从根目录开始分支,文件在各目录之下。假如你登录时位于
本文标题:Oracle 10g数据库管理艺术03
链接地址:https://www.777doc.com/doc-4868238 .html