当前位置:首页 > 技术与方案 > 数据库技术相关

DB2 与 MySQL 的管理任务和基本任务

(2012-09-24 19:37:03)

管理不同类型的数据库是大多数数据库管理员的一种工作方式。很少出现 DBA 只管理一组同类数据库的情形。在企业的数据中心,会有各种不同的后端存储库来存放数据,比如数据库中的电子表格、图像、视频/音频形式的数据,而这些后端存储库包括 DB2 Universal Database 、Oracle、Microsoft® SQL Server、Informix®、Sybase 或者诸如 MySQL 之类的开放源码数据库。大多数公司要求 DBA 具有跨数据库管理这些不同的数据库的技能,对于企业数据中心而言,对各种数据源具有丰富知识的人才是不可或缺的。

 

本系列文章将帮助您根据现有的 MySQL DBA 技能学习 DB2 Express。本文是这一系列的第一部分,将带领您快速了解 DB2 Express,文中主要将介绍 DB2 Express 的特性和功能,以及与开放源代码数据库 MySQL 相比 DB2 Express 所具有的优势。

本文对一般性管理任务进行了比较,但并没有深入讨论可管理性、稳定性和可伸缩性的问题,也不会讨论两种数据库引擎的编写方式,或者优化程序的工作方式。本文的目的是通过概括开始了解技能转移过程,或者为那些希望进行这种比较的人描述一下这两种产品。

对于关心成本的入门级用户,IBM 提供了 DB2 Express 的免费版本,该版本称为 DB2 Express-C。DB2 Express-C 与 DB2 Express、Workgroup Edition 和 Enterprise Edition 具有相同的代码基础。随着业务的增长,客户往往转而采用 DB2 Workgroup 或 Enterprise,这些产品通过 Data Partitioning Feature (DPF) 和 High Availability Disaster Recovery (HADR) 提供了真正满足企业需求的高可用性和高性能。DB2 Express-C 适合 C/C++、Java 、.NET® 和 PHP 开发人员,可以免费下载使用。不过要注意的是,DB2 Express-C 有 2-WAY CPU 和 4GB RAM 的限制。关于不同版本的比较,请参阅 DB2 UDB 分布式平台的比较表来获得版本比较。


 

 

 


 

 

 

 

 


 

 

 


回页首

 

 

本文包括以下内容:

安装系统结构可执行文件数据库表的类型数据库配置图形用户界面(GUI)命令行处理程序(CLP)SQL 比较授权和权限锁定机制PHP 开发支持LOB 和视频/音频管理数据类型备份和恢复

下面我们来详细说明各个主题。


 

 

 


 

 

 

 

 


 

 

 


回页首

 

 

首先来看看 MySQL 和 DB2 Universal Database Express 的安装步骤。两者的安装过程都很简单。

 

与 DB2 Express 相比,安装 MySQL 服务器的步骤略多一些(安装代码后还需要配置)。不过,两种数据库服务器都很容易安装。MySQL 和 DB2 Express 都允许在安装后使用 GUI 管理工具配置数据库。

 

对于 MySQL 5.0.18 Windows® 安装程序,服务器安装没有包含 GUI 管理程序或查询浏览器。安装 MySQL 服务器后,机器上将包括:

MySQL Command Line Client MySQL Manual MySQL Server Instance Configuration Wizard

如下面的图 1所示:



 

 

 


 

要使用GUI AdministratorQuery Browser,则必须单独下载安装程序。要注意的是,不同平台需要下载不同的安装程序。而 DB2 Express 一次就安装了所有必需的管理工具和设施,无需另外下载。

 

DB2 Universal Database Express 安装非常简单,参照下列步骤即可。

 

 

 

 

在欢迎屏幕上单击 Install Product


 

 

 


单击


 

 

 





 

 

 


接受许可协议,然后单击


 

 

 


作为例子,我选择了 。您还可以选择 Custom 或 Compact。然后单击


 

 

 


需要安装的驱动器和目录。可以保留默认值。


 

 

 


