BDS培训范本手册

BDS培训范本手册
BDS培训范本手册

第一章DB2 UDB 概况

1.1、DB2 UDB的产品家族

UDB(Universal Database )的前身为DB2,是IBM公司开发的关系型数据库管理系统。从其诞生之日开始,DB2就定位于要为各种规模的企业提供稳定、高效的数据管理支持。可以说,DB2是当前适用范围最广泛的数据库产品。我们对DB2产品的划分通常分为两种方法:一种方法是按其所能支持的硬件和操作系统平台进行划分,另一种方法是按其所能支持的用户规模的不同进行划分。

DB2产品几乎覆盖了当前所有流行的硬件和操作系统平台。在大型机操作系统上,有DB2 for OS/390、DB2 for MVS/ESA、DB2 for VSE 和DB2 for VM等多种产品;在由IBM公司设计的小型机AS/400上,DB2已经嵌入在操作系统OS/400之中,成为其不可分割的一部分。DB2对UNIX操作系统的支持同样十分广泛,可以在AIX、HP-UX、 Solaris、SCO-UNIX、SINIX 等多种系统上找到其相应的版本。另外,在PC操作系统上,DB2可以对Window 9x、Windows NT以及OS/2等多种操作系统提供支持。UDB 6.1还增加了对Linux操作系统的支持。以上我们所提到的只是DB2服务器所能运行的平台,DB2的客户端所能支持的平台更为广泛,除了以上提到的所有平台之外,DB2的客户端还能运行在Dos、Windows 3.x、Mac OS以及SGI公司的IRIS系统之上。

UDB产品除了能够对各种硬件和操作系统平台进行支持之外,为了适应不同用户群的需要,UDB提供了不同级别的产品,对小到个人用户,大到跨国企业的不同需求提供支持。以下是对UDB 6.1版本不同级别产品的特点介绍:

UDB卫星版:是专门为移动用户设计的小型数据库产品。适合于偶尔连接 DB2控制

服务器来与公司系统交换数据的单用户系统。它既能允许用户对本

地数据进行各种修改,又可以接受远程卫星控制器的集中管理,减

轻本地用户的管理负担。该版本只能运行在Windows平台。(该版本

属于UDB 6.1版本新增版本)

UDB个人版:是专门为个人用户设计的功能完备的个人数据库产品,允许用户在本

地建立数据库、更改数据、开发应用程序从本地对数据库管理系统

进行存取以及通过内置的客户端对远程数据库服务器进行管理。。该

版本的限制在于不能对远程应用程序提供全面支持。该版本可以运

行在Windows、OS/2以及Linux平台。

UDB工作组版:适用于小型局域网的数据管理需求。具有UDB个人版的全部功能,

并能够对远程应用程序提供全面支持。该版本可以运行在Windows、

OS/2以及Linux平台。(UDB工作组版 5.0可以运行在UNIX平台)UDB企业版:简称为UDB EE,适用于企业级的数据管理需求。具有UDB工作组版的

全部功能,并能够利用对称多处理(SMP)技术提高系统性能。在它

的程序包中,包含了DB2 Connect企业版,允许Intel平台和UNIX

平台的客户端应用程序访问大型机和AS/400上的数据库服务。UDB

企业版可以运行在Windows、OS/2、Linux以及UNIX平台。

UDB企业扩展版:简称为UDB EEE,适用于大规模的企业应用。大规模的企业应用的

基本要求是稳定(宕机时间短)和高效(处理速度快),UDB企业扩展

版能够利用群集(cluster)和大规模并行处理(MPP)技术提高系

统的稳定性和性能。

UDB丰富的产品线给用户提供了极大的选择余地。是构造企业信息系统的基石。

1.2、对DB的存取方法

对DB的存取可以通过SQL语言和UDB内置的API两种手段来实现。不过这两种手段不是能够相互替代的。SQL语言是国际标准,各数据库厂商在实现时一般会有一定程度的扩展。SQL语言主要是完成对数据的查询和更改、数据库对象的建立及权限的控制等功能。而API主要是针对数据库的管理任务,比如数据的备份和恢复、数据库服务的启动和停止等工作。在一个应用程序中,可能既需要用到SQL语言来完成对数据的存取,同时又需要调用API来完成管理工作。

1.3、从WEB上存取UDB

Internet的广泛使用带来了从WEB对企业数据进行存取的要求。如果开发人员要开发基于Web的UDB应用程序,可以使用以下方法:

