db2 9.7 linux(db2 reorg table 命令)

很多朋友对于db2 9.7 linux和db2 reorg table 命令不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

如何 清理 db2 node0000

DB2归档日志的相关信息保存在恢复历史文件中,可以通过 db2 list history命令查看。

db2inst1@suse-db:~> db2 list history archive log all for ggyy

List History File for ggyy

Number of matching file entries= 6

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235553 1 D S0000038.LOG C0000007

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

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

Comment:

Start Time: 20100103235553

End Time: 20100103235553

Status: A

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

EID: 80 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000038.LOG

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235553 N S0000038.LOG

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

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

Comment: ARCHIVE LOG

Start Time: 20100103235553

End Time: 20100103235553

Status: A

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

EID: 81

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235608 1 D S0000039.LOG C0000007

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

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

Comment:

Start Time: 20100103235608

End Time: 20100103235608

Status: A

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

EID: 82 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000039.LOG

......

清除这些信息,需要使用 db2 prune history命令。该命令会清除指定时间戳及之前的所有条目(不只是归档日志的)。默认情况下,系统不会清除最近一次数据库全备之后的归档日志信息。

db2inst1@suse-db:~> db2 prune history 20100103235553

SQL1024N A database connection does not exist. SQLSTATE=00000

db2inst1@suse-db:~> db2 connect to ggyy

Database Connection Information

Database server= DB2/LINUX 9.7.0

SQL authorization ID= DB2INST1

Local database alias= GGYY

db2inst1@suse-db:~> db2 prune history 20100103235553

DB20000I The PRUNE command completed successfully.

db2inst1@suse-db:~> db2 list history archive log all for ggyy| head-20

List History File for ggyy

Number of matching file entries= 6

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235553 1 D S0000038.LOG C0000007

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

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

Comment:

Start Time: 20100103235553

End Time: 20100103235553

Status: A

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

EID: 80 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000038.LOG

db2inst1@suse-db:~> db2 list history backup all for ggyy

List History File for ggyy

Number of matching file entries= 0

对数据库进行一次全备,再次尝试清除:

db2inst1@suse-db:~> db2 backup db ggyy online to/data/backup

Backup successful. The timestamp for this backup image is: 20100104004121

db2inst1@suse-db:~> db2 connect to ggyy

Database Connection Information

Database server= DB2/LINUX 9.7.0

SQL authorization ID= DB2INST1

Local database alias= GGYY

db2inst1@suse-db:~> db2 prune history 20100103235553

DB20000I The PRUNE command completed successfully.

db2inst1@suse-db:~> db2 list history archive log all for ggyy| head-20

List History File for ggyy

Number of matching file entries= 5

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235608 1 D S0000039.LOG C0000007

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

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

Comment:

Start Time: 20100103235608

End Time: 20100103235608

Status: A

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

EID: 82 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000039.LOG

通过使用 and delete参数,可以在清理条目的同时删除对应的归档日志文件。

db2inst1@suse-db:~> ls-l/data/palog/db2inst1/GGYY/NODE0000/C0000007

total 48

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:55 S0000038.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:56 S0000039.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:56 S0000040.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-04 00:41 S0000041.LOG

db2inst1@suse-db:~> db2 prune history 20100103235608 and delete

DB20000I The PRUNE command completed successfully.

db2inst1@suse-db:~> db2 list history archive log all for ggyy| head-20

List History File for ggyy

Number of matching file entries= 3

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100103235618 1 D S0000040.LOG C0000007

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

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

Comment:

Start Time: 20100103235618

End Time: 20100103235618

Status: A

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

EID: 84 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000040.LOG

db2inst1@suse-db:~> ls-l/data/palog/db2inst1/GGYY/NODE0000/C0000007

total 36

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:55 S0000038.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:56 S0000040.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-04 00:41 S0000041.LOG

可以看到,归档日志文件S0000039.LOG已被删除,但S0000038.LOG还存在,因为之前已经清除了S0000038.LOG的相关条目。

尝试同时清除S0000040.LOG和S0000041.LOG:

db2inst1@suse-db:~> db2 list history archive log all for ggyy| tail-15

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100104004127 1 D S0000041.LOG C0000007

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

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

Comment:

Start Time: 20100104004127

End Time: 20100104004128

Status: A

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

EID: 86 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000041.LOG

