Chinaunix首页 | 论坛 | 博客
  • 博客访问: 90994784
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994785
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994786
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994787
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994788
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994789
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994790
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994791
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994792
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994793
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994784
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994795
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994796
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994797
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994798
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994799
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994800
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994801
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994802
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994803
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994804
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994805
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994806
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994807
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994808
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994799
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994810
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994811
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994812
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994813
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994814
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994815
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994816
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994817
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994818
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994819
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994820
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994821
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994822
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994823
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994814
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994825
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994826
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994827
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994828
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994829
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994830
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994831
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994832
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994833
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994834
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks

DB2 9 基础(730 考试)认证指南,第 1 部分: DB2 规划(3)-sdccf-ChinaUnix博客
  • 博客访问: 90994835
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-05-31 18:37:52

developerWorks



DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99797) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99796) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99795) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99794) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99793) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99792) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99791) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99790) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99789) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99788) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99787) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99786) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99785) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99784) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99783) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99782) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99781) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99780) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99779) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99777) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99776) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99775) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99774) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99773) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99772) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99771) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99770) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99769) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99768) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99767) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99765) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99763) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99762) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99761) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99760) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99759) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99758) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99757) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99756) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99755) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99754) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99752) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99751) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99750) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99749) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99748) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99747) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~


DB2 工具

DB2 中包含的工具(本文后面将它们称为 DB2 工具,不要与 前一节 中讨论的可购买的 DB2 工具混淆)为大多数 DB2 特性提供了图形界面,可以节省时间并减少错误。利用这些工具,可以从图形用户界面(GUI)执行与命令行或 API 相同的任务。但是,在使用 DB2 工具时,不必记住复杂的语句或命令,还可以通过在线帮助和向导获得额外的帮助,所以我们来研究一下 DB2 工具。

DB2 工具是 DB2 Client 的组成部分。在安装 DB2 服务器时,实际上也安装了 DB2 Client 的所有组件(尽管大多数人没有意识到这一点)。DB2 Client 允许在任何工作站上安装 DB2 工具,使您能够管理远程数据库服务器。DB2 Client 还提供了设置应用程序开发环境所需的组件。

DB2 工具实际上分成两大类:

Control Center(CC)
主要用来管理 DB2 服务器。有其他几个集成的中心,可以从 Control Center 启动。
Configuration Assistant(CA)
用来设置客户机/服务器通信和维护注册表变量等等。稍后我们会进一步了解 CA。







在任何 DB2 工具中都应该能够找到 6 种基本特性:Wizards、Generate DDL、Show SQL/Show Command、Show Related、Filter 和 Help。

向导对于初学者和专家级 DB2 用户都非常有用。向导带领用户每次一步地执行每个任务,并在适当的时候对设置提出建议,从而帮助用户完成特定的任务。向导可以通过 Control Center 和 Configuration Assistant 启动。

向导可以用来在系统中添加数据库(对数据库进行编目)、创建数据库、备份和恢复数据库、创建表、创建表空间、配置两阶段提交、配置数据库日志、更新文档、设置高可用性灾难恢复(HADR)、调优性能等等。下图显示 DB2 9 中 Create Database 向导的一些面板。



使用向导创建数据库

如果使用这个向导创建数据库,那么也可以自动执行许多后期管理步骤。例如,在前面的图中,可以看到创建 TESTME 数据库时设置了自动维护。还要注意 Enable database for XML(Code set will be set to UTF-8) 复选框。如果要在 DB2 9 中使用 pureXML 特性,那么需要以 UTF-8 unicode 格式创建数据库;这是向导可以帮助管理员提高工作效率的另一个例子。在从命令行处理程序创建数据库时,如果忘了指定这个选项,就不得不删除并重新创建数据库,因为这个数据库特征是不能修改的。