1.3.1、通过JDBC来存取UDB

JDBC是SUN公司提供的利用JAVA语言对关系型数据库进行存取的标准。在WEB上我们可以通过编写JAVA Applet或者JAVA Servlet来实现对UDB的存取。其中Applet运行在客户端,只需要一个支持JAVA的浏览器(如IE和Netscape等)即可运行,客户端不需要安装其它软件。Applet可以通过指定端口与服务器端的JDBC服务器进行通信,提供对数据的存取。Servlet是适应当今瘦客户机发展方向的一种编程模式,具有效率高,可移植性好等特点。Servlet运行在WEB服务器端,需要Servlet引擎(如Websphere Application Server)的支持,服务器端通常还需要安装Run-time Client组件。

1.3.2、通过Net.Data来存取UDB

Net.Data是IBM公司开发的通过WEB对关系型数据库进行存取的工具。它提供了一种宏语言的开发和执行环境,同时具有HTML的简易性和SQL语言的功能。开发人员可以按照Net.Data的语法编写Net.Data宏,WEB用户可以通过HTML页面上的链接来调用相应的Net.Data宏,Net.Data解释器会对其进行分析,可以提取Net.Data宏中的SQL成分,提交给数据库,然后按照Net.Data宏中规定的格式将数据库管理器传回的结果格式化成HTML 页面,传递给浏览器。

1.3.3、其它方法

除了以上提到的方法之外,还有很多其他的解决方案。如Active Server Page、PHP等,具体的选择要看实际的需要。

1.4、实例的概念和管理

1.4.1、实例的概念:

数据库管理器(Database Manager)是提供数据库管理控制功能的程序。实例(Instance)就是逻辑的数据库管理器,是真正的数据库管理器在内存中的映象。实例提供了一个可标识的数据库服务器的环境。

在安装了UDB的工作站上可以同时创建和运行多个实例,每个实例都有自己的内存空间,并具有单独的权限控制。一般来说,在一台机器上运行多个实例基于以下几种考虑:

●对数据库环境进行调试和开发的需要

如果直接在提供正式数据服务的实例内部对进行各种调试和开发,有可能会影响系统的性能,甚至会使整个系统崩溃。这时用户可以创建一个新的实例,在新的实例内进行调试和开发,因为各个实例都有自己的内存空间,一个实例中的工作不会干扰其他实例正常的数据库服务。

●出于对安全性的考虑。

因为每个实例有单独的权限控制,我们可以为不同的实例设定不同的管理人员,加强安全性的控制。比如你可以把你的个人信息存放在由你控制的实例中,其他的实例拥有者无权查看。

●出于优化的考虑

不同的数据库可能会需要不同的数据库管理器的配置参数来达到最优的性能,如果把它们放到同一个实例中,不能满足需要。

当然,系统中的实例不是越多越好,如果在系统中创建的实例过多,不仅会造成额外的资源消耗(内存、硬盘空间等),也会增大管理开销。

每个实例在创建后都会有自己的配置文件,文件内的参数会影响该实例的性能。

数据库在建立时还会自动地产生一组系统编目表,系统编目表实际上就是DB2数据库的数据字典,它详尽地描述了数据的物理结构和逻辑结构。在系统编目表中保存着各种数据库对象的定义、用于查询优化的统计信息以及系统授权信息。是一个数据库中极其重要的组成部分。

1.4.2、实例的管理:

要创建一个实例,可以使用db2icrt命令,命令语法如下:

db2icrt [-a AuthType]

[-p PortName]

[-s InstType]

-u FencedID InstName

其中:

-a AuthType是实例的认证类型(可以为SERVER、CLIENT、 DCS、DCE、SERVER_ENCRYPT、DCS_ENCRYPT 或 DCE_SERVER_ENCRYPT中的一种)。

-p PortName 是此实例要使用的端口名或端口号。

-s InstType 是要创建的实例的类型(eee、ee 或 client)。

-u FencedID 是用户名,被隔离UDF 和被隔离的存储过程将在该用户名之下运行。

InstName 是实例的名称。

要列出当前系统上创建的所有实例,可以使用db2ilist命令。

要删除某个实例,可以使用db2idrop命令。

1.4.3、实例级的操作

在DB2中,某些任务只能在实例级别上执行。比如,创建数据库,更新数据库管理器配置参数等工作。这时候,就需要应用程序连接到特定的实例之上,然后才能进行操作。要连接到一个实例上,用户可以使用ATTACH命令,语法为:

