数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

OracleDBA如何管理DB2


发布日期:2018年11月28日
 
OracleDBA如何管理DB2

简介

当今IT的环境正经历着剧烈的变化依靠单一的关系型数据库管理系统(RDBMS)管理数据的公司开始逐渐减少分析家的报告指出 今天超过%的公司都拥有不只一种RDBMS在现在紧张的经济情况下实际的需求正在挑战IT机构人员的工作极限一个公司为管理每种RDBMS而配备不同DBA的情况越来越少见了今天的DBA必须跨平台管理不同的RDBMS这是非常普通的事

%的DBA被要求管理一种以上的数据库平台

―――来自的调查

通常一个DBA不但掌握基本的关系理论知识同时具备一种专门的RDBMS经验数据库设计和管理的基本原理在所有RDBMS之间是相通的成为一名成功的跨平台的DBA关键是掌握对术语的真正理解和不同RDBMS的细微差别本文将讨论多平台的Oracle和DB UDB之间的基本架构和管理的差异

基本组件

在不同平台之间大部分的对象类型和功能是非常相似的一些很重要差异是存储过程的使用方式和日志生成方式本文将详细讨论这些主题

基本数据库组件中的常用术语的差异

产品选项

当在安装任何一种数据库时需要选择版本为了满足你的 IT需求并做出正确的决定了解各个数据库版本之间的差异是很重要的

Oracle g

Enterprise Edition

Standard Edition

Express Edition

企业版是使用最多的版本如果你想使用OEM附加包这个版本可以满足需要

DB UDB for Linux/Unix/Windows(LUW) V

数据仓库版

企业服务器版(ESE)

工作组版

简化版

个人版

通用开发版

个人开发版

在DB UDB V 之前在公司环境方面你有两种选择企业版(Enterprise EditionEE)和扩展企业版(Extended Enterprise EditionEEE)他们一般被分别称为Double E和 Triple EEEE是并发式服务器类型环境与Oracle中的RAC很相似它通常是被应用于巨型数据仓库的安装IBM把这些底层代码和V融合到一起就是现在大家知道的企业服务器版(ESE)数据分区部件(DPF)是一个可供数据库分区使用的附加部件这使得系统从EE类型的环境到EEE环境的迁移工作变得很容易

数据类型

甚至每个品牌的数据库存储的数据格式都是不一样的这对那些被分配在一个不熟悉的数据库上工作的DBA和开发人员来说是十分头疼的

下面的表说明了数据库之间不同的数据类型

数据字典/编目

这两个RDBMS将与数据库相关的元数据存放在一组相关的表中这些表在ORACLE中被称为数据字典在DB中被称为系统编目(System Catalog for DB)

ORACLE在SYS模式中有一组数据字典的基本表在这些基本表上面定义了一组存储系统信息和对象信息的视图一组视图即V$视图可以访问动态性能信息属于对象的静态信息可以从以ALL_ DBA_ 和 USER_开头的视图中获得

在DB每个数据库包含的SYSIBM模式中有一组基本表称为系统编目在SYSCAT模式中对象信息通常能在这些表之上定义的一组视图中获得此外DB在SYSTAT模式中提供了可更新的和主要用于操作访问路径的一组视图

访问数据库

每一个数据库供应商都自己提供一套唯一工具来访问和管理他们自己的数据库

Oracle 企业管理器(OEM)

OEM提供了一些基本的数据库管理功能想使用更多高级的功能必须购买附加的包

变更管理包

诊断包

调整包

恢复管理包

SQLPLUS基本命令行接口

IBM控制中心(CC)

控制中心规定了基本的数据库管理的特征比如创建/删除对象工具/命令生成以及一些接口Command Center Script Center Visual Explain

IBM健康中心(HC)

从DB LUW V 开始IBM就引入了自主计算思想这是一个自我修复数据库中的概念自主计算的概念还处于早期发展阶段而健康中心允许你在数据库中为各种不同性能度量值定义阈值如果超过阈值会自动报警

相同的术语不同的含义

管理不同类型的数据库的第一步就是要了解各个供应商使用的不同的术语在很多情形下相同的术语的含义或者稍有不同或者完全不同

举例

存储过程

Oracle它是用基于SQL的一种专门语言PL/SQL编写的存储在数据库中的一个程序

DB存储过程是一种最普通的程序存储在数据库外部并在数据库中注册以标准编程语言编写比如CJAVACOBOL等DB同样支持内部的存储过程并提供了一种基于SQL的专门的过程式语言