db2inst1@suse-db:~> db2 prune history 20100104004127 and delete

DB20000I The PRUNE command completed successfully.

db2inst1@suse-db:~> db2 list history archive log all for ggyy| head-20

List History File for ggyy

Number of matching file entries= 1

Op Obj Timestamp+Sequence Type Dev Earliest Log Current Log Backup ID

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

X D 20100104004127 1 D S0000041.LOG C0000007

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

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

Comment:

Start Time: 20100104004127

End Time: 20100104004128

Status: A

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

EID: 86 Location:/data/palog/db2inst1/GGYY/NODE0000/C0000007/S0000041.LOG

db2inst1@suse-db:~> ls-l/data/palog/db2inst1/GGYY/NODE0000/C0000007/

total 24

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:55 S0000038.LOG

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-04 00:41 S0000041.LOG

S0000041.LOG依然存在,因为它是全备之后生成的。如果想要强制清除,可以使用 with force option参数。

db2inst1@suse-db:~> db2 prune history 20100104004127 with force option and delete

DB20000I The PRUNE command completed successfully.

db2inst1@suse-db:~> db2 list history archive log all for ggyy| head-20

List History File for ggyy

Number of matching file entries= 0

db2inst1@suse-db:~> ls-l/data/palog/db2inst1/GGYY/NODE0000/C0000007/

total 12

-rw-r----- 1 db2inst1 db2iadm1 12288 2010-01-03 23:55 S0000038.LOG

注意,这里连带着将数据库全备的条目也删除了,但备份文件还在:

db2inst1@suse-db:/data/backup> db2 list history backup all for ggyy

List History File for ggyy

Number of matching file entries= 0

db2inst1@suse-db:/data/backup> ls-l/data/backup

total 99994

-rw------- 1 db2inst1 db2iadm1 102293504 2010-01-04 00:41 GGYY.0.db2inst1.NODE0000.CATN0000.20100104004121.001

此外,使用 db2 prune logfile命令可以清除活动日志目录下的在线归档日志文件,但对离线归档日志文件无效,这里不再赘述。

如何将 DB2 升级到 V10.5

请参考:

升级前准备

升级之前,客户需要考虑升级条件是否具备,然后制定升级计划。

检查升级条件

主要从两方面来检查是否支持 DB2升级到 V10.5版本。在 DB2版本方面,只支持直接从 DB 9.7之后(含)的版本升级,如果是更低的版本如 DB2 9.5,需要先升级到 9.7或 10.1,然后再升级到 V10.5。建议将DB2升级到 V9.7或 V10.1最新的 FIXPACK。在操作系统方面,DB2 V10.5在软件、通信、磁盘和内存方面对不同操作系统有不同的最低要求,因此应当确保所选操作系统满足这些要求。本文不详细介绍不同操作系统安装 V10.5的所有要求。DB2安装软件中提供了一个很好的工具 db2prereqcheck来检查系统是否满足安装先决条件,而不必直接开始安装特定的 DB2版本。此命令检查先决条件,例如,操作系统级别、客户机或特定于 DB2 pureScale特性的要求等等。

清单 1.清单 1. Windowns系统上 db2prereqcheck命令输出

D:\WINDOWNS_AMD64\ESE\image>db2prereqcheck.exe-v 10.5.0.0

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

Checking DB2 prerequisites for DB2 database version"10.5.0.0" on operating system

"Windows"

Required minimum version:"Windows 2012" SP"0"

Actual version detected:"Windows 2012" SP"0"

OS is Windows"Server"

Requirement matched.

DBT3533I The db2prereqcheck utility has confirmed that all installation prerequisites

were met.

如果 db2prereqcheck执行成功,说明此系统满足所有的安装条件。如果发现条件不符合,那么将会返回如清单 1所示的错误信息,列出所有安装的先决条件。客户就需要根据错误信息,逐一满足。一直到运行此工具不再出现错误信息为止。

实际上,如果运行不带任何参数的 db2prereqcheck命令,那么该命令将检查系统是否满足所有 DB2发行版和修订包的先决条件。要检查系统是否满足特定 DB2版本的先决条件,要运行带有-v参数的 db2prereqcheck命令。对于 DB2 pureScale特性安装,需使用-p选项。对于客户机安装,需使用-c选项。

