轻松掌握!使用DB2查询被覆盖的数据库 (db2中查询已经被覆盖的数据库)

在DB2数据库中,一个被覆盖的数据库是指已经存在的数据库被一个新的数据库文件所覆盖,导致原有的数据全部或部分丢失。被覆盖的数据库是一种常见的数据库故障,然而,它给数据库管理员和程序开发者带来了极大的麻烦。因此,了解如何使用DB2查询被覆盖的数据库是非常重要的。

本文将提供一些有用的技巧,帮助DB2用户轻松地查询被覆盖的数据库,以及将被覆盖的数据恢复回来。

使用什么工具?

DB2提供了几种工具来查找被覆盖的数据库,这些工具都是在控制台上运行的,但是,使用不同的工具将会带来不同的结果。以下是几个最常用的DB2工具:

1. db2dart:是DB2的诊断工具,用于扫描数据库并查找潜在的问题。

2. db2diag:是日志文件分析工具,用于查看数据库日志,特别是以前的日志来查找被覆盖的数据库。

3. db2inspect:是一个结构化的诊断工具,用于诊断并更正数据库的执行问题,并在发生错误时生成详细的报告。

4. db2pd:是一种实用工具,可用于对每个DB2数据库的性能进行详细的分析,并确定任何存在的问题。

使用这些工具,用户可以快速地识别和查询被覆盖的数据库。

开始查询

在开始查询之前,请确保你已经掌握了以下知识:

1. DB2系统管理员或DBA权限。

2. 能够在DB2控制台或DOS命令提示符下打开DB2.

通过db2dart查找被覆盖的数据库

db2dart工具是DB2的子系统,可以识别被覆盖的数据库。这是一个很有用的工具,可以维护和诊断IBM数据库的运行时信息。

1. 启动控制台,并输入以下命令:

db2dart -v -s -e > dartlog.txt

其中:是需要查询的数据库名称,和是需要查询的时间范围。此命令将 db2dart 输入并存储到dartlog.txt文档中。

2. 打开dartlog.txt文档,并查找“Database overwritten”或“RECOVERABLE”,这些是被覆盖的数据库的标志。如果找到这些标志,请查看日志文件,并查找数据库被覆盖的确切时间和日期。这将使恢复过程更加容易。

3. 如果您确定数据库在指定时间内被覆盖,请尽快进行恢复。保持原有的日志文件,以便在恢复失败时您可以恢复到以前的状态。同时,保存备份以便以后用于还原。

通过db2inspect和db2diag查找被覆盖的数据库

1. 以管理员身份运行DOS命令提示符,输入以下命令:

db2diag -H -f \db2diag.log > db2diag.out

其中,是数据库主机名称,是日志文件路径。此命令将把db2diag的输出存储到db2diag.out文档中。

2. 打开db2diag.out文档,并查找包含“db2diag.log“文件的行。该文件包含数据库的日志,其中包含可能被覆盖的信息。请注意,日志文件的位置可能会因系统不同而有所不同。

3. 找到最后一个备份的日志文件。备份文件可以在日志文件的结尾查找,其他备份文件也可以在此处进行排查。备份文件的位置通常是在数据库的备份位置。

4. 如果您找到了找到了被覆盖数据库的时间,并找到了最后一个备份文件,请运行以下命令以进行数据库恢复:

db2 restore db from /mnt/backup/db2bkup taken at into replace existing

其中,是恢复的数据库名称,是日志路径,和是需要恢复的时间范围。此命令将使用备份,并将数据库还原到指定的时间点。

结论

相关问题拓展阅读:

如何对db2中的数据库进行数据分析

1、 打开命令行窗口

  #db2cmd

2、 打开控制中心

  # db2cmd db2cc

3、 打开命令编辑器

 db2cmd db2ce

=====操作数据库命令=====

4、 启动数据库实例

  #db2start

5、 停止数据库实例

  #db2stop

 如果你不能停止数据库由于激活的连接,在运行db2stop前执行db2

force application all就可以了 /db2stop force

6、 创建数据库念洞

  #db2 create db

7、 连接到数据库

  #db2 connect to user using

8、 断开数据库连接

  #db2 connect reset

9、 列出所有数据库

 #db2 list

db directory

10、 列出所有激活的数据库

  #db2 list active databases

11、

列出所有数据库配置

  #db2 get db cfg

12、 删除数据库

  #db2 drop database

(执行此操作要小心)

如果不能删除,断开所有数据库连接或枝首者重启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

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

alter table alter column set data type varchar(24)

======脚本文件操作命令=======

24、 执仔搭枯行脚本文件

  #db2 -tvf scripts.sql

25、帮助命令

* 查看命令帮助

 #db2 ? db2start

* 查看错误码信息

#db2 ?

* memo:

详细命令请使用”db2 ? “进行查看。 

=========================

26、备份数据库

#db2 backup db

备注:执行以上命令之前需要断开数据库连接

27、在线备份数据库

#db2 -v “BACKUP DATABASE ONLINE TO WITH 2