attach to [实例名] user [用户名]using [用户口令]

如果用户在执行实例级别的任务时,没有使用ATTACH命令,则系统将使用在DB2INSTANCE环境变量中指定的缺省实例来试图完成该任务。

1.4.4、数据库管理服务器(DAS):

UDB的数据库管理服务器实际上也是一个实例,只不过这个实例不是用于数据服务的,而是用于管理目的。数据库管理服务器提供以下功能:

●接受远程客户端的管理请求,将远程的管理请求在数据库服务器端实现

●允许用户进行任务调度

●允许用户对系统进行远程监控

●响应DB2 Discovery,为其提供系统信息

数据库管理服务器可以在系统安装时自动生成,也可以在安装后手工创建,在一个数据库节点中只能有一个数据库管理服务器。

1.4.5、数据库管理服务器的使用

如果没有在安装时创建数据库管理服务器,可以使用命令手工创建。具体命令如下:

dasicrt 管理服务器的名字 (UNIX平台)

db2admin create (INTEL平台)

启动和停止数据库管理服务器的命令:

db2admin start 启动管理服务器

db2admin stop 停止管理服务器

显示当前数据库管理服务器名:

dasilist (UNIX平台)

db2admin (INTEL平台)

删除当前数据库管理服务器:

dasidrop 管理服务器的名字 (UNIX平台)

db2admin drop (INTEL平台)

1.5、DB2环境变量的设置

1.5.1、DB2环境变量

除了实例配置文件和数据库配置文件中所包含的参数之外,还有一些配置参数对数据库环境起到控制作用。这些配置参数分为三类:

环境变量:这类变量的设置方法因操作系统的不同而有所差异。例如在Windows NT 环境中,选择控制面板系统环境来设置;在OS/2中则要更改config.sys文件。这类变量在更改后很可能需要重新启动系统才生效。

实例级登记项:作用范围是某一特定实例。可以用db2set命令来设置。更改后需要重新启动该实例才生效。

全局级登记项:作用范围是整个数据库系统。可以用db2set命令来设置。更改后需要重新启动所有实例才生效。

举例:

变量类型变量名称变量作用

环境变量DB2INSTANCE缺省的DB2实例,如果没有显式地连接到某个实例,

则所有的操作都被假定是对该实例进行的。

环境变量DB2DBDFT缺省的数据库,如果没有显式地连接到某个数据库,

则所有的操作都被假定是对该数据库进行的。

实例级登记项DB2COMM设置该实例用那种网络协议与客户端通信。

全局级登记项DB2SYSTEM该DB2系统的名字。

全局级登记项DB2ADMINSERVER该系统上所使用的数据库管理服务器的名字系统在检查系统的变量时,按照先环境变量,再实例级登记项、最后全局级登记项的顺

序来搜索。

1.5.2、db2set命令

db2set命令可以用来管理和设置DB2的登记项,命令语法如下:

db2set

其中常用的命令选项:

-g:更改全局级变量

-i:instance 如果更改的是实例登记项,指定该实例的名字

-l: 列出所有的实例登记项

-lr: 列出所有的登记项

例子:

db2set DB2ADMINSERVER 显示当前的数据库管理服务器

db2set DB2COMM=TCPIP,NETBIOS

设置缺省实例的交流协议为TCP/IP 和NETBIOS

db2set –all 列出当前所有的登记项的值

1.6、访问控制—权限

1.6.1、DB2访问控制的层次结构

DB2中的访问控制层次如上图所示。可以对DB2的用户赋于不同级别的权力和各种特权。其中权力(Authorities)是对一组数据库对象进行存取的特权集,有特定的名称。而特权(Privileges)则是对特定对象访问的权利。

权力(Authorities)分为以下级别:

(1)、SYSADM—系统管理

该权限是一个实例中的最高权限。可以完成一个实例范围内任何管理工作。可

以通过实例配置变量中的SYSADM_GROUP参数来指定一个用户组拥有该权限。如

果该参数为空,在Windows NT环境下,创建该实例的用户拥有该权限;在UNIX

环境下,与实例同名的用户拥有该权限。

(2)、SYSCTRL—系统控制

该权限可以完成系统中的管理功能,但不能访问数据。但拥有该权限的用户可

以创建数据库,并管理自己创建的数据库中的数据。可以通过实例配置变量中

的SYSCTRL_GROUP参数来指定一个用户组拥有该权限

(3)、SYSMAINT—系统维护

