db2数据库常用命令总结
---安装数据库
tar zxvf db2_v101_linuxx64_expc.tar.gz
cd expc/
./db2_install
选择默认安装路径 : yes
---配置数据库
创建3个用户组
groupadd -g 901 db2iadm1
groupadd -g 902 db2fadm1
groupadd -g 903 db2dadm1
创建3个用户
useradd -g db2iadm1 -u 101 -d /home/db2inst1 -m db2inst1
useradd -g db2fadm1 -u 102 -d /home/db2fenc1 -m db2fenc1
useradd -g db2dadm1 -u 103 -d /home/db2dasusr1 -m db2dasusr1
添加3个用户密码
passwd db2inst1
passwd db2fenc1
passwd db2dasusr1
检查用户组和用户是否创建成功
cat /etc/group | grep db2
cat /etc/passwd | grep db2
创建实例
cd /opt/ibm/db2/V10.1/instance
./dascrt -u db2dasusr1
./db2icrt -a server -u db2fenc1 db2inst1
配置db2自启动
cd /opt/ibm/db2/V10.1/instance
./db2iauto -on db2inst1
如果上述方法不能实现开机启动,可以尝试在/etc/rc.local中添加如下内容:
su db2inst1 -c '/home/db2inst1/sqllib/adm/db2start'
配置db2网络服务端口
su - db2inst1
db2 update dbm cfg using SVCENAME 50000
修改DB2连接方式为TCP/IP
db2set DB2COMM=TCPIP
---使用
启动数据库
su - db2inst1
db2start
创建数据库
db2 create db testdb using codeset UTF-8 territory CN pagesize 8192
连接数据库,命令如下:
db2 connect to db_name user user_name using password
#db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
显示连接
db2 list applications
进入客户端
db2
sql测试代码-在shel中
db2 "create table test2(a integer , b integer)"
db2 "insert into test2(a , b) values(1,2)"
db2 "select * from test2"
注意:在客户端中直接执行SQL即可,但是不能使用分号来结尾。
删除数据库的database
db2 drop database database_name
使用以下命令查看数据库
db2 list db directory
对于数据库服务器和客户端不在同一机器上的,需要借助catalog命令,来先完成远程数据库加载到本地。连接 catalog server 端的 node ,命令如下:
db2 catalog tcpip node node_name remote hostname server service_port
db2 uncatalog node node_name (取消节点的编目)
#其中 node_name 是由你任意起的一个结点名,结点名不能跟已有的结点名重复(可通过db2 list node directory 查看),hostname也可为IP address,service_port为端口号一般默认为50000。节点目录用于存储远程数据库的所有连通性信息。
远程连接db2 , catalog 远端 DB2 数据库,命令如下:
db2 catalog db db_name [as alias_name] at node node_name
db2 uncatalog db db_name (取消数据库的编目)
#db_name 是指远程数据库的名字, alias_name 是客户端实例名(可以忽略), db2node 是指上面你所指定的节点node !
用db2look命令生成表结构的DLL脚本
db2look -d db_name -i user_name -w password -a -e -o /home/script.sql
#db_name 是指数据库的名字, user_name 是数据库用户名,password是数据库密码
用db2move导出所有表的数据
db2move db_name export -u user_name -p password
#db_name 是指数据库的名字,user_name 是数据库用户名,password是数据库密码
用export导出指定的表数据
db2 "export to d:\data\tab1.ixf of ixf lobs to d:\data\ lobfile lobs modified by lobsinsepfiles messages d:\data\tab1.msg select * from schema_name.table_name"
#schema_name 是表所属,table_name是表名, lobsinsepfiles 或 lobsinfile 是生成lob文件 前一个是生成每个,后面是生成到一个文件中
用export导出表中数据导出ixf数据
db2 "export to [path(例:D:"TABLE1.ixf)] of ixf select [字段(例: * or col1,col2,col3)] from TABLE1 "
用export导出表中数据导出del数据
db2 "export to [path(例:D:"TABLE1.del)] of del select [字段(例: * or col1,col2,col3)] from TABLE1 "
执行sql脚本
db2 -tvf d:\script.sql -z d:\script.log
用db2move导入所有表的数据
db2move db_name import -io replace -u user_name -p password
用import导入指定的表数据
db2 "import from d:\data\tab1.ixf of ixf messages d:\data\tab1.msg insert into schema_name.table_name"