当前位置:文档之家› db2数据库使用

db2数据库使用

db2数据库使用
db2数据库使用

一、db2 基础

基本语法

注释:“--”(两个减号)

字符串连接:“||”

如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’

字符串的引用:'’(一定用单引号),如果需要输入单引号,输入两个单引号即可。

语句结束:“;”

语法来源:PASCLE

转义字符:

如果你想查询字符串中包含'%’或'_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符

串’99%’的纪录:

SELECT * FROM books WHERE book_title like '%99!%%’escape '!’

后面的escape '!’是定一个转义字符'!’, 指明紧跟着转义字符’!'后的%不再是统配符。

DB2命令参数选项

Db2 list command options 可以查看

-a 显示 SQLCA OFF

-c 自动落实 ON

-e 显示 SQLCODE/SQLSTATE OFF

-f 读取输入文件 OFF

-l 将命令记录到历史文件中 OFF

-n 除去换行字符 OFF

-o 显示输出 ON

-p 显示交互式输入提示 ON

-r 将输出保存到报告文件 OFF

-s 在命令出错时停止执行 OFF

-t 设置语句终止字符 OFF

-v 回送当前命令 OFF

-w 显示 FETCH/SELECT 警告信息 ON

-x 不打印列标题 OFF

-z 将所有输出保存到输出文件 OFF

这些选项的具体功能及其缺省设置为:

.a 显示 SQLCA 的数据,缺省为 OFF。

.c 是否自动落实 SQL 命令,缺省为 ON。

.e {c|s} 显示 SQLCODE 或 SQLSTATE,缺省为 OFF。

.f 文件名将命令的输入从标准输入指定到某一文件,缺省为OFF。

注:命令“db2 < 文件名”与“db2 -f 文件名”作用相同。

.l 文件名将命令记录到历史文件中,缺省为 OFF。

.n 除去换行字符,缺省为 OFF。

.o 将输出数据及信息送到标准输出,缺省为 ON。

.p 在交互方式下显示命令行处理器的提示信息,缺省为 ON。

.r 将输出保存到指定文件中,缺省为 OFF。

.s 执行批处理文件中或交互方式下的命令出错时即停止执行操作,缺省为 OFF。

.t 设置语句终止字符,缺省为 OFF。

.v 回送当前命令到标准输出,缺省为 OFF。

.w 显示 FETCH 或 SELECT 警告信息,缺省为 ON。

.x 不打印列标题,缺省为 OFF。

.z 文件名将所有输出保存到输出文件,缺省为 OFF。SQLSTATE含义

在db2命令行方式下输入:? 20012(SQLSTATE值),可以获取sql错误含义

import和export的用法

IMPORT FROM CO_ACCEPTANCEDRAFT.del OF DEL MESSAGES importmsgs.txt INSERT INTO cmmcorc.CO_ACCEPTANCEDRAFT;

EXPORT TO CO_ACCEPTANCEDRAFT.del OF DEL MESSAGES exportmsgs.txt SELECT * FROM cmmcorc.CO_ACCEPTANCEDRAFT;

如果是Sybase导出的文本,并且用TAB分隔符的文档,那么可以采用

Db2 import from filename.txt of del modified by COLDEL0x09 insert into tablename;

其中COLDEL是关键字,0x09是16进制,表示tab符号

Load用法

load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;

说明:

在不相关的数据表export数据时,可以采取并发的形式,以提高效率;

TABLENAME指待清理table的名称;

modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;

replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;

nonrecoverable无日志方式装入;

查询出用户表

SELECT * FROM SYSIBM.SYSTABLES WHERE CREATOR='USER'

如何知道当前DB2的版本?

select * from sysibm.sysversions

如何知道TABLESPACE的状况?

select * from sysibm.SYSTABLESPACES

如何知道INDEX的状况?

select * from sysibm.sysindexes where tbname=’XXXX’

or

describe indexes for table table_name show detail

测试SQL的执行性能

db2batch -d DB_NAME -f select.sql -r benchmark.txt -o p3 select.sql是select语句写在文件中

如何获取连接的进程

List applications

删除当前正在使用的application:

db2 "force application (Id1,Id2,Id3)"

Id1,Id2,Id3 是List显示的应用号;

删除所有的进程

db2 force application all

查看当前应用号的执行状态:

db2 get snapshot for application agentid 299 |grep Row

如何修改缓冲池

db2 alter bufferpool ibmdefaultbp size 10240

如何知道表的字段的状况?

select * from sysibm.syscolumns where tbname=’XXXX’

如何知道DB2的数据类型?

select name,* from sysibm.sysdatatypes

如何知道BUFFERPOOLS状况?

select * from sysibm.sysbufferpools

如何查看表的结构?

describe table table_name

or

describe select * from schema.table_name

如何快速清除一个大表?

alter table table_name activate not logged initally with empty table

or

import from null_file of del replace into table_name

如何查看数据库的包?

select * from syscat.packages

如何查看数据库的存储过程

select procname,text,* from syscat.procedures

Or

select procname,text from sysibm.sysprocedures

如何查看数据库SAMPLE的配置文件的內容?

get database configuration for sample

or

get db cfg for sample

如何將数据库SAMPLE的参数设置为默认数值?

reset database configuration for sample

or

reset db cfg for sample

如何修改数据库SAMPLE配置参数数值?

update database configuration for sample

using

or

update db cfg for sample using

如何重新啟動数据库?

Restart db db_name

如何激活数据库?

Activate db db_name

如何停止数据库?

Deactivate db db_name