该权限只能完成系统中与维护有关的任务,但不能访问数据,而且拥有该权限的

用户不能创建数据库。可以通过实例配置变量中的 SYSMAINT_GROUP参数来指定

一个用户组拥有该权限。

(4)、DBADM—数据库管理

该权限是数据库级的权限,可以完成数据库的管理工作。该权限可以通过SQL

语句授予。

四种级别的权力对比如下:

第二章 DB2的图形用户界面

2.1、DB2的图形界面概述

在UDB之前的DB2产品中,提供给用户的图形界面很少。大部分的管理工作和操作只能通过手工键入命令的方式来实现。UDB的出现改变了这一现状,它提供了丰富的图形化工具,使得管理工作变得更加轻松。

2.2、DB2的图形化工具

2.2.1、客户端配置工具—CCA

要对远程数据库进行存取,首先要设置从客户端到远程数据库的网络连接。这个过程是一个比较复杂的过程,需要用户对网络参数、配置命令要有一定程度的了解。CCA就是一个用来帮助用户设置从客户端到远程数据库连接,减轻用户负担的工具。它提供了三种配置方法供用户选择:

a、人工方法

该方法对用户的要求较高,需要用户了解要连接的数据库服务器的相关信息,例如使用那些网络协议、要连接的数据库的名称等。用户可以通过CCA提供的界

面输入网络连接所需信息,完成连接配置。

b、自动搜索方法

该方法不需要用户有任何网络知识,它会自动利用一种叫DB2 Discovery的机制在局域网中自动搜索DB2服务器。它会与远程数据库节点上的数据库管理服务器(DAS)进行通讯,然后将数据库管理服务器搜集的信息返回。用户可以根据返回信息选择要连接的数据库。

c、载入配置文件方法

该方法允许从要连接的数据库所在的服务器端或者从已经配置成功的客户端生成一个配置文档。在文档中包含了相应的配置信息,用户可以在CCA中载入该文档,完成连接配置。

用户可以通过以上任一种方法进行网络配置,完成对远程的数据库的连接,CLI/ODBC数据源的配置,将应用程序绑定到数据库上等工作。

CCA除了可以从DB2桌面的文件夹中进行存取,也可以在命令行下键入db2cca命令存取。具体界面如下图。

2.2.2、产品信息和文档

UDB提供了丰富的帮助信息。几乎所有的信息都可以通过信息中心(Information Center)来存取。在信息中心中,我们可以按照以下几种方法获取相关信息:任务:获取完成特定任务所需的信息

书籍:UDB随机提供了许多技术手册,如《管理员手册》、《开发人员手册》等等。

用户可以通过这些联机手册来查找信息。

疑难:可以根据你遇到的疑难错误来查找相应的解决方法。

样例程序:可以查找到各种语言、各种接口进行数据库编程的例子。

Web信息:指引你到相关Web站点上获取相应的信息。

除了这几种手段以外,信息中心还提供了强大的搜索工具,帮助你在联机手册中进行全文检索,找到匹配的关键词。

信息中心除了可以从DB2桌面的文件夹中进行存取,也可以在命令行下键入db2ic 命令存取。具体界面见下图。

除了信息中心之外,还有一个小程序—第一步(First Step)来帮助新用户按照一系列的步骤来熟悉数据库操作。它可以帮助用户建立一个样例数据库,查看样例数据库中的内容,以及对样例数据库进行操作。

First Step除了可以从DB2桌面的文件夹中进行存取,也可以在命令行下键入db2steps命令存取。具体界面如下图。

2.2.3、命令中心(Command Center)

命令中心是用于输入DB2命令的图形化工具。可以说,命令中心就是一个图形化的命令行处理器(CLP),我们可以在命令中心中输入DB2命令或调用现成的命令脚本,执行后查看输出结果。

命令中心可以将已输入的命令作为脚本保存在脚本中心中,也可以对保存在脚本中心中的脚本加以调度。

另外,命令中心一个非常有用的功能是允许用户通过它查看SQL语句的存取计划,存取计划中包含着SQL语句执行情况的统计结果,用户可以通过命令中心为SQL语句生成存取计划,并以可视化的形式表现出来。

命令中心可以通过系统菜单(Windows NT操作系统)或控制中心(Control Center)来调用,也可以通过在命令行下键入db2cctr命令来执行。具体界面如下图。

2.2.4、脚本中心(Script Center)

脚本中心的主要功能有:

