如果您需要使用所有不同的数据库,包括选择、插入、更新和删除,就象所有的表都位于单个数据库中那样,那么将获得非常高的工作效率。数据库联邦就是要做到这一点:使所有表看起来象是在同一个数据库中

那么,数据库联邦是怎么工作的?

“联邦者(federator)”系统对远程系统“被联邦者(federatee)”中的表进行操作。远程表在“Federator”数据库中作为虚拟表出现。客户机应用程序可以对“Federator”数据库中的虚拟表执行操作,但是真正的持久性存储位于远程数据库中。

每个“被联邦者”都将“联邦者”看成是另一个数据库客户机连接。“Federatee”只是处理数据库操作的客户机请求。“联邦者”需要用客户机软件来访问每个远程数据库。要访问每种被联邦者,则需要安装 IBM Informix®、Sybase、Oracle 等等的客户机软件。

数据库联邦的应用程序接口是 SQL。与必须学习新接口相比,这大大地提高了工作效率。使用与对本地表进行选择、插入、更新和删除相同的语法来访问远程表。当然也并不是可以进行所有表操作。

下面我们通过实际操作来看看如何配置联邦数据库:

我们先准备好前期工作,创建一个本地数据库和远程数据库来做实验——

本地数据库 :

数据库:LOCALDB

IP地址:192.168.20.138

端口号:60000

用户名:db2inst1

密码:db2inst1

远程数据库 :

数据库:REMOTEDB

IP地址:192.168.20.145

端口号:70000

用户名:db2inst2

密码:db2inst2

另外确保远程数据库的全局设置如下——

现在,我们首先是添加编目节点——

然后编目数据库——

db2 catalog database REMOTEDB as REMOTEDB at node NODE1

查看编目节点及编目数据库结果——

db2 list node directory

db2 list db directory

显示编目已成功

接下来执行创建数据库联邦的步骤,首先创建WRAPPER——

备注:如果自定义了wrapper的名字,那么 library 就要加上,不同的系统lib的后缀不同,

AIX 是 .a

Linux 是 .so

注意:db2 "create wrapper db2_wrapper library 'libdb2drda.a'" 双引号!

可以通过 uname -a 去查看当前是什么操作系统

(注意创建wrapper之前必须先连接本地数据库:

db2 connect to dbname)

从上面可以看到报错了,说的是未对指定的操作启用数据库的实例

我们查看Federated(联邦)的功能是否打开,只需要开启本地的联邦功能即可,看到显示是NO

我们将Federated打开,并重启数据库使其生效——

现在可以看到创建成功了——

现在开始连接远程数据库,记得连接前确保远程的系统已关闭防火墙——

创建连接对方数据的SERVER——

$ db2 "create server remotedb1svr type DB2/UDB version 10.5 wrapper "DRDA" authorization \"db2inst2\" password \"db2inst2\" options( NODE 'NODE01', DBNAME 'REMOTEDB')"

如果报错SQL1101N  Remote database "dbname" on node "" could not be accessed

with the specified authorization id and password.  SQLSTATE=08004

尝试修改db2 get dbm cfg|grep AUTHENTICATION

Database manager authentication        (AUTHENTICATION) = SERVER

重启数据库生效

创建MAPPING——

$ db2 "create user mapping for \"db2inst1\" server remotedb1svr options (remote_authid 'db2inst2',remote_password 'db2inst2')"

创建联邦关系表(首先需要确认远程的库有对应的表已存在于数据库中)——

$ db2 "create nickname db2inst1.testtable for remotedb1svr.db2inst2.testtable"

通过在本地查看联邦数据库的表

可以看到可以正常显示

我们再测试一下插入操作是否可行——

执行成功,并且成功插入数据。

数据库联邦可以使我们不再需要构建数据集市了!还有个前提,就是如果要查询的量不是很大,并且如果汇总表通常就可以满足查询的要求,那么就不需要数据集市、不需要相应地创建新服务器和移动大量的数据等,这样可以大大地提高工作效率。当然,对于需要访问最低级别的详细信息的忙碌繁重的查询而言,数据集市或数据仓库是首选的解决方案。

注:如果数据库实例用户密码(联邦中定义的用户及密码,也可以不是实例用户,只要是远端存在的用户即可)需要进行修改的话,需要对联邦中的密码一并修改,否则联邦会失效。特别要注意的一点,实例用户密码修改之后,最好执行一次重启,否则你会发现不修改联邦中的用户密码也不影响,但是一旦数据库重启后密码就会使用最新的用户密码。

修改联邦中的用户或密码的方法如下:

(修改表联邦用户):

db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_authid 'db2inst2')"

(修改表联邦密码):

db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_password 'db2inst2')"

