当前位置:数据库 > DB2 >>

db2中的工具介绍

##db2move
db2move 是一个数据移动工具,可以用来在 DB2 数据库之间移动大量的表。该命令中支持的操作有 EXPORT、IMPORT 和 LOAD。
db2move 的语法可以象下面那样简单:
db2move database_name action options
该工具先从系统目录表中抽取用户表列表,接着以 PC/IXF 格式导出每个表。然后,可以将这些 PC/IXF 文件导入或装入到另一个
DB2 数据库。
以下是一些示例。下面这条命令用指定的用户标识和密码以 REPLACE 方式导入 sample 数据库中的所有表:
db2move sample import -io replace -u userid -p password
而下面这条命令则以 REPLACE 方式装入 db2admin 和 db2user 模式下的所有表:
db2move sample load -sn db2admin, db2user -lo REPLACE
    ##db2look 是一个方便的工具,可以从命令提示符或控制中心对其进行调用。该工具可以:
从数据库对象抽取数据库定义语言(DDL)语句
生成 UPDATE 语句来更新数据库管理器和数据库配置参数
生成 db2set 命令来设置 DB2 概要文件注册表
抽取和生成数据库统计报告
生成 UPDATE 语句来复制有关数据库对象的统计信息
类似 LOAD 的实用程序都要求存在目标表。您可以使用 db2look 来抽取表的 DDL,对目标数据库运行该 DLL,然后调用装入操作。如同下面
的示例所演示的那样,db2look 使用起来非常方便。下面这条命令为(来自数据库 department 的)peter 所创建的所有对象生成 DDL 语句,
同时将输出存储在 alltables.sql 中。

db2look -d department -u peter -e -o alltables.sql

接下来这条命令生成:
数据库 department 中所有对象的 DLL(由选项 -d、-a 和 -e 指定)。
复制数据库中所有表和索引的统计信息的 UPDATE 语句(由选项 -m 指定)。
GRANT 授权语句(由选项 -x 指定)。
用于数据库管理器和数据库配置参数的 UPDATE 语句,以及用于概要文件注册表的 db2set 命令(由选项 -f 指定)。
db2look -d department -a -e -m -x -f -o db2look.sql
##RUNSTATS 实用程序
DB2 利用一个完善的、基于成本的优化器来确定如何访问数据。其决策在很大程度上受到了一些统计信息的影响,这些统计信息是关于数据库
表和索引的大小的。因此,要时刻使数据库统计信息保持最新状态,以便能够选择有效的数据存取方案,这一点十分重要。RUNSTATS 实用程
序用于更新表的物理特征及其相关索引的统计信息。这些特征包括记录数(基数)、页数和平均记录长度等。
让我们用一些示例来演示此实用程序的用法。下面的命令收集表 db2user.employee 的统计信息。在计算统计信息期间允许阅读器和记录器访
问该表:
RUNSTATS ON TABLE db2user.employee ALLOW WRITE ACCESS
以下命令用分布式统计收集表 db2user.employee 以及列 empid 和 empname 的统计信息。在此命令运行期间,该表只能用于只读请求。
RUNSTATS ON TABLE db2user.employee WITH DISTRIBUTION ON COLUMNS ( empid, empname )
     ALLOW READ ACCESS