如何重命名表?

Rename old_tablename to new_tablename

如何设置DB2环境变量

Db2set命令,语法如下:

Db2set variant=value

如何除去quiesce状态

1. 连接到数据库

2. 用 list tablespaces 判断哪个tablespace处于quiesce状态和和取得对象(object)ID

3. 判断对象ID对应的表

a)用 db2 "select tabname from syscat.tables where tablid=对象ID" 得到表名

b)用 db2 list history 判断是那个表

4. 用 db2 quiesce tablespaces for table 表名 reset 去除quiesce状态

如何实施已删除表的恢复(Dropped Table Recovery)

1. 首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开)。

2. 对要实施Drop Table Recovery的表空间(限regular tablespace),执行:

alter tablespace 表空间名 dropped table recovery on

3. 用 list history dropped table all for 数据库名 得到删除表的tableid(例如 0000000000006d0000020003)和表结构的生成语句(DDL),记录tableid和该语句以便恢复。之后,用drop命令删除的表中的数据可以在前滚恢复时导出。

4. 恢复数据库后,如果想恢复已删除的表,在前滚时加recover dropped table tableid to 目标目录 。 在该目录下被删除的表中的数据导出,例如导出至 ../NODE0000/data文件。利用上面提到表结构生成语句生成被删除了的表,然后用import命令将数据导入表中。

如何备份数据库

db2 "backup database sample tablespace (syscatspace, userspace1) online to /dev/rmt0 without prompting"

or

db2 "backup database sample user db2admin using db2admin to c:\backup with 3 buffers buffer 1000 without prompting"

如何生成所有对象的DDL

db2look -d DB_NAME -a -e -m -l -f -o filename.sql

如何恢复数据库

以下是引用片段:

restore db db1 to /tstdb2/catalog into db newlogpath

/tstdb2/db2log buffer 2048

replace existing redirect parallelism 16;

set tablespace containers for 1 using (path

'/tstdb2/db2tmp');

set tablespace containers for 2 using

(device '/dev/rtstcontlv00' 2621440, device

'/dev/rtstcontlv01' 2621440,

device '/dev/rtstcontlv02' 2621440, device

'/dev/rtstcontlv03' 2621440 ) ;

restore db db1 continue;

恢复完成后,执行db2s命令,如果出错,再执行如下命令:

db2 rollforward db db to end of logs and complete

如何查看数据库目录

1)首先用 db2 list database directory 命令查看系統資料庫目錄(System Database Directory)中有沒有該資料庫。

如果有,應該再確定該資料庫是沒有用的資料庫之後用 db2 drop database 資料庫名將其刪除。

2)如果沒有,再用 db2 list database directory on location 看在本端資料庫目錄(Local Database Directory)中有沒有該資料庫,location指定資料庫的位置(如Windows下的C: ,Unix下

的/home/db2inst1)。

如何更改本地系统名称

1.db2set db2system=新系统名

2. db2 terminate

3. db2 uncatalog node 原节点名

4. db2 terminate

如何使用DB2MOVE

以下是引用片段:

Db2move DB_NAME action -u USERID –p PASSWORD

Action:export,import,load

Options如下:

OptionDefaultNotes

-tctable-creatorsall_creatorsEXPORT.Wildcard

-tntable-namesall_user_tablesEXPORT.Wildcard

-snschema-namesall_schemasEXPORT.Wildcard

-tstblspace-namesall_tablespaceEXPORT.Wildcard

-tftablesfromfile

-ioimport-optionREPLACE_CREATEIMPORT_only.

-loload-optionINSERTLOAD_only.

-llobpathscurrent_dirseparated_by_commas.NO

-uuseridlogged_on_userid

-ppasswordlogged_on_password

-awallow-warningsfalseinclude

warningsduringexport.

例如:

Db2move ehrdb export –u ehr –p ehr

Db2move ehrdb import –u her –p ehr

IMPORT如何避免日志满出错

在使用IMPORT命令向数据库出入数据时,如何避免日志空间满错误? 在执行IMPORT命令时, 如果使用循环日志, 有时会出现日志满错误,

这时可用COMMITCOUNT参数来解决.

因为日志空间满往往是因为所有的日志均处于活动状态导致的.

而COMMIT执行后, 会释放所占据的资源, 其中包括日志 .

这样, 被当前事务使用的日志在COMMIT命令执行后, 即变成非活动状态了.

如何处理日志

-日志处理

DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。

目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2 update db cfg for using logretain on 注:改为on 后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂(BACKUP PENDING)状态。这时,需要做一次对数据库的脱机备份(db2 backup db ),才能使数据库状态变为正常。

循环日志模式:db2 update db cfg for using logretain off

-处理步骤

必须按照以下正确的步骤进行操作:

要求必须使用DB2命令PRUNE进行清理,不建议使用rm命令删除。 删除前应保证应用已停止(即联机已下来)。

查看当前使用的日志文件目录及第一活动日志文件

用 “db2 get db cfg for ”命令查看日志文件目录(Path to log files)参数,确定数据库当前使用的日志文件目录。 例如:Path to log files = /db2log/,说明DB2日志存放目录是/db2log

用 “db2 get db cfg for ”命令查看第一活动日志文件(First active log file)参数,该参数对应的日志文件之前的日志文件均为归档日志文件,如果确认没有用,可以删除。例如:First active log file = S0015913.LOG,说明当前第一活动日志文件是S0015913.LOG。 备份好要删除的归档日志

删除归档日志 以应用用户(如BTP)登录,执行:

$ db2 connect to

$ db2 prune logfile prior to S???????.LOG

注:S???????.LOG为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。

如何清理db2diag.log文件

db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大的,需要定期进行清理。

可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data

directory path(DIAGPATH) = /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文件系统/home 的使用率达到80%-90%左右时,应及时删除db2diag.log文件。

请按以下正确步骤操作:确认应用(如BTP)、DB2已经停止。

将原db2diag.log文件备份到其它文件系统下。

删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。 标准函数

length: 返回自变量中的字节数

CAST: 变量类型转换或截断字符串

如:CAST(RESUME AS VARCHAR(370))

Select CAST(colname as integer) from tablename;

decimal: 变量转换为指定精度的数值

如: select decimal(amount,16,2) from tablename;

WHERE 子句条件

谓词 功能

x = y x 等于 y

x <> y x 不等于 y

x < y x 小于 y

x > y x 大于 y

x <= y x 小于或等于 y

x >= y x 大于或等于 y

IS NULL/IS NOT NULL 测试空值

获取系统日期或系统时间

select current time into curtime from (values 1) as tmp; select current date into curdate from (values 2) as tmp; select year(current date) into curdate from (values 2) as tmp; --获取系统年份

select month(current date) into curdate from (values 2) as tmp; --获取系统月份

select day(current date) into curdate from (values 2) as tmp; --获取系统日份

(CURRENT TIMESTAMP 精度达到微秒)

如何预防空值

DB2的COALESCE函数返回()中表达式列表中第一个不为空的表达式,可以带多个表达式, 和oracle的isnull类似。语法格式如下:

CLEASCE(colname,default_value)

多表的关联更新方法

db2的update语法不支持“update table1 set t1.col1=t2.value1 from table1 t1,table2 t2 where …”的写法,但是可以通过如下方法解决:

update table1 t1 set t1.col1=(select t2.col1 from table2 t2 where …)

例:

update test t1 set (https://www.doczj.com/doc/0b11788054.html,ername,t1.instcode) = (select

t2.instcode,t2.instname from sysinsttb t2 where

t2.instcode=t1.instcode);

获取操作(insert、update)的记录数

GET DIAGNOSTICS rcount=ROW_COUNT;

注:

get diagnostics rcount =ROW_COUNT;

只对update,insert,delete起作用.

不对select into 有效

如何执行RUNSTATS等优化命令

db2 runstats on table with distribution and detailed indexes all

db2 reorgchk update statistics on table all

查看什么时候进行了runstats

db2 "select name, stats_time from sysibm.systables"

完整执行如下:

db2 connect to ocrm1 user db2iocrm using db2iocrm

db2 runstats on table db2iocrm.eosoperator with

distribution and indexes all

db2 reorg table db2iocrm.eosoperator allow read access

db2 reorg indexes all for table db2iocrm.eosoperator allow read access

db2 connect reset

如何获取结果集的前N行数据

Select * from tablename fetch first N rows only

安装DB2默认值?

在WINDOWS或OS/2中默认实例的是DB2

在LINUX或UNIX环境下默认实例的是DB2INST1

在WINDOWS或OS/2中默认帐户的是DB2ADMIN

在LINUX或UNIX环境下默认帐户的是DB2AS

db2look命令详解

db2look 今天整理了一下db2look命令参数说明 db2look Command syntax | |>>-db2look-- -d--DBname--+-----+--+--------------+--------------> | '- -e-' '- -u--Creator-' | |>--+-------------+--+-------------------------------------+-----> | '- -z--schema-' '-+----------------+--+-------------+-' | | .-------. | '- -tw--Tname-' | | V | | | '- -t----Tname-+-' | |>--+----------------+--+-----+--+------------+--+-----+---------> | | .-------. | '- -h-' '- -o--Fname-' '- -a-' | | V | | | '- -v----Vname-+-' | |>--+-----------------------+--+-----+--+-----+--+------+--------> | '- -m--+-----+--+-----+-' '- -l-' '- -x-' '- -xd-' | '- -c-' '- -r-' | |>--+-----+--+-----------------+--+-----+--+-----+--+-----+------> | '- -f-' '- -td--delimiter-' '- -p-' '- -s-' '- -g-' | |>--+----------+--+----------------------------+-----------------> | '- -noview-' '- -i--userid-- -w--password-' | |>--+------------------+--+---------+---------------------------><

db2数据库使用

一、db2 基础 基本语法 注释:“--”(两个减号) 字符串连接:“||” 如set msg=’aaaa’||’bbbb’,则msg为’aaaabbbb’ 字符串的引用:'’(一定用单引号),如果需要输入单引号,输入两个单引号即可。 语句结束:“;” 语法来源:PASCLE 转义字符: 如果你想查询字符串中包含'%’或'_’ ,就得使用转义字符(Escape Characters)。比如,要想查询book_title中包含字符 串’99%’的纪录: SELECT * FROM books WHERE book_title like '%99!%%’escape '!’ 后面的escape '!’是定一个转义字符'!’, 指明紧跟着转义字符’!'后的%不再是统配符。 DB2命令参数选项 Db2 list command options 可以查看 -a 显示 SQLCA OFF -c 自动落实 ON -e 显示 SQLCODE/SQLSTATE OFF -f 读取输入文件 OFF -l 将命令记录到历史文件中 OFF -n 除去换行字符 OFF -o 显示输出 ON -p 显示交互式输入提示 ON -r 将输出保存到报告文件 OFF -s 在命令出错时停止执行 OFF -t 设置语句终止字符 OFF -v 回送当前命令 OFF -w 显示 FETCH/SELECT 警告信息 ON -x 不打印列标题 OFF -z 将所有输出保存到输出文件 OFF 这些选项的具体功能及其缺省设置为: .a 显示 SQLCA 的数据,缺省为 OFF。 .c 是否自动落实 SQL 命令,缺省为 ON。

