博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2联邦重点
阅读量:6431 次
发布时间:2019-06-23

本文共 3848 字,大约阅读时间需要 12 分钟。

  hot3.png

DB2联邦重点

1.用户信息存储在syscat.useroptions中。通过create user mapping建立本地用户和远地用户的对应。

2.pass-through session:

直接把请求通过wrapper传给远程数据库。这样的话就可以不用nickname直接访问远端的表了。

3.indexes只有在建立nickname的时候才会在global catalog中建立条目。之后的index不会自动同步。

4.主要涉及的几个对象

wrappers
server definitions and options
user mappings
nicknames

5.wrapper一般运行在db2fmp中。

6.查看有哪些wrapper:

db2 “select substr(wrapname,1,16) as name,wraptype,wrapversion,substr(library,1,16) as library,substr(remarks,1,16) as remarks from SYSCAT.WRAPPERS ”

查看wrapper的属性(列式显示):

db2 “select substr(wrapname,1,16) as name, option,setting from SYSCAT.WRAPOPTIONS”

7.查看有哪些server:

db2 “select substr(wrapname,1,16) as wrapname,substr(servername,1,16) as servername,servertype,serverversion,substr(remarks,1,16) as remarks from SYSCAT.SERVERS”

查看erver的属性(列式显示):

db2 “select substr(wrapname,1,16) as wrapname,substr(servername,1,16) as servername,servertype,serverversion,create_time,substr(option,1,16) as option,substr(setting,1,16) as setting,substr(remarks,1,16) as remarks from SYSCAT.SERVEROPTIONS”

8.查看user mapping(列式显示):

db2 “select substr(authid,1,16) as authid,authidtype,substr(servername,1,16) as servername,substr(option,1,16) as option,substr(setting,1,16) as setting from syscat.useroptions”

9.删除相关对象(注意,删除高层次的东东会的连带的把下面的其它东东都删除,比如wrapper删了,那么建立在上面的server也会被删除):

drop wrapper XXX
drop server XXX
drop user mapping for USER_XXX server XXX
drop nickname XXX

10.类型转换

一般情况下在建立nickname的时候在syscat.columns中会的有对应的类型。一般都是默认转的,不过如果SYSCAT.TYPEMAPPINGS中有自定义的转换的话,就不是默认转的了。

可以用下面的方法自定义转换:

CREATE TYPE MAPPING ORA_DEC FROM SYSIBM.DECIMAL(8,2) TO SERVER TYPE ORACLE VERSION 8.0.3 TYPE NUMBER(23,3)

11.index

1.如果在一个table的nickname上使用create index,那么会的收集该表的索引信息
2.如果在一个view的nickname上使用create index,那么会收集view的table的索引信息

所以对于联邦库来说,建立索引只是告诉编目表在nickname上有这么一个东西。因此语法后面要加个specification only:

CREATE INDEX index_name ON nickname(column_name) SPECIFICATION ONLY

12. Transparent DDL

通过Transparent DDL,不使用pass-through session也能修改远端数据库的DDL。

支持下面几种:

create table
alter table
drop table

语法类似下面(会的自动建立同名的nickname):

CREATE TABLE EMPLOY
( EMP_NO CHAR(6) NOT NULL,
FIRSTNAME VARCHAR(12) NOT NULL,
MIDINT CHAR(1) NOT NULL,
LASTNAME VARCHAR(15) NOT NULL,
HIREDATE DATE,
JOB CHAR(8),
SALARY DECIMAL(9,2),
PRIMARY KEY (EMP_NO) )
–下面是重点
OPTIONS (REMOTE_SERVER ’ORASERVER’,
REMOTE_SCHEMA ’J15USER1’, REMOTE_TABNAME ’EMPLOY’ )

13.create server时候指定的用户名不是用于之后的连接的,这个用户名只用于DB2直接的联邦,需要有bindadd权限。这个用户用来自动bind必要的包。

14.一个例子(DB2)

1.首先确保federated的server的FEDERATED 实例参数是YES
2.确保 MAX_CONNECTIONS=MAX_COORDAGENTS
–下面几步用于确保需要的library能找到
3.在db2dj.ini配上合适的环境变量(DB2不用这一步),然后重启实例。路径一般是instancehome/sqllib/cfg/db2dj.ini或%DB2PATH%\cfg\db2dj.ini
4.确保library能找到(DB2不用这一步)
–开始建立DB2与DB2之间的联邦
5.编目数据源的数据库节点:
db2 catalog tcpip node ntdb2 remote 192.168.19.32 server 50000
6.编目数据源的数据库:
db2 catalog database cgcsldms as cgcsldms at node ntdb2 authentication server
7.注册DB2的wrapper(这里使用默认名DRDA,这样的话就不用手工指定library了。否则需要加library参数):
[db2inst1@DB2_105 ~]$ db2 connect to infodms1

Database Connection Information

Database server = DB2/LINUXX8664 10.5.0

SQL authorization ID = DB2INST1
Local database alias = INFODMS1

[db2inst1@DB2_105 ~]$ db2 create wrapper drda

DB20000I The SQL command completed successfully.
8.注册server(server type参考Federation > Administering federation > Data types and data type mappings):
db2 “create server cgcslsv type DB2/UDB version 9.7 wrapper drda authorization \”administrator\” password \”P@ssw0rd\” options(dbname ‘CGCSLDMS’)”9.配置user mapping:
db2 “create user mapping for db2inst1 server cgcslsv options(remote_authid ‘administrator’, remote_password ‘P@ssw0rd’)”
10.测试一下是否ok:
db2 set passthru cgcslsv
db2 “select count(*) from t”
db2 set passthru reset
11.设置nickname:
db2 “create nickname tl for cgcslsv.administrator.t”
测试一下:
db2 “select * from tl”

15.联邦库可能会在数据源处锁等,这个时候在联邦库处查看看不到锁等,但是在数据源处查看可以看到锁等。说明这个锁等时间是算在数据源处的。

转载于:https://my.oschina.net/kcw/blog/607676

你可能感兴趣的文章
linux设置开机自启动
查看>>
安装pypcap = 安装flex:the fast lexical analyser + 安装libpcap-1.7.4
查看>>
property相关参数介绍
查看>>
java多线程系类:JUC集合:01之框架
查看>>
Leetcode: Find Permutation(Unsolve lock problem)
查看>>
【Linux】 源码安装make命令详解,避免踩坑
查看>>
数据库中间表插入乱序
查看>>
[Python爬虫] 之四:Selenium 抓取微博数据
查看>>
使用OPENROWSET爆破SQL Server密码
查看>>
Mac_安装Homebrew以及Maven
查看>>
eclipse web开发Server配置
查看>>
曹政--互联网搜索老师傅
查看>>
谁动了我的cpu——oprofile使用札记(转)
查看>>
delphi的一些语法知识 以及参数传递问题,按引用方式传递参数,按值方式传递参数...
查看>>
2017.10.25水题大作战题解
查看>>
深入理解MySQL的并发控制、锁和事务【转】
查看>>
Disk
查看>>
MUI框架开发HTML5手机APP(一)--搭建第一个手机APP(转)
查看>>
linux下使用 du查看某个文件或目录占用磁盘空间的大小
查看>>
Android水波纹特效的简单实现
查看>>