文档章节

DB2联邦重点

雁南飞丶
 雁南飞丶
发布于 2016/01/21 21:31
字数 1071
阅读 95
收藏 1

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.联邦库可能会在数据源处锁等,这个时候在联邦库处查看看不到锁等,但是在数据源处查看可以看到锁等。说明这个锁等时间是算在数据源处的。

© 著作权归作者所有

雁南飞丶
粉丝 37
博文 187
码字总数 248167
作品 0
西安
运维
私信 提问
【玩转DB2】二、DB2联邦详细操作和踩坑

建立联邦(建立数据库与数据库联系与问题) 有问题可以找小可玩,评论留言。 什么是联邦??建立和另外一个库的关系,换句话说就是我可以在这个库查到另外一个库的表。 本地库连目标数据库 ...

小可同学
2018/03/06
0
0
DB2 function调用nickname出错

function中select了一个nickname返回一个字段,报 : [VALUES - 0 row(s), 0.007 secs] [Error Code: -438, SQL State: UD999] DB2 SQL Error: SQLCODE=-438, SQLSTATE=UD999, SQLERRMC=出错......

钟小华
2016/08/11
306
1
DB2跨库联合查询

《在源数据库A中访问目标库B的表table1的方法》 db2 =>update dbm cfg using Federated YES //开启数据库联合查询 db2 =>db2stop force db2 =>db2start //重启数据库方可生效 注:开启数据库...

飞雪无痕
2016/12/26
164
0
美国政府推出 Code.gov 平台,提供联邦源代码

美国联邦政府今年8月公布了联邦源码政策(PDF),要求使用联邦政府资金开发的定制软件每年至少需要开源五分之一。 如今,贯彻该政策的 Code.gov 平台推出了,用来改善对联邦政府定制开发软件...

王练
2016/11/04
5.5K
21
将现有的SQL工作负载迁移至hadoop竟然如此简单!

想迁移现有的数据仓库到Hadoop平台?想在Hadoop上重用其他RDMBS的SQL技能?有何方案能帮助您解决这类问题,答案是IBM Big SQL。 Big SQL是IBM的SQL on Hadoop解决方案,它充分利用了IBM在RDB...

勿忘初心321
2016/08/25
43
0

没有更多内容

加载失败,请刷新页面

加载更多

为什么要在网站中应用CDN加速?

1. 网页加载速度更快 在网站中使用CDN技术最直接的一个好处就是它可以加快网页的加载速度。首先,CDN加速的内容分发是基于服务器缓存的,由于CDN中缓存了不少数据,它能够给用户提供更快的页...

云漫网络Ruan
32分钟前
5
0
亚玛芬体育(Amer Sports)和信必优正式启动合作开发Movesense创新

亚玛芬体育和信必优正式启动合作开发Movesense创新,作为亚玛芬体育的完美技术搭档,信必优利用Movesense传感器技术为第三方开发移动应用和服务。 Movesense基于传感器技术和开放的API,测量...

symbiochina88
43分钟前
4
0
创龙TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA核心板规格书

SOM-TL437xF是一款广州创龙基于TI AM437x ARM Cortex-A9 + Xilinx Spartan-6 FPGA芯片设计的核心板,采用沉金无铅工艺的10层板设计,适用于高速数据采集和处理系统、汽车导航、工业自动化等领...

Tronlong创龙
44分钟前
4
0
好程序员Java学习路线分享MyBatis之线程优化

  好程序员Java学习路线分享MyBatis之线程优化,我们的项目存在大量用户同时访问的情况,那么就会出现大量线程并发访问数据库,这样会带来线程同步问题,本章我们将讨论MyBatis的线程同步问...

好程序员官方
50分钟前
6
0
IDEA 自定义方法注解模板

IDEA 自定义方法注解模板 1、使用效果 /*** 计算交易费用* @Author wangjiafang* @Date 2019/9/11* @param feeComputeVo* @return*/@PostMapping("/v1/fee_compute")public ApiResp......

小白的成长
50分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部