DB2常用命令

721 阅读3分钟

这是我参与8月更文挑战的第19天,活动详情查看:8月更文挑战

启动数据库

db2start

connect to mydb

or

activate database mydb

只启动示例

db2start

类似于oracle 的startup nomount

关闭数据库和实例

db2stop

只关闭数据库,但保持实例开启

deactivate database mydb

断开用户连接并关闭数据库

db2stop force

类似于oracle的shutdown immediate

强行关闭数据库

db2_kill

类似于oracle的shutdown abort

\

查看数据库配置

get dbm cfg

get db cfg for mydb

修改数据库配置

update db cfg using 参数 值

强制停止应用连接

force application (596)

获得数据库快照信息

get snapshot for db on mydb

重组表

reorg table tablename

对比oracle的analyze table tablename validate structure cascade

在重组表的时候同时对索引进行重建或重组

收集统计信息

runstats on table schema.tablename and indexes all

备份数据库

backup db mydb to /backup/

检查备份

db2ckbkp -h 备份文件

恢复数据库

restore db mydb from 备份文件 taken at 20110511

rollforward db mydb to end of logs and complete

批量执行sql脚本

db2 -tvf test.sql

显示命令出错信息的描述

db2 ? sql2062

显示当前数据库版本信息

db2level

获取数据库总大小信息,单位字节

db2 "call get_dbsize_info(?,?,?,0)"

db2 "CALL GET_DBSIZE_INFO(? ,? ,? ,0)"

db2 "CALL GET_DBSIZE_INFO(?,?,?,0)"

显示所有表空间信息

db2 list tablespaces show detail

根据表空间id查看对应表空间的存储路径

db2 list tablespace containers for 3 show detail

列出一个schema下的所有表

db2 list tables for schema test

查看表的字段组成

db2 describe table t1

查看表的索引信息

db2 "describe indexes for table t1 show detail"

查看表所在表空间

db2 "select tabname,tbspace from syscat.tables where tabname='T1'"

查看所有表中最大表所占的空间GB

db2 "select snapshot_timestamp,tabschema,tabname,(coalesce(data_object_pages,0)+coalesce(index_object_pages,0)+coalesce(lob_object_pages,0)+coalesce(long_object_pages,0))*16/1024.0/1024 tab_size from table(snap_get_tab('MYDB',-2)) as snap_tab order by coalesce(data_object_pages,0)+coalesce(index_object_pages,0) desc fetch first 1 row only"

列出db2中全部应用

db2 list applications

中止db2一个或多个应用

db2 "force application (596)"

db2 "force application (596,1022)"

查看当前时间戳

db2 "values current timestamp"

列出目前实例下激活了的数据库

db2 list active databases

列出实例下所有数据库

db2 LIST DATABASE DIRECTORY

列出当前用户权限信息

db2 get authorizations

\

查看日志文件位置:

db2 get db cfg for sample |grep "Path to log files"

\

开启数据库归档模式

db2 update db cfg for sample using LOGARCHMETH1 DISK:D:\DB2\NODE0000\SQL00001\archive

需要立刻执行一次备份操作

db2 backup db sample to  D:\DB2\NODE0000

\

执行在线备份操作

db2 backup db sample online to  D:\DB2\NODE0000

\

版本恢复数据库

restore db mydb from 备份文件 taken at 20110511

前滚恢复数据库

restore db mydb from 备份文件 taken at 20110511

rollforward db mydb to end of logs and complete

\

\

recover

db2 recover db sample 

\

增量备份

db2 update db cfg for dbname using trackmod on 

db2 backup db sample online to  D:\DB2\NODE0000

db2 backup db sample incremental to  D:\DB2\NODE0000

\

差异备份delta

db2 update db cfg for dbname using trackmod on 

db2 backup db sample online to  D:\DB2\NODE0000

db2 backup db sample incremental delta to  D:\DB2\NODE0000

\

表空间备份

db2 backup db sample tablespace (表空间名1,表空间名2,...) to  D:\DB2\NODE0000

db2 backup db sample tablespace (表空间名1,表空间名2,...) online to  D:\DB2\NODE0000

表空间恢复

db2 restore db sample tablespace (表空间名1,表空间名2,...) from  D:\DB2\NODE0000 at 时间串

\

自动存储管理的重定向恢复

db2 restore db mydb from 备份文件 taken at 20110511 on 新路径 into 新数据库名

\

DMS/SMS重定向恢复

。。

\

查看备份恢复进度

db2 list utilities show detail

\

\

查看数据库备份的历史记录

db2 list history backup all for sample