顾问
一些特殊的向导不只是对完成任务提供帮助。传统的向导一步步地带领用户完成一个任务,通过提出重要的问题或者为希望执行的操作生成复杂的命令语法来简化操作过程。如果向导不只是帮助完成任务,还能够提供建议型的功能,DB2 就将它们称为顾问(advisor)。它们的操作方式就像是向导,但是非常智能化(具有非常复杂的算法),能够根据一些输入要素(比如工作负载或统计数据)提出建议。顾问收集信息并指出您可能没有考虑到的选项,从而帮助您执行比较复杂的活动,比如性能调优。然后,您可以接受或拒绝顾问的建议。可以从 GUI、API 或命令行界面调用顾问。

顾问是 IBM 推进自动化计算的措施之一,其目标是使软件和硬件更加 “聪明”(自己进行管理和资源调优)!与某些厂商不同,DB2 中的顾问在每个 版本中都是免费提供的,包括 DB2 Express - C。

DB2 Cube Views 产品也附带一个 Optimization Advisor,但是这个主题超出了 DB2 Fundamentals Certification 的范围。

在 DB2 9 中有两个主要的顾问:Configuration Advisor 和 Design Advisor。DB2 附带的另一个顾问称为 DB2 Recommendation Advisor。这个顾问只能从 DB2 Health Center 访问,当对 DB2 实例和数据库进行常规检查发现问题时可以使用这个顾问(稍后会进一步介绍)。

Configuration Advisor 可以用来为 DB2 环境设置实例和数据库级配置参数。它会提出几个高层问题,从而描述您的环境;比如您更关心数据库的性能还是可用性,或者对这两者同样关心,有多少用户会同时访问数据库,希望有多少内存专门供 DB2 使用,等等。将回答转换为输入参数并传递给底层算法之后,DB2 会智能化地考虑您给出的回答,并根据这些回答提出几个配置建议。Configuration Advisor 尤其适合 OLTP 工作负载,但是对于基于智能的业务工作负载也是有效的。

DB2 9 引入了一个称为 Self Tuning Memory Manager(STMM)的新特性,用于自动调优共享的数据库内存工作集(在所有 DB2 9 版本中也都是免费的)。可以结合使用 Configuration Advisor 和 STMM 建立优化的无需干涉的动态调优的数据库系统。

Configuration Advisor 非常出色,在用 Control Center 创建数据库之后(在某些情况下)它会在 DB2 9 中自动启动。即使您是专家级的 DBA,也建议使用这个工具。DB2 提供的应用程序优化建议可能会给您节省数小时的时间。然后,可以在此基础上将性能手工调优到专家级的水平(如果您有把握的话)!Configuration Advisor 的一个示例如下。



Design Advisor 以工作负载作为输入,这可以在文件、缓存、DB2 Query Patroller 存储库等地方提供。Design Advisor 可以根据这个提交的工作负载对底层数据库模式提出修改建议,帮助管理员获得优化的性能。Design Advisor 还可以建议新建(或修改)索引、MQT、MDC 和分区键(在安装了 Database Partitioning 特性的情况下)。它还能够识别出未被使用的索引并建议删除它们。

但是,在使用这个顾问时要记住,建议仅仅基于提交的工作负载。这是一个重点。Design Advisor 可能会建议删除一个索引或者根据一个查询创建 MDC 表,但是这可能会影响其他查询的性能。在使用这个工具时,一定要分析出应用程序最重要的部分。Design Advisor 的一个示例如下。



Design Advisor 与向导的不同之处在于,向导会帮助您创建索引,但是顾问实际上只建议创建特定的索引。顾问可以帮助 DBA 提高工作效率,还可能会提高他们的技能(因为它可以作为一种学习工具),由此降低了 DB2 解决方案的实施难度和总拥有成本。

笔记本
另一种辅助工具是笔记本(notebook),它与向导的不同之处是,它并不引导用户通过特定的过程(比如创建表)。笔记本通过减少完成任务所花费的时间来简化任务。从本质上说,笔记本使管理员不需要记住复杂的语法。设置事件监视器、创建索引、缓冲池、触发器、别名、模式、视图等任务有对应的笔记本。下图显示 Create View 笔记本。



使用笔记本完成任务 —— 在这个示例中是创建视图