以下命令收集表 db2user.employee 的统计信息及其全部索引的详细统计信息:
RUNSTATS ON TABLE db2user.employee AND DETAILED INDEXES ALL
##REORG 和 REORGCHK 实用程序
从数据库增删的数据在物理上可能并不是按顺序放置的。在这种情况下,DB2 必须执行额外的读操作来访问数据。通常,这意味着需要更多的
磁盘 I/O 操作,而我们都知道进行这类操作的代价是昂贵的。在这种情况下,您应该考虑根据索引对表进行物理上的重组,以便相关数据相
互之间靠得更近一些,从而尽可能地减少 I/O 操作。
REORG 是一个为表和/或索引重组数据的实用程序。虽然在物理上对数据进行了重新安排,但 DB2 却提供了联机或脱机执行该操作的选项。
在缺省情况下,脱机 REORG 允许其他用户读取该表。您可以通过指定 ALLOW NO ACCESS 选项来限制表访问。联机 REORG(也称为现场 REORG)
不支持对表的读访问或写访问。由于重新安排了数据页,因此并发应用程序可能必须等待 REORG 完成当前页。您可以使用适当的选项来轻松
地停止、暂停或重新开始重组过程:
下面的示例都是非常容易看懂的:
REORG TABLE db2user.employee INDEX db2user.idxemp INPLACE ALLOW WRITE ACCESS
REORG TABLE db2user.employee INDEX db2user.idxemp INPLACE PAUSE
REORGCHK 是另一个数据维护实用程序,它有一个选项可以用来检索当前的数据库统计信息或更新数据库统计信息。它还会生成带有 REORG
指示符的统计信息报告。REORGCHK 根据统计规则在需要 REORG 的地方用星号(*)标记表或索引。
让我们考虑一些示例。下面这条命令生成当前(关于运行时授权标识拥有的全部表的)统计信息的报告:
REORGCHK CURRENT STATISTICS ON TABLE USER
下面的命令更新统计信息,然后生成在模式 smith 下创建的全部表的报告:
REORGCHK UPDATE STATISTICS ON SCHEMA smith
##REBIND 实用程序和 FLUSH PACKAGE CACHE 命令
在执行数据库应用程序或任何 SQL 语句之前,必须先由 DB2 对它们进行预编译,并生成一个包。包是一种数据库对象,其中含有应用程序
源文件中所使用的已编译 SQL 语句。DB2 使用该包来访问 SQL 语句中引用的数据。DB2 优化器如何为这些包选择数据存取方案呢?它依靠
包创建时的数据库统计信息。
对于静态 SQL 语句,包在编译时创建,并且被绑定到数据库上。如果对统计信息进行了更新,以反映物理数据库特征,那么也应该更新现有
的包。REBIND 实用程序允许您重新创建包,以便可以利用当前的数据库统计信息。命令十分简单:
REBIND PACKAGE package_name

不过,如果您要更改应用程序源代码,那么就得显式地删除现有的相关包,然后重新创建包。REBIND 实用程序不用于这一目的。这里,
我们之所以就此对您加以提醒,是因为 DBA 经常误解了 REBIND 的用法。
对于动态 SQL 语句,它们是在运行时预编译的,而且被存储在包高速缓存中。如果更新了统计信息,那么您可能会刷新高速缓存,以便
重新编译动态 SQL 语句,从而获取更新的统计信息。命令类似下面的样子:
FLUSH PACKAGE CACHE DYNAMIC
##数据库维护过程
RUNSTATS -- REORGCHK--YES--REORG
               |       |
               |       |
               NO    |----- RUNSTATS
               |----|---------|
               REBIND       FLUSH PACKAGE CACHE
                  |       |
                  APPLICATION EXECUTION
                
##DB2性能顾问程序
1,图形化工具CONFIGURATION ADVISOR
2,CLP AUTOCONFIGURE USING mem_percent 60 workload_type complex num_stmts 20 APPLY DB AND DBM
##DB2 设计顾问程序
设计顾问程序可以帮您找到 SQL 语句的最佳索引。它使用 DB2 优化器、数据库统计信息和解释(Explain)
机制来为特定查询或一组 SQL 语句(也称为工作负载)生成推荐索引。您可以从命令行用 db2advis 加上必要的输入启动该顾问程序。
下面的示例使用输入文件
input.sql 对 sample 数据库执行设计顾问程序,该输入文件含有一组 SQL 语句。然后将输出存储在 output.out 中。
db2advis -d sample -i input.sql -o output.out
图形化工具:desigen Advisor
### 备份与恢复
##数据库恢复概念
   系统故障,事务故障,介质故障,灾难。
   #恢复策略
     问题:可以再次从另一个来源装入数据吗?能够承受丢失多少数据?
           能化多少时间来恢复数据库?哪些存储资源可用于存储备份和日志?
   #恢复类型
     崩溃恢复(系统崩溃,DB2重新启动执行回滚),版本恢复(使用从BACKUP命令
     获取的备份中恢复先前的数据库版本),前滚恢复(通过使用完全数据库备份,结合
     日志文件来扩展版本恢复,要求使用归档日志记录)
     db2采用先写日志后写磁盘数据库的方式。
   #主日志文件和辅助日志文件
     主日志文件是在首次数据库连接时或数据库激活时直接分配的。辅助日志文件需要时每次动态地分配一个。
有几个与日志记录相关的数据库配置参数。其中一些参数是:
LOGPRIMARY:该参数确定要分配的主日志文件数。
LOGSECOND:该参数确定可分配的辅助日志文件的最大数目。(最大254)
LOGFILSIZ:该参数用于指定日志文件的大小(用 4 KB 页为单位)。
让我们考虑一个示例。假设数据库配置文件中有下列值:
Log file size (4 KB)        &nb

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,