DB2 用法整理

1、运行DB2命令行工具clpplus
开始->运行,clpplus,确定。

2、DB2验证安装


db2level: 此命令显示有关的DB2 安装的产品,修订包的水平,和其他详细信息。
db2licm –l: 此命令会列出您所安装的DB2 信息。
db2val: 这是一个DB2 9.7 中的新命令。它会验证您所安装的拷贝的核心功能。它会验证您所创建的实例是一致的,并验证数据库的创建及数据库连接。


3、自动安装
有时,您需要将DB2 客户端安装到多台机器上,又或者您需要将DB2 数据库服务器嵌入到您的应用程序,并在安装这个应用程序同时安装DB2 数据库服务器。这些情况下,DB2 的自动安装是一个理想的方法。
DB2 利用响应文件来进行自动安装,它以简单的文字选项保存了安装所需的信息。列表3.1 下面展示了响应文件的一小部分。
PROD=UDB_EXPRESS_EDITION
LIC_AGREEMENT=ACCEPT
FILE=C:\Program Files\IBM\SQLLIB\
INSTALL_TYPE=TYPICAL
LANG=EN
INSTANCE=DB2
DB2.NAME=DB2
DEFAULT_INSTANCE=DB2
DB2.SVCENAME=db2c_DB2
DB2.DB2COMM=TCPIP

有了响应文件后,可以用响应文件来自动安装DB2,在Windows 中,您运行下面的命令来执行安装:
setup -u <response filename>
在 Linux 中,您运行下面的命令进行自动安装:
db2setup -r <response filename>


4、DB2默认安装的实例
在 Windows 系统中,安装时默认创建一个实例名称为“DB2”(Linux 系统下创建的实例名称为“db2inst1”)


5、创建一个新的DB2实例
可以用如下命令新建数据库实例,db2icrt <实例名称>,这里的<实例名称>可以用任意8 个字符代替。例如,创建一个名为myinst 的实例其命令为:db2icrt myinst。


6、实例的端口
必须注意的是每一个实例的端口号必须是唯一的。这样在您远程连接数据库时,此端口号可以保证您能够正确的连接实例。在Windows 中可以使用DB2 命令窗口,输入如下命令来激活任意DB2实例:
set db2instance=myinst。。。

显示所有实例:db2ilist

在Linux操作系统上,每一个实例必须对应一个Linux操作系统用户,因此,两个实例的转换可以通过转换用户得以简单实现。

db2start 启动当前实例
db2stop 停止当前实例
db2icrt 创建一个新的实例
db2idrop 删除一个实例
db2ilist 显示系统您当前的所有实例清单
db2 get instance 显示当前运行的实例


7、创建数据库

在当前运行实例中创建一个数据库,命令为:
db2 create database mydb1

若要显示所有已创建的数据库,执行:
db2 list db directory

在任一实例中都可以创建多个数据库。数据库是诸如表,视图,索引等对象的集合。数据库之间是相互独立的单元,因此一个数据库并不与其他数据库共享内部对象。

一些常见的数据库层的命令:
db2 create database 创建一个新的数据库
db2 drop database 删除一个数据库
db2 connect to <database_name> 连接数据库
db2 create table/create view/create index 分别创建表,视图,和索引


补充:如果想要在“myinst”实例中创建相同名称(MYDB1)的数据库,可以在DB2 命令窗口执行如下的命令:
db2 list db directory
set db2instance=myinst
db2 create database mydb1
set db2instance=db2


8、表空间与缓冲池关系
缓冲池是数据库使用的高速缓冲存储器。您可以创建多个缓冲池,但是至少应该有一个缓冲池,它的页的大小与现存的表空间的页的大小相同。

看到53页。


跳转至 备份和恢复

9、日志类型

a、主日志(Primary logs)。主日志是预分配的,可用的数目由db cfg 的LOGPRIMARY 参数规定。