在参加考试时,您应该知道所有向导、顾问和笔记本及其使用方法。建议您研究 Control Center 和 Configuration Assistant,试着使用这些辅助工具执行各种任务。在各处右击并用测试数据库进行试验:记住,实践出真知!

Generate DDL 功能允许您重新生成数据定义语言(Data Definition Language,DDL)、在对象上重建特权所需的授权语句、存储对象的表空间、节点组、缓冲池、数据库统计信息和其他许多构成数据库基础的东西(除了数据之外),还可选择将它们保存到一个脚本文件中。

通过使用 Generate DDL 特性保存 DDL,可以在另一个数据库中以同样的方式定义表、数据库和索引 —— 它就像是一个蛋糕模子。管理员可以使用这个选项创建一个模拟生产环境的测试环境。由于可以手工更新统计数据(当然,在生产环境中决不应该这么做),DB2 的出色特性之一是可以用 Generate DDL 功能创建一个测试数据库,而不需要 在表中装载数据。在点击 Generate DDL 选项时,实际上是运行 db2look DB2 系统命令。

如果希望将数据转移进新的数据库对象,从而快速建立测试数据库,那么可以使用传统的 LOADIMPORT 实用程序,或 db2move 命令。这个工具简化了在分布式工作站上的 DB2 数据库之间移动大量表的过程。db2move 查询特定数据库的系统编目表并编译所有用户表的列表。然后以 PC/IXF 格式导出这些表。

如果一个工具生成 SQL 语句或 DB2 命令,那么在这个工具的界面中 Show SQL 或 Show Command 按钮就可用了。选择这个按钮就会显示 DB2 用来执行您请求的任务的实际语句或命令。可以将这个特性返回的信息保存为脚本,以便在以后重用(这样就不必重新输入它)或者调度它在以后执行,还可以利用它更好地理解界面背后发生的情况。还可以使用操作系统的复制和粘贴功能在另一个应用程序中使用生成的语法。

下面的图显示 Create Database 向导在创建 CHLOE 数据库时生成的 CREATE DATABASE 命令(当然,如果向导生成 SQL,那么这个选项会显示为任务生成的 SQL):

  • 将使用 pureXML 特性
  • 具有自动维护计划,因此可以在每周六和周日早上 1 点到 5 点之间执行离线维护
  • 它的容器将使用 DB2 自动存储管理特性分布在 C: 和 D: 驱动器上
  • 将通过 4fddew.ibmcanada.com 邮件服务器向 DBA 发送电子邮件通知

Show Command 选项能够显示要执行的任务的语法;这样就可以避免手工编写大量 DDL。



Show Command 选项能够显示要执行的任务的语法 - 这样就可以避免手工编写大量 DDL

Show Related 特性显示表、索引、视图、别名、触发器、表空间、用户定义的函数(UDF)和用户定义的类型(UDT)之间的直接关系。例如,如果选择一个表并选择显示相关的视图,那么只会看到直接基于这个基表的视图。不会看到基于相关视图的视图,因为这些视图不是直接从这个表创建的。

通过查看相关的对象,可以更好地理解数据库的结构,了解数据库中现有的对象以及它们之间的关系。例如,如果想删除一个有相关视图的表,Show Related 特性会识别出在删除这个表之后哪些视图会失效。

下面的图显示在视图上使用 Show Related 特性的结果。正如您看到的,VIPER.PATIENTDOCTOR 视图依赖于 VIPER.PATIENTS 和 VIPER.DOCTORS 表。利用这个信息,应该能够判断出如果删除了这两个表之一,VIPER.PATIENTDOCTOR 视图就会失效。Show Related 选项显示数据库对象之间的关系 —— 在这个示例中,是一个视图与它的基表的关系。



可以对任何 DB2 工具的内容面板中显示的信息进行过滤。还可以对查询返回的信息进行过滤(比如限制结果集中的行数)。