清单 2.清单 2. AIX系统上 db2prereqcheck命令输出

bash-4.2#./db2prereqcheck-p-v 10.5.0.0

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

Checking DB2 prerequisites for DB2 database version"10.5.0.0" on operating system"AIX"

Validating"kernel level"...

Required minimum operating system kernel level:"6.1".

Actual operating system kernel level:"7.1".

Requirement matched.

Validating"AIX technology level and service pack"...

Required minimum technology level:"0" Service pack:"3"

Actual technology level:"2" Service pack:"1"

Requirement matched.

Validating"XL C/C++ Runtime"...

Required minimum"XL C/C++ Runtime" level:"11.1.0.1"

Actual version:"12.1.0.1"

Requirement matched.

Validating"openssh"...

Found package"openssh" on host"sapaix8".

Requirement matched.

Validating"IOPORTS"...

The input/output completion Port(IOCP) is installed on host"sapaix8".

The input/output completion Port(IOCP) is enabled on host"sapaix8".

Requirement matched.

Validating"free space"...

The directory"/tmp" has enough space on host"sapaix8".

Requirement matched.

Validating"free space"...

The directory"/var" has enough space on host"sapaix8".

Requirement matched.

Validating"free space"...

DBT3594W The db2prereqcheck utility found that the directory"/home" does not have the

recommended amount of free space on host"sapaix8". Recommended

amount needed:"5120000 KB". Actual space present:"203792 KB".

WARNING: Requirement not matched.

Validating"free space"...

The directory"/opt" has enough space on host"sapaix8".

Requirement matched.

Validating"free space"...

DBT3594W The db2prereqcheck utility found that the directory"/" does not have the

recommended amount of free space on host"sapaix8". Recommended amount

needed:"5120000 KB". Actual space present:"203792 KB".

WARNING: Requirement not matched.

Validating"uDAPL"...

Required minimum"uDAPL" level:"7.1.0.15"

Actual version:"6.1.6.0"

ERROR: Requirement not matched.

Requirement not matched for DB2 database"Server" with pureScale feature. Version:

"10.5.0.0".

Summary of prerequisites that are not met on the current system:

Required minimum"uDAPL" level:"7.1.0.15"

Actual version:"6.1.6.0"

DBT3594W The db2prereqcheck utility found that the directory"/" does not have the

recommended amount of free space on host"sapaix8". Recommended amount

needed:"5120000 KB". Actual space present:"203792 KB".

DBT3594W The db2prereqcheck utility found that the directory"/home" does not have the

recommended amount of free space on host"sapaix8". Recommended

amount needed:"5120000 KB". Actual space present:"203792 KB".

需要注意的是:db2prereqcheck可以检查 DB2安装的大部分升级条件,但是并不会检测 DB2服务器升级的磁盘空间要求。在 Linux和 UNIX操作系统上,建议在/tmp目录中有 2 GB的可用空间。此外,您需要了解系统环境中具有几个组件,如 DB2®服务器、DB2客户机、数据库应用程序、脚本、例程和工具,在规划升级时需要彻底了解每个组件的迁移过程。

制定升级计划

一般升级 DB2需要花费很长的时间,而且具有一定的风险,一份周详的升级计划会有助于降低升级的风险。

首先,制定一项关于如何处理环境升级的策略。你必须确定每个组件的升级顺序。环境的特征和升级基本要求中的信息可以帮助你确定策略。

下面是一个很好的升级策略示例,在此示例中,你将测试数据库应用程序和例程并确定它们在 DB2 V10.5中是否成功运行:

查看 DB2 V10.5以及您要升级的发行版与 DB2 V10.5之间的任何发行版的新功能、不推荐使用的功能和已停止使用的功能。

计划如何修改数据库应用程序和例程。确保它们在 DB2 V10.5中成功运行。

设置 DB2 V10.5服务器并创建测试数据库。

在 DB2 V10.5测试数据库上测试数据库应用程序和例程,以确定它们是否成功运行。如果应用程序需要客户机,请使用 DB2 V10.5客户机。

在测试环境中对 DB2服务器和客户机进行升级。确定存在的问题及其解决方案。使用此信息来调整升级计划。

在生产环境中将 DB2服务器升级到 DB2 V10.5。确保它们按预期操作。

在生产环境中将客户机升级到 DB2 V10.5。确保客户机按预期操作。