BUFFERS BUFFER 1024 INCLUDE LOGS WITHOUT PROMPTING”

28、恢复数据库

#db2

restore db

29、在线恢复数据库

#db2 “RESTORE DB

TO LOGTARGET WITHOUT

PROMPTING”

#db2 “ROLLFORWARD DB TO END OF LOGS AND

STOP” …

30、导出数据文件

#db2move export

>

31、导入数据文件

#db2move import

32、获取db2数据库管理配置环境信息

#db2 get dbm cfg

33、.获取db2某个数据库数据库管理配置环境信息

#db2 get db cfg for

或者:连接至某个数据库以后执行db2 get db cfg

34、更改db2日志空间的大小

备注:以下命令为了防止db2数据库过份使用硬盘空间而设,仅用于开发者自己机器上的db2,如果是服务器,则参数需要修改。

#db2

UPDATE DB CFG FOR USING logretain OFF logprimary 3 logsecond 2

logfilsiz 25600;

如果页大小是4KB,则以上命令创建3个100M的日志文件,占用300MB硬盘空间。25600*4KB=102400KB。

35、创建临时表空间

#DB2 CREATE USER TEMPORARY TABLESPACE STMASPACE PAGESIZE 32 K MANAGED BY

DATABASE USING (FILE ‘D:\DB2_TAB\STMASPACE.F1’ 10000)

EXTENTSIZE 256

36、获取数据库管理器的快照数据

#db2 –v get snapshot for dbm

37、显示进行程号

#db2

list applications show detail

===================================================

一、加载数据:

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=””

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=” and oprid=’0001′”

db2 “select

oprid,oprnm,brhid,passwd from btpoper”

四、删除表中数据:

db2 “delete from

btpoper”

db2 “delete from btpoper where brhid=” or

brhid=””

五、修改表中数据:

db2 “update svmmst set prtlines=0 where

brhid=” 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 -o crttbl.sql

九、恢复数据库

1、 db2 restore db btpdbs without rolling forward

2、 db2 -tvf crtdb.sql

crtdb.sql文件内容:create db btpdbs on /db2catalog

db2 -stvf crttbl.sql

db2move btpdbs import

十、DB2帮助命令:

db2 ?

db2 ? restroe

db2 ?

sqlcode (例:db2 ? sql0803) 注:code必须为4位数,不够4位,前面补0

十一、bind命令:将应用程序与数据库作一捆绑,每次恢复数据库后,建议都要做一次bind

(1) db2 bind br8200.bnd

(2) /btp/bin/bndall /btp/bnd

/btp/bin/bndall /btp/tran/bnd

十二、查看数据库参数:

db2 get dbm cfg

db2 get db cfg for btpdbs

十三、修改数据库参数:

db2 update db cfg for btpdbs using LOGBUFSZ 20

db2

update db cfg for btpdbs using LOGFILSIZ 5120

改完后,应执行以下命令使其生效:

db2 stop

DB2数据库的使用

1. 查看本滑谨地 节点目录

命令窗口中输入:db2 list node directory

2. 编目一个TCP/IP节点

命圆让敬令窗口:db2 catalog tcpip node remote

server VCname|port_number> ostype

Linux|DYNIX>

3. 取消节点编目

db2 uncatalog node

1. 查看本地节点目录

命令窗口橘慎中输入:db2 list node directory

2. 编目一个TCP/IP节点

命令窗口:db2 catalog tcpip node remote

server ostype

db 查看创建了多少个数据库

使用DB2查询创建表的实现方法如下:

db2 =>create table t1 ( id integer,name varchar(12),address varchar(50)) db2 =>insert into t1 values(1,’wjz’,’sdfsfds’),(2,’lw’,’闷伍v4′) db2 => select * from t1 IDNAMEADDRESSwjzsdfsfdslwv4

2 条记录已选择。

db2 => create table t3 as (select id,name from t1) data initially deferred refresh deferred db2 =>弯罩伏 refresh table t3 DB20230I SQL命令成功完成。 db2 => select * from t3 IDNAMEwjzlw

2 条记录已选择。

db2 => insert into t1 values(3,’wxb’,’csk’) DB20230I SQL命令成功埋携完成。 db2 => refresh table t3 DB20230I SQL命令成功完成。 db2 => select * from t3 IDNAMEwjzlwwxb

3 条记录已选择。

select name from sysibm.systables where type=’T’ and creator=’谈并DB2ADMIN’ 

type:数据库表用T表示;数据库视图用V表示 

creator:数据库对象的创建者 

select   tabname   from   syscat.tables   where   tabschema   =   current   schema   ;//   获取当前模式下面的所有此空用户森侍瞎表

db2中查询已经被覆盖的数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于db2中查询已经被覆盖的数据库,轻松掌握!使用DB2查询被覆盖的数据库,如何对db2中的数据库进行数据分析,DB2数据库的使用,db 查看创建了多少个数据库的信息别忘了在本站进行查找喔。


数据运维技术 » 轻松掌握!使用DB2查询被覆盖的数据库 (db2中查询已经被覆盖的数据库)