db2 简单使用

发布时间 2023-07-06 16:26:15作者: leihongnu

1、获取当前实例

db2 get instance

 2、创建数据库

db2 create db haha

3、连接数据库

db2 connect to haha

4、断开连接数据库

db2 connect reset  或   db2 terminate

5、查看表

db2 list tables

6、查看表结构

db2 describe table 表名

7、创建表

db2 create table  表名(id int,name varchar(50))

db2 create table  表名"(id int,name varchar(50))"

8、删除表

db2 drop table 表名

9、修改表

增加表结构:db2 alter table 表名 add 列名 varchar(4)  或  db2 alter table 表名 add 列名 varchar"(4)"

删除表结构:db2 alter table 表名 drop 列名 varchar(4)  或  db2 alter table 表名 drop 列名

修改表名:db2 rename 旧表名 to 新表名

修改表结构字段长度:db2 alter table 表名 alter column 字段名 set data type varchar(长度)  或  db2 alter table 表名 alter column 字段名 set data type varchar"(长度)"

10、复制表

db2 create table 新表名 like 被复制的表名  或  db2 "create table 新表名 like 被复制的表名"

11、查看当前实例下的数据库

db2 list db directory

12、查看当前实例下所连接的数据库

db2 list applications

13、查看数据库应用与进程号

db2 list applications show detail

14、杀掉进程

db2 force application (id)

15、查看DB2数据库配置

db2 get db cfg for 数据库名

16、查看DB2归档日志路径

db2 get db cfg for 数据库名  |grep "LOGARCHMETH1"

17、查看首活动日志

db2 get db cfg for 数据库名 | grep -i "First active log file"

18、清理日志

#S0009392.LOG是首活动日志,此命令可以将当前首活动日志文件之前的归档日志文件全部删除

db2 prune logfile prior to S0009392.LOG

19、手工归档产生日志

db2 archive log for db 数据库名 

20、列出系统表

db2 list tables for system

21、查询列出所有表

db2 list tables for all

22、查看特定用户表

db2 list tables for schema user

23、查询表

db2 "select * from table 表名"

24、查看正在执行的sql

db2 list application show detail |grep -i exe
25、看数据库表空间

db2pd -db 数据库名 -tablespace
26、查看死锁

db2 get snapshot for locks on DB_NAME   或  db2 "select agent_id,tabname,lock_mode from table(snap_get_lock('DB_NAME')) as ll"
27、查看错误代码信息

db2 ? 08003(SQLSTATE值) 可以获取sql错误含义
28、查看当前DB2的版本

db2 "select * from sysibm.sysversions"
29、查看DB2的TABLESPACE的状况

db2 "select * from sysibm.SYSTABLESPACES"
30、启动DB2数据库服务

db2start
31、激活数据库实例

db2 activate database 数据库名
32、查看激活状态的数据库

db2 list active databases
33、查看失效数据库实例

db2 deactivate database数据库名
34、关闭DB2数据库服务

db2stop
35、查看DB2消耗资源多的SQL

db2top -d 数据库名

注意:db2top是连在一起的,查看消耗资源 按照提示按 l ,出现Application Handle,记录下资源消耗大的Application Handle(stat) 按 q 退出
36、测试SQL的执行性能

db2batch -d DB_NAME -f select_sql -r benchmark.txt -o p3      #select_sql 是要测试的语句  或  用DBvisualizer工具直接远程连接DB2数据库,通过SQL获取一些信息
37、查看INDEX

select * from sysibm.sysindexes where 表名=’XXXX’  或  describe indexes for table 表名 show detail
38、查看表字段信息

select * from sysibm.syscolumns where 表名=’XXXX’
39、快速清除一个大表

alter table 表名 activate not logged initally with empty table  或  mport from null_file of del replace into 表名  或   truncate table 表名
40、查询字符串中包含‘%’或‘_’ ,要使用转义字符,例如SELECT * FROM TEST_INFO WHERE NAME like '%88!%%' escape '!'; 语句后面的escape '!'是定义一个转义字符, 紧跟着转义字符’!'后的%不再是统配符而是百分号。
重命名数据库名: Rename old_tablename to new_tablename;
创建索引:CREATE INDEX index_name ON tb_name(DT_DAY_ID, ...);
41、对已删除表的恢复
1.首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开);
2.对要实施Drop Table Recovery的表空间(限regular tablespace),执行:alter tablespace 表空间名 dropped table recovery on;
3.用 list history dropped table all for DB_NAME 得到删除表的tableid和表结构的生成语句DDL,记录tableid和DDL。之后用drop命令删除的表中的数据可以在前滚恢复时导出。