DB2_数据库日志管理

1、load 方法装入数据: export to tempfile of del select * from tablename where not 清理条件; load from tempfile of del modified by delprioritychar replace into tablename nonrecoverable; 说明: 在不相关的数据表export数据时,可以采取并发的形式,以提高效率; tablename指待清理table的名称; modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况; replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容; nonrecoverable无日志方式装入; 2、查找当前的应用: db2 list application grep btpdbs; 3、删除当前正在使用的application: db2 "force application (id1,id2,id3)" id1,id2,id3 是list显示的应用号; 4、查看当前应用号的执行状态: db2 get snapshot for application agentid 299 grep row 5、查看数据库参数: db2 get db cfg for //当前数据库可以省略 6、修改数据库的log数据: db2 update db cfg using <参数名> <参数值> 7、db2stop force的用法: 在进行bind的时候出现如下错误: sql0082can error has occurred which has terminated processing. sql0092nno package was created because of previous errors. sql0091nbinding was ended with "3" errors and "0" warnings. 主要是表文件被加锁,不能继续使用; 在进行stop的时候报错:db2stop 8/03/2005 21:46:530 0 sql1025nthe database manager was not stopped because databases are still active.

DS连接DB2和Oracle

DB2: 1.在ds服务器安装oracle客户端 2.db2 catalog数据库 3.配置$DSHOME/dsenv文件,加入如下内容: DB2DIR=/opt/IBM/db2/V10——实际路径 DB2INSTANCE=db2inst1 ——实际的db2实例用户 INSTHOME=/home/db2inst1 ——实际路径 DB2PATH=/opt/IBM/db2/V10 ——-实际路径 PATH=$PATH:$INSTHOME/sqllib/bin:$INSTHOME/sqllib/adm:$INSTHOME/sqllib/mi sc:$INSTHOME/sqllib/db2tss/bin:$DSHOME/bin:$DB2PATH/bin LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$INSTHOME/sqllib/lib:$DB2PATH/lib64 THREADS_FLAG=native export DB2DIR DB2INSTANCE INSTHOME DB2PATH PATH LIBPATH THREADS_FLAG Oracle: 1.在ds服务器安装oracle客户端 2.编辑$ORACLE_HOME/network/admin/tnsnames.ora文件,加入数据库信息 3.配置oralce驱动程序: Oracle 11g需要配置驱动过程如下: 请使用root用户

切换到oracle目录下 $cd/home/db/oracle/app/product/11g_64/lib 为oracle驱动建立软连接: $cd ORACLE_HOME/lib $ln -s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora11g.so licccora11g.so $ln –s /IBM/InformationServer/Server/StagingArea/Installed/OracleConnector/Server/linux/li bccora10g.so licccora10g.so 4.安装软连接库文件 export APT_ORCHHOME=/IBM/InformationServer/Server/PXEngine export DSHOME=/IBM/InformationServer/Server/DSEngine $cd /IBMInformationServer/Server/StagingArea/Installed/PxOracle/install/ $vi install.liborchoracle 找到 install_driver() { case $version in 9 ) VER='9i';; 10 ) VER='10g';; 0 ) return;; esac

DB2常用SQL语句集

DB2常用SQL语句集 1、查看表结构: describe table tablename describe select * from tablename 2、列出系统数据库目录的内容: list database directory 3、查看数据库配置文件的内容: get database configuration for DBNAME 4、启动数据库: restart database DBNAME 5、关闭表的日志 alter table TBLNAME active not logged inially 6、重命名表 rename TBLNAME1 to TBLNAME2 7、取当前时间 select current time stamp from sysibm.sysdummy1 8、创建别名 create alias ALIASNAME for PRONAME(table、view、alias、nickname) 9、查询前几条记录 select * from TBLNAME fetch first N rows 10、联接数据库 db2 connect to DB user db2 using PWD 11、绑定存储过程命令 db2 bind BND.bnd 12、整理优化表 db2 reorgchk on table TBLNAME db2 reorg table TBLNAME db2 runstats on table TBNAME with distribution and indexes all 13、导出表 db2 export to TBL.txt of del select * from TBLNAME db2 export to TBL.ixf of ixf select * from TBLNAME 以指定分隔符‘|’下载数据: db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode”14、导入表 db2 import from TBL.txt of del insert into TBLNAME db2 import from TBL.txt of del commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 insert_update into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 replace into TBLNAME db2 import from TBL.ixf of ixf commitcount 5000 create into TBLNAME (仅IXF) db2 import from TBL.ixf of ixf commitcount 5000 replace_create into TBLNAME (仅 IXF) 以指定分隔符“|”加载:

在db2上建立数据库分区的步骤和命令

本文简单介绍了在DB2上建立数据库分区的步骤和涉及到的命令等,供大家参考! AD:创建database partition 1、创建需要建立数据库分区的db instance 可使用命令建立db instance: db2icrt -s ESE -u db2admin,aaa123456 -h ANWENHAO DBINSTANCENAME 创建完成对应的instance 后需要重启DB2。 2、将新建的db instance加入到DB2中: CATALOG LOCAL NODE DB2INST1 INSTANCE DB2INST1 SYSTEM ANWENHAO OSTYPE NT; 3、在命令行中设置当前需要操作的dbInstance。 set db2instance=db2inst1 db2 get instance