b、辅助日志(Secondary logs)。辅助日志是根据DB2 的需要动态分配的。辅助日志的最大数目由db cfg 的LOGSECOND 参数规定。动态分配日志是很消耗系统资源的;所以,为了保证日常使用的性能,应确保日志都在所分配的主日志范围内。辅助日志文件会在所有到数据库的连接全部关闭后被删除。
如果设定LOGSECOND 为-1,则不限制记录日志的大小;然而,我们不推荐这样做,因为您的文件系统空间会因此而耗尽。


10、日志记录的类型

有两种日志记录类型:循环日志记录(默认)和归档日志记录。

a、循环日志记录
我们可以假设LOGPRIMARY 参数被置为3,于是图中有三个主日志。为简单起见,我们在这个例子中只讨论仅有一个事务被执行的情况。当这个事务被执行时,开始占用日志文件P1 的空间,接着是P2 的空间。如果一个提交操作发生,接着信息被外部化到表空间磁盘中,那么P1 和P2 就可以被覆盖了,这是因为崩溃系统恢复(本章的后面将更详细的谈到)已经不再需要这些信息了。另一方面,如果事务很长,以至于它占用了P1,P2,P3 的空间后,由于该事务既没有被提交也没有被外部化而需要更多的日志空间,那么辅助日志(图中的S1)就会被动态的分配。如果该事务依然在继续,更多的辅助日志就会被分配,直到LOGSECOND 所规定的最大辅助日志数目都被分配完毕。这时候如果还需要更多的日志,用户就会看到一个显示日志已满的错误信息,并且当前事务将会被回滚。作为另外一种选择,您可以将DB2 的参数设置为BLK_LOG_DSK_FUL,从而在某些事务被挂起的同时可以继续每隔五分钟向日志写入,这种方法可以给DBA 提供时间去找新的空间,使事务可以继续下去。
循环循环日志记录可以帮助系统故障修复,但是如果您希望恢复到指定的时间点,最合适的时间点就是您上一次的离线备份。

b、归档日志
在归档日志(也被称为日志保留记录)中,日志文件不会被覆盖,而会在线或离线保存。在线归档日志与系统恢复所需的活动日志保存在一起,离线归档日志被移动到另外的存储媒介,例如磁带中。这个操作可以由USEREXIT 程序,Tivoli 存储管理程序,或第三方日志类产品完成。
若要激活归档日志,把数据库配置参数LOGARCHMETH1 和(或)LOGARCHMETH2 设置成OFF 以外的值。另一个方法是把设置参数LOGRETAIN 设置成RECOVERY。这样会自动地将参数LOGARCHMETH1 设置为LOGRETAIN。但是LOGRETAIN 参数主要用于与DB2 老版本的兼容性,并不建议使用。
归档日志通常被用在生产系统中,并且由于日志都被保存,使得数据库可以在大多数情况下被恢复到最早的日志状态。有了归档日志,DBA(数据库管理员)可以(从一定程度上)使数据库从人为造成的错误中恢复。举例来说,如果一个系统用户不经意的执行了一个错误的事务,几天后,当这个问题被检测到时,DBA 可以使系统恢复到这个问题发生以前的状态。然而,为了保证正确恢复这个事务,可能需要一些手动处理的过程。


11、数据库备份-backup

a、DB2备份命令:BACKUP DATABASE <dbname> [ TO <path> ]

b、大多数命令和工具可以在线或者离线执行。在线意味着其它的用户可能在您执行您的命令时正连接到数据库并执行其他数据库上的操作。离线表示当您执行您的操作时,没有其他的用户连接到数据库。要允许一个在线操作,把关键词ONLINE 加在命令语法里,否则,默认情况下该命令会假定您在离线执行它。

如:db2 BACKUP DB sample TO C:\BACKUPS

注:C:\BACKUPS 目录必须在执行这条命令之前就已经存在。同时要确定在您执行上面这条指令时没有其他到数据库的连接,否则您就会收到一条错误信息,因为一次离线的备份不能在有其他连接时执行。

注:查看所有数据库连接:db2 list applications
关闭所有数据库连接:db2 force applications all