●创建、编辑、保存和运行命令脚本(可以包括DB2命令和操作系统命令)

●运行一个以前保存的脚本文件

●对一个以前保存的命令脚本进行调度,指定其在特定的时间的运行,被调度的作业将以

暂挂作业的形式将在下面介绍的日志工具中被监控。

脚本中心的优点在于可以将命令以文件的方式存放,重复利用,并且脚本中可以直接包含操作系统命令(在CLP中如果要执行操作系统命令需要在命令的前面加“!”)。脚本的运行状态也可以在日志工具中查看到。

脚本中心的具体界面如下图。

2.2.5、日志(Journal)

通过日志可以查看几类信息:

●作业信息

包括暂挂作业(Pending Job )信息、正在运行的作业(Running Job)信息以及已经完成的作业的信息。对于Pending Job,可以对其进行重新调度、显

示与它相关的脚本或立即运行它。

●恢复历史信息

提供了对数据库进行的备份、恢复过程的详细信息,比如:备份的时间、备份的类型等,这些信息实际都被保存在一个称为恢复历史文件的文件当中。

●警报信息

包含了系统发出的警报信息。

●系统信息

包含了UDB数据库管理器生成的信息。

日志除了包含以上信息以外,也可以对已经被脚本中心调度的作业重新进行调度。

日志的具体界面见下图。

2.2.6、警报中心(Alert Center)

警报中心搜集所有数据库管理器发出的警告信息,管理人员可以根据这些警告信息对某些系统错误进行分析。查找出系统的潜在问题。可将“警报中心”设置为自动打开,显示已超过其阈值并因此处于警报或警告状态的各种受监控对象。阈值的设置用可从“控制中心”调用的“性能监控程序”来完成。图符的颜色指示警告的严重性。红色图符指示报警信号。黄色图符指示警告。并显示为性能变量返回的数据。

1.2.7、许可证中心(License Center)

许可证中心可以对UDB的许可证信息提供集中管理,可以允许用户增添、更改和删除UDB产品的许可证。用户也可以浏览当前安装在UDB系统上的许可证信息,比如:产品名称、产品的版本、过期时间及允许的用户数目等信息。具体界面见下图。

2.2.8、控制中心(Control Center)

控制中心是UDB的管理工具的核心,绝大多数的管理任务和对其他管理工具的存取都可以通过控制中心来完成。具体界面如下图。

控制中心有如下组成部分:

菜单条:菜单条在屏幕的顶部。从菜单条选择菜单允许您执行许多功能,如关闭 DB2 工具、存取图形工具以及存取联机帮助和产品信息。可通过单

击菜单条上的每一项来熟悉这些功能通过菜单的方式完成对控制中心

的存取。

工具栏:位于菜单条下方的一组图形按钮,通过点击可以调用其他的管理工具,

如命令中心、脚本中心等以上所提到的工具

对象窗格:对象窗格位于屏幕的左边窗格中,它按照UDB数据库对象的层次关

系(UDB系统--实例—数据库--数据库内部对象)对系统进行组织,

以树状的形式显示。用户可以方便地从中找到要管理的对象。对象

窗格中的某些对象包含其他对象。对象左面的加号 (+) 指示该对象

是折叠的。可单击加号展开它。当展开对象后,在它的左面会出现

一个减号 (-)。要折叠此对象,单击减号。

内容窗格:位于屏幕的右边窗格中。此窗格显示在对象窗格中选定对象包含的

所有对象,例如,若您在对象窗格中选择表文件夹,数据库中所有

的表都将出现在“内容”窗格中。若您选择数据库文件夹,内容窗

格会变为实例中的所有数据库。

用户可以在对象窗格或内容窗格中选择要操作的对象,按鼠标右键按出弹出式菜单,能对该对象所进行的所有操作几乎都包含在菜单中。

控制中心除了可以从DB2桌面的文件夹中进行存取,也可以在命令行下键入 db2cc 命令存取。

2.2.9、工具设置(Tool Settings)

工具设置可以用来更改某些系统工具的设置,比如设定SQL语句之间的分隔符、如果DB2实例没有启动,是否需要在UDB工具启动的时候自动启动实例。工具设置可以从工具栏上的图形按钮存取。具体界面如下图。

2.2.10、快速向导(SmartGuides)

UDB中很多任务的完成涉及到很多术语和参数,如果用户对这些信息不是很了解,会影响到任务的完成效果。为了能够对这些用户提供帮助,UDB中提供了很多快速向导。