这个工具允许保存并命名过滤器,在以后重新调用它。在突出显示数据库对象的 Control Center 面板上,如果选择右下角的 View 按钮,就会看到一个弹出对话框,可以在这里创建、保存和编辑过滤器。现在花些时间为在您自己的用户 ID 下创建的所有数据库对象创建一个过滤器。在本教程的后面,可以使用这个过滤器快速轻松地找到您希望操作的数据库对象。您可以想像得出这些过滤器有多么重要,尤其是在操作供应链管理(SCM)或企业资源计划(ERP)应用程序(比如 SAP)时,您要知道这些应用程序会有数以千计的表。

DB2 工具使用 Eclipse 帮助引擎提供了丰富的帮助信息。在大多数对话框和菜单栏上都有 Help 按钮。它们能够提供一般性帮助,以及指导如何填写字段和执行特定工具的任务。在 Help 菜单中,还可以访问在对话或引用信息中使用的术语的词汇表或索引,以及产品手册中提供的信息。

DB2 帮助是面向任务的,因此应该很容易找到执行特定任务(例如,创建数据库)所需的信息。DB2 还提供一个更新向导,它可以通知用户有了文档更新。







DB2 Command Line Processor(DB2 CLP)是所有 DB2 产品中都有的,可以使用这个应用程序运行 DB2 命令、操作系统命令或 SQL 语句。用这个工具调用 DB2 命令有点儿麻烦。但是,DB2 CLP 可以成为强大的工具,因为它能够将经常使用的命令或语句序列存储在批处理文件中,可以在必要的时候运行这些批处理文件。

DB2 的某些实现可以使用操作系统的本机命令行界面来输入 DB2 命令;其他则不能。因此,我们将讨论 DB2 中的两种处理程序:DB2 Command Line Processor(DB2 CLP)和 DB2 Command Window(DB2 CW)。有人喜欢用同样的名字称呼它们,因为它们的图标是一样的。有一种模式允许用户不必在命令前面加上关键字 db2,在这个教程中将这种模式称为交互 模式的 DB2 CLP。

DB2 CLP 允许交互地输入 DB2 命令,而不必使用 db2 前缀来告诉操作系统您打算输入 DB2 命令。但是,如果希望输入操作系统命令,那么就必须在前面加上惊叹号(!),也称为 bang 键。例如,在 DB2 CLP 中,如果想运行 dir 命令,就输入 !dir

对于除 Windows 之外的所有操作系统,DB2 CW 是在操作系统的本机 CLP 中内置的。在 Windows 环境中,可以在 Windows 命令提示中输入 db2cmd 命令来启动 DB2 CW,或者在 Start 菜单中选择适当的选项。

可以输入 db2 命令从 DB2 CW 启动 DB2 CLP。下图显示通过 DB2 CW 输入的一个命令。




注意,为了运行这个 DB2 命令,必须输入关键字 db2。如果不这么做,操作系统就会认为这是一个操作系统命令,会返回错误。如果正在使用 DB2 CLP,就不需要这么做,如下图所示。










在使用 DB2 处理程序时,可以使用命令行选项修改处理过程或处理中输入的语句和命令的行为方式。在调用 DB2 命令时,可以指定一个或多个处理程序选项。可以控制的一些选项如下:

  • 可以使用 c 标志定义每个语句的自动提交。
  • 可以使用 f 标记定义提供 DB2 命令和 SQL 语句的输入文件。
  • t 标记定义语句末尾的结束字符(默认字符是 ;)。

在 DB2 处理程序中输入 list command options 可以获得所有有效选项的列表(不要忘记必须包含 db2 前缀)。现在运行这个命令,会看到超过 15 个选项,如下所示。



各种 DB2 CLP 选项

有两种修改 DB2 处理程序选项的方法。可以通过设置 DB2OPTIONS 注册表变量(必须大写)为一个会话设置命令选项,或者在输入 DB2 命令时指定命令行标志。后一种方法会覆盖在注册表级建立的任何设置。如果修改单一语句的行为,这将覆盖会话和注册表中的任何设置。

要打开选项,应该在对应的选项字母前面加上减号(-);例如,要打开自动提交特性(这是默认的),应该输入:

db2 -c command or statement...
                    

