分享
 
 
 

深入探讨联邦数据库系统基本诊断信息的获取

王朝other·作者佚名  2008-08-01
窄屏简体版  字體: |||超大  

本文阐述联邦系统的系统表及视图,并讲解了如何获取联邦系统中基本的有效信息并利用其来对遇到的故障进行诊断分析。

引言

联邦数据库系统是一种基于 DB2 实现的分布式数据管理系统,由于其屏蔽了各种数据源之间的差异,能够实时,快捷的对异构数据源的数据进行操作,得到了广泛的应用。同任何产品一样,普通用户在使用联邦系统的的过程中,必然会遇到一些问题,这些问题一部分是系统自身的设计缺陷造成的,但是还有很大部分是由于用户没有遵循产品使用的规则,没有注意到使用各项特性的先决条件造成的,本文正是针对此类问题,从联邦系统目录和视图的角度出发,描述了其相关的系统表信息,并介绍了如何获取并利用这些信息来对故障进行定位,从而更有效率的解决此类问题。本文面向对象需要了解联邦系统相关知识,并理解其内建对象(用户映射,函数映射,别名等)。

联邦系统系统目录信息介绍

系统目录表

如前所述,联邦系统基于 DB2 实现,它利用了 DB2 的系统表来存储远程数据源相关的系统信息,如 SYSIBM.TABLES, SYSIBM.INDEXES,SYSIBM.COLUMNS,SYSIBM.ROUTINES 等,同时对于那些联邦系统特有的对象和特性 , 设计了专门的系统表来存储相关信息,这些表包括:

◆SYSIBM.SYSWRAPPERS:每一行代表注册过的转换器 (wrapper)

◆SYSIBM.SYSSERVERS: 每一行代表了数据源的信息,如数据源版本号,类型等。

◆SYSIBM.SYSFUNCMAPPINGS: 包括函数映射的基本信息如函数映射名,基于服务器的名字等等,一般可以用来判断找不到相应函数这类的错误。

◆SYSIBM.SYSSERVEROPTIONS: 包括对服务器选项的设置信息,如 Collating_sequence,PROXY_AUTHID 等,这些选项的设置可以对查询性能产生影响。

◆SYSIBM.SYSTYPEMAPPINGS: 包括数据类型映射的基本信息,如联邦服务器这一侧的数据类型和远程数据源短的数据类型的对应关系,一般用于判断数据类型相关的错误。

◆SYSIBM.SYSUSEROPTIONS: 在这个表中包括了用户选项及其设置值,如连接远程数据源使用的用户名和密码信息 (REMOTE_AUTHID, REMOTE_PASSWORD) 等,一般可以用于判断连接错误或者访问权限错误 ( 配合 DB2 本身的 SYSDBAUTH 系统表 )

◆SYSIBM.SYSWRAPOPTIONS: 其中包含了关于创建的转换器的一些可选信息,例如在使用转换器的时候是否使用“ Trusted ”或者“ Fenced ”选项。

除此以外,联邦系统特定的系统表还包括 SYSIBM.SYSPASSTHRUAUTH,SYSIBM.SYSFUNCMAPPARMOPTIONS,SYSIBM.SYSFUNCMAPOPTIONS。在联邦系统中,各系统表中的信息在正确情况下应该是一致的,例如对于每条 SYSIBM.SYSSERVERS 中的记录,在 SYSIBM.SYSWRAPPERS 中总有一条记录与此服务基于的转换器对应。如果出现不一致的情况,那么表示系统的缺陷导致了系统表的混乱。

系统可读视图和可更新视图

除了系统表外,为了查询方便和权限管理起见,同 DB2 一样,联邦系统也存在着一些可读的系统视图如下:

清单1. 系统可读视图

SYSCAT.FUNCMAPPINGS

SYSCAT.FUNCMAPPARMOPTIONS

SYSCAT.FUNCMAPOPTIONS

SYSCAT.NICKNAMES

SYSCAT.PASSTHRUAUTH

SYSCAT.SERVEROPTIONS

SYSCAT.SERVERS

SYSCAT.TYPEMAPPINGS

SYSCAT.USEROPTIONS

SYSCAT.ROUTINESFEDERATED

这些可读视图为用户查询特定的信息提供了方便,如 SYSCAT.ROUTINESFEDERATED 就从 SYSIBM.SYSROUTINES 和 SYSCAT.ROUTINEOPTIONS 中提取出了联邦系统相关的例程信息,方便了用户的查询。

因为联邦系统的查询相关的统计信息等和所有的 DB2 查询统计信息一样,可以通过 DB2 可更新的视图来更新,因此联邦系统不具有单独的可被更新的系统视图。

获取解决问题信息的方法

1. db2look

如果用户在遇到故障的时候,忘记了自己做过什么操作或者由于操作过多,那么在用户操作引发错误的时候,往往知道引发这个问题的直接操作是什么,但是并不能获取可能引发错误的所有操作的信息用于诊断。DB2 本身提供了强大的工具 (db2support) 可以还原用户的环境,但是对于普通用户而非开发人员来讲,从这些信息里提取有用的信息非常困难,而 db2look 其简洁灵活的特点是其更加适用于普通用户的分析。对一般用户来讲,最常用的两个选项为 -d 和 -e 选项。