输入 db2admin 口令。db2admin ID 是为 DB2 服务器管理创建的默认用户。


 

 

 


。注意,在这里可以配置协议和启动选项。


 

 

 


开始安装。


 

 

 





 

 

 


 

完成安装后,DB2 Express 的安装布局如下表所示(概括性的)。默认的 DB2 Express 安装目录是 C:Program FilesIBMSQLLIB 。下表只是 DB2 Express 在 Windows 平台上的布局,Linux® 和 UNIX® 具有不同的路径设置。

表 1. DB2 Express 安装布局 目录名内容包括用于口令加密的 /BIN 包含启动、停止和管理数据库所需的所有二进制文件包含所有的绑定包包含代码页的转换表 DB2 实例相关文件,比如,其中包括 db2 日志文件 /DB2DAS00 包含 DB2 Admin Server- (DAS) 相关文件,如 dump 目录中的。如果有多个 DAS,该目录名将带有数字,如 DB2DAS01 等。通常一个 DAS 就足够用了包含 JDBC 驱动程序包含大量实例代码 /TOOLS 包含 DB2 工具的多数 JAR 文件包含各种教程
 

 

 


 

 

 

 

 


 

 

 


回页首

 

 

本文中将讨论两种系统结构:

内存结构容器

首先来看看 DB2 Express 主要内存布局的基本结构。关于内存管理的详细说明,请参阅 developerWorks 文章 “The DB2 UDB memory model: How DB2 uses memory”(链接请参见参考资料部分)。

 



 

 

 


 

各部分的功能如下:

Package Cache —— 用于存储静态和动态 SQL 语句的内存 Buffer Pool —— 用于在写入磁盘之前暂存数据的内存 Log Buffer —— 在日志写入磁盘前存储所有数据库更改的内存

 

根据使用的表类型不同,MySQL 可以使用单个文件、多个文件或者表空间来存储数据。在这一节的最后,表 2总结了 MySQL 和 DB2 Express 使用的容器。



 

 

 


 

 

 

与 MySQL 不同,DB2 Express 总是存储在表空间中。表空间是文件系统中的物理容器的逻辑表示。下面是表空间的一些特点:

一个数据库至少要有一个表空间。默认情况下,标准 DB2 Express 安装将创建三个表空间:
Syscatspace —— 存储系统目录信息 —— 存储系统临时表。临时表空间可以是系统定义的,也可以是用户定义的。最好从系统临时表空间创建用户临时表空间 —— 存储系统临时表。临时表空间可以是系统定义的,也可以是用户定义的。最好从系统临时表空间创建用户临时表空间

物理文件系统中的 DB2 Express 容器布局如下。 C:DB2 是数据库管理的默认数据库路径。也可以使用命令 list active databases 找到数据库路径。DB2 数据库结构是按以下这种方式安排的,其中每一层分别表示:



 

 

 


Drive/Directory —— CREATE DATABASE 命令中指定的驱动器或目录 DB2 Instance Name —— DB2 Instance 所有者的名字 NODE0000 —— 数据库分区号,0 表示没有分区的数据库 SQL00001 —— 数据库 ID,从 1 开始编号 SQLOGDIR —— 数据库的默认日志目录 SQLT0000.0 —— 目录表空间,SYSCATSPACE SQLT0001.0 —— 临时表空间,TEMPSPACE1 SQLT0002.0 —— 用户表空间,USERSPACE1

管理员可以随时创建更多的表空间,例如使用清单 1清单 2中所示命令。(关于完整的创建表空间的语法,请访问 Information Center。)



Create System Temporary Tablespace systemp1_space managed by system using ('c:systemp1_space','d:systemp1_space')


Create User Temporary Tablespace usertemp1_space managed by database using (file 'c:userdata1usertemp1_space' 10000, file 'd:userdata2usertemp1_space' 20000)
可以将表分解到不同的表空间中。视图、触发器和存储过程也可以保存在表空间中。管理员可以根据需要创建任意多个表空间和任意多个容器。支持自动扩展特性。表空间可以是系统管理的(SMS),也可以是数据库管理的(DMS)。

