查看表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

12.查看表的索引db2 describe indexes for table user1.department

13.查看视图select viewname from views

where viewname='V_ZJT_TABLES';

14.查看索引select indname from indexes

where indname='I_ZTABLES_TABNAME';

15.查看存贮过程SELECT SUBSTR(PROCSCHEMA,1,15),SUBSTR(PROCNAME,1,15)

FROM SYSCAT.PROCEDURES;

16.类型转换(cast)

ip datatype:varchar

select cast(ip as integer)+50 from log_comm_failed

17.重新连接connect reset

18.中断数据库连接disconnect db2_gcb

19. view application

LIST APPLICATION;

20. kill application

FORCE APPLICATION(0);

db2 force applications all (强迫所有应用程序从数据库断开)

21. lock table

lock table test in exclusive mode

22.共享lock table test in share mode

23.显示当前用户所有表list tables

24.列出所有的系统表list tables for system

25.显示当前活动数据库list active databases

26.查看命令选项list command options

27.系统数据库目录LIST DATABASE DIRECTORY

28.表空间list tablespaces

29.表空间容器LIST TABLESPACE CONTAINERS FOR

Example: LIST TABLESPACE CONTAINERS FOR 1

30.显示用户数据库的存取权限GET AUTHORIZATIONS

31.启动实例DB2START

32.停止实例db2stop

33.表或视图特权grant select,delete,insert,update on tables to user

grant all on tables to user WITH GRANT OPTION

34.程序包特权GRANT EXECUTE

ON PACKAGE PACKAGE-name

TO PUBLIC

35.模式特权GRANT CREATEIN ON SCHEMA SCHEMA-name TO USER

36.数据库特权grant connect,createtab,dbadm on database to user

37.索引特权grant control on index index-name to user

38.信息帮助(? XXXnnnnn )例:? SQL30081

39. SQL帮助(说明SQL语句的语法)

help statement例如,help SELECT

40. SQLSTATE帮助(说明SQL的状态和类别代码)

? sqlstate或? class-code

41.更改与"管理服务器"相关的口令db2admin setid username password

42.创建SAMPLE数据库db2sampl

db2sampl F指定安装盘)

43.使用操作系统命令! dir

44.转换数据类型(cast)

SELECT EMPNO, CAST(RESUME AS VARCHAR(370))

FROM EMP_RESUME

WHERE RESUME_FORMAT = 'ascii'

45. UDF要运行DB2 Java存储过程或UDF,还需要更新服务器上的DB2数据库管理程序配置,以包括在该机器上安装JDK的路径db2 update dbm cfg using JDK11_PATH d:sqllibjavajdk

TERMINATE

update dbm cfg using SPM_NAME sample

46.检查DB2数据库管理程序配置db2 get dbm cfg

47.检索具有特权的所有授权名SELECT DISTINCT GRANTEE, GRANTEETYPE, 'DATABASE' FROM SYSCAT.DBAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'TABLE ' FROM SYSCAT.TABAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'PACKAGE ' FROM SYSCAT.PACKAGEAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'INDEX ' FROM SYSCAT.INDEXAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'COLUMN ' FROM SYSCAT.COLAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SCHEMA ' FROM SYSCAT.SCHEMAAUTH

UNION

SELECT DISTINCT GRANTEE, GRANTEETYPE, 'SERVER ' FROM SYSCAT.PASSTHRUAUTH

ORDER BY GRANTEE, GRANTEETYPE, 3

create table yhdab

(id varchar(10),

password varchar(10),

ywlx varchar(10),

kh varchar(10));

create table ywlbb

(ywlbbh varchar(8),

ywmc varchar(60))

48.修改表结构alter table yhdab ALTER kh SET DATA TYPE varchar(13);

alter table yhdab ALTER ID SET DATA TYPE varchar(13);

alter table lst_bsi alter bsi_money set data type int;

insert into yhdab values

('20000300001','123456','user01','20000300001'),

('20000300002','123456','user02','20000300002');

49.业务类型说明insert into ywlbb values

('user01','业务申请'),

('user02','业务撤消'),

('user03','费用查询'),

('user04','费用自缴'),

('user05','费用预存'),

('user06','密码修改'),

('user07','发票打印'),

('gl01','改用户基本信息'),

('gl02','更改支付信息'),

('gl03','日统计功能'),

('gl04','冲帐功能'),

