国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

深入探討聯(lián)邦數(shù)據(jù)庫系統(tǒng)基本診斷信息的獲取

2024-07-21 02:44:21
字體:
供稿:網(wǎng)友

本文闡述聯(lián)邦系統(tǒng)的系統(tǒng)表及視圖,并講解了如何獲取聯(lián)邦系統(tǒng)中基本的有效信息并利用其來對(duì)遇到的故障進(jìn)行診斷分析。

引言


聯(lián)邦數(shù)據(jù)庫系統(tǒng)是一種基于 DB2 實(shí)現(xiàn)的分布式數(shù)據(jù)管理系統(tǒng),由于其屏蔽了各種數(shù)據(jù)源之間的差異,能夠?qū)崟r(shí),快捷的對(duì)異構(gòu)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行操作,得到了廣泛的應(yīng)用。同任何產(chǎn)品一樣,普通用戶在使用聯(lián)邦系統(tǒng)的的過程中,必然會(huì)遇到一些問題,這些問題一部分是系統(tǒng)自身的設(shè)計(jì)缺陷造成的,但是還有很大部分是由于用戶沒有遵循產(chǎn)品使用的規(guī)則,沒有注意到使用各項(xiàng)特性的先決條件造成的,本文正是針對(duì)此類問題,從聯(lián)邦系統(tǒng)目錄和視圖的角度出發(fā),描述了其相關(guān)的系統(tǒng)表信息,并介紹了如何獲取并利用這些信息來對(duì)故障進(jìn)行定位,從而更有效率的解決此類問題。本文面向?qū)ο笮枰私饴?lián)邦系統(tǒng)相關(guān)知識(shí),并理解其內(nèi)建對(duì)象(用戶映射,函數(shù)映射,別名等)。

聯(lián)邦系統(tǒng)系統(tǒng)目錄信息介紹


系統(tǒng)目錄表


如前所述,聯(lián)邦系統(tǒng)基于 DB2 實(shí)現(xiàn),它利用了 DB2 的系統(tǒng)表來存儲(chǔ)遠(yuǎn)程數(shù)據(jù)源相關(guān)的系統(tǒng)信息,如 SYSIBM.TABLES, SYSIBM.INDEXES,SYSIBM.COLUMNS,SYSIBM.ROUTINES 等,同時(shí)對(duì)于那些聯(lián)邦系統(tǒng)特有的對(duì)象和特性 , 設(shè)計(jì)了專門的系統(tǒng)表來存儲(chǔ)相關(guān)信息,這些表包括:


◆SYSIBM.SYSWRAPPERS:每一行代表注冊(cè)過的轉(zhuǎn)換器 (wrapper)

◆SYSIBM.SYSSERVERS: 每一行代表了數(shù)據(jù)源的信息,如數(shù)據(jù)源版本號(hào),類型等。

◆SYSIBM.SYSFUNCMAPPINGS: 包括函數(shù)映射的基本信息如函數(shù)映射名,基于服務(wù)器的名字等等,一般可以用來判斷找不到相應(yīng)函數(shù)這類的錯(cuò)誤。

◆SYSIBM.SYSSERVEROPTIONS: 包括對(duì)服務(wù)器選項(xiàng)的設(shè)置信息,如 Collating_sequence,PROXY_AUTHID 等,這些選項(xiàng)的設(shè)置可以對(duì)查詢性能產(chǎn)生影響。

◆SYSIBM.SYSTYPEMAPPINGS: 包括數(shù)據(jù)類型映射的基本信息,如聯(lián)邦服務(wù)器這一側(cè)的數(shù)據(jù)類型和遠(yuǎn)程數(shù)據(jù)源短的數(shù)據(jù)類型的對(duì)應(yīng)關(guān)系,一般用于判斷數(shù)據(jù)類型相關(guān)的錯(cuò)誤。

◆SYSIBM.SYSUSEROPTIONS: 在這個(gè)表中包括了用戶選項(xiàng)及其設(shè)置值,如連接遠(yuǎn)程數(shù)據(jù)源使用的用戶名和密碼信息 (REMOTE_AUTHID, REMOTE_PASSWord) 等,一般可以用于判斷連接錯(cuò)誤或者訪問權(quán)限錯(cuò)誤 ( 配合 DB2 本身的 SYSDBAUTH 系統(tǒng)表 )