db2 联邦 mysql_DB2联邦数据库及配置方法(及联邦密码修改)相关推荐

  1. SOPHGO SE5微服务器的连接配置方法及IP查看修改

    SOPHGO SE5微服务器的连接配置方法及IP查看修改 SE5盒子的配置方法 SE5盒子如何修改IP(执行`bm_set_ip`提示没有该命令) SE5盒子的配置方法 SE5盒子有两种配置方式: S ...

  2. 让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

    第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改 [文章摘要] Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发 ...

  3. MySQL 5.7.17 免安装版本的安装,配置及MySQL的密码修改

    1. 下载,解压 到mysql官网下载5.7.17的免安装版本的ZIP包,并解压到你想放置的位置 如 G:\mysql-5.7.17 2. 环境变量配置 (1)打开我的电脑,属性,在左侧,进入高级系统 ...

  4. [MySQL免安装版本] 下载、配置、启动、密码修改

    今天给大家带来一篇关于MySQL数据库免安装版本的配置教程,那么过程比较简单直接上干货. 目录 一.下载MySQL免安装版本 二.配置MySQL 三.启动MySQL 四.使用客户端连接MySQL 五. ...

  5. 实战解读丨Linux下实现高并发socket最大连接数的配置方法

    摘要:Linux操作系统,无论是编写客户端程序还是服务端程序,在高并发TCP连接处理时,最高的并发数量都要受到系统对用户单一进程同时可打开文件数量的限制. [诉求场景] Linux操作系统,无论是编写 ...

  6. MODBUS转PROFINET网关(PROFINET转MODBUS网关)协议转换器PNMD485-K20连接安川变频器,接入到西门子S7-1200PLC PROFINET通讯网络应用配置方法

    本文主要介绍微硬创新:MODBUS转PROFINET网关(PROFINET转MODBUS网关)协议转换器PNMD485-K20连接安川变频器,接入到西门子S7-1200PLC PROFINET通讯网络 ...

  7. linux下dns配置方法与常用dns

    linux下dns配置方法: 1.修改网卡配置文件 echo 'DNS1="114.114.114.114" ' >> /etc/sysconfig/network-s ...

  8. Lumen框架多数据库连接配置方法

    Lumen作为一款API导向很浓的框架,配置极简化,默认只支持一路DB配置 然而随着业务复杂度的提高,引入多个数据库连接似乎无法避免,下面介绍一下LUMEN连接多个数据库的配置方法: 修改.env文件 ...

  9. mysql hibernate id generator_Hibernate映射文件id的generator配置方法

    可选的子元素是 一个Java类的名称,用来生成该持久化类实例的唯一标识符.如果这个生成器实例需要某些配置值或者初始化参数,可以使用元素来传递这些参数. 所有的生成器都实现了org.hibernate. ...

最新文章

  1. 计算机培训操作规程,电脑裁床操作规程
  2. 报错解决 :Couldn't find any package by regex 'g++-8'
  3. 编写高质量代码改善C#程序的157个建议——建议104:用多态代替条件语句
  4. 网页 html 全图片排版,HTML5-网页排版划分
  5. muduo学习笔记 - 第五章 高效的多线程日志
  6. 51单片机程序下载、ISP及串口基础知识
  7. “智慧灯杆”的应用和解决方案
  8. STM32 - CubeMX 的使用实例详细(04.1)- STM32F103的 - 定时器设定详细解释 - PWM波的产生 - 频率占空比的设定 - 软件代码分析
  9. 计算机网络课程优秀备考PPT之第一章概述(一)
  10. 【社招持续篇】云和恩墨虚位以待,你来不来!
  11. Vijos1775 CodeVS1174 NOIP2009 靶形数独
  12. html对话框跳转页面,html5各种页面切换效果和模态对话框用法总结
  13. 分布式系统的Raft算法 1
  14. 巴比特观察 | NFT朋克热潮:CryptoPunks的成功可以复制吗
  15. cad批量打印_「批量打印」CAD图纸批量输出PDF及预览与输出不一致解决办法
  16. 荣耀电视鸿蒙安装第三方软件,荣耀电视如何安装第三方应用?当贝市场几招搞定!...
  17. 北京大学2017年数学分析考研试题
  18. 使用Spring JPA中Page、Pageable接口和Sort类完成分页排序
  19. python爬虫练习-爬取暖心小故事并实现定时邮箱发送
  20. 动态网站开发课后笔记03:Java Web概述

热门文章

  1. ORACLE 全文搜索(精度高排前)
  2. 域控制器的强制卸载,Active Directory系列之十四
  3. 《性能测试从零开始--LoadRunner入门》读书笔记(四)
  4. python中控脚本_Python3.7实现中控考勤机自动连接
  5. linux安装指定版本python_ubuntu多版本python为指定版本python安装库
  6. python绘制饼状图图例_使用matplotlib的所有饼图的通用图例
  7. mysql 创建视图 主键_MySQL数据库基础操作命令,本文助你更上一层楼!
  8. 设计企业网站大纲_企业网站设计布局
  9. java opencv安装路径_Java搭建opencv开发环境
  10. g++默认参数_C ++默认参数| 查找输出程序| 套装2