DB2中编目本机当中数据库的方法

问题:同一节点上有两个实例,如果想在其中一个实例下访问另一个实例中的数据库,有两种方法:

1. 使用catalog local node的方式,在其中一个实例中将另外一个实例直接编目,这种方试中,它们之间采用的通信方式是IPC(进程间通信),这种方式只能在同一物理机上进行。

2. 使用catalog TCPIP node的方式,将其中一个作为客户端,另一个作为服务端, 这种方式中,它们之间采用的通信方式是TCPIP,这种方式不限于本地,也适用于远程通信。

下面分别举两个例子来说明这个过程

实验 DB2 10.1.0.0, Windows操作系统,使用catalog local node的方式。

1. 机器上有两个实例INST01和INST02,实例INST01下有一个数据库SAMPLE1,实例INST02下有一个数据库SAMPLE2,启动两个实例之后,如下图所示:

现在,在实例INST01下使用catalog local node的方式将实例INST02编目进来(注意,以下所有操作都是在实例INST01下完成的)

这里的node01相当于给INST02的起的别名,使用attach连接到node01之后,发出的create database命令相当于在INST02下进行的。

从以上的输出中可以看到创建的数据库SAMPLE3实际上是在INST02下,而非INST01下。

为了可以在INST01下访问INST02中的数据库SAMPLE2,可以直接在INST01对其编目。

可以使用 connect to 命令连接数据库了

实验2 DB2 v10.5 , Linux 使用catalog TCPIP node的方式

同一台物理机上有两个实例 qingsong和db2inst2,其中实例QINGSONG下有数据库QSMIAO,作为服务端,实例db2inst2作为客户端

1. 查看/etc/services文件

2. 使用root用户在/etc/services里添加一行 REMOTE_TEST 60012/tcp

3. 服务端qingsong上更新数据库管理器配置文件

$ db2 update dbm cfg using svcename REMOTE_TEST

$ db2stop

$ db2start

$ db2 get dbm cfg | grep svcename

4. 设置服务端的通信协议为TCPIP

$ db2set DB2COMM=tcpip

$ db2stop

$ db2start

$ db2set -all

5. 客户端 编目节点

$ db2start

$ db2 list node directory

$ db2 catalog TCPIP node qingnode remote localhost server 60012

$ db2 terminate

$ db2 list node directory

其中,localhost指本机,如果是在远程,可以直接修改为对应的IP地址,60012指服务端对应的端口。

6. 客户端 编目数据库

$ db2 catalog db qsmiao as remoteDB at node qingnode

$ db2 list db directory

$ db2 connect to REMOTEDB user qingsong using qingsong

上面的这种编目方式是 TCPIP node

参考资料:

Catalog tcpip node

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001944.html?cp=SSEPGG_9.7.0%2F3-6-2-4-17&lang=en

Catalog local node

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001989.html?cp=SSEPGG_9.7.0%2F3-6-2-4-14&lang=en

Catalog database

http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.7.0/com.ibm.db2.luw.admin.cmd.doc/doc/r0001936.html?cp=SSEPGG_9.7.0%2F3-6-2-4-10&lang=en

时间: 2024-08-08 22:08:47

DB2中编目本机当中数据库的方法的相关文章

在db2中 两个数据库之间的两个表的联合查询