2. db2cat

db2cat 是得到联邦系统和远程数据源系统的信息的又一种工具,通过其打印出来的各种信息和我们直接从 catalog 表中取得的数据理论上应该是一致的,其 -p 选项后的 server 和 remote 选项值为联邦系统专有,别名 (nickname) 被做为本地表来进行存储和处理。注意 db2cat 并不能获得用户映射和函数映射这样的信息,对于这类信息我们只能通过直接查询系统表或系统试图来获得。我们可以利用 db2cat -h 选项来查看其更详细的用法。

3. 直接从系统表中查询相应信息

应用举例

1.直接查询系统目录表信息举例

以如何解决下面创建别名的时候遇到的权限问题为例来说明系统目录表的信息应用。

清单2. 为远程表创建别名

db2 => create nickname N2 for DATASTORE2.J15USER1.tab1

DB21034E The command was processed as an SQL statement

because it was not a valid Command Line Processor command.

During SQL processing it returned:

SQL0551N “ZURBIE” does not have the privilege to perform

operation “CREATE NICKNAME” on object “ZURBIE.N2”. SQLSTATE=42501

为了解决上述问题,我们可以首先查询用户选项表 (SYSCAT.USEROPTIONS) 来判断是否已经为当前用户 ZURBIE 建立了到远程数据源的用户映射 , 查询如下:

清单3.通过查询系统目录获得的用户映射信息

db2 => select authid from syscat.useroptions where

servername = 'DATASTORE2' and option = 'REMOTE_AUTHID' and setting = 'J15USER1'

AUTHID

----------------------

LISHD

1 record(s) selected.

从中我们可以看到并没有 Zurbie 相关的用户映射,从而确定以上结果是正常的输出。如果存在相应的用户映射,那么我们可以通过查询 SYSCAT.DBAUTH 来确定用户对联邦系统操作的权限。

2.使用 db2cat 进行故障诊断

下面给出了更改已经创建的服务器端相应选项时遇到的错误:

清单4. 设置服务器选项

db2 => alter server NET8_SERVER options(set wrong_opt 'WRONG')

DB21034E The command was processed as an SQL statement

because it was not a valid Command Line Processor command.

During SQL processing it returned:

SQL1881N “WRONG_OPT” is not a valid “SERVER” option for “NET8_SERVER”.

SQLSTATE=428EE

这类问题我们也可以通过直接查询 syscat.serveroptions 系统试图来判断此服务器选项是否真的存在,不过这里给出利用 db2cat 来查询服务器端相关信息的方法,我们可以利用如下命令:

db2cat –d test1 –s LISHD –p server –n NET8_SERVER –o output.pd

可以查看输出得到如下,从中可以发现并没有相应的选项,所以输出结果也是正常的。

清单5.通过db2cat查询到的服务器选项结果

$ vi output.pd

output.pd 41 lines,836 characters

DB2 Version 9.5,5622-044 (c) Copyright IBM Corp. 2007

Licensed Material - Program Property of IBM

IBM DATABASE 2 Catalog Analysis and Repair Tool

Please use single quote for delimited name

---------------------------------------------

SYSSERVERS.SERVER_DESC:

SYSSERVERS.SERVER_DESC HEADER

-----------------------------

SERVER IDENTIFICATION:

Wrapper Name :NET8

Server Name :NET8_SERVER

Server Type :ORACLE

Server Version :10.1

SERVER OPTIONS

-------------------------------

Name :NODE

Value :ora10g

Uid :SQL080403001500734

TimeStamp: {2008-04-03-00.15.00734363}

DATA TYPE MAPPINGS

---------------------------------

No Data Type Mappings

FUNCTION MAPPINGS

--------------------------------

No Function Mappings

3.真正的问题

一般来讲,如果在执行 DDL 语句是遇到的错误,那么一般可以根据查询系统表和 db2cat 打印相关对象信息的方法来定位是产品的缺陷,如果是使用错误一般也可以从中得到相应的解决方法。诸如查询效率低下或者查询时遇到的相关问题等问题不但需要用户熟悉系统表的组织,同时也需要用户清楚自己数据源的特性,比如需要检查服务器选项值的设置是否正确,如 collating_sequence,varchar_no_trailing_blanks 等,或者要检查统计信息是否正确 ( 例如,可以通过 syscat.coldist 获知列的分布情况,由此得知统计信息正确与否 )。一般说来当在用户文档中查询不到对遇到的错误的详细解释说明时 ( 如 SQL901N), 或者联邦系统停止在正在运行的操作上时此类错误是产品的缺陷,这是一种极少发生的情形。

总结

联邦系统的系统目录信息保存了联邦系统特有对象的描述信息,产品同时还提供了一些系统视图来简化对相关信息的查询。本文通过分析系统目录的信息,简要地描述了如何从系统目录中获得诊断相关的信息,并给出了相应的例子。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有