服务器 频道

DB2编程序技巧 (五)

  【IT168 服务器学院】4.2 创建Database
  create database head using codeset IBM-eucCN territory CN;
  这样可以支持中文。
  
  4.3 手工做数据库远程(别名)配置
  db2  catalog tcpip  node   node1  remote   172.28.200.200 server  50000
  db2  catalog db    head   as     test1 at  node   node1
  
  然后既可使用:
     db2 connect to test1  user …  using …
  连上head库了
  
  4.4 停止启动数据库实例
  db2start
  db2stop (force)
  
  
  4.5 连接数据库及看当前连接数据库
  连接数据库
  db2  connect to head user db2inst1  using db2inst1
  
  当前连接数据库
  db2  connect
  4.6 停止启动数据库head
  db2  activate  db  head
  db2  deactivate db  head
  要注意的是,如果有连接,使用deactivate db 不起作用。
  如果是用activate db启动的数据库,一定要用deactivate db才会停止该数据库。(当然如果是db2stop也会停止)。
  使用activate db,这样可以减少第一次连接时的等待时间。
  Database如果不是使用activate db启动而是通过连接数据库而启动的话,当所有的连接都退出后,db也就自动停止。
  
  4.7 查看及停止数据库当前的应用程序
  查看应用程序:
  db2   list   applications  show  detail 
  
  授权标识 | 应用程序名 | 应用程序句柄 |  应用程序标识 | 序号#  | 代理程序 |  协调程序 | 状态 |  状态更改时间 |  DB 名 | DB 路径|                                                      |    节点号 |   pid/线程
  
  其中:1、应用程序标识的第一部分是应用程序的IP地址,不过是已16进制表示的。
  2、pid/线程即是在unix下看到的线程号。
  
  停止应用程序:
  db2 "force application(236)"
  db2 “force application all”
  
  其中:该236是查看中的应用程序句柄。
  

  4.8 查看本instance下有哪些database
  db2 LIST DATABASE DIRECTORY  [ on /home/db2inst1 ]
  4.9 查看及更改数据库head的配置
  请注意,在大多数情况下,更改了数据的配置后,只有在所有的连接全部断掉后才会生效。
  
  查看数据库head的配制
  db2 get db cfg for head
  
  更改数据库head的某个设置的值
  4.9.1 改排序堆的大小
  db2 update db cfg for head using SORTHEAP 2048
  将排序堆的大小改为2048个页面,查询比较多的应用最好将该值设置比较大一些。
  4.9.2 改事物日志的大小
  db2 update db cfg for head using  logfilsiz  40000
  该项内容的大小要和数据库的事物处理相适应,如果事物比较大,应该要将该值改大一点。否则很容易处理日志文件满的错误。
  
  4.9.3 出现程序堆内存不足时修改程序堆内存大小
  db2 update db cfg for head using  applheapsz  40000
  该值不能太小,否则会没有足够的内存来运行应用程序。
  
  4.10 查看及更改数据库实例的配置
  查看数据库实例配置
  db2  get dbm cfg 
  更改数据库实例配制
  
  4.10.1 打开对锁定情况的监控。
  db2 update dbm cfg using dft_mon_lock  on
  4.10.2 更改诊断错误捕捉级别
  db2 update dbm cfg using diaglevel 3
  0 为不记录信息
  1 为仅记录错误
  2 记录服务和非服务错误
  缺省是3,记录db2的错误和警告
  4 是记录全部信息,包括成功执行的信息
  一般情况下,请不要用4,会造成db2的运行速度非常慢。
  

  4.11 db2环境变量
  db2 重装后用如下方式设置db2的环境变量,以保证sp可编译
  将set_cpl 放到AIX上, chmod +x set_cpl, 再运行之
  
  set_cpl的内容
  db2set DB2_SQLROUTINE_COMPILE_COMMAND="xlc_r  -g \
  -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \
  -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY \
  -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2"
  
  db2set DB2_SQLROUTINE_KEEP_FILES=1
  4.12 db2命令环境设置
  db2=>list command options
  db2=>update command options using C off--或on,只是临时改变
  db2=>db2set db2options=+c --或-c,永久改变
  
  4.13 改变隔离级别
  DB2SET DB2_SQLROUTINE_PREPOPTS=CS|RR|RS|UR
  
  交互环境更改session的隔离级别,
         db2 change isolation  to UR
  请注意只有没有连接数据库时可以这样来改变隔离级别。
  
  4.14 管理db\instance的参数
  get db cfg for head(db)
  get dbm cfg(instance)
  
  4.15 升级后消除版本问题
  db2   bind  @db2ubind.lst
  db2   bind   @db2cli.lst
  
  4.16 查看数据库表的死锁
  再用命令中心查询数据时要注意,如果用了交互式查询数据,命令中心将会给所查的记录加了s锁.这时如果要update记录,由于update要使用x锁,排它锁,将会处于锁等待.
  
  首先,将监视开关打开
  db2 update dbm cfg using dft_mon_lock  on
  快照
    db2 get snapshot for  Locks  on  cleardb   >snap.log
                      tables 
  bufferpools
  tablespaces
  database
     然后再看snap.log中的内容即可。
  对Lock可根据Application handle(应用程序句柄)看每个应用程序的锁的情况。
   监视完毕后,不要忘了将监视器关闭
       db2 update dbm cfg using dft_mon_lock  off
  
0
相关文章