当前位置:数据库 > DB2 >>

学习db2过程中的一些记录

学习db2过程中的一些记录
 
实现:在客户端远程连接服务器端的db2(db2之间的互连)
 
本文假定如下:
客户端为windows/linux/unix,客户端也已经安装了db2或者客户端
服务器端为windows/linux/unix
客户端ip:192.168.42.147,服务器端ip为192.168.42.102
 
步骤:
在客户端建立服务器端数据库的节点
在客户端命令行执行
Db2 catalog tcpip node test remote 192.168.42.102 server 50000
注:test为在客户端定义的节点,名字可以任意
192.168.42.102为客户端的ip
50000为DB2使用的端口
查找服务器端DB2使用的端口,
如果服务器端为linux,可以访问/etc/services文件,如果你的实例名为db2inst1,找到如下行
db2inst1 50000/tcp
如果服务器端为windows,查看X:/WINNT/System32/drivers/etc/services
 
绑定节点和客户端的数据库
执行下面的命令db2 catalog db coshine at node test
注:coshine为服务器端中你想要连接的数据库名
Test就是步骤一种定义的节点
使绑定生效
执行db2 terminate
设定客户端db2codepage(代码页设置)即字符编码
先在服务器端查询db2codepage,执行db2set –all
[i] DB2_EXTENDED_OPTIMIZATION=ON
[i] DB2_DISABLE_FLUSH_LOG=ON
[i] AUTOSTART=YES
[i] DB2_STRIPED_CONTAINERS=ON
[i] DB2_HASH_JOIN=Y
[i] DB2COMM=tcpip
[i] DB2CODEPAGE=819
[i] DB2_PARALLEL_IO=*
可以看到服务器端的DB2CODEPAGE为819,所以客户端也必须设置为这个数字
执行db2set db2codepage=819
进行连接
执行db2 connect to coshine user user_name using password
 
注释
Db2codepage:即db2数据库的编码方式
db2codepage=1386(简体中文)
 db2country=86(中国)
一个数据库一旦建立,他的代码页就没有办法改,   
    
db2set   DB2CODEPAGE=1386只能改变代码页环境,不能改变数据库的代码页
 
如果不能连接:检查如下是否正确
确保可以ping通服务器端:ping 192.168.42.102
确保服务器端的db2已经启动:db2start
 
确保客户端DB2COMM设置为tcpip
先查看db2comm设置:db2set –all
 
如果没有设置这个注册表,执行db2set db2comm=tcpip
将SVCENAME设置成/etc/services中的端口号或者服务名了吗?
执行db2 get dbm cfg查看,找到SVCENAME,如果当前值不是服务器端的端口号或者服务名,进行更新设置
执行:db2 update dbm cfg SVCENAME db2inst1
注:db2inst1为服务名,这个在/etc/services文件中db2inst1 50000/tcp
一致
 
DB2数据库基本操作指令30条
 
1.查看本地节点目录
 
命令窗口中输入:db2   list   node   directory
 
2.编目一个TCP/IP节点
 
命令窗口:db2   catalog   tcpip   node      remote     server      ostype 
 
3.取消节点编目
 
db2   uncatalog   node  
 
4.查看系统数据库目录
 
db2   list   database   directory
 
5.查看本地数据库目录
 
db2   list   database   directory   on   <盘符>
 
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中 <数据库> 右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。
 
6.编目数据库 
 
db2   catalog   database      as      at   node    
 
7.取消数据库编目  
 
db2   uncatalog   database  
 
8.测试远程数据库的连接
 
db2   connect   to      user      using  
 
9.任何用户均可通过设置CurrentSchema专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限ID。
 
set   schema   =  
 
可以由用户交互式的使用,也可在应用程序中使用,如果用DynamicrulesBind选项绑定包,这个语句就没有作用。此语句不在事务控制之下。
 
10.代码页的设置
 
在创建数据库时设置字符集
 
create   database      using   codeset      territory  
 
例:  create   database   dbtest   using   codeset   IBM-437   territory   US
 
也可以设置整个数据库的代码页,在win2000/NT/xp中,在我的电脑--> 属性--> 高级--> 环境变量中添加变量DB2CODEPAGE   =   ,例:DB2CODEPAGE   =   437   或   DB2CODEPAGE   =   1386。或者在IBM   DB2命令窗口输入db2set   DB2CODEPAGE=1386,设置后需要重新启动DB2生效。
 
11.DB2低版本数据到高版本的迁移
 
先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入db2   migrate   database   。
 
12.表名或模式中含有引号时访问表
 
命令窗口:db2   select   *   from   \ "tabschema\ ".\ "tabname\ "  
 
命令行处理器:db2=>   select   *   from   "tabschema ". "tabname "
 
13.导出数据库的表结构生成DDL文件
 
命令窗口:db2look   -d      -e   -c   -o  
 
  14.执行脚本文件
 
命令窗口:db2   -tvf  
 
15.代码页的转换
 
16.获取当前DB2的版本  select   *   from   sysibm.sysversions
 
17.DB2表的字段的修改限制?
 
只能修改VARCHAR2类型的并且只能增加不能减少
 
alter   table      alter   column      set   data   type   varchar   (SIZE)
 
18.如何查看表的结构?  
 
describe   table   or describe   select   *   from   .
 
19.如何快速清除一个大表?
 
ALTER   TABLE   TABLE_NAME   ACTIVE   NOT   LOGGED   INITALLY   WITH   EMPTY   TABLE
 
20.如何查看数据库的存储过程?
 
SELECT   *   FROM   SYSCAT.PROCEDURES
 
21.如何查看表的约束?
 
SELECT   *   FROM   SYSCAT.CHECKS   WHERE   TABNAME   =  
 
22.如何查看表的引用完整约束?
 
SELECT   *   FROM   SYSCAT.REFERENCES   WHERE   TABNAME   =  
 
23.如何知道BUFFERPOOLS状况?
 
select   *   from   SYSCAT.BUFFERPOOLS
 
24.如何在命令行下查看修改实例和数据库配置参数?
 
查看实例配置参数:db2   get   dbm   cfg
 
修改实例配置参数:db2   update   dbm   cfg   using   参数名   新值 
 
查看数据库配置参数:db2   get   db   cfg
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,