db2配置远程编目

1.server端开启TCP连接和CATALOG认证

##查看是否开启TCP连接

[db2inst1@dxyun ~]$ db2set -all

[i] DB2_SKIPINSERTED=YES

[i] DB2_USE_ALTERNATE_PAGE_CLEANING=YES

[i] DB2_EVALUNCOMMITTED=YES

[i] DB2_SKIPDELETED=YES

[i] DB2COMM=TCPIP

[i] DB2CODEPAGE=1208

[i] DB2_PARALLEL_IO=*

[i] DB2AUTOSTART=YES

[g] DB2SYSTEM=dxyun

一般DB2都会开启TCP连接,如果不是TCPIP需要:

db2set DB2COMM=TCPIP

然后重启db2实例

##查看是否开启catalog认证

$ db2 get dbm cfg |grep -i CATALOG_NOAUTH

Cataloging allowed without authority   (CATALOG_NOAUTH) = NO

$ db2 update dbm cfg using CATALOG_NOAUTH yes

2.client端配置编目

##创建节点

db2 catalog tcpip node dxyun remote 28.143.132.64 server 50000    ##dxyun是节点名,50000是db2端口号

db2 uncatalog node dxyun         #如果需要取消

##创建catalog db

db2 catalog db dsgdb as dsgdb at node dxyun authentication server   ##dsgdb是数据库的名称,dxyun是上面创建的节点名称

db2 uncatalog database dsgdb   ##如果需要取消

db2 terminate

##查看配置的编目信息

[db2inst1@db2test1 ~]$ db2 list node directory
 Node Directory
 Number of entries in the directory = 1
Node 1 entry:
 Node name                      = DXYUN
 Comment                        =
 Directory entry type           = LOCAL
 Protocol                       = TCPIP
 Hostname                       =  28.143.132.64 
 Service name                   = 50000
[db2inst1@db2test1 ~]$ db2 list db directory
 System Database Directory
 Number of entries in the directory = 1
Database 1 entry:
 Database alias                       = DSGDB
 Database name                        = DSGDB
 Node name                            = DXYUN
 Database release level               = 15.00
 Comment                              =
 Directory entry type                 = Remote
 Catalog database partition number    = -1
 Alternate server hostname            =
 Alternate server port number         =

3.在client端登录

[db2inst1@db2test1 ~]$  db2 connect to DSGDB user  dsg using XXXX

   Database Connection Information

 Database server        = DB2/LINUXX8664 11.5.0.0

 SQL authorization ID   = DSG

 Local database alias   = DSGDB

4.遇到的问题

配置完成之后遇到:

[db2inst1@db2test1 ~]$ db2 connect to DSGDB user  db2inst1 using db2inst1
SQL30081N  A communication error has been detected. Communication protocol 
being used: "TCP/IP".  Communication API being used: "SOCKETS".  Location 
where the error was detected: "223.247.138.64".  Communication function 
detecting the error: "connect".  Protocol specific error code(s): "111", "*", 
"*".  SQLSTATE=08001

可能是第一次配置错误,后面执行:

db2 terminate

恢复。

如果遇到其它错误,见下面的说明:

The specific return code listed in this
error output is a 10061, which is the tcp/ip error ECONNREFUSED. "The
connection has been refused. If you are trying to connect to the
database, check that the database manager and TCP/IP protocol support at
the server has been started successfully".
Typically this particular error message occurs under one of the
following scenarios:
1. The instance is not running. Issue a db2start to confirm that the
instance is online and try the connection again.
2. The instance on the remote server has not been configured to accept
TCP/IP communication requests. On the server, please verify the
following:
a. Issue a db2set -all and confirm that the parameter DB2COMM=TCPIP.
If this is not set, issue:
db2set DB2COMM=TCPIP
b. Issue the command "db2 get dbm cfg | grep SVCENAME" and confirm that
this parameter is not blank. This may either specify a service name
defined in your /etc/services file, or a port number, but this value
must be set. If this is blank, please update the dbm cfg using:
db2 update dbm cfg using SVCENAME 50000
db2stop
db2start
Once the instance has been restarted, verify that the TCP/IP port is
listening with the command:
netstat -an | grep 50000
This should return output similar to the following:
tcp4 0 0 *.50000 *.*
LISTEN
Also note that if the SVCENAME parameter specifies a service name rather
than a port number, this service name must be defined in /etc/services.
3. The catalog on the client has specified the wrong port number. On
the client, please issue the command "db2 list node directory" and
locate the entry for the system in question. Please verify that the
port number listed here under the Service name field matches that of the
port number specified in the SVCENAME parameter on the server. As on
the server, if the service name specifies a name rather than a port,
this must exist by the same name (case sensitive) in the /etc/services
file on Unix, or in the C:\Windows\System32\drivers\etc\services file on
Windows.
4. The catalog on the client may have the wrong host name specified, or
a correct host name that can not be identified by the network. Please
check the Hostname parameter in the "db2 list node directory" from item
3 above, and confirm if this target can be reached using the ping
command:
ping <hostname>
If the ping is successful, your network should be configured correctly
to reach this machine. If the ping failed, please verify that the
/etc/hosts file on the client (if Unix) or the
C:\Windows\system32\drivers\etc\hosts file (on Windows) has an IP
address specified for this host name. Alternately, you may catalog the
connection directly specifying the IP address.
5. If the client and the server are on opposite sides of a firewall,
please ensure that your firewall or router are not configured to block
communication on the port specified for the SVCENAME parameter on the
server.
  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值