Oracle一组PL/SQL语句块

DB一种预编译的访问计划

段(Segment)

Oracle是一个物理对象比如表或索引

DB表空间中的一组页面

不同的术语相似的含义

对于大部分而言每种类型数据库都包含很多相似的组件但它们命名不同实现也不同

实例(Instance)&数据库

大家知道每个DBMS的物理安装就是一个实例然而各自处理数据库的方式是明显的不同

两个DBMS都把实例定义为一组进程然而DB LUW 允许一个或多个活动的数据库Oracle每个实例仅仅只有一个数据库在Oracle中通常实例和数据库是可以互换的概念

实例定义的差异

存储管理

从逻辑观点上来看Oracle有一个包含多个表空间的数据库表空间包含多个段(表索引回滚等)还包括由多个数据库块组成的扩展(Extent)从物理意义上看数据文件被分配给表空间这些数据文件是由O/S块组成

DB有两种不同的分配方法来定义表空间它们一种是数据库管理的空间(DMS)另一种是系统管理的空间(SMS)根据应用程序它们各有优势

SMS(System Manages Space)系统管理空间允许操作系统根据需要为表分配空间不指定空间参数这种方法对于存储管理来说非常容易对于较小的表或短时间增长和收缩的表都是有利的

DMS(Database Managed Space)当表空间被创建时数据库管理空间需要详细的空间说明通过表空间存储空间可以马上被分配和保留

对象比较

缓沖池

两种数据库都使用内存来做数据和对象定义的读写优化这些被涉及到的内存区域被称为缓沖区或高速缓沖存储器虽然使用方法是一样的但在结构方式的定义和分配上是不一样的

在Oracle中缓沖池是在数据库启动文件initora中被定义的这个文件可以动态地改变它有下面的选项来定义不同的缓沖池默认循环固定

在DB LUW中缓沖池是在数据库中定义的并可创建为指定的页面大小KKK 或者K它们是通过DDL来定义的不同的表空间被分配不同的缓沖池

数据库

两个数据库管理系统处理数据库的方法是完全不同的在Oracle中你只有一个数据库它包含所有的数据文件重做日志文件控制文件等在DB你可以一个实例有多个数据库然而每个数据库是独立拥有它的实体的每次一个新的数据库的创建都会有相应的编目被创建以及缓沖池和日志文件被定义数据库之间没有任何共享在DB数据库中有三个表空间将被创建

SYSCATSPACE系统编目

TEMPSPACE临时表空间排序等

USERSPACE应用数据的默认表空间

表空间

Oracle在Oracle中你要处理两类表空间系统的和非系统的系统表空间包含数据字典和系统回滚段非系统表空间包含和应用程序相关的所有东西回滚段临时段应用数据以及应用索引这些非系统的表空间也可以分两种类型

永久的用于所有对象比如在UDB中的USERSPACE

临时的用于排序临时工作区等像在UDB中的TEMPSPACE

DB

在DB存在三类表空间

Regular 主要是一般常用的应用数据

Temporary排序

LargeLOBsCLOBsBLOBs

从用户或者程序本身的角度来看表就是表不管数据库类型的事然而从DBA的角度来看对他们的操作有很大差异

Oracle允许在一个表空间中定义一个或多个表并且表和索引是相互独立的除非是在IOT(Indexed Organized Table)这种特殊表的类型下这种情况下索引的叶子页面将包含表的行数据在Oracle中在表上可以定义许多种不同类型的索引包括唯一的不唯一的分区的基于功能和位图其中除位图索引外在Oracle中所有的索引实际上都是由根结点分枝和叶子页面组成的标准B

DB UDB允许在同一个表空间定义一个到多个表而且它的索引是直接关联在表定义上实际上表定义说明了该表上定义的所有索引所在的表空间

DB有三种类型的索引唯一不唯一和簇集

对DB来说簇集索引是会影响表中行的排列次序这与Oracle中的簇集是完全不同的DB也是用标准的B树结构来做索引的

管理的差异

优化

为了保证数据库高速的运行SQL优化是很重要的一部分工作每个数据库都有它们各自不同的SQL优化器其确定如何从数据库中检索数据满足查询的方式各有不同

Oracle你可以选择使用rulesbased 或者costbased来做优化然而你必须注意rulesbased优化在g版本中已经没有了

DBIBM的优化比Oracle更高明这已经历了很长时间的争论DB的优化是严格地使用costbased来做的对于复杂的查询你也有为它指定优化级别的选择权