DB2 数据库管理员经常要决定容器是由系统管理,还是由数据库管理。这种决策由几方面因素决定,如可管理性、业务需求(如数据库的规模和增长速度)和性能问题。通常 SMS 更适合较小的环境,需要的时候,系统可以提供更多的空间。对于更繁琐庞大的环境,最好使用 DMS,因为管理员可通过自动扩展特性来分配空间。不过在一个数据库中结合使用两种方法的例子也不少见,比如把目录和临时表放在 SMS 中,而索引和数据则放在 DMS 中。

表 2 MySQL 和 DB2 Express 容器的差别。

表 2. 容器的区别 数据库表类型说明 MySQL MyISAM 索引文件用 .MYI ,数据文件用 .MYD 。索引和数据分别使用一个文件。 InnonDB 在路径参数 innodb_data_file_path 指定的表空间中存储数据。默认情况下该值为 ibdata1:10M:autoextend 。可使用多个数据文件。 .MRG 文件包含应该只作为一个表使用的表的名称, .FRM 包含表的定义。使用多个数据文件。 DB2 Express 所有类型存储在可跨越多个磁盘的表空间中。有两种类型的容器:
System Managed (SMS) —— 操作系统文件管理 Database Managed (DMS) —— 数据库管理程序管理

要确定使用哪一种表空间,SMS 还是 DMS,请阅读 DB2 Information Center 上的SMS 与DMS 的比较


 

 

 


 

 

 

 

 


 

 

 


回页首

 

 

首先看一看 MySQL 中主要的可执行文件和 DB2 Express 中的对应文件。然后重点介绍后者特有的可执行文件。本文主要讨论 Windows 操作系统上的可执行文件。这两种数据库在 Linux 和 UNIX 上的可执行文件可能不一样。

表 3. MySQL 和 DB2 Express 中的可执行文件 MySQL 的可执行文件名 DB2 Express 的可执行文件名说明 MySQLInstanceConfig.exe DB2 Control Center MySQLInstanceConfig 用于配置实例。DB2 使用 Control Center 配置实例。请参阅本文中的数据库配置检查 MyISAM 表的完整性 DB2 使用 Control Center 完成同样的检查。对于索引可使用 Index 窗口中的 Check Index,或者使用 Tablspace 窗口中的 Check Index。对于表,可以使用 CHECK 约束来确保完整性。SET INTEGRITY也用于表的完整性。比如通过对表执行 Control Center 操作可以设置表的完整性。

db2dart 工具可用于检查数据库的结构完整性。与 db2dart 类似的是。检查备份镜像的完整性使用db2ckbkp命令。要检查整个数据库的健康状况,可使用 Health Center GUI。

压缩 MyISAM 表在创建表的语句中使用 VALUE COMPRESSION ,可以在列或表级别上使用节省空间的行格式来减少空间占用。需要使用 Backup Restore 数据库 API 来提供压缩,从而减少空间。 MySQL 的 Windows 客户机 DB2 Runtime Client —— 一种单独的产品,可访问远程 DB2 数据库单独安装。 MySQL Admin 客户机 —— 使用该命令可以执行的管理任务包括:创建数据库删除数据库刷新日志、表、状态处理列表关闭数据库启动从数据库停止从数据库 DB2 命令提示符基本上可用于客户机和管理任务。要访问 DB2 命令提示符,可切换到 All Programs - IBM DB2 - Command Line Tools Mysqlbinlog 至少有三种用途:记录所有的数据库事务备份和恢复复制 DB2 Express 支持联机日志和存档日志。出于 MySQL 相同的目的,所有事务都被记录下来。DB2 Express 支持单个事务的无限多个活动日志,所以长期事务永远不会失败(只要物理磁盘空间足够)。支持的最大日志空间为 256 GB。

此外,默认情况下 DB2 把错误记录到 db2diag.log 中。可使用工具db2diag分析这个日志文件。根据严重程度,错误可分为以下级别:
 

 

