案例研究---db2 dba daily working
2011-05-20 14:06
288 查看
既然您已经熟悉了 DB2 环境,那么让我们通过简单的案例研究来回顾一下本文中提到的所有概念:
DB2 数据库管理员(DBA)由于突发的个人原因离开了公司,经理要您负责所有 DB2 系统。这是您担任新 DB2 DBA
的第一天,因而您想熟悉系统。您登录到安装了 DB2 的开发机器(Windows 2000),并打开 CLP 窗口。下面是您要进行的步骤:
首先,您想要知道该机器中有多少实例:
然后,您想要知道当前哪个实例是活动的:
用
命令,您发现该机器上定义了两个实例 - 实例“DB2”和实例“MyInst”。用
命令,您发现“DB2”实例是当前的活动实例。
现在您想要列出“MyInst”实例中的数据库。由于这个实例不是当前的活动实例,所以您首先得在当前 CLP 窗口中临时切换到该实例:
您再次发出
,以查看 MyInst 现在是否是当前实例,然后为列出该实例中定义的数据库,请发出以下命令:
该命令显示出该实例中只有一个数据库(MYDB2)。您想试着创建一个新的数据库(您随后将删除它),为此您执行:
数据库的创建需要花些时间,因为在缺省情况下会在数据库内部创建几个对象。发出另一个
命令将会显示两个数据库:“MYDB2”和“temporal”。
连接至“MYDB2”数据库(db2 connect to mydb2),并查看该数据库中有多少表(
)。您还可以查看定义了多少表空间(
)。
午餐时间到了,因此您决定把某些东西复原。首先,您决定删除临时数据库。当三秒钟掉电引起机器自动重新引导时,您正处于输入命令的过程
中。您并不担心 DB2 数据库状态,因为您知道 DB2 崩溃恢复会确保其前后一致;因此您在重新引导之后打开新的 CLP
窗口,接下来删除该数据库。
啊呀!出错了,您使用了错误的命令并删除了整个 MyInst 实例而不只是删除了数据库“temporal”。您是否因此丢失了与实例“MyInst”相关的数据库“MYDB2”和“temporal”?
查看
图 1
,
您可能会觉得是丢失了;但是,情况并非如此。删除实例时,您并未删除与之相关的数据库。实例为您提供了链接 DB2
代码的环境,以便这些代码依据用户数据使用实例。数据库被“关联”到实例。但是安装 DB2
新版本时,您通常会将实例“升级”成新的代码版本;而数据库保持不变。
既然您已经镇定下来,知道并未丢失数据库,那么该开始思考
命令的工作原理。通常,如果您的实例是活动的,那么该命令会给您一个警告。然后您意识到重新引导机器后,实例“MyInst”并未自动启动,而“DB2”实例已经被配置成在引导机器后自动启动。还有,打开新的 CLP 窗口时,
环境变量的值被设置成“DB2”而不是“MyInst”,假设“DB2”是在机器的控制面板中为该环境变量指定的值。
既然您意识到了这一点,那么您该继续努力使一切恢复原样:
首先,您需要再次创建实例 MyInst:
现在,切换到该实例(set DB2INSTANCE=MyInst)。如果发出
命令,您会得到一个指出系统 db 目录不存在的错误。如果看一下
图 1
,
您会明白:第一次删除实例时,所有实例范围内的配置文件和目录也都被删掉了。因此,实例级概要注册表、dbm cfg、系统 db 目录、节点目录和
dcs 目录都不见了。创建实例时,也创建了带有缺省值的 dbm cfg 和实例级注册表。庆幸的是,前任 DBA
存储了所有这些文件的内容备份。他发出类似于下面这样的命令:
您必须使用适当的命令来手工恢复基于这些文件内容的值。对于您创建的“temporal”数据库,它是需要再次编目的本地数据库。发出命令“
”将足以在系统 db 目录中创建一个项,它将指向现有的本地 db 目录,因为您用缺省值创建了该数据库。本地 db 目录属于数据库;因此,当您删除实例时,并未将其删掉。
db2 catalog db student on c:/student
db2 catalog db pratise on c:/pratise
db2 catalog db training on c:/db2/node0000
但在启动cc后报这个错误:[IBM][CLI Driver] SQL1013N The database alias name or database
name "PRSTISE" could not be found. SQLSTATE=42705
既然一切都恢复了,那么现在您可以删除数据库 temporal 了:
将 DB2INSTANCE 的值设回“DB2”(
)。
好了,大功告成了!
<
4000
/div>
DB2 数据库管理员(DBA)由于突发的个人原因离开了公司,经理要您负责所有 DB2 系统。这是您担任新 DB2 DBA
的第一天,因而您想熟悉系统。您登录到安装了 DB2 的开发机器(Windows 2000),并打开 CLP 窗口。下面是您要进行的步骤:
首先,您想要知道该机器中有多少实例:
db2ilist |
db2 get instance |
db2ilist
命令,您发现该机器上定义了两个实例 - 实例“DB2”和实例“MyInst”。用
db2 get instance
命令,您发现“DB2”实例是当前的活动实例。
现在您想要列出“MyInst”实例中的数据库。由于这个实例不是当前的活动实例,所以您首先得在当前 CLP 窗口中临时切换到该实例:
set DB2INSTANCE=MyInst |
db2 get instance
,以查看 MyInst 现在是否是当前实例,然后为列出该实例中定义的数据库,请发出以下命令:
db2 list db directory |
db2 create database temporal |
db2 list db directory
命令将会显示两个数据库:“MYDB2”和“temporal”。
连接至“MYDB2”数据库(db2 connect to mydb2),并查看该数据库中有多少表(
db2 list tables
)。您还可以查看定义了多少表空间(
db2 list tablespaces
)。
午餐时间到了,因此您决定把某些东西复原。首先,您决定删除临时数据库。当三秒钟掉电引起机器自动重新引导时,您正处于输入命令的过程
中。您并不担心 DB2 数据库状态,因为您知道 DB2 崩溃恢复会确保其前后一致;因此您在重新引导之后打开新的 CLP
窗口,接下来删除该数据库。
db2idrop MyInst |
啊呀!出错了,您使用了错误的命令并删除了整个 MyInst 实例而不只是删除了数据库“temporal”。您是否因此丢失了与实例“MyInst”相关的数据库“MYDB2”和“temporal”?
查看
图 1
,
您可能会觉得是丢失了;但是,情况并非如此。删除实例时,您并未删除与之相关的数据库。实例为您提供了链接 DB2
代码的环境,以便这些代码依据用户数据使用实例。数据库被“关联”到实例。但是安装 DB2
新版本时,您通常会将实例“升级”成新的代码版本;而数据库保持不变。
既然您已经镇定下来,知道并未丢失数据库,那么该开始思考
db2idrop
命令的工作原理。通常,如果您的实例是活动的,那么该命令会给您一个警告。然后您意识到重新引导机器后,实例“MyInst”并未自动启动,而“DB2”实例已经被配置成在引导机器后自动启动。还有,打开新的 CLP 窗口时,
db2instance
环境变量的值被设置成“DB2”而不是“MyInst”,假设“DB2”是在机器的控制面板中为该环境变量指定的值。
既然您意识到了这一点,那么您该继续努力使一切恢复原样:
首先,您需要再次创建实例 MyInst:
db2icrt MyInst |
list db directory
命令,您会得到一个指出系统 db 目录不存在的错误。如果看一下
图 1
,
您会明白:第一次删除实例时,所有实例范围内的配置文件和目录也都被删掉了。因此,实例级概要注册表、dbm cfg、系统 db 目录、节点目录和
dcs 目录都不见了。创建实例时,也创建了带有缺省值的 dbm cfg 和实例级注册表。庆幸的是,前任 DBA
存储了所有这些文件的内容备份。他发出类似于下面这样的命令:
db2 get dbm cfg > dbmcfg.bk db2set -all > db2set.bk db2 list db directory > systemdbdir.bk db2 list node directory > nodedir.bk db2 list dcs directory > dcsdir.bk |
db2 catalog db temporal on <drive/path>
”将足以在系统 db 目录中创建一个项,它将指向现有的本地 db 目录,因为您用缺省值创建了该数据库。本地 db 目录属于数据库;因此,当您删除实例时,并未将其删掉。
db2 catalog db student on c:/student
db2 catalog db pratise on c:/pratise
db2 catalog db training on c:/db2/node0000
但在启动cc后报这个错误:[IBM][CLI Driver] SQL1013N The database alias name or database
name "PRSTISE" could not be found. SQLSTATE=42705
既然一切都恢复了,那么现在您可以删除数据库 temporal 了:
db2 drop database temporal |
set DB2INSTANCE=DB2
)。
好了,大功告成了!
<
4000
/div>
相关文章推荐
- 循序渐进DB2.DBA系统管理、运维与应用案例pdf
- 循序渐进DB2 (第2版)——DBA系统管理、运维与应用案例
- 循序渐进DB2(第2版)——DBA系统管理、运维与应用案例
- 《循序渐进DB2.DBA系统管理、运维与应用案例》 第二章 菜鸟学习时会遇到的问题
- 牛新庄《循序渐进DB2.DBA系统管理、运维与应用案例》及db2 developworks 730 tutorial中的一个疏忽
- 循序渐进DB2(第2版)——DBA系统管理、运维与应用案例
- 循序渐进DB2(第2版)——DBA系统管理、运维与应用案例
- 第六章 案例研究 图片库改进版
- 课堂有效性研究——有效案例
- Android性能优化案例研究(上)
- (转)Android性能优化案例研究(上)
- 案例研究:使用英特尔GPA优化《剑侠情缘三》游戏的性能
- DB2在线增量备份失败的案例分析
- [案例研究]—superJumper 1.程序入口与初始化资源,加载配置信息
- DB2 UDB DBA 核对清单
- JavaScript学习系列4 案例研究:图片库改进版
- DBA_在Linux上安装Oracle Database11g数据库(案例)
- DB2数据架构:高效的智能应用案例
- JavaScript Dom编程艺术-C6 案例研究:图片库改进版
- DB2字段类型研究 --- SMALLINT (小整型)