此外Oracle和DB都可以通过EXPAIN命令在相关的表上增加包含访问路径信息的行数据 Oracle利用Plan_Table这和运行在z/OS上的DB很类似DB的解释输出包含在七个表中记录非常详细

每一个供应商都会为这些访问路径信息提供格式化的工具Oracle在OEM中有基本解释工具或者你也可以使用OEM中调整包里的SQL分析功能DB则通过控制中心提供了易使用的Visual Explain

并行

并行这个概念在这些平台上有很大不同Oracle中的并行需要特殊的硬件配置开始于其产品Oracle Parallel Server(OPSi)后来i版本中变成RAC这里Oracle中并行的概念与在DB z/OS中的SYSPLEX并行的概念非常相似DB的并行要求要使用带DPF(数据分区部件)的ESE(企业服务器版)它们有两种不同的配置

MPP(大规模平行处理)多台机器组成集群每一台机器都有各自单独的处理器

SMP(对称多处理)一台机器上有多个处理器

监控

为了保证应用程序的请求能及时得到响应而不延迟监控数据库性能的任务也是必要的

Oracle它提供一套性能动态视图工具我们通常所说的V$ Views标准SQL通常用于数据库性能信息的监测比如内存硬盘空间使用情况用户和会话信息以及锁等

DB它提供了两种不同的监控选项第一快照监控顾名思义它提供某一时刻性能的信息大量被收集的数据被个系列的监听器所控制事件监听通常是用于特殊事件的跟蹤比如死锁或完成的事务事件监听是一种实际的数据库对象它必须要通过DDL来创建事件监听的输出会写到一个目录或者指定的通道

工具

每一个数据库都有它们各自的命令和工具集用来操作数据库中的数据

()重组数据

Oracle它给你重组数据以很多灵活性你可以使用Import/Export命令来实现或在i企业版里使用Online Redefinition Package(在线重定义包)进行联机重组

DB你可以重组一个表或者一个索引也可以使用一个很不错命令REORGCHK这个命令将产生需要重组的表的报告

()装载数据

Oracle将数据导入表中可以使用SQL*LOADER它有很多选项比如插入追加替换数据多个输入文件等等

DB对于DB来说DBA有两个选择来导入数据装载工具或者导入命令装载工具一般用于装载大量的数据时使用而导入命令则有益于快速地做插入少量的数据的操作无论是导入命令还是装载工具它们都提供添加或替换数据的选项

备份和恢复

做备份和恢复的策略计划是DBA的关键职责根据其运行的具体应用每一个数据库都有很不同的需求

第一个决定是使用日志文件的方法你的应用程序需要时间点的恢复吗?如果是对于Oracle来说你可以选择Archive mode方式的日志对于DB UDB而言你可以选择Log Retain如果你的应用程序没有问题只是想恢复到最近的备份在Oracle中你可以选择No Archive mode 对于DB UDB你可以选择Circular logging(default)

()备份类型

Oracle冷备份是指数据库在离线的情况下做整个数据库的备份包括数据文件控制文件在线重做日志文件Initora

热备份是指联机情况下做的备份

RMAN恢复管理器

导出数据库

DB

数据库在线/离线

表空间

()恢复类型

Oracle

实例恢复从失败的实例中用重做日志来恢复

非归档模式(整个数据库的恢复)

归档模式(基于时间点的恢复)

导入逻辑恢复

DB

崩溃—从异常终止或突然断电中用日志来恢复

前滚—映像拷贝+日志或本地时间(V

版本使用映像拷贝

导入/装载逻辑恢复

还要做很多其他决定如备份的类型和频率逻辑备份还是物理备份备份文件保留多长时间用户是否会中断备份等每个数据库都应该就所有的这些问题有个明确的程序这与应用和操作环境有关

结束语

管理数据库是一件复杂而又很费时间的工作DBA越来越多地被要求管理各种关系型数据库可能来自不同的厂商可能运行在不同的操作系统上

DBA懂得关系数据库的原理是绝对必要的但对于在一个有不同种类的数据库的环境下这是不够的你也需要知道它们的细微差别以及每种数据库的不同的处理没有什么可以替代这些经验和知识但有了标准化的实用工具后对于DBA而言可以使工作过程实现效率的最大化提高并且可以帮助减少导致应用程序出现停机的问题

上一篇:将文件导入到数据库中的方法小结

下一篇:Oracle查看和修改其最大的游标数