◆SYSIBM.SYSWRAPOPTIONS: 其中包含了關(guān)于創(chuàng)建的轉(zhuǎn)換器的一些可選信息,例如在使用轉(zhuǎn)換器的時(shí)候是否使用“ Trusted ”或者“ Fenced ”選項(xiàng)。

除此以外,聯(lián)邦系統(tǒng)特定的系統(tǒng)表還包括 SYSIBM.SYSPASSTHRUAUTH,SYSIBM.SYSFUNCMAPPARMOPTIONS,SYSIBM.SYSFUNCMAPOPTIONS。在聯(lián)邦系統(tǒng)中,各系統(tǒng)表中的信息在正確情況下應(yīng)該是一致的,例如對(duì)于每條 SYSIBM.SYSSERVERS 中的記錄,在 SYSIBM.SYSWRAPPERS 中總有一條記錄與此服務(wù)基于的轉(zhuǎn)換器對(duì)應(yīng)。如果出現(xiàn)不一致的情況,那么表示系統(tǒng)的缺陷導(dǎo)致了系統(tǒng)表的混亂。


系統(tǒng)可讀視圖和可更新視圖


除了系統(tǒng)表外,為了查詢方便和權(quán)限管理起見,同 DB2 一樣,聯(lián)邦系統(tǒng)也存在著一些可讀的系統(tǒng)視圖如下:

 

清單1. 系統(tǒng)可讀視圖


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 中提取出了聯(lián)邦系統(tǒng)相關(guān)的例程信息,方便了用戶的查詢。


因?yàn)槁?lián)邦系統(tǒng)的查詢相關(guān)的統(tǒng)計(jì)信息等和所有的 DB2 查詢統(tǒng)計(jì)信息一樣,可以通過 DB2 可更新的視圖來更新,因此聯(lián)邦系統(tǒng)不具有單獨(dú)的可被更新的系統(tǒng)視圖。

獲取解決問題信息的方法


1. db2look


如果用戶在遇到故障的時(shí)候,忘記了自己做過什么操作或者由于操作過多,那么在用戶操作引發(fā)錯(cuò)誤的時(shí)候,往往知道引發(fā)這個(gè)問題的直接操作是什么,但是并不能獲取可能引發(fā)錯(cuò)誤的所有操作的信息用于診斷。DB2 本身提供了強(qiáng)大的工具 (db2support) 可以還原用戶的環(huán)境,但是對(duì)于普通用戶而非開發(fā)人員來講,從這些信息里提取有用的信息非常困難,而 db2look 其簡(jiǎn)潔靈活的特點(diǎn)是其更加適用于普通用戶的分析。對(duì)一般用戶來講,最常用的兩個(gè)選項(xiàng)為 -d 和 -e 選項(xiàng)。


2. db2cat


db2cat 是得到聯(lián)邦系統(tǒng)和遠(yuǎn)程數(shù)據(jù)源系統(tǒng)的信息的又一種工具,通過其打印出來的各種信息和我們直接從 catalog 表中取得的數(shù)據(jù)理論上應(yīng)該是一致的,其 -p 選項(xiàng)后的 server 和 remote 選項(xiàng)值為聯(lián)邦系統(tǒng)專有,別名 (nickname) 被做為本地表來進(jìn)行存儲(chǔ)和處理。注意 db2cat 并不能獲得用戶映射和函數(shù)映射這樣的信息,對(duì)于這類信息我們只能通過直接查詢系統(tǒng)表或系統(tǒng)試圖來獲得。我們可以利用 db2cat -h 選項(xiàng)來查看其更詳細(xì)的用法。


3. 直接從系統(tǒng)表中查詢相應(yīng)信息

應(yīng)用舉例


1.直接查詢系統(tǒng)目錄表信息舉例


以如何解決下面創(chuàng)建別名的時(shí)候遇到的權(quán)限問題為例來說明系統(tǒng)目錄表的信息應(yīng)用。

 

清單2. 為遠(yuǎn)程表創(chuàng)建別名


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

 

 