要关闭选项,可以在选项字母前后加上减号(-c-),或者在前面加上加号(+)。再解释一下前两句话,因为这可能有点儿混乱:在标志前面 放上减号会打开 选项;在标志前面后面 都放上减号,或者在标志前面放上加号关闭 选项。不,这么说还是不太明确(嗨,我没有写出代码)。因为这可能导致混淆,我们用自动提交选项举个例子。

一些命令行选项是默认打开的,其他的是默认关闭的。前面的解释(和后面的示例)描述默认打开的命令行选项的行为和效果。如果命令行选项是默认关闭的,那么使用相反的逻辑。

在默认情况下,自动提交特性是打开的(-c)。这个选项指定每个语句是否自动提交或回滚。

如果一个语句成功了,它就和它前面执行的关闭了自动提交(+c-c-)的所有成功语句一起提交。但是,如果它失败了,它就和它前面执行的关闭了自动提交的所有成功语句一起回滚。如果这个语句关闭了自动提交,就必须显式地执行提交或回滚命令。

在下图中,在命令行上修改了自动提交特性的值来演示这个过程。



在运行时修改命令行选项

那么,发生了什么情况?首先,我创建了一个称为 A 的表,但是在执行这个任务时使用 +c 选项关闭了默认的自动提交选项。(也可以在这个标志前后加上减号[-c-],效果是一样的。)在创建表 A 之后(请记住,没有提交这个操作),我创建了另一个称为 B 的表,这一次也关闭了自动提交特性。然后对这两个表进行 Cartesian 联结,同样动态地关闭 DB2 CLP 的自动提交特性。最后,做一次回滚并再次运行同样的 SELECT 语句,这一次这个语句失败了。

如果您看看这个事务,就会发现我没有执行提交操作。如果第一个 SELECT 没有包含 +c 选项,那么就会提交创建表 A 和 B 的结果(因为这个 SELECT 成功了);因此后面的回滚不会影响这两个已经提交的表,第二个 SELECT 语句会成功地返回与第一个 SELECT 语句相同的结果。

试一下相同的命令序列,但是这一次使用 -c- 选项。应该会看到同样的结果。在此之后,再试一次,这一次在第一个 SELECT 语句中不使用任何选项,看看第二个 SELECT 是否会返回结果。

您的操作系统可能对在一个语句中可以读取的最大字符数量有限制(即使命令行在显示器上转入下一行)。为了在输入长语句时解决这个限制,可以使用续行字符(\)。当 DB2 遇到续行字符时,它读取下一行并在处理时将两行合并。在两种 DB2 处理程序中都可以使用这个字符;但是,要知道 DB2 对一个语句的限制是 2 MB(这对于命令行应该足够了)。下图演示了它在 DB2 CLP 中的使用方法。



在 DB2 CLP 中使用续行字符

如果使用 DB2 CW 输入命令,那么下面这些特殊字符会导致问题:

$ & *( ) ; < > ? \ ' "

操作系统 shell 可能会错误地解释这些字符。(当然,在 DB2 CLP 中不存在这个问题,因为它是为 DB2 命令专门设计的应用程序。)

可以将整个语句或命令放在引号中,从而表示希望由 DB2 解释系统操作符,而不是由操作系统进行解释,如下所示:

db2 "select * from staff where dept > 10"

试着在 DB2 CW 中输入前面的命令,但是不加引号。会发生什么?看看发出这个命令时您所在的目录的内容。我打赌会找到一个称为 10 的文件,其中包含一个 SQL 错误。为什么呢?DB2 解释 SQL 语句

select * from staff where dept

并将产生的内容放进文件 10 > 符号是一个操作系统指令,表示将来自标准显示的输出管道连接到指定的文件(在这个示例中,是 10)。select * from staff where dept 语句当然是一个不完整的 SQL 语句;因此会产生错误。不正确的结果是由于操作系统错误地解释了特殊字符。

应该试试这两个 DB2 处理程序,看看哪一个最适合自己的环境。现在花一些时间在 DB2 CLP 和 DB2 CW 中输入命令。

阅读(99746) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~