【玩转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这个坑里了,不知道这个还可以退出。

相关文章
|
存储 Oracle 关系型数据库
|
关系型数据库 Linux
|
SQL 分布式数据库 数据库
|
存储 关系型数据库 数据库
【DB2学习文档之五】设置DB2环境
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.级别对应 • Environment variables at the operating system level • The DB2 profile registry variable...
985 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 :列出列名或相关结构。
1142 0
|
Unix 关系型数据库 Shell
【DB2学习文档之一】初步安装
作者:gnuhpc 出处:http://www.cnblogs.com/gnuhpc/ 1.以本地语言显示 db2setup 命令 db2setup 命令用于查询操作系统以确定现有的语言设置。
1135 0
|
SQL 关系型数据库 数据库
【DB2学习】迁移数据之EXPROT
db2 => connect to sample   数据库连接信息  数据库服务器         = DB2/NT 9.5.0 SQL 授权标识         = YANG 本地数据库别名       = SAMPLEdb2 => export to d:\employee.
960 0
|
关系型数据库 Java Ubuntu
自己开发DB2工具
很久没上来看看了。早2天有在本本上装上了Ubuntu ,这次终于可以在Ubuntu上看RMVB格式的电影了。
833 0