為了解決上述問題,我們可以首先查詢用戶選項(xiàng)表 (SYSCAT.USEROPTIONS) 來判斷是否已經(jīng)為當(dāng)前用戶 ZURBIE 建立了到遠(yuǎn)程數(shù)據(jù)源的用戶映射 , 查詢?nèi)缦拢?

 

清單3.通過查詢系統(tǒng)目錄獲得的用戶映射信息


db2 => select authid from syscat.useroptions where

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


AUTHID

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

LISHD

1 record(s) selected.

 


從中我們可以看到并沒有 Zurbie 相關(guān)的用戶映射,從而確定以上結(jié)果是正常的輸出。如果存在相應(yīng)的用戶映射,那么我們可以通過查詢 SYSCAT.DBAUTH 來確定用戶對(duì)聯(lián)邦系統(tǒng)操作的權(quán)限。


2.使用 db2cat 進(jìn)行故障診斷


下面給出了更改已經(jīng)創(chuàng)建的服務(wù)器端相應(yīng)選項(xiàng)時(shí)遇到的錯(cuò)誤:

 

清單4. 設(shè)置服務(wù)器選項(xiàng)


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 系統(tǒng)試圖來判斷此服務(wù)器選項(xiàng)是否真的存在,不過這里給出利用 db2cat 來查詢服務(wù)器端相關(guān)信息的方法,我們可以利用如下命令:


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

 


可以查看輸出得到如下,從中可以發(fā)現(xiàn)并沒有相應(yīng)的選項(xiàng),所以輸出結(jié)果也是正常的。

 

清單5.通過db2cat查詢到的服務(wù)器選項(xiàng)結(jié)果


$ 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.真正的問題


一般來講,如果在執(zhí)行 DDL 語句是遇到的錯(cuò)誤,那么一般可以根據(jù)查詢系統(tǒng)表和 db2cat 打印相關(guān)對(duì)象信息的方法來定位是產(chǎn)品的缺陷,如果是使用錯(cuò)誤一般也可以從中得到相應(yīng)的解決方法。諸如查詢效率低下或者查詢時(shí)遇到的相關(guān)問題等問題不但需要用戶熟悉系統(tǒng)表的組織,同時(shí)也需要用戶清楚自己數(shù)據(jù)源的特性,比如需要檢查服務(wù)器選項(xiàng)值的設(shè)置是否正確,如 collating_sequence,varchar_no_trailing_blanks 等,或者要檢查統(tǒng)計(jì)信息是否正確 ( 例如,可以通過 syscat.coldist 獲知列的分布情況,由此得知統(tǒng)計(jì)信息正確與否 )。一般說來當(dāng)在用戶文檔中查詢不到對(duì)遇到的錯(cuò)誤的詳細(xì)解釋說明時(shí) ( 如 SQL901N), 或者聯(lián)邦系統(tǒng)停止在正在運(yùn)行的操作上時(shí)此類錯(cuò)誤是產(chǎn)品的缺陷,這是一種極少發(fā)生的情形。

總結(jié)


聯(lián)邦系統(tǒng)的系統(tǒng)目錄信息保存了聯(lián)邦系統(tǒng)特有對(duì)象的描述信息,產(chǎn)品同時(shí)還提供了一些系統(tǒng)視圖來簡(jiǎn)化對(duì)相關(guān)信息的查詢。本文通過分析系統(tǒng)目錄的信息,簡(jiǎn)要地描述了如何從系統(tǒng)目錄中獲得診斷相關(guān)的信息,并給出了相應(yīng)的例子。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 黑水县| 岗巴县| 济阳县| 南丹县| 阜阳市| 邵阳县| 安乡县| 烟台市| 原阳县| 始兴县| 郸城县| 宣恩县| 民县| 长治县| 视频| 长宁区| 桐乡市| 德阳市| 读书| 德庆县| 岢岚县| 芷江| 东阿县| 长子县| 玛纳斯县| 林州市| 元谋县| 石楼县| 屏东市| 临桂县| 黄浦区| 景谷| 原平市| 镇平县| 高尔夫| 吉首市| 毕节市| 蓬莱市| 沙湾县| 肃北| 赣州市|