近期经常要将WINDOWS上的DB2数据库迁移到AIX系统上,因此有些操作指令比较常用
db2 force application all :
强制停止所有数据库链接
db2stop force : 停止 DB2
db2start : 启动数据库
1. 查看本地节点目录
命令窗口中输入: db2 list node directory
db2stop force : 停止 DB2
db2start : 启动数据库
1. 查看本地节点目录
命令窗口中输入: db2 list node directory
2.
编目一个
TCP/IP
节点
命令窗口: db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
命令窗口: db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3.
取消节点编目
db2 uncatalog node <node_name>
db2 uncatalog node <node_name>
1.
查看本地节点目录
命令窗口中输入: db2 list node directory
命令窗口中输入: db2 list node directory
2.
编目一个
TCP/IP
节点
命令窗口: db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
命令窗口: db2 catalog tcpip node <node_name> remote
<hostname|ip_address> server <svcname|port_number> ostype
<OS2|AIX|WIN95|NT|HPUX|SUN|MVS|OS400|VM|VSE|SCO|SGI|LINUX|DYNIX>
3.
取消节点编目
db2 uncatalog node <node_name>
db2 uncatalog node <node_name>
4.
查看系统数据库目录
db2 list database directory
db2 list database directory
5.
查看本地数据库目录
db2 list database directory on < 盘符 >
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中 < 数据库 > 右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。
db2 list database directory on < 盘符 >
在本地数据库目录中有而系统数据库目录中没有的数据库不能访问,可以在控制中心中选中 < 数据库 > 右键单击选择添加,然后输入需要添加的数据库名称或者点击刷新按钮选择数据库,加入数据库后即可以访问。
6.
编目数据库
db2 catalog database <db_name> as <db_alias> at node <node_name>
db2 catalog database <db_name> as <db_alias> at node <node_name>
7.
取消数据库编目
db2 uncatalog database <db_name>
db2 uncatalog database <db_name>
8.
测试远程数据库的连接
db2 connect to <db_alias> user <user_id> using <password>
db2 connect to <db_alias> user <user_id> using <password>
9.
任何用户均可通过设置
Current Schema
专用寄存器为特定的数据库连接设置默认模式,初始默认值为当前会话用户的权限
ID
。
set schema = <schema name>
可以由用户交互式的使用,也可在应用程序中使用,如果用 Dynamicrules
Bind 选项绑定包,这个语句就没有作用。此语句不在事务控制之下。
set schema = <schema name>
可以由用户交互式的使用,也可在应用程序中使用,如果用 Dynamicrules
Bind 选项绑定包,这个语句就没有作用。此语句不在事务控制之下。
10.
代码页的设置
在创建数据库时设置字符集
create database <db_name> using codeset <codeset> territory
<territiry>
例:
create database dbtest using codeset IBM-437 territory US
也可以设置整个数据库的代码页,在 win2000/NT/xp 中,在我的电脑 --> 属性 --> 高级 --> 环境变量中添加变量 DB2CODEPAGE
= <codepage> ,例: DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386 。或者在 IBM
DB2 命令窗口输入 db2set DB2CODEPAGE=1386 ,设置后需要重新启动 DB2 生效。
在创建数据库时设置字符集
create database <db_name> using codeset <codeset> territory
<territiry>
例:
create database dbtest using codeset IBM-437 territory US
也可以设置整个数据库的代码页,在 win2000/NT/xp 中,在我的电脑 --> 属性 --> 高级 --> 环境变量中添加变量 DB2CODEPAGE
= <codepage> ,例: DB2CODEPAGE = 437 或 DB2CODEPAGE = 1386 。或者在 IBM
DB2 命令窗口输入 db2set DB2CODEPAGE=1386 ,设置后需要重新启动 DB2 生效。
11. DB2
低版本数据到高版本的迁移
先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入 db2 migrate database <db_name> 。
先将低版本数据备份使用恢复功能导入高版本数据库,然后在命令窗口输入 db2 migrate database <db_name> 。
12.
表名或模式中含有引号时访问表
命令窗口: db2 select * from /"tabschema/"./"tabname/"
命令行处理器: db2=> select * from "tabschema"."tabname"
命令窗口: db2 select * from /"tabschema/"./"tabname/"
命令行处理器: db2=> select * from "tabschema"."tabname"
13.
导出数据库的表结构生成
DDL
文件
命令窗口: db2look -d <db_name> -e -c -o <file_name>
14. 执行脚本文件
命令窗口: db2 -tvf <file_name>
15. 代码页的转换
命令窗口: db2look -d <db_name> -e -c -o <file_name>
14. 执行脚本文件
命令窗口: db2 -tvf <file_name>
15. 代码页的转换
16.
获取当前
DB2
的版本
select * from sysibm.sysversions
select * from sysibm.sysversions
17. DB2
表的字段的修改限制
?
只能修改 VARCHAR2 类型的并且只能增加不能减少
alter table <tb_name> alter column <col_name> set data type
varchar(SIZE)
只能修改 VARCHAR2 类型的并且只能增加不能减少
alter table <tb_name> alter column <col_name> set data type
varchar(SIZE)
18.
如何查看表的结构
?
describe table <tb_name>
or
describe select * from <schema>.<tb_name>
describe table <tb_name>
or
describe select * from <schema>.<tb_name>
19.
如何快速清除一个大表
?
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
ALTER TABLE TABLE_NAME ACTIVE NOT LOGGED INITALLY WITH EMPTY TABLE
20.
如何查看数据库的存储过程
?
SELECT * FROM SYSCAT.PROCEDURES
SELECT * FROM SYSCAT.PROCEDURES
21.
如何查看表的约束
?
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name>
SELECT * FROM SYSCAT.CHECKS WHERE TABNAME = <tb_name>
22.
如何查看表的引用完整约束
?
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name>
SELECT * FROM SYSCAT.REFERENCES WHERE TABNAME = <tb_name>
23.
如何知道
BUFFERPOOLS
状况
?
select * from SYSCAT.BUFFERPOOLS
select * from SYSCAT.BUFFERPOOLS
24.
如何在命令行下查看修改实例和数据库配置参数
?
查看实例配置参数 : db2 get dbm cfg
修改实例配置参数 : db2 update dbm cfg using 参数名 新值
查看实例配置参数 : db2 get dbm cfg
修改实例配置参数 : db2 update dbm cfg using 参数名 新值
查看数据库配置参数
: db2 get db cfg for <db_name>
修改数据库配置参数 : db2 update db cfg for <db_name> using 参数名 新值
修改数据库配置参数 : db2 update db cfg for <db_name> using 参数名 新值
25.
如何修改缓冲区
?
增加缓冲区 : create bufferpool <buf_name> size <number of pages>
[pagesize 4096] {[not] EXTENDED STORAGE}
修改缓冲区 : alter bufferpool <buf_name> size <number of pages> {[not]
EXTENDED STORAGE}
删除缓冲区 : drop bufferpool <buf_name>
增加缓冲区 : create bufferpool <buf_name> size <number of pages>
[pagesize 4096] {[not] EXTENDED STORAGE}
修改缓冲区 : alter bufferpool <buf_name> size <number of pages> {[not]
EXTENDED STORAGE}
删除缓冲区 : drop bufferpool <buf_name>
如果缓冲区大小设置为
-1
表示缓冲池的页面数目由数据库配置参数
buffpage
决定。
注意 : 数据库配置参数 buffpage 仅对缓冲区大小设置为 -1 的缓冲池起作用。
注意 : 数据库配置参数 buffpage 仅对缓冲区大小设置为 -1 的缓冲池起作用。
26.
多个字段时如何不通过使用
select
子句使用
in/not in
select * from tabschema.tabname where (colA, colB, colC) [not] in
(values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2),
...(valueAn, valueBn, valueCn))
select * from tabschema.tabname where (colA, colB, colC) [not] in
(values (valueA1, valueB1, valueC1), (valueA2, valueB2, valueC2),
...(valueAn, valueBn, valueCn))
27.
查看当前连接到数据库的应用
db2 list application [show detail]
db2 list application [show detail]
28.
如何确认
DB2
数据库的一致性
db2dart <db_name> /DB
/DB 表示检查整个数据库的一致性
db2dart <db_name> /DB
/DB 表示检查整个数据库的一致性
29.
测试
SQL
语句的性能
db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r
<outfile_name>]
-r 选项表示将查询结果输出到一个文件中。
30. 导出某个表的数据
export to <Derectry><filme>
如:导出用户表
export to c:/user.ixf of ixf select * from user
db2batch -d <db_name> -f <file_name> [-a userid/passwd] [-r
<outfile_name>]
-r 选项表示将查询结果输出到一个文件中。
30. 导出某个表的数据
export to <Derectry><filme>
如:导出用户表
export to c:/user.ixf of ixf select * from user
31.
导入数据
import from
如:导入用户表。导入时可以直接建立新表。如果有该表存在也可以用 INSERT 插入,或者用 UPDATE 更新
import from c:/user.ixf of ixf [Create/Insert into / update]
tablename
import from
如:导入用户表。导入时可以直接建立新表。如果有该表存在也可以用 INSERT 插入,或者用 UPDATE 更新
import from c:/user.ixf of ixf [Create/Insert into / update]
tablename
32.
异构操作系统的数据库数据的导出与导入
DB2MOVE DBNAME EXPORT –SN SCHEMANAME –U USERID –P PASSWORD
DB2MOVE DBNAME IMPORT
33.
导出数据库的所有对象生成
DDL
文件
命令窗口: db2look -d <db_name> -u createuser-z schemaname –I userid –w password -o <file_name> -dp
上述命令为特定的数据库对象的创建用户 , 指定的模式生成 DDL 文件 , 并在 CREATE 语句之前生成 DROP 语句 .
命令窗口: db2look -d <db_name> -u createuser-z schemaname –I userid –w password -o <file_name> -dp
上述命令为特定的数据库对象的创建用户 , 指定的模式生成 DDL 文件 , 并在 CREATE 语句之前生成 DROP 语句 .
(
注
,
在根据
DDL
文件生成数据库对象时
,
最好是将分阶段形成数据库对象
:
数据库模式
/
数据库表
/
数据库视图和存储过程等
,
因为上述命令生成时有一定的顺序
:
按数据库对象类别如视图
DDL/
表
DDL
等
)