db2 attach to db2inst1 4、创建DBPartition db2start dbpartitionnum 1 ADD DBPARTITIONNUM HOSTNAME ANWENHAO PORT 1 COMPUTER ANWENHAO USER db2admin PASSWORD aaa123456 WITHOUT TABLESPACES 5、创建完成后需要重新启动db2。DB2在此时会增加一个database partition并进行redistribution。 以上操作即完成database partition。 创建database partition group CREATE DATABASE PARTITION GROUP "NODE1" ON DBPARTITIONNUMS (1); COMMENT ON DATABASE PARTITION GROUP "NODE1" IS 'ANWENHAO _1';

Linux使用命令行安装DB2【详解】

DB2 ESE V9.7文本方式安装主要流程: (1)解压安装包,检查安装先决条件 (2)执行安装程序 (3)注册license(Express-C版无需注册) (4)创建3个用户组和3个用户,分别是实例用户、受限用户、管理用户 (5)创建一个管理服务器 (6)创建一个实例 (7)配置DB2访问协议 (8)配置DB2实例默认端口号 一、安装前准备工作 1、将下载的安装文件上传到待安装的LINUX 机器,解压缩v9.7_linuxx64_server.tar.gz 文件到某个目录 [root@redflag11012601 app]# ll v*gz -rw-r--r-- 1 root root 810576392 05-03 19:44 v9.7_linuxx64_server.tar.gz [root@redflag11012601 app]# tar xzf v9.7_linuxx64_server.tar.gz 2、解压产生两个目录server和db2 [root@redflag11012601 app]# cd server [root@redflag11012601 server]# ll

总计 64 drwxr-xr-x 6 bin bin 4096 2009-11-16 db2 -r-xr-xr-x 1 bin bin 5340 2009-11-16 db2ckupgrade -r-xr-xr-x 1 bin bin 5293 2009-11-16 db2_deinstall -r-xr-xr-x 1 bin bin 5163 2009-11-16 db2_install -r-xr-xr-x 1 bin bin 5127 2009-11-16 db2ls -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2prereqcheck -r-xr-xr-x 1 bin bin 5145 2009-11-16 db2setup drwxr-xr-x 15 bin bin 4096 2009-11-16 doc -r-xr-xr-x 1 bin bin 5181 2009-11-16 installFixPack server 的子目录有多个可执行的脚本,其中db2prereqcheck是先决条件检查,db2setup 是图形界面安装程序,db2_install是命令行方式安装。还有一个db2目录,保存了需要安装的二迚制文件。 3、执行db2prereqcheck查看是否缺少先决条件 [root@redflag11012601 server]# ./db2prereqcheck 如果没有返回任何结果,表明系统符合DB2 安装的先决条件,可以进入下一步安装。如果返回信息,请按信息提示修改配置,然后再次运行,直到没有错误提示。 二、安装DB2数据库软件

DB2数据库备份与恢复详解

DB2数据库备份与恢复 1.备份 1.1离线备份(必须在数据库所在PC机进行操作) STEP 1 连接到要备份的数据库(数据库名:ncc) C:\Documents and Settings\Administrator>db2 connect to ncc user nccwykpi using nccwykpi STEP 2 显示数据库应用状态 C:\Documents and Settings\Administrator>db2 list applications

STEP 3 停掉数据库应用 C:\Documents and Settings\Administrator>db2 force applications all 注意:由于该命令是异步的,所以在进行备份的时候会出现以下错误信息。此时可以再次执行db2 force applications all 命令。 STEP 4 对数据库进行离线状态下的备份 C:\Documents and Settings\Administrator>db2 backup database ncc to d:\db2\backup

注意:指定的备份文件的输出目录必须是已创建的,否则会报错。 STEP 5 查看备份历史记录 C:\Documents and Settings\Administrator>db2 list history backup all for ncc

1.2在线备份 注意:如果要做在线的备份,要对两个参数作修改:USEREXIT和LOGRETAIN,将其修改为on,默认是off的,默认使用日志模式,修改完参数后,可以变为归档日志模式,启用了userexit做数据库日志的归档。 STEP 1 查看数据库当前的属性 C:\Documents and Settings\Administrator>db2 get db cfg STEP 2 设置userexit、logretain参数的状态为on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using userexit on C:\Documents and Settings\Administrator>db2 update db cfg for ncc using logretain on

db2数据库复制

