【玩转DB2】二、DB2联邦详细操作和踩坑

简介: 建立联邦(建立数据库与数据库联系与问题) 有问题可以找小可玩,评论留言。什么是联邦??建立和另外一个库的关系,换句话说就是我可以在这个库查到另外一个库的表。 本地库连目标数据库1、登陆本地服务器数据库 切换到对应的用户:su - 本地库用户名 连接本地库:db2 connect to 本地库 user 本地库用户名 using 本地用户密码 2、开启联邦支持开启联邦支持,查看数据库管理配置文件,FEDERATED属性 db2 get dbm cfg 如联邦属性为NO, 则需开启属性,重启数据库。

建立联邦(建立数据库与数据库联系与问题)

有问题可以找小可玩,评论留言。
什么是联邦??建立和另外一个库的关系,换句话说就是我可以在这个库查到另外一个库的表。

本地库连目标数据库
1、登陆本地服务器数据库

切换到对应的用户:su - 本地库用户名
连接本地库:db2 connect to 本地库 user 本地库用户名 using 本地用户密码

2、开启联邦支持
开启联邦支持,查看数据库管理配置文件,FEDERATED属性

db2 get dbm cfg

_

如联邦属性为NO, 则需开启属性,重启数据库。

1.cd /家/本地库用户名/
2.db2 get dbm cfg | grep -i federated                 ----查询命令
3.db2 update dbm cfg using federated yes   ---重置命令
4.db2stop force
5.db2start

3、编目目标数据库信息(编目数据库名称不能超过8位)

db2 catalog tcpip node 节点名 remote  ip地址 server 端口;
db2 catalog db 目标数据库名字 as 取得别名 at  node 节点名;
db2 terminate;(一定要提交,当你执行提交的时候就会退出数据库连接,切记!!)
查看是否创建成功
db2 list node directory
db2 list db directory

_

4、建立联邦:创建Wrapper, Server, Mapping
创建Wrapper(这个联邦N次只需要创建一次)

db2 create wrapper drda

创建Server
命令格式:

db2 "create server  自定义服务器名字  type DB2/UDB version 9.7 wrapper "DRDA" authorization 对方用户 password  对方密码 options (NODE 'node_name',dbname '对方数据库')"
db2 "create server EDWSVR type DB2/UDB version 9.7 wrapper "drda" authorization \"edwinst\" password \"edwinst\" options(NODE 'N_EDW',DBNAME 'EDW') "

创建MAPPING

命令格式:  db2 "create user mapping for 本地用户 server <server_name> options (remote_authid '对方用户', remote_password '对方密码')"
db2 "create user mapping for \"db2inst1\" server payment1svr options (remote_authid 'db2inst2',remote_password 'db2inst2')"

5、建立联邦关系

db2 "create nickname <schema.table_alias_name> for <server_name.对方用户名.table>"
db2 "create nickname DSA.EDWCOLUMNS for QKDB1SVR.SYSCAT.COLUMNS"

6、遇见问题
1、关于通信问题之类的错误。
先检查编目是不是有问题。试着去连一下编目的数据库。

db2 list db directory
db2 list node directory

在检查是不是开启联邦了。如果是no就按照上面步骤去做。

db2 get dbm cfg | grep -i federated                 ----查询命令

如果编目检查没有问题,语法写的也没有问题,联邦也开启了都没有问题,那就重启下数据库。
遇见问题:

db2 "create server PASSVR type DB2/UDB version 10.5 wrapper "drda" authorization \"pasinst\" password \"pasinst\" options(NODE 'N_PASDB',DBNAME 'PASDB') "

报错信息:

DB21034E  The command was processed as an SQL statement because it was not a 
valid Command Line Processor command.  During SQL processing it returned:
SQL30080N  A communication error "111" occurred sending or receiving data from 
the remote database.  SQLSTATE=08001

解决办法:
找了很久,然后重启edw数据库,然后在执行一遍好了!!所以很无语。
2、常用的联邦sql。
遇见问题:
建立联邦的时候,编目完去连了一下编目的库,发现成功了!但是没有db2 terminate 所以没有退出来!导致我语句执行到联邦所在的库了,反调了,所以需要删除一些东西。
问题解决:

db2 "list node directory"
db2 "list db directory"
db2 "drop nickname 要删的联邦表名"
db2 "drop USER MAPPING FOR \"dainst\" server QKDB1SVR "
db2 "drop server 删的服务名字"
db2 "drop wrapper drda"
db2 uncatalog node 节点名   (取消节点的编目)
db2 uncatalog db 取得别名 /  数据库名字 (取消数据库的编目)

上面语句可能会用到。这次掉在db2 terminate这个坑里了,不知道这个还可以退出。

相关文章
|
关系型数据库 Linux
|
SQL 分布式数据库 数据库
|
存储 SQL 关系型数据库
|
存储 关系型数据库 数据库
【DB2学习文档之五】设置DB2环境
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.级别对应 • Environment variables at the operating system level • The DB2 profile registry variable...
977 0
|
SQL 存储 关系型数据库
【DB2学习文档之七】SQL for DB2
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.SQL的数据操作语言data manipulation language (DML) 参见Beginning SQL Queries: From Novice to Professional, by Clare Churcher (Apress, 2008) 2.Select语句 这个语句是DB2中最简单也最复杂的语句,它包含六部分: select :列出列名或相关结构。
1133 0
|
Unix 关系型数据库 Shell
【DB2学习文档之一】初步安装
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.以本地语言显示 db2setup 命令 db2setup 命令用于查询操作系统以确定现有的语言设置。
1130 0
|
SQL 关系型数据库 数据库
【DB2学习】迁移数据之EXPROT
db2 => connect to sample   数据库连接信息  数据库服务器         = DB2/NT 9.5.0 SQL 授权标识         = YANG 本地数据库别名       = SAMPLEdb2 => export to d:\employee.
955 0
|
存储 关系型数据库
自己开发DB2工具 (11)
目前公司内部开发后台这块主要用的工具还是QC 4.8 ,但是QC4.8有个问题就是在导出一些特别长的存储过程的时候会出错发生截断现象。
770 0