1.启动数据库实例
#db2start
2.停止数据库实例
#db2stop 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all就可以了,或者db2stop force
3.创建数据库
#db2 "create database [dbname] automatic storage yes on [dbpath] using codeset UTF-8 TERRITORY CN COLLATE USING SYSTEM"
automatic storage yes/no 指定自动存储打开或关闭。默认是打开的.
4.创建缓冲池
#db2 "create bufferpool bp32k size 10000 pagesize 32k" size表示页数,pagesize表示页大小,size*pagesize就是缓冲池的内存大小
5.创建数据库管理(DMS)的数据表空间
#db2 "create large tablespace tbs_data pagesize 32k managed by database using (file '/data1/tbs_data/cont0' 100M, file '/data1/tbs_data/cont1' 100M) extentsize 32 prefetchsize automatic bufferpool bp32k no file system caching"
6.创建系统管理(SMS)的临时表空间
#db2 "create temporary tablespace tbs_temp pagesize 32k mamaged by system using ('/data1/tbs_temp') bufferpool bp32k"
7.创建(SMS)管理的用户临时表空间
#db2 "create user temporary tablespace tbs_user_temp pagesize 32k managed by system using ('/data1/tbs_usertemp') bufferpool bp32k"
8.创建自动存储管理(Automatic Storage)的表空间
#db2 "create tablespace tbs_index pagesize 32k bufferpool bp32k"
#db2 "create tablespace tbs_data2 initialsize 100M increasesize 100M maxsize 1000G"
只有建库时启用了automatic storage yes,表空间才支持自动存储管理
9.显示每个表空间核心信息
#db2 list tablespaces
#db2 list tablespace containers for <tablespace_id> show detail 显示指定表空间相关信息
#db2 get snapshot for tablespaces on <db_name> 比list tablespaces更详细的显示表空间信息
10.显示表空间的配置信息,使用情况和容器信息
#db2db2pd -d <db_name> tablespaces
11.表空间容器的更改
alter tablespace <db_name> add/drop/extend/reduce/resize
add和drop操作,表空间会发生数据重新平衡(rebalance),对于reduce和resize操作,需要确保更改后的表空间容器有足够的空间,否则db2会拒绝该操作。
alter tablespace <db_name> begin new stripe set
begin new stripe set 选项是当已有容器使用完后,再使用新增加的容器,该选项不会在容器间做Rebalance ,不会对系统造成性能影响,但它会造成数据偏移。
使用方法:db2 "db2 alter tablespace data_ts2 add(file '/data1/ts2/cont2' 50G)"
alter database db_name add storage on db_path3
对于自动存储管理的表空间,无法在表空间级进行容器更改,只能在数据库级别,因为自动存储路径是在建库时指定的。可以使用add storage on 选项为数据库添加新的存储路径。
12.连接到数据库
#db2 connect to [dbname] user [username] using [password]
13.断开数据库连接
#db2 connect reset 终止数据库连接,包含一个commit的动作,不终止clp(命令行处理器)后台
#db2 terminate 终止这个client发起的进程,释放资源,还终止clp(命令行处理器)的后台进程
14.列出所有数据库
#db2 list db directory
15.列出所有激活的数据库
#db2 list active databases
16.列出所有数据库配置
#db2 get db cfg
17.删除数据库
#db2 drop database [dbname] (执行此操作要小心,谨慎!谨慎!谨慎!)
18.列出所有用户表
#db2 list tables
19.列出所有系统表
#db2 list tables for system
20.列出所有表
#db2 list tables for all
21.列出特定用户表
#db2 list tables for schema [user]
22.创建一个与数据库中某个表(t2)结构相同的新表(t1)
#db2 create table t1 like t2
23.将一个表t1的数据导入到另一个表t2
#db2 "insert into t1 select * from t2"
24.查询表
#db2 "select * from table name where ..." 其中最后加 fetch first 1 row only表示只取一条
25.显示表结构
#db2 describe table tablename
26.修改列
#db2 alter table [tablename] alter column [columname] set data type varchar(24)
27.执行脚本文件
#db2 -tvf scripts.sql 注意文件中语句用;号结尾
28.备份数据库
#db2 backup db <db name> 需要断开数据库连接
29.在线备份数据库
#db2 -v "BACKUP DATABASE <database name> ONLINE TO <path> WITH 2 BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING"
30.恢复数据库
#db2 restore db <source db name>
31.在线恢复数据库
#db2 "RESTORE DB <database name> TO <db path> LOGTARGET <logpath> WITHOUT PROMPTING"
#db2 "ROLLFORWARD DB <database name> TO END OF LOGS AND STOP"
32.导出数据文件
#db2move <db name> export
33.导入数据文件
#db2move <db name> import
34.获取db2数据库管理配置环境信息
#db2 get dbm cfg
35.、.获取db2某个数据库数据库管理配置环境信息
#db2 get db cfg for <db name>
36.显示进行程号
#db2 list applications show detail
37.以默认分隔符加载,默认为“,”号
#db2 "import from btpoper.txt of del insert into btpoper"
38.以指定分隔符“|”加载
#db2 "import from btpoper.txt of del modified by coldel| insert into btpoper"
39.卸载一个表中全部数据
#db2 "export to btpoper.txt of del select * from btpoper"
#db2 "export to btpoper.txt of del modified by coldel| select * from btpoper"
40.删除一个实例:
# ./db2idrop InstName db2idrop在安装db2目录下
41.列出所有DB2实例:
# ./db2ilist
42.数据库建立远程编目
# db2 catalog tcpid node [nodename] remote [IP] server [port]
# db2 catalog database [dbname] at node [nodename]
43.取消已编目的数据库btpdbs
# db2 uncatalog db btpdbs
44.查看版本
# db2level
45.显示当前数据库管理实例
#db2 get instance
46.设置实例系统启动时是否自动启动。
#db2iauto -on 自动启动
#db2iauto -off 不自动启动
47.数据库优化命令:
reorg、runstats
当数据库经过一段时间使用,数据空间会变得越来越庞大。一些delete掉
的数据仍存放在数据库中,占用数据空间,影响系统性能。因此需要定期
运行reorg、runstats命令,清除已delete的数据,优化数据结构。
db2 reorg table 表名
db2 runstats on table 表名 with distribution and indexes all
因为要优化的表比较多,所以在/btp/bin目录下提供了一个sh程序runsall,
可在当天业务结束后,运行runsall,对数据库进行优化
48.数据库导入导出
db2move [dbname] export -sn [schemaname] -u [dbauser] -p [dbapassword] > export.log
db2look -d [dbname] -e -a -x -i [user] -w [passwd] -o ddlfile.sql
db2 -tvf ddlfile.sql
db2move [dbname] import -u [user] -p [passwd] > imp.log
或db2move [dbname] load -u [user] -p [passwd]