DB2 与DB2 之间的远程SQL 复制 白玉媛 (baiyy@https://www.doczj.com/doc/0b11788054.html,), 软件工程师,IBM 中国软件开发中心,IBM 肖振春 (xiaozc@https://www.doczj.com/doc/0b11788054.html,), 软件工程师, IBM 中国软件开发中心 简介:本文介绍了基于SQL 的DB2 与DB2 之间的远程复制,力求为初学者掌握DB2 复制提供一个参考步骤。 标记本文! 发布日期: 2006 年12 月21 日 级别:中级 访问情况 2363 次浏览 建议: 0 (添加评论) 平均分(共3 个评分) 本文介绍了基于“SQL复制”的DB2 与DB2 之间的远程复制。很多读者反映,对于初学者,由于对DB2 的复制概念不是很清楚,在实践中或多或少遇到了入手难的问题。本文通过对远程DB2 之间的复制的介绍,力求为初学者对DB2 的掌握提供一个参考步骤。 背景 “SQL”复制又称为“DB2 复制”,是为DB2 开发的两种数据复制类型中的一种,它是通过SQL 进行的复制。在这里简单提一下,DB2 复制中的另一种”Q 复制”是通过WebSphere MQ 队列进行的。在进行SQL 复制时,Capture 程序读取DB2 恢复日志以获取对指定源表的更改。该程序将更改保存到分级表中,Apply 程序并行读取更改并应用于目标事务。见图1。 图 1. SQL复制的结构 动机 商业上用复制出于很多原因,可以归纳为: ?分散,把数据分散到各个地方 ?整合,把其他地方的数据联合起来

?交换,与其他地方进行双向的数据交换 ?灵活应用,对上面提到的进行一些改变或者结合 在企业的生产环境中,常常会遇到把分公司的数据汇总到总公司的情况。这些数据可能分别建立在不同的数据库系统之中,也可能只使用DB2 数据库。无论哪种情况,都可以通过IBM 的DB2 ESE 和Webshpere II 产品进行操作。如果产品只是DB2 之间的SQL 复制,那么生产环境中只需安装DB2 ESE 即可。 假设用户有两台服务器都在使用DB2 V8。用户想把其中一台DB2 V8 中的数据复制到另外一台的DB2 系统中。这种情况下,可以选定任意一台服务器中的DB2 作为控制平台,为了方便,本例中直接使用了所要复制到的目标所在的DB2 V8 为控制平台。如图二所示: 图 2. 数据复制目标图 回页首实现的步骤 首先需要确定本地计算机安装了:DB2 ESE(DB2 Enterprise Server Edition)。 本文把复制的过程分为五步介绍,分别为: ?DB2 数据库环境及配置 ?编目(Catalog)DB2 数据库 ?密码配置 ?建立DB2 与DB2 之间的复制过程及错误分析 DB2 数据库环境及配置 在本例中采用了Windows 2000 运行环境,具体配置见表1: 表 1. 操作系统环境与DB2 版本 描述Server A Server B 主机名WSII155 db2repl 主机IP 9.181.139.155 9.181.138.233 操作系统Windows 2000 Server SP4 (Eng) Windows 2000 Server SP4 (Eng)

db2 load 命令

当DB2 的数据库启用了前滚恢复模式,即将日志由循环日志方式改为归档日志,以便用户在进行恢复操作时,可在恢复了数据库或表空间的备份后,再通过前滚归档日志中的事务,恢复数据库备份时间点之后提交的事务,最大程度的保护数据库的数据。 而DB2 的LOAD 实用程序为实现快速导入数据的功能,除采用了通过直接向数据库中写入格式化的数据页装载数据,导入过程中不激活触发器,不会检查参考完整性和表检查约束当等方式外,还最小化了记录事务日志的操作。在LOAD 的LOAD、BUILD、DELETE 和INDEX COPY 四个处理阶段中,仅在DELETE 阶段记录对每个删除事件记日志,即只对每个违反唯一约束的行的删除操作记日志,因此整个LOAD 操作仅记录了极少的日志。 由于LOAD 最小化了日志的记录,有因启用了前滚恢复的数据库在恢复在线备份时需要归档日志的特性,对于这种数据库的LOAD 操作,为避免执行LOAD 操作后,表在使用ROLLFORWARD 命令前滚归档日志的过程中因缺少日志而被置为非正常状态,DB2 为LOAD 命令提供了如下选项: ·COPY NO(缺省) ·COPY YES ·NONREVERABLE 为更清楚地说明这些选项的作用,这里将以举例的方式进行说明。而在开始操作之前,首先了解一下DB2 备份操作所产生的映象文件的形式和命名特点: 在UNIX 环境下是文件的形式: Databasealias.Type.Instancename.Nodename.Catnodename.Timestamp.number 在Windows 环境下是子目录及文件的形式: Databasealias.Type\Instancename\Node0000\Catn0000\yyyymmdd\hhmmss.number 而其中的Type 则因备份类型的不同而不同: 0 -- 数据库全备份 3 -- 表空间备份 4 -- 由LOAD 操作产生的备份 1. 进行一次数据库的全备份: 首先对已启用前滚恢复模式的SAMPLE 数据库进行一次全备份: E:\TEST>db2 backup db sample 备份成功。此备份映像的时间戳记是:20051230174105

DB 2 常用命令

DB 2 常用命令 一、加载数据: 1、以默认分隔符加载,默认为“,”号 db2 "import from btpoper.txt of del insert into btpoper" 2、以指定分隔符“|”加载 db2 "import from btpoper.txt of del modified by coldel| insert into btpoper" 二、卸载数据: 1、卸载一个表中全部数据 db2 "export to btpoper.txt of del select * from btpoper" db2 "export to btpoper.txt of del modified by coldel| select * from btpoper" 2、带条件卸载一个表中数据 db2 "export to btpoper.txt of del select * from btpoper where brhid='907020000'" db2 "export to cmmcode.txt of del select * from cmmcode where codtp='01'" db2 "export to cmmcode.txt of del modified by coldel| select * from cmmcode where codtp='01'" 三、查询数据结构及数据: db2 "select * from btpoper" db2 "select * from btpoper where brhid='907020000' and oprid='0001'" db2 "select oprid,oprnm,brhid,passwd from btpoper" 四、删除表中数据: db2 "delete from btpoper" db2 "delete from btpoper where brhid='907020000' or brhid='907010000'" 五、修改表中数据: db2 "update svmmst set prtlines=0 where brhid='907010000' and jobtp='02'" db2 "update svmmst set prtlines=0 where jobtp='02' or jobtp='03'" 六、联接数据库 db2 connect to btpdbs 七、清除数据库联接 db2 connect reset 断开数据库连接 db2 terminate 断开数据库连接 db2 force applications all 断开所有数据库连接 八、备份数据库 1、db2 backup db btpdbs 2、db2move btpdbs export db2look -d btpdbs -e -x [-a] -o crttbl.sql

db2 实战常用命令

db2 force application all –断开所有链接数据库的应用 db2 list application-查看连接数据库的应用 db2 bakup db ksdbs 备份数据库 db2start db2stop启停数据库 db2 connect reset断开所有链接 scp get trans.ini -r back@10.10.9.160/home/back/bccbin \ scp local_file remote_username@remote_ip:remote_folder 或者 scp local_file remote_username@remote_ip:remote_file scp -r ip:/db/dbhome/dbguard 【1】 db2top –d ksdbs db2pd -d ksdbs -stat >stat.log 查看数据库状态(数据超大超详细) 【1】find -type f | xargs dos2unix 遍历格式转换 【1】 find . -name [A-Z]* -print 查找当前目录下以大写字母命名的文件 【1】 >db2ckbkp 检查数据库的完整性 >tee 命令 用途--显示程序的输出并将其复制到一个文件中。 【1】db2 connect reset db2 list directory db2 list active databases db2 get db cfg db2 get db cfg 【1】归档日志 db2 update db cfg for db_name using LOGRETAIN ON 更改归档目录: db2 update db cfg for db_name using LOGARCHMETH1 "disk:/archive/db_name_db_log" 在我重新连接数据库的时候提示: db2 connect to t_1 to mydb SQL1116N A connection to or activation of database "T_1" cannot be made because of BACKUP PENDING. SQLSTATE=57019 网上找了n多最后才知道 若修改数据库LOGRETAIN参数,从循环日志模式改为归档日志模式,则会导致数据库backup pending状态。

DB2数据库参数详解配置

DB2数据库参数配置 数据库配置发行版级别= 0x0c00 数据库发行版级别= 0x0c00 数据库地域= CN 数据库代码页= 1208 数据库代码集= UTF-8 数据库国家/地区代码= 86 数据库整理顺序= IDENTITY 备用整理顺序(ALT_COLLATE) = 数字兼容性= OFF Varchar2 兼容性= OFF 数据库页大小= 4096 动态SQL查询管理(DYN_QUERY_MGMT) = DISABLE 对此数据库的发现支持(DISCOVER_DB) = ENABLE 限制访问= NO 缺省查询优化类(DFT_QUERYOPT) = 5 并行度(DFT_DEGREE) = 1 在算术异常时继续(DFT_SQLMATHWARN) = NO 缺省刷新有效期(DFT_REFRESH_AGE) = 0 缺省维护的选项(DFT_MTTB_TYPES)的表类型= SYSTEM 保留的高频值的数目(NUM_FREQVALUES) = 10 保留的分位点数目(NUM_QUANTILES) = 20 十进制浮点舍入方式(DECFLT_ROUNDING) = ROUND_HALF_EVEN 备份暂挂= NO

数据库是一致的= NO 前滚暂挂= NO 复原暂挂= NO 启用的多页文件分配= YES 恢复状态的日志保留= NO 日志记录状态的用户出口= NO 自调整内存(SELF_TUNING_MEM) = ON 数据库共享内存大小(4KB)(DATABASE_MEMORY) = AUTOMATIC 数据库内存阈值(DB_MEM_THRESH) = 10 锁定列表的最大存储量(4KB)(LOCKLIST) = AUTOMATIC 每个应用程序的锁定百分比列表(MAXLOCKS) = AUTOMATIC 程序包高速缓存大小(4KB)(PCKCACHESZ) = AUTOMATIC 共享排序的排序堆域值(4KB)(SHEAPTHRES_SHR) = AUTOMATIC 排序列表堆(4KB)(SORTHEAP) = AUTOMATIC 数据库堆(4KB)(DBHEAP) = AUTOMATIC 目录高速缓存大小(4KB)(CATALOGCACHE_SZ) = 260 日志缓冲区大小(4KB)(LOGBUFSZ) = 98 实用程序堆大小(4KB)(UTIL_HEAP_SZ) = 23665 缓冲池大小(页)(BUFFPAGE) = 250 SQL 语句堆(4KB)(STMTHEAP) = AUTOMATIC 缺省应用程序堆(4KB)(APPLHEAPSZ) = AUTOMATIC 应用程序内存大小(4KB)(APPL_MEMORY) = AUTOMATIC 统计信息堆大小(4KB)(STAT_HEAP_SZ) = AUTOMATIC 检查死锁的时间间隔(毫秒)(DLCHKTIME) = 10000 锁定超时(秒)(LOCKTIMEOUT) = -1

DB2常用命令小结

1、打开命令行窗口 #db2cmd 2、打开控制中心 # db2cmd db2cc 3、打开命令编辑器 db2cmd db2ce =====操作数据库命令===== 4、启动数据库实例 #db2start 5、停止数据库实例 #db2stop 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2 force application all 就可以了/db2stop force 6、创建数据库 #db2 create db [dbname] 7、连接到数据库 #db2 connect to [dbname] user [username] using [password]

8、断开数据库连接 #db2 connect reset 9、列出所有数据库 #db2 list db directory 10、列出所有激活的数据库 #db2 list active databases 11、列出所有数据库配置 #db2 get dbcfg 12、删除数据库 #db2 drop database [dbname] (执行此操作要小心) 如果不能删除,断开所有数据库连接或者重启db2 =========操作数据表命令========== 13、列出所有用户表 #db2 list tables 14、列出所有系统表 #db2 list tables for system

15、列出所有表 #db2 list tables for all 16、列出系统表 #db2 list tables for system 17、列出用户表 #db2 list tables for user 18、列出特定用户表 #db2 list tables for schema [user] 19、创建一个与数据库中某个表(t2)结构相同的新表(t1) #db2 create table t1 like t2 20、将一个表t1的数据导入到另一个表t2 #db2 "insert into t1 select * from t2" 21、查询表 #db2 "select * from table name where ..." 22、显示表结构 #db2 describe table tablename 23、修改列

DB2数据库安装

建用户 # groupadd db2iadm1 # useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1 # groupadd db2fadm1 # useradd -m -g db2fadm1 -d /home/db2fenc1 db2fenc1 # groupadd dasadm1 # useradd -m -g dasadm1 -d /home/dasusr1 dasusr1 一、下载安装DB2 到IBM网站下载免费的DB2 Express-C 9.5,网址https://www.doczj.com/doc/0b11788054.html,/developerworks/cn/downloads/im/udbexp/ 下载db2exc_952_LNX_x86.tar.gz到/home/hz 使用 tar -xvf db2exc_952_LNX_x86.tar.gz命令解压, 解压到/home/hz/expc/目录下, X/home/hz/expc/db2setup,命令行终端使用/home/hz/expc/db2_install来进行DB2的安装。 安装时若提示找不到libaio.so.1及libstdc++.so.5,则先下载安装相应的软件包。 libaio.so.1 -> libaio1 # aptitude install libaio1 libstdc++.so.5 -> libstdc++5 # aptitude install libstdc++5 二、配置DB2 #创建用户组及用户 #与实例名同名? groupadd -g 2000 db2iadm1 useradd -m -g db2iadm1 -d /home/db2inst1 db2inst1

DB2数据库基础入门

IBM DB2数据库基础 基本命令集合 1. 建立数据库DB2_GCB CREATE DATABASE DB2_GCB ON G: ALIAS DB2_GCB USING CODESET GBK TERRITORY CN COLLATE USING SYSTEM DFT_EXTENT_SZ 32 2. 连接数据库 connect to sample1 user db2admin using 8301206 3. 建立别名 create alias db2admin.tables for sysstat.tables; CREATE ALIAS DB2ADMIN.VIEWS FOR SYSCAT.VIEWS create alias db2admin.columns for syscat.columns; create alias guest.columns for syscat.columns; 4. 建立表 create table zjt_tables as (select * from tables) definition only; create table zjt_views as (select * from views) definition only; 5. 插入记录 insert into zjt_tables select * from tables; insert into zjt_views select * from views;

6. 建立视图 create view V_zjt_tables as select tabschema,tabname from zjt_tables; 7. 建立触发器 CREATE TRIGGER zjt_tables_del AFTER DELETE ON zjt_tables REFERENCING OLD AS O FOR EACH ROW MODE DB2SQL Insert into zjt_tables1 values(substr(o.tabschema,1,8),substr(o.tabname,1,10)) 8. 建立唯一性索引 CREATE UNIQUE INDEX I_ztables_tabname ON zjt_tables(tabname); 9. 查看表 select tabname from tables where tabname='ZJT_TABLES'; 10. 查看列 select SUBSTR(COLNAME,1,20) as 列名,TYPENAME as 类型,LENGTH as 长度 from columns where tabname='ZJT_TABLES'; 11. 查看表结构 db2 describe table user1.department db2 describe select * from user.tables

DB2数据库SQL语法参考手册

DB2数据库SQL语法参考手册 DB2提供了关连式资料库的查询语言SQL (Structured Query Language),是一种非常口语化、既易学又易懂的语法。此一语言几乎是每个资料库系统都必须提供的,用以表示关连式的操作,包含了资料的定义(DDL)以及资料的处理(DML)。SQL原来拼成SEQUEL,这语言的原型以"系统R"的名字在IBM 圣荷西实验室完成,经过IBM内部及其他的许多使用性及效率测试,其结果相当令人满意,并决定在系统R 的技术基础发展出来IBM 的产品。而且美国国家标准学会(ANSI)及国际标准化组织(ISO)在1987遵循一个几乎是以IBM SQL 为基础的标准关连式资料语言定义。 一、资料定义DDL(Data Definition Language) 资料定义语言是指对资料的格式和形态下定义的语言,他是每个资料库要建立时候时首先要面对的,举凡资料分哪些表格关系、表格内的有什麽栏位主键、表格和表格之间互相参考的关系等等,都是在开始的时候所必须规划好的。 1.建表格: CREATE TABLE table_name( column1 DATATYPE [NOT NULL] [NOT NULL PRIMARY KEY], column2 DATATYPE [NOT NULL], ...) 说明: DATATYPE是资料的格式,详见表。 NUT NULL可不可以允许资料有空的(尚未有资料填入)。 PRIMARY KEY是本表的主键。 2.更改表格 ALTER TABLE table_name ADD COLUMN column_name DATATYPE 说明:增加一个栏位(没有删除某个栏位的语法。 ALTER TABLE table_name ADD PRIMARY KEY (column_name) 说明:更改表得的定义把某个栏位设为主键。 ALTER TABLE table_name DROP PRIMARY KEY (column_name)

相关主题
文本预览
相关文档 最新文档