c、备份映像命名规则
类型“0”表示这个备份是一个完全备份。类型“3”则表示这仅仅是一个表空间备份。节点被定为NODE0000,表示没有被分割的数据库,这正是带有DPF 特性的除DB2 企业版之外的所有DB2 版本的情形。目录节点也被定为CATN0000。您可以参考DB2 手册获取更多细节。
当获取了几个备份且都存储在同一个路径下的时候,文件名最后的时间标记部分被用来区分这些备份映像。正如我们将在下一部分看到的,RESTORE 命令可以利用这个时间标记来从其中的特定备份恢复。


12、数据库恢复-restore

a、一次数据库恢复是指从一个备份和(或者)日志中重建您的数据库。如果您刚从一个备份中重建数据库,您所做的就相当于重新创建一个与您备份的时候一模一样的数据库。
如果归档日志记录在备份前被激活,您就不能仅仅是使用一个备份映像重建数据库,您还要使用日志。正如我们将要在下一部分看到的一样,一个向前回滚的恢复允许您从备份中重建数据库,然后再应用(向前回滚)全部日志进行恢复,或者恢复到某一个特定的时间点。


13、恢复类型

恢复类型包括三种:崩溃或重启动恢复、版本或映像恢复、向前回滚恢复。

a、崩溃或重启动恢复
假设您正在使用桌面电脑运行重要的DB2 数据库事务。突然系统掉电,或者某些人不小心拔去了电源线:那么数据库会发生什么呢?
下一次您启动电脑并启动DB2 时,崩溃恢复就会自动执行。在崩溃恢复中,DB2 会自动运行命令RESTART DATABASE,并且基于活动日志,重新进行或者取消事务。当这条命令完成后,DB2 保证您的数据库将会被维持在与以前一致的状态,也就是说,任何被提交的操作都会被保存,任何没被提交的操作都会被回滚。

b、版本或映像恢复
这种类型的恢复意味着您仅从备份映像中恢复数据库;所以,您的数据库会被置于与备份的时候相一致的状态。任何在备份后进行的事务都会丢失。

c、向前回滚恢复
使用这种类型的恢复,您不仅仅从备份映像中恢复数据库,同时还将运行ROLLFORWARD命令在备份恢复的基础上利用日志来恢复数据,这样一来,您就可以恢复数据库到一个特定的时间点。这种类型的恢复使数据库损失降到最低。


14、备份和恢复操作

以下列出了使用备份和恢复命令还能做的一些事情。我们建议您查阅DB2 手册以获取更多信息。

a、在一个32 位DB2 上备份数据库,并在一个64 位DB2 上重建它
b、恢复并覆盖一个已存数据库
c、使用重定向恢复把数据库恢复到一个与备份映像中所描述的磁盘数目不同的系统
d、 仅备份或者恢复表空间,而不是整个数据库
e、可以进行少量备份或者增量备份;增量备份仅仅记录从上一次备份到下一次备份之间的改动,而增量备份记录所有改动并把它们追加到每一个备份映像上。
f、从闪存拷贝中备份(需要相关硬件支持)
g、恢复删除的表(如果给定表的该选项被激活)
h、不能从一个操作系统中备份(比如windows)再到在另一个操作系统(如Linux)中重建。在这种情况下应使用db2look 和db2move 工具。




15、DB2安全机制
a、DB2 中有三种主要的安全机制,可以帮助 DBA 实现数据库安全计划:身份验证(authentication)、授权(authorization) 和特权(privilege)。 

b、身份验证是用户在尝试访问 DB2 实例或数据库时遇到的第一种安全特性。DB2 身份验证与底层操作系统的安全特性紧密协作来检验用户 ID 和密码。DB2 还可以利用 Kerberos 这样的安全协议对用户进行身份验证。 授权决定用户和/或用户组可以执行的操作以及他们可以访问的数据对象。用户执行高级数据库和实例管理操作的能力由指派给他们的权限决定。在 DB2 中有 5 种不同的权限级别:SYSADM、SYSCTRL、SYSMAINT、DBADM 和 LOAD。


c、使用DB2修改服务器操作系统上的密码
db2 connect to sample user test1 using password new chgpass confirm chgpass
注:DB2修改用户的系统密码,因此不仅是连接DB2数据库,就连登陆系统,也必须使用修改后的密码。














  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值