('gl05','对帐功能'),

('gl06','计费功能'),

('gl07','综合统计')备份数据库:CONNECT TO EXOA;

QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;

CONNECT RESET;

BACKUP DATABASE EXOA TO "/home/exoa2/db2bak/" WITH 2 BUFFERS BUFFER 1024 PARALLELISM 1 WITHOUT PROMPTING;

CONNECT TO EXOA;

UNQUIESCE DATABASE;

CONNECT RESET;以下是小弟在使用db2move中的一些经验,希望对大家有所帮助。db2   connect   to  YOURDB连接数据库db2look -d  YOURDB  -a -e -x -o creatab.sql导出建库表的SQL

db2move   YOURDB  export用db2move将数据备份出来vi   creatab.sql如要导入的数据库名与原数据库不同,要修改creatab.sql中CONNECT项如相同则不用更改db2move  NEWDB  load将数据导入新库中在导入中可能因为种种原因发生中断,会使数据库暂挂db2    list tablespaces   show   detail如:详细说明:装入暂挂总页数= 1652可用页数= 1652已用页数= 1652空闲页数=不适用高水位标记(页)=不适用页大小(字节)= 4096盘区大小(页)= 32预读取大小(页)= 32容器数= 1状态更改表空间标识= 2状态更改对象标识= 59

db2 select tabname,tableid from syscat.tables where tableid=59查看是哪张表挂起表名知道后到db2move.lst(在db2move  YOURDB  export的目录中)中找到相应的.ixf文件db2 load from tab11.ixf of ixf terminate into db2admin.xxxxxxxxx

tab11.ixf对应的是xxxxxxxxx表数据库会恢复正常,可再用db2 list tablespaces show detail查看30.不能通过GRANT授权的权限有哪种?

SYSAM

SYSCTRL

SYSMAINT要更该述权限必须修改数据库管理器配置参数31.表的类型有哪些?永久表(基表)临时表(说明表)临时表(派生表)

32.如何知道一个用户有多少表?

SELECT*FROMSYSIBM.SYSTABLESWHERECREATOR='USER'

33.如何知道用户下的函数?

select*fromIWH.USERFUNCTION

select*fromsysibm.SYSFUNCTIONS

34.如何知道用户下的VIEW数?

select*fromsysibm.sysviewsWHERECREATOR='USER'

35.如何知道当前DB2的版本?

select*fromsysibm.sysvERSIONS

36.如何知道用户下的TRIGGER数?

select*fromsysibm.SYSTRIGGERSWHERESCHEMA='USER'

37.如何知道TABLESPACE的状况?

select*fromsysibm.SYSTABLESPACES

38.如何知道SEQUENCE的状况?

select*fromsysibm.SYSSEQUENCES

39.如何知道SCHEMA的状况?

select*fromsysibm.SYSSCHEMATA

40.如何知道INDEX的状况?

select*fromsysibm.SYSINDEXES

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

select*fromsysibm.SYSCOLUMNSWHERETBNAME='AAAA'

42.如何知道DB2的数据类型?

select*fromsysibm.SYSDATATYPES

43.如何知道BUFFERPOOLS状况?

select*fromsysibm.SYSBUFFERPOOLS

44.DB2表的字段的修改限制?只能修改VARCHAR2类型的并且只能增加不能减少.

45.如何查看表的结构?

DESCRIBLETABLETABLE_NAME

OR

DESCRIBLESELECT*FROMSCHEMA.TABLE_NAME

posted @ 2006-12-28 16:57 MyJavaWorld阅读(103) |评论(0) |编辑 收藏2006年12月8日

