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具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。