在升级后的 DB2 V10.5环境中测试数据库应用程序和例程,以确定它们是否按预期运行。

使已升级的环境可供用户使用。

之后,你就可以为环境中的每个组件定义升级计划详细信息。升级计划应该包括每个组件的下列信息:升级先决条件,升级前任务,升级任务和升级后任务。

如果你先前已制定了升级计划,查看它们并将它们与 DB2 V10.5的升级计划进行比较。最后,在升级计划中取消使用不推荐使用的功能并合并 DB2 V10.5中的新功能。尽管你只需要取消使用已停止使用的功能,但还是应该计划在升级之后取消使用不推荐使用的功能,因为在未来的发行版中将不支持这些功能。此外,还应该利用新功能为你的数据库产品、应用程序和例程增强功能和提高性能。升级是一个高风险的过程,一定要做好充分的准备和测试。

升级

安装 DB2 V10.5

自从 DB2 V9开始,DB2支持在操作系统上安装多个副本。升级数据库有两种安装 DB2的选择,一种是安装新的数据库副本到新的位置,另外一种是直接升级老版本数据库副本到新的版本。这个具体要看用户的环境规划。我们推荐安装新的副本到新的位置,这样可以不影响老的副本,如果升级过程中出现问题,客户可以恢复到老的版本直接运行。

我们以 DB2 V10.1到 DB2 V10.5的升级为例来讲解具体的升级过程。系统中已安装了 DB2 V10.1的一个副本。我们下载 DB2 V10.5版本,对于 Windows操作系统,执行其中的 setup.exe,

图 1.图 1. DB2 V10.5的安装文件

此时弹出如下界面:

图 2.图 2. DB2 V10.5安装界面

点击查看大图

在 DB2 V10.5中,这个界面较之前做了些调整——按照服务类型和安装端进行了分类:将 Advanced Enterprise Server Edition、Advanced Workgroup Server Edition、Enterprise Server Edition和 Workgroup Server Edition放到了一组,Express Version、Data Server Client、Data Server Runtime Client和 Connect Server各自为一组,这里我们选择第一组的安装

图 3.图 3.选择一:安装一个新的副本

若点击 Work with Existing,则表示直接升级老版本数据库副本到新的版本:

图 4.图 4.选择二:直接升级老版本数据库副本到新版本

对于 Linux和 Unix操作系统来说,V10.5在软件安装文件目录下有 db2_install和 db2_setup两种安装命令,如清单 3所示,建议用户使用 db2_setup来安装,因为 db2_install在未来的新版本中将不再使用:

清单 3.清单 3. V10.5提供两种软件安装命令(Linux/ Unix)

bash-3.00# ls

db2 db2_install db2ls db2setup installFixPack

db2_deinstall db2ckupgrade db2prereqcheck ibm_im

首先我们使用 db2_install来安装 DB2副本,如清单 4所示:

清单 4.清单 4.选择一:使用 db2_install安装新副本(Linux/Unix)

#./db2_install

DBI1324W Support of the db2_install command is deprecated. For

more information, see the DB2 Information Center.

Default directory for installation of products-/opt/ibm/db2/V10.5

***********************************************************

Install into default directory(/opt/ibm/db2/V10.5)? [yes/no]

在清单 4中,我们看到输入 db2_install后有提示:“Support of the db2_install command is deprecated”,这意味着 V10.5以后版本将不再提供该命令,实际上我们从 V10.1开始就不推荐使用这个命令。因此我们采用与 Windows平台下相同的 db2setup命令安装软件,如清单 5中所示:

清单 5.清单 5.选择二:使用 db2setup安装新副本(Linux Unix)

#./db2setup

DBI1190I db2setup is preparing the DB2 Setup wizard which will guide

you through the program setup process. Please wait.

之后我们将看到亲切的图形界面,如图 2、图 3所示,接下来按照向导将帮助您完成操作,如图 5所示:

图 5.图 5.使用 db2setup安装新副本界面(Linux Unix)

点击查看大图

同样的,你可以选择 Install New或者 Work with Exsiting两种方式来进行安装。

db2和oracle的区别

Oracle和DB2是两种不同的数据库。

Oracle是甲骨文公司的一款关系数据库管理系统。

ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。

DB2全称为IBM DB2。是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本。

DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 DB2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

阅读剩余
THE END