这些快速向导可以针对不同的任务向用户提出一些比较浅显的问题,根据用户对问题的回答设定相应的参数。帮助用户完成相应的任务。UDB中提供的快速向导分为以下几类:对象创建类:在创建数据库、表空间和表时提供帮助。

数据库管理任务:在备份和恢复数据库时提供帮助。

多点更改:在分布式环境下,对涉及到多数据库更改的事务进行控制。

性能调节:帮助用户对系统性能进行调节。

具体的快速向导有:

创建数据库快速向导:允许用户创建数据库、分配存储空间以及选择基本性能选项。要调用它,选择对象窗格中的“数据库”图符,单击鼠标按钮 2,然后

选择创建 -> 使用 SmartGuide 创建数据库。

创建表快速向导:此快速向导帮助用户使用预定义的列模板来设计列,创建表的主关键字并将一个或多个表空间分配给表。要调用它,选择“表”图符,单击鼠

标按钮 2,然后选择创建 -> 使用 SmartGuide 创建表。

创建表空间快速向导:此快速向导允许用户创建一个新的表空间并设置存储及性能选项。要调用它,选择“表空间”图符,单击鼠标按钮2,然后选择创建 -> 使

用 SmartGuide 创建表空间。

索引快速向导:该快速向导帮助用户确定对给定的一组 SQL 语句,要创建或删除哪些索引,才能使给定的语句性能最优。要调用它选择“索引”图符,单击鼠标

按钮 2,然后选择创建 -> 使用 SmartGuide 创建索引。

性能配置。此快速向导帮助您根据有关数据库的用途来调谐数据库。然后它对数据

库和实例建议新的配置参数,并在需要时自动应用它们。要调用它,选择相应

数据库的图符,单击鼠标按钮 2,然后选择使用 SmartGuide 配置。

复原数据库快速向导:此快速向导带您经历恢复数据库的全过程。要调用它,选择相应数据库的图符,单击鼠标按钮 2,然后选择复原 -> 使用 SmartGuide 复

原数据库。

备份数据库快速向导:它询问用户关于数据库中的数据、数据库的可用性以及可恢复性要求等基本问题。然后它建议一个备份方案、创建作业脚本并调度它。

要调用它,选择相应数据库的图符,单击鼠标按钮 2,然后选择备份 -> 使用

SmartGuide 备份数据库。

配置多站点更新快速向导:该快速向导帮助用户在分布式环境下,对涉及到多数据库更改的事务进行控制。要使用它,选择相应实例,单击鼠标按钮 2,然后选

择多站点更新 -> 使用 SmartGuide 配置。

2.2.11、通用工具选项

除了以上提供的工具之外,UDB还有几个其它相关工具选项。例如:

●显示SQL(Show SQL)和显示命令(Show Command)

如果某个工具生成了SQL语句,比如创建表、索引等工具,那么在该工具界面上将有显示SQL按钮可用。类似地,生成DB2命令的工具将有显示命令按钮可用。单击这两个按钮之一,可以查看该工具根据用户在图形界面中所做选择而生成的SQL语句或DB2命令。帮助用户了解该界面是如何工作的。另外该选项也允许用户将语句或命令另存为脚本以备将来使用。若用户希望再次运行相同的语句或命令,可以不必重新输入SQL语句或DB2命令。一旦SQL语句或DB2命令已保存到脚本中,用户可以调度脚本、编辑此脚本进行更改或创建类似的脚本而不必重新输入语句或命令。

●显示相关对象(Show Related)

显示相关项显示表、索引、视图、别名、触发器、表空间、“用户定义函数”以及“用户定义类型”之间的直接关系。显示相关对象可以帮助用户了解一个对象与哪些对象相关,分析数据库的结构以及判断可能执行的操作会造成的影响。例如,如果用户希望删除有从属视图的表,显示相关项会告诉用户如果进行删除操作后,哪些视图将变为无效视图。

从“控制中心”的内容窗格中的很多对象中,单击鼠标按钮2。都会看到“显示相关对象”的选项。

第三章数据移动

3.1、数据移动概述

在数据库的使用过程中,经常需要将一个数据库中的数据迁移到另外的一个数据库中。为了实现这种功能,我们可以使用数据库复制技术,这种技术在大多数的关系型数据库中都有相应的实现,不过这种方法对管理的要求较高,而且需要网络的连接。更常用的方法是利用某种类型的外部文件作为中介,将一个数据库中的某个表中的数据导出到一个外部文件中,然后把该文件中的数据导入到另外一个数据库中。