DB2 UDB中用户出口程序是如何工作的DB2 UDB中用户出口程序是如何工作的?采用用户出口程序与DB2 UDB共同工作背后的基本思想是提供一种归档和检索数据库日志文件的方法以实现日志冗余处理并从易失性介质上转储出来。重要的,值得注意的是,根据你的特殊需求,在用户出口程序当中,除了能实现归档和检索日志之外,你还可以实现其他的操作。如果一个数据库需要采用归档日志文件来进行恢复,在DB2 UDB中实行用户出口程序策略将不能恢复100%的事务。用户出口程序只是一种通过拷贝已经存在的日志文件到一个安全的地方来为其提供更多保护的方法。它是数据完整性策略中的一部分,而且是重要的一部分。编译了用户出口程序之后,可执行程序db2uext2被放置在数据库管理器可以找到的目录当中。在UNIX©中,这个目录是/sqllib/adm;在Windows©中,是Program FilesIBMSQLLIBBIN。除非数据库管理器知道用户出口程序是可用的,不然它不会调用db2uext2。让数据库管理器知道db2uext2可以被调用的唯一方法是将数据库配置参数userexit设置为on。一旦这个参数被设定好而且DB2实例被重复利用了,数据库管理器将每五分钟调用一次用户出口程序来检查那些可以被归档到程序相关的归档目录的日志文件。如果数据库的恢复是必要的,在前滚操作期间,数据库管理器将调用db2uext2把归档日志文件拷贝回活动的日志目录当中。然后,日志文件被再次运用到重建的数据库中。让我们看看被数据库管理器生成的到用户出口程序的调用的格式。注意,这一信息也可以在用户出口示例程序的注释部分找到。db2uext2 -OS -RL

-RQ -DB -NN

-LP -LN [-AP]其中:os=操作系统release=DB2发行版本request= 'ARCHIVE'或'RETRIEVE'

dbname=数据库名nodenumber=节点号logpath=日志文件目录logname=日志文件名logsize=日志文件大小(可选)startingpage=以4k页为单位的起始偏移量(可选)adsmpasswd=ADSM密码(可选)注意:只有当logpath为裸设备时才使用logsize和startingpage。归档或者从磁盘检索日志文件遵从以下命名规则:归档:归档路径+数据库名+节点号+日志文件名检索:检索路径+数据库名+节点号+日志文件名比如:如果归档的路径为”c:mylogs”,检索路径是“c:mylogs”,数据库名是“SAMPLE”,节点号是NODE0000,文件名是S0000001.LOG,日志文件将是:归档到- c:mylogsSAMPLENODE0000S0000001.LOG检索自- c:mylogsSAMPLENODE0000S0000001.LOG以下描述了用户出口程序中的逻辑是如何运转的:1)安装信号处理程序。2)验证传递的参数个数。3)验证操作请求。4)开始审计跟踪(如果有此请求)。5)根据操作需求的不同获取以下路径中的一个:a)如果操作需求为归档一个文件,将日志文件从日志路径拷贝到归档路径中。i) 如果没有找到日志文件,执行第6点。b)如果操作需求是检索一个文件,将日志文件从检索路径拷贝到日志路径中。i) 如果没有找到日志文件,执行第6点。6)将错误记入日志(如果要求或者有需要的话)。7)结束审计跟踪(如果有请求)。8)以适当的返回码退出。手工调用用户出口程序来归档日志文件是可以的,但最好还是使用ARCHIVE LOG命令以便在定义以上参数时不会因为你的原因导致错误。在这篇文章的末尾,可以找到关于ARCHIVE LOG命令的链接。日志文件术语DB2中用户出口程序的基本功能是将日志文件拷贝到活动日志目录或反之。这里,值得指出一些术语来阐明活动的日志目录被置于何处以及数据库日志文件的状态如何。活动日志目录:该目录被置于你的数据库目录中。在Windows中,如果在C:中创建了一个叫做SAMPLE的单一数据库且实例名为db2inst1,则将会出现以下的目录结构:CB2INST1NODE0000SQL000001SQLOGDIR