大家好,今天遇到了在db2中 两个数据库之间的两个表的联合查询我知道oracle中有dblink,可是不知到db2的两个数据库联合查询怎么处理我找了类似于比如两个数据库: db1,db2用户名密码select * from db1.用户名.密码,db2.用户名.密码 where db1.NM=db2.NM可是这样不好用啊请各位帮忙谢谢 DB2有联邦数据库的,你可以查一下. 1.要看目录数据库请用:db2 list db directory这些信息应该是放系统表中.(既不是什么注册表.也不是什么文

嵌套SQL语句訪问DB2中SQLCA的调用技巧

在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句执行情况返回给程序. 在程序中有针对性地对SQLCA实施调用,可对程序中各类SQL语句的执行结果实施控制,从而避免程序的意外终止.同一时候,也能够提高执行效率,减小系统开销和处理时间.本文将对此作一简要介绍. SQLCA的结构 SQLCA的结构定义例如以下: struc sqlca {        unsigned char     sqlcaid[8]; long    

db2中的常用命令及使用方法

一.高(重要度) 1.启动一个db 2实例使用:  net start instanceName 2.停止一个db 2实例使用:  net stop instanceName 3.启动配置助手:  db2=>!db2ca 4.手工配置连接:  db2=>catalog node/db 5.删除视图:  db2=>drop view view_name 6.创建表:  db2=>create table tablename 7.列出活动的数据库和连接数:  db2=>list

嵌套SQL语句访问DB2中SQLCA的调用技巧

在IBM的关系型数据库产品DB2中,使用SQL Communication Area(SQLCA)将程序中嵌套的SQL语句运行情况返回给程序.在程序中有针对性地对SQLCA实施调用,可对程序中各类SQL语句的执行结果实施控制,从而避免程序的意外终止.同时,也可以提高运行效率,减小系统开销和处理时间.本文将对此作一简要介绍. SQLCA的结构 SQLCA的结构定义如下: struc sqlca {        unsigned char     sqlcaid[8]; long        

DB2中错误代码池

工作中,在操作DB2数据库过程中,难免会出现一些这样那样的问题.对很多错误DB2都会有对应的SQL CODE和SQL State,通过SQL CODE和SQL State定位问题就很简单.现在把一个完整的SQLCODE和SQLState错误信息和相关解释作以下说明,一来可以自己参考,对DB2错误自行找出原因 sqlcode sqlstate 说明 000 00000 SQL语句成功完成 01xxx SQL语句成功完成,但是有警告 +012 01545 未限定的列名被解释为一个有相互关系的引用 +

DB2中如何将非自动存储转换成自动存储空间管理方式

DB2 10引入根据温度管理数据存储的表空间更管理方式,但是需要数据库启用自动存储管理,具体在存储路径在某个目录下即可,要讲非自动存储的表空间转换成自动存储的管理方式需要两个步骤,尤其是从低版本升级过来的数据库. ALTER DATABASE EMPLOYEE ADD STORAGE ON '/data' 这样即可,但是对于原来使用DMS或SMS方式管理的表空间需要做重定向恢复,其实就是先做全备份,然后指定redirect restore即可,在原来的实例下恢复: RESTORE DATABAS

DB2中循环日期跑数据

1.数据库版本: 2.具体实现方式: CREATE OR REPLACE PROCEDURE DB2USER.RUN_PROCEDURE_BY_LOOP(IN begin_date VARCHAR(8),IN end_date VARCHAR(8)) /****************************************************************************** NAME: PURPOSE: REVISIONS: Ver Date Author De

Sybase脚本移植到DB2中

? DB2 目前碰到一个任务,需要将原本基于Sybase的系统移植到DB2.前期工作中主要都是对SQL脚本的改写.鉴于目前对Sybase和DB2都不是很熟,所以开此记录日志.记录在过程中所遇到的各种问题. db2中的系统表介绍 DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令.操作系统命令或 SQL 语句. 在 DB2 数据库被创建的时候,DB2 会创建一些系统表.这些系统表中记录了所有数据库对象的信息,表

DB2中三个有关锁变量DB2_EVALUNCOMMITTED,DB2_SKIPDELETED和DB2_SKIPINSERTED的使用

本文主要解释下DB2中三个有关锁变量DB2_EVALUNCOMMITTED,DB2_SKIPDELETED和DB2_SKIPINSERTED的使用 实验环境: DB2 v9.7.0.6 AIX 6.1.0.0 採用默认的隔离级别CS STUDENT表的DDL与初始内容 CREATE TABLE "E97Q6C  "."STUDENT"  ( "AGE" INTEGER , "NAME" CHAR(8) ) IN "U