检查数据库是否健康,比如检查、修复、分析或优化表。比如 DB2 没有直接匹配的程序检查表错误。所有的表错误都被写入 db2diag.log 文件,用时间戳指向转储记录。这个转储文件不是为胆小的人准备的,它们是供 DB2 支持代表使用的。不过可以对表执行一些操作,比如:
Quiesce —— 比如, quiesce tablespaces for table Schema Name . Table Name Share|Intent to Update|Exclusive Reorg —— 比如, reorg table Schema Name . Table Name Reorg index —— 比如, reorg indexes all for table Schema Name . Table Name allow no access Runstats —— 比如, runstats on table Schema Name . Table Name on all columns allow write access Set Integriy —— 比如, et integrity for Schema Name . Table Name off no access cascade deferred 运行 MySQL 服务器 —— 有很多选项(若想了解更多信息,请输入可使用启动 DB2 Express 数据库实例。也可通过将 db2instance 环境参数设置为需要启动的实例来启动多个实例。停止实例使用

注意,启动和停止 DB2 实例需要 SYSADM、SYSCTRL 或 SYSMAINT 权限。

该工具导出表、表中的某些行、整个数据库或者一组数据库 DB2 Export —— DB2 Express 支持导出四种格式的表或表中的某些行。受支持的四种文件格式为: IXF —— 集成交换格式文件 ASC —— 不带分隔符的 ASCII 文件 DEL —— 带分隔符的 ASCII 文件 WSF —— Worksheet 格式的文件

导出操作很简单,比如要从 Employee 表导出数据: export to employee.del of del messages emp.log select * from allanwtham.employee

该工具用于在纯文本文件中导入数据 DB2 Import —— 支持与 DB2 Export 相同的四种格式 DB2 Load —— 向数据库中高速加载数据 db2audit —— 用于检查未知的或者意料之外的数据访问的审计设施 db2expln —— 解释静态 SQL 语句选择的访问计划 Configuration Assistant db2ca —— 配置远程访问 DB2 Admin Server (DAS) —— 有关的管理任务
 

 

 


 

 

 

 

 


 

 

 


回页首

 

 

MySQL 对不同的用途使用不同的表。可以在一个数据库中混合使用这些不同的表。具体使用哪种表取决于用户的需要。表类型如下(最常见的是 MyISAM 和 InnoDB):

SAM

SAM 是较早期的表类型。这种表类型主要用于支持遗留数据库。它已经被 MyISAM 表类型代替,并且计划不再支持这种表类型。

MyISAM 是默认的表类型。要在 MyISAM 中创建表,可以保留默认值或者用 ENGINE 关键字明确指定,比如:



Create table employee ( empno int not null auto_increment primary key, firstnme varchar(30), lastname varchar(30), deptno int ) engine=MYISAM;
 

MyISAM 表类型是非事务安全的表类型。对于高度并发的多重读/写,不应该选择这种表类型。MyISAM 不能保证原子性、一致性、隔离和持久性 (ACID)。不过,MyISAM 允许进行压缩和全文搜索。对于 MyISAM 类型,索引存储在 (MyIndex) 文件中,数据本身存储在 (MyData) 文件中。MyISAM 表类型没有表空间的概念 —— 所有的数据/索引都存储在文件中。检查/修复 MyISAM 使用工具,压缩表使用。MyISAM 中只有一种锁定机制,即表级锁定,因此不适用于访问比较频繁的环境。

InnoDB

越来越多的企业需要使用这种表类型。InnoDB 是一种兼容 ACID 的表类型。InnoDB 表类型在表空间中存储数据和索引,允许使用不同文件系统中的多个表。最初由InnoBase Oy开发的这种表类型适合于快速、高性能、事务安全的环境。InnoDB 使用更小粒度的锁定机制 —— 行级别的锁定。详情请参阅锁定机制

创建 InnoDB 类型的表要在表创建语句选项中指定关键字 ,请参阅下面的例子。



Create table employee ( empno int not null auto_increment primary key, firstnme varchar(30), lastname varchar(30), deptno int ) engine=InnoDB;
BerkeleyDB (BDB)

这种表类型的用途与 InnoDB 相同。由Sleepycat开发的这种表类型存储在 B 树中,它支持页级锁定。

Merge 类型是 MyISAM 的衍生物,用途是绕开单个巨大文件问题。它允许位于不同磁盘上的多个 MyISAM 文件根据创建表语句中的 MERGE 规范来执行查询。要插入合并表,则必须将 INSERT_METHOD 选项指定为。默认情况下只能执行

将整个表保存在内存中。使用这种类型速度很快,但是一旦崩溃就会造成数据丢失。最好暂时性地使用这种类型。

 

 

 

DB2 Express 将数据存储在容器中,无论该容器是系统管理的容器,还是数据库管理的容器。默认情况下,在 DB2 Express 中创建的表与 ACID 兼容。没有用于创建与 ACID 不兼容的表的选项。创建表的语法非常类似。管理不同类型的数据库是大多数数据库管理员的一种工作方式。很少出现 DBA 只管理一组同类数据库的情形。在企业的数据中心,会有各种不同的后端存储库来存放数据,比如数据库中的电子表格、图像、视频/音频形式的数据,而这些后端存储库包括 DB2 Universal Database 、Oracle、Microsoft® SQL Server、Informix®、Sybase 或者诸如 MySQL 之类的开放源码数据库。大多数公司要求 DBA 具有跨数据库管理这些不同的数据库的技能,对于企业数据中心而言,对各种数据源具有丰富知识的人才是不可或缺的。

 

本系列文章将帮助您根据现有的 MySQL DBA 技能学习 DB2 Express。本文是这一系列的第一部分,将带领您快速了解 DB2 Express,文中主要将介绍 DB2 Express 的特性和功能,以及与开放源代码数据库 MySQL 相比 DB2 Express 所具有的优势。

本文对一般性管理任务进行了比较,但并没有深入讨论可管理性、稳定性和可伸缩性的问题,也不会讨论两种数据库引擎的编写方式,或者优化程序的工作方式。本文的目的是通过概括开始了解技能转移过程,或者为那些希望进行这种比较的人描述一下这两种产品。

对于关心成本的入门级用户,IBM 提供了 DB2 Express 的免费版本,该版本称为 DB2 Express-C。DB2 Express-C 与 DB2 Express、Workgroup Edition 和 Enterprise Edition 具有相同的代码基础。随着业务的增长,客户往往转而采用 DB2 Workgroup 或 Enterprise,这些产品通过 Data Partitioning Feature (DPF) 和 High Availability Disaster Recovery (HADR) 提供了真正满足企业需求的高可用性和高性能。DB2 Express-C 适合 C/C++、Java 、.NET® 和 PHP 开发人员,可以免费下载使用。不过要注意的是,DB2 Express-C 有 2-WAY CPU 和 4GB RAM 的限制。关于不同版本的比较,请参阅 DB2 UDB 分布式平台的比较表来获得版本比较。

 

 


回页首

本文包括以下内容:

安装系统结构可执行文件数据库表的类型数据库配置图形用户界面(GUI)命令行处理程序(CLP)SQL 比较授权和权限锁定机制PHP 开发支持LOB 和视频/音频管理数据类型备份和恢复

下面我们来详细说明各个主题。


回页首

 

 

首先来看看 MySQL 和 DB2 Universal Database Express 的安装步骤。两者的安装过程都很简单。

 

与 DB2 Express 相比,安装 MySQL 服务器的步骤略多一些(安装代码后还需要配置)。不过,两种数据库服务器都很容易安装。MySQL 和 DB2 Express 都允许在安装后使用 GUI 管理工具配置数据库。

更多
关闭窗口 打印 
网站首页    -    联系我们    -   收藏本站    -    网站地图                                                               客户服务热线:0571-85023000
本网站所有网页信息已申请知识产权和著作权保护,版权归四海光纤公司所有,未经授权禁止任何人复制或镜像,违者必究。
公司主营:杭州光纤光缆视频会议系统,是专业的通信网络工程、视频会议系统建设专家

中华人民共和国备案号:浙ICP备10018243号