blueice 发表于 2016-11-16 09:56:45

DB2数据库常用命令集:部分数据库维护命令

 
  在DB2的开发过程中,贯穿整个开发过程还有很重要的一部分工作就是数据库的维护;对于维护一个庞大信息系统来说是非常必要的;留一份简易的维护手册,以备不时之需;以下收集到的部分维护命令,以飨我们的维护工程师和项目经理。 

*************************************************

*     memo: 详细命令请使用"db2 ? <command>"进行查看。 

************************************************* 



1.关闭db2 


db2stop 或db2stop force。 



在脚本中一般两个都写上,避免使用db2stop force命令,如: 


db2stop
db2stop force 



2.启动db2 


db2start 



3.创建数据库 


db2 create db <db name>或db2 create db using codeset GBK territory CN 



4.删除数据库 

执行此操作要小心。 


db2 drop db <db name> 



如果不能删除,断开所有数据库连接或者重启db2。 

5.断开数据库连接 


db2 force application all 



6.连接数据库 


db2 connect to <db name> user <username> using <password> 



7.断开数据库连接 

断开当前数据库连接: 


db2 connect reset或者:db2 disconnect current 



断开所有数据库的连接: 


db2 disconnect all 



8.备份数据库 


db2 backup db <db name> 



备注:执行以上命令之前需要断开数据库连接 

9.恢复数据库 


db2 restore db <source db name> 



10.导出数据文件 


db2move <db name> export 
[-sn <模式名称,一般为db2admin>] 
[-tn     <表名,多个之间用逗号分隔>] 



11.导入数据文件 


db2move <db name> import 



12.列出数据库中所有db 


db2 list db directory 



13.进入db2命令环境 


在“运行”中执行:db2cmd 
  ===================
  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. 设置默认模式
  任何用户均可通过设置Current Schema专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限ID。
  set schema =
  可以由用户交互式的使用,也可在应用程序中使用,如果用Dynamicrules Bind选项绑定包,这个语句就没有作用。此语句不在事务控制之下。
  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.POCEDURES
  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 for
  修改数据库配置参数: db2 update db cfg for using 参数名 新值
  25. 如何修改缓冲区?
  增加缓冲区: create bufferpool size { EXTENDED STORAGE}
  修改缓冲区: alter bufferpool size { EXTENDED STORAGE}
  删除缓冲区: drop bufferpool
  如果缓冲区大小设置为 -1 表示缓冲池的页面数目由数据库配置参数buffpage决定。
  注意: 数据库配置参数buffpage仅对缓冲区大小设置为 -1 的缓冲池起作用。
  26. 多个字段时如何不通过使用select子句使用in/not in
  select * from tabschema.tabname where (colA, colB, colC) in (values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2), ...(valueAn, valueBn, valueCn))
  27. 查看当前连接到数据库的应用
  db2 list application
  28. 如何确认DB2数据库的一致性
  db2dart /DB
  /DB表示检查整个数据库的一致性
  29. 测试SQL语句的性能
  db2batch -d -f [-a userid/passwd] [-r ]
  -r 选项表示将查询结果输出到一个文件中。
  30. 导出某个表的数据
  export to
  如:导出用户表
  export to c:user.ixf of ixf select * from user
  31. 导入数据
  import from
  :导入用户表。导入时可以直接建立新表。如果有该表存在也可以用 INSERT 插入,或者用UPDATE更新
  import from c:user.ixf of ixf tablename
页: [1]
查看完整版本: DB2数据库常用命令集:部分数据库维护命令