DB2中实现以上功能的主要工具有三个:EXPORT、IMPORT和LOAD。其中EXPORT的功能是将表中的数据导出到外部文件中;而IMPORT和LOAD的功能是将外部文件中的数据导入到一个表中。IMPORT和LOAD的功能类似,但在实现手段上有很大差异。

能够被DB2所支持用作数据移动的中间文件的格式有四种:非定界ASCII码文件(ASCII)、定界ASCII码文件(DEL ASCII)、WSF文件和PC/IXF文件。其特点是:

ASCII:纯文本格式,每个数据列之间中有分隔符,但数据行之间没有分隔符。ASCII 文件不能被EXPORT支持。、

DEL:纯文本格式,数据列之间有分隔符,数据行之间也有分隔符。

WSF:Lotus 1-2-3工作表格式。WSF文件不能被LOAD支持。

PC/IXF:一种非常通用的格式,被多种数据库管理系统所支持。可以用作在异种数据库中进行数据转移。

3.2、EXPORT的功能和使用

EXPORT 用于将一个表或多个表中的数据导出到外部文件中。

下面是EXPORT的一个例子:

db2 connect to sample

db2 export to myfile of ixf messages msg

select https://www.360docs.net/doc/2510852319.html,, staff.dept, org.location form org, staff,

where org.deptname=staff.dept

在该例中,staff和org中的相应数据将被输出到myfile文件中,该文件为PC/IXF格式。注意事项:

●在做EXPORT之前,首先要连接到相应的数据库上。

●因为要对表或视图(EXPORT支持对视图进行操作)进行SELECT操作,执行EXPORT的

用户至少要有相关表或视图上的SELECT权限。

●如果使用PC/IXF文件,文件中将包含表中的索引定义。

●可以通过DB2 Connect将主机上的数据导出到外部文件中。

3.3、IMPORT的功能和使用

IMPORT可以被看作是EXPORT的逆过程,用于将数据从外部文件中导入到数据库之中。

下面是一个IMPORT的例子:

db2 connect to musicdb

db2 import from artexprt of ixf messages artmsg

create into artists in

index in

long in

在该例中,artexprt文件的数据被导入到表artists中,这个表在IMPORT之前并不存在,系统将根据artexprt文件的格式创建表后,再进行数据导入。

注意事项:

●在做IMPORT之前,首先要连接到相应的数据库上。

●因为要对表或视图(IMPORT支持对视图进行操作)进行修改操作,执行EXPORT的用户

至少要有相关表或视图上的相关权限(依据导入模式的不同而不同)。比如,使用INSERT 模式,至少要有相应表上的INSERT权限;如果使用CREATE模式,则需要数据库上的CREATETAB权限。

●如果使用CREATE模式,必须使用PC/IXF文件进行数据导入。

●可以通过DB2 Connect向主机上的数据库导入数据。

3.4、LOAD的功能和使用

3.1、LOAD概述

LOAD的功能与IMPORT类似,但实现的方式有很大区别。其操作方式更加贴近底层。

LOAD会把要导入的数据格式化成数据页,利用并行I/O写入存储介质。在LOAD 过程中,只进行极少量的日志记录,而且不进行约束检查。因此,LOAD导入的速度要比IMPORT 快很多,尤其是数据量比较的的时候,LOAD的速度优势十分明显。

LOAD可以从三种格式的文件进行数据导入,分别是非定界ASCII码文件、定界ASCII 码文件和IXF文件格式。LOAD不支持WSF文件作为数据导入文件。

3.4.2、LOAD的三个阶段

与IMPORT相比,LOAD虽然在速度上有明显的优势,但对管理上的要求比较高。LOAD 可以分成三个阶段。

第一个阶段叫LOAD阶段。在这个阶段中,数据被导入到表中,如果表上有索引存在,LOAD将按照索引定义搜集索引关键字,然后进行排序。如果有不符合表定义的数据行,LOAD将会把它们放到一个文件(DUMP FILE)中,同时在消息文件(MESSAGE FILE)中进行记录。如果在命令中指定了SAVECOUNT参数,LOAD将每隔一定数目的数据行进行一次保存。

第二个阶段叫BUILD阶段。在这个阶段中,LOAD会利用在LOAD阶段搜集的索引关键字构造索引。如果表上没有索引,这个过程将被忽略。另外,如果表上定义了唯一性约束,LOAD会在这个阶段进行检查。如果有违反唯一性约束的数据行,LOAD将会把它们拷贝到一个特殊的表—例外表(Exception Table)中。相应的信息会保存在信息文件(MESSAGE FILE)中。