SQL00001是SAMPLE数据库的数据库目录,SQLOGDIR是活动日志目录。以下的图1显示了Windows操作系统上的活动日志目录:PATH o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" />SHAPE id=_x0000_i1025 style="WIDTH: 299.25pt; HEIGHT: 180.75pt" type="#_x0000_t75" />/P>图1活动日志目录日志文件状态在活动日志目录中,日志文件可以是活动日志,也可以是联机归档日志。活动日志是那些被DB2用于当前事务处理和崩溃恢复的日志。联机归档日志是那些DB2 UDB进行常规处理时不再需要,而进行数据库恢复时可能还会需要的日志。当实现用户出口程序时,这些联机归档日志将最终以归档日志目录中的副本形式出现。既然DB2 UDB中用户出口程序的目的是将数据库日志拷贝到归档目录中,你将最终在活动日志目录(缺省为SQLOGDIR)中得到重复的日志文件。你可能考虑删除这些重复的联机归档日志以释放文件系统空间。在从数据库目录中除去这些日志之前,要十分小心地确认它们是否已经将成功地被复制到归档目录中。还必须确保数据库管理器进行崩溃恢复时不再需要它们。要确定你的活动日志目录中哪些日志文件不为正常处理所需要,可用通过以下命令检查数据库配置:db2 "get db cfg for sample"这条命令的数据库配置输出结果将包含第一个活动日志文件,如:First active log file = S000009.LOG在如上所示的输出当中,日志文件S000009.LOG是数据库当前的活动日志。任何编号比该日志文件小的日志文件都被看作联机归档日志。这里有一个例子:在这个场景中,活动日志目录中有日志文件S000000.LOG - S000009.LOG,归档日志目录中有S000000.LOG - S000008.LOG。因为S000009.LOG是第一个活动日志文件,所以,可以从活动日志目录中移走S000001.LOG - S000008.LOG以释放磁盘空间。S000009.LOG文件必须保留在活动日志目录中,因为它仍然被当前事务使用。同样可以通过检查数据库历史文件来查看活动日志目录中哪些日志文件不再有用。以下命令将列出数据库备份信息:db2 "list history backup all for database sample"以下是该命令的输出结果的一个例子:List History File for sample

Number of matching file entries = 4

Op Obj Timestamp+Sequence Type Dev Earliest Log Current  Log

-- --- ------------------ ---- --- ------------------------

B D 20030416162026001 F D S0000010.LOGS0000014.LOG

------------------------------------------------------------

Contains 2 tablespace(s):

00001 SYSCATSPACE

00002 USERSPACE1

------------------------------------------------------------在上面的输出中,最早的日志将表示,需要S0000010.LOG及其之后的任何日志。S00000010.LOG之前的任何日志可以被安全的删除。再次提醒,在从活动日志目录中删除日志文件之前,验证在活动日志目录中存在这些日志文件的拷贝是十分重要的。虽然可以手动的从活动日志目录中删除日志文件,删除联机归档日志文件的安全方法是通过prune logfile命令。该命令可以用来删除活动归档目录中的日志文件。在下面的示例中,以下命令将删除日志文件S000000.LOG - S000008.LOG:db2 "prune logfile prior to S000009.LOG"注意:根据您的恢复策略,可能会出现之前的前滚操作在数据库上执行的场景。归档目录中的老日志文件可能被同名的新日志文件所覆盖,从而阻止你使用旧日志文件对数据库进行时间点恢复。对用户出口程序的设计程序员来说,考虑类似这样的情况是很重要的。设置用户出口在本文中,我们将采用DB2提供的db2uext2.cdisk样例c程序,它位于你的c目录当中。在UNIX中,c目录位于/sqllib/samples。Windows中,这目录位于Program Files/IBM//samples。在Windows中设置用户出口修改和编译用户出口程序1.创建名为C:mylogs的目录2.将Crogram filesIBMSQLLIBsamplescdb2uext2.cdisk拷贝到一个工作目录当中3.对于本示例,用户出口程序的以下部分应该得以验证以反映路径c:\mylogs\

#define ARCHIVE_PATH "c:\mylogs\"

#define RETRIEVE_PATH "c:\mylogs\"

#define AUDIT_ACTIVE 1 /* enable audit trail logging */

#define ERROR_ACTIVE 1 /* enable error trail logging */

#define AUDIT_ERROR_PATH "c:\mylogs\"

/* path must end with a slash */

#define AUDIT_ERROR_ATTR "a" /* append to text file */

#define BUFFER_SIZE 32

/* # of 4K pages for output buffer */

4.确定在你的系统中安装了被支持的C编译器(比如,Microsoft Visual Studio)而且环境中有该编译器的路径。5.通过命令行,将db2uext2.cdisk更名为db2uext2.c并构建:cl db2uext2.c一旦程序被编译,将创建db2uext2.exe和db2uext2.obj文件。6.将可执行文件db2uext2.exe放到/SQLLIB/BIN目录当中从而使数据库管理器能够定位并执行它用以归档和检索日志。为用户出口创建并准备数据库7.在DB2命令窗口中用db2sampl命令创建SAMPLE数据库。这将使你对下面的示例使用样本表。db2sampl

8.更新数据库配置文件以便为数据库打开用户出口。请注意:只能为一个数据库分配用户出口程序,因为bin目录被所有DB2实例共享。db2 "update db cfg for sample using userexit on"

db2stop force

Logo

更多推荐