查看DB2数据库:db2 list db directory
查看DB2数据库应用:db2 list applications
查看DB2数据库应用与进程号:db2 list applications show detail
杀掉进程: db2 force application (id)
查看DB2数据库配置:db2 get db cfg for DB_NAME
查看DB2归档日志路径:db2 get db cfg for DB_NAME|grep "LOGARCHMETH1"
查看首活动日志:db2 get db cfg for DB_NAME|grep -i "First active log file"
清理日志:db2 prune logfile prior to S0009392.LOG ##其中S0009392.LOG是首活动日志可通过db2 get db cfg for DB_NAME看到,此命令可以将当前首活动日志文件之前的归档日志文件全部删除
手工归档产生日志命令:db2 archive log for db DB_NAME
创建数据库:db2 create db DB_NAME
删除数据库:db2 drop database DB_NAME(如果不能删除,尝试断开激活的连接或重启db2)
断开数据库连接:db2 connect reset 或者 db2 terminate
连接数据库:db2 connect to DB_NAME 或 db2 connect to DB_NAME user USER_NAME using PASSWORD
列出系统表:db2 list tables for system
查询列出所有表:db2 list tables for all
查看特定用户表:db2 list tables for schema user
查看表结构:db2 describe table TB_NAME或者describe select * from schema.TB_NAME
生成所有对象的DDL:db2look -d DB_NAME -a -e -m -l -f -o bak.sql
复制一张表:db2 create table TB1 like TB2
查询表:db2 "select * from table tablename where ..."
查看正在执行的sql:db2 list application show detail |grep -i exe
看数据库表空间:db2pd -db DB_NAME -tablespace
查看死锁:db2 get snapshot for locks on DB_NAME 或者db2 "select agent_id,tabname,lock_mode from table(snap_get_lock('DB_NAME')) as ll"
查看错误代码信息:db2 ? 08003(SQLSTATE值) 可以获取sql错误含义
查看当前DB2的版本:db2 "select * from sysibm.sysversions"
查看DB2的TABLESPACE的状况:db2 "select * from sysibm.SYSTABLESPACES"
启动DB2数据库服务:db2start
激活数据库实例:db2 activate database DB_NAME
查看激活状态的数据库:db2 list active databases
查看失效数据库实例:db2 deactivate database DB_NAME
关闭DB2数据库服务:db2stop
查看DB2消耗资源多的SQL:db2top -d DB_NAME 其中db2top是连在一起的,查看消耗资源 按照提示按 l ,出现Application Handle,记录下资源消耗大的Application Handle(stat) 按 q 退出
测试SQL的执行性能:db2batch -d DB_NAME -f select_sql -r benchmark.txt -o p3其中select_sql 是要测试的语句
查看INDEX:select * from sysibm.sysindexes where TB_NAME=’XXXX’; 或者 describe indexes for table TB_NAME show detail;
查看表字段信息:select * from sysibm.syscolumns where TB_NAME=’XXXX’
快速清除一个大表:alter table TB_NAME activate not logged initally with empty table; 或者import from null_file of del replace into TB_NAME或者直接 truncate table TB_NAME;
查询字符串中包含‘%’或‘_’ ,要使用转义字符,例如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, ...);
查看表空间使用情况:
SELECT A.SNAPSHOT_TIMESTAMP, A.TBSP_NAME, B.TBSP_TYPE, A.TBSP_STATE, 1.00 * A.TBSP_USABLE_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024 AS TOTAL, 1.00 * A.TBSP_USED_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024 AS USED, 1.00 * (A.TBSP_USABLE_PAGES - TBSP_USED_PAGES) * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024 AS FREE FROM SYSIBMADM.SNAPTBSP_PART A INNER JOIN SYSIBMADM.SNAPTBSP B ON A.TBSP_ID = B.TBSP_ID;
对已删除表的恢复:
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命令删除的表中的数据可以在前滚恢复时导出。
本文由傻鸟发布,不代表傻鸟立场,转载联系作者并注明出处:https://shaniao.net/database/133.html