第三个阶段叫DELETE阶段。在这个阶段中,所有违反唯一性约束的行将被从表中删除。

3.4.3、异常情况的处理

由于某些操作的失败,表空间可能处于某种异常状态。表空间的状态可以通过DB2 LIST TABLESPACES。如果状态的编码为0x0000,表明表空间状态正常,否则表明表空间处于某种异常状态。比如0x0008表明表空间处于装载挂起(LOAD PENDING)状态,0x010表明表空间处于删除挂起(DELETE PENDING)状态,0x020表明表空间处于备份挂起(BACKUP PENDING)状态。上面提到的几个状态都是在LOAD过程中有可能发生的。我们下面就来探询其原因及解决办法。

3.4.4.1、LOAD PENDING状态

如果LOAD由于用户的错误而没有运行,比如指定的数据输入文件不存在或者要载入数据的表不存在,则对表空间的状态不会有任何影响。

如果LOAD在向表中导入数据的时候出现了错误,LOAD会终止,同时将要导入数据的表所在的表空间置于LOAD PENDING状态。如果表空间处于LOAD PENDING,除了使用LOAD工具对表空间进行操作来消除LOAD PENDING状态以外,不能对该表空间进

行其他操作。出现了LOAD PENDING状态以后,应该对LOAD生成的MESSAGE文件进行检查,查看是在LOAD的哪一个阶段出现的问题。然后可以使用LOAD的RESTART选项重新进行LOAD,LOAD会自动的从上一个一致性点进行恢复。比如指定了SAVECOUNT 为100,在导入到531行记录时出现异常终止,则LOAD会从第501条记录重新开始导入。如果是在LOAD过程中的BUILD阶段和DELETE阶段时出现了错误,LOAD会从这两个阶段的起始点重新开始。如果利用RESTART选项后,LOAD能够成功,则LOAD PENDING 状态可以被消除。

如果使用RESTART选项仍然不能成功,则可以使用TERMINATE选项来终止LOAD 过程,同时消除LOAD PENDING状态。如果我们在终止LOAD时使用了INSERT选项,则可以将表恢复到LOAD以前的状态。如果我们使用的是REPLACE选项,则表中的数据被清空。

3.4.4.2、BACKUP PENDING状态

LOAD PENDING状态是LOAD失败后出现的异常状态。但即使LOAD成功了,也不能保证表空间处于正常状态,这取决于LOAD时选择的复制选项。如果我们选择的是COPY YES(缺省选项),则LOAD成功后会将表空间置成BACKUP PENDING状态,需要对该表空间进行备份才能消除;如果我们选择的是COPY YES,则系统在LOAD过程中自动对载入的数据进行备份,LOAD成功后表空间处于正常状态;如果我们选择的是NONRECOVERABLE,则系统在LOAD过程中不对载入数据进行备份,在LOAD成功后也不把表空间置于BACKUP PENDING状态。

之所以LOAD要提供几种复制选项的原因是由于出于数据完整性的考虑。我们在前面已经介绍过,LOAD只做很少的日志,导入的数据不被记录在日志之中。如果在LOAD 以后,数据库崩溃了,LOAD导入的数据将无法得到恢复,造成数据的不完整。如果使用COPY NO选项,系统会强制用户在LOAD之后对表空间进行备份,如果以后需要对数据库进行恢复,则可以从中恢复LOAD导入的数据;如果使用COPY YES选项,则系统在LOAD过程中会自动对导入的数据进行备份,可以用于日后的恢复;如果使用NONRECOVERABLE选项,则等于用户明确表示日后不想恢复LOAD导入的数据,这个选项一般用于接收数据导入的表被用于只读操作,如果需要对数据进行恢复,重新进行LOAD就可以。

3.5、IMPORT和LOAD的对比

IMPORT和LOAD在功能上相似,但在实现方式和使用上有很大不同,我们将通过下表将这两中工具进行一下对照。

第四章数据库恢复

在防止关键数据的丢失当中,恢复用户自己的环境十分重要。有一些工具可以帮助用户管理自己的环境和保证用户可以对自己的数据实施充分的恢复措施。

我们将讨论在关系数据库系统中的日志存档概念,因为它属于数据库的恢复

相关主题
相关文档
最新文档