DB2若干问题解决记录
2008-08-19 14:08
330 查看
1. 用SQL实现交叉表格。
SQL Server里提供了Pivot关键字可以帮助实现交叉表格,但DB2里似乎没有等价的东西。实现的方法稍微复杂一点,以下是一个例子。
SELECT location,
MAX(CASE WHEN metric='PH' THEN value END) as PH,
MAX(CASE WHEN metric='Hg' THEN value END) as Hg,
MAX(CASE WHEN metric='Fe' THEN value END) as Fe,
MAX(CASE WHEN metric='Mn' THEN value END) as Mn
FROM data_view
GROUP BY location
其中data_view表/视图有location、metric和value这三个字段,数据是下面这个样子:
location1 PH 1.142575278063135
location1 Hg 0.0018310994140037379
location1 Fe 0.2974983113601452
location1 Mn 0.09548843270448454
location2 PH 6.096025515217242
location2 Hg 0.005575948698159294
location2 Fe 0.32657056877142043
location2 Mn 0.009418315198912612
得到的交叉表:
LOCATION PH Hg Fe Mn
location1 1.142575278063135 0.0018310994140037379 0.2974983113601452 0.09548843270448454
location2 6.096025515217242 0.005575948698159294 0.32657056877142043 0.009418315198912612
参考链接:
Pivot Query
另一个方法(经实验不好用)
又一个方法(感觉比较复杂,没试)
2. "Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011, SQLERRMC: null"
APP Heap区不足,用"DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024"可以解决。注意要重启DB2以便让更改生效。
3. 恢复(Restore)数据库
在控制中心里,选择数据库备份路径时要选到xxx.0的上一层,时间戳要与备份时一致(可通过查看备份路径里的文件夹和文件名得到,如20081007165742)。恢复数据库的命令行格式如下:
db2 restore <dbname> incremental from <imagepath> taken at <timestamp>
4、恢复数据库时提示“SQL2570N”
例如:SQL2570N 由于操作系统不兼容或者指定的 RESTORE 命令不正确,所以在目标操作系统 "NT-32" 上从源操作系统
"AIX-32" 上创建的备份进行复原的尝试失败。原因码:"1"。
按照错误码(1)对应的用户响应,应该使用db2move实用程序:“要使用这个特定的备份映像,应在与创建该备份
时所在的操作系统“复原兼容”的系统上进行复原
。要将数据库从一种操作系统类型移至另一操作系
统类型,请使用 db2move
实用程序。要了解有关相互“复原兼容”的平台以
及 db2move 实用程序的详细信息,请使用诸如“跨平
台备份和复原”或“使用不同操作系统”之类的短
语来在 DB2 信息中心( http://publib.boulder.ibm.com/infocenter/db2luw/v9)中执行搜索”
SQL Server里提供了Pivot关键字可以帮助实现交叉表格,但DB2里似乎没有等价的东西。实现的方法稍微复杂一点,以下是一个例子。
SELECT location,
MAX(CASE WHEN metric='PH' THEN value END) as PH,
MAX(CASE WHEN metric='Hg' THEN value END) as Hg,
MAX(CASE WHEN metric='Fe' THEN value END) as Fe,
MAX(CASE WHEN metric='Mn' THEN value END) as Mn
FROM data_view
GROUP BY location
其中data_view表/视图有location、metric和value这三个字段,数据是下面这个样子:
location1 PH 1.142575278063135
location1 Hg 0.0018310994140037379
location1 Fe 0.2974983113601452
location1 Mn 0.09548843270448454
location2 PH 6.096025515217242
location2 Hg 0.005575948698159294
location2 Fe 0.32657056877142043
location2 Mn 0.009418315198912612
得到的交叉表:
LOCATION PH Hg Fe Mn
location1 1.142575278063135 0.0018310994140037379 0.2974983113601452 0.09548843270448454
location2 6.096025515217242 0.005575948698159294 0.32657056877142043 0.009418315198912612
参考链接:
Pivot Query
另一个方法(经实验不好用)
又一个方法(感觉比较复杂,没试)
2. "Error 500: DB2 SQL error: SQLCODE: -954, SQLSTATE: 57011, SQLERRMC: null"
APP Heap区不足,用"DB2 UPDATE DB CFG FOR DBNAME USING APPLHEAPSZ 1024"可以解决。注意要重启DB2以便让更改生效。
3. 恢复(Restore)数据库
在控制中心里,选择数据库备份路径时要选到xxx.0的上一层,时间戳要与备份时一致(可通过查看备份路径里的文件夹和文件名得到,如20081007165742)。恢复数据库的命令行格式如下:
db2 restore <dbname> incremental from <imagepath> taken at <timestamp>
4、恢复数据库时提示“SQL2570N”
例如:SQL2570N 由于操作系统不兼容或者指定的 RESTORE 命令不正确,所以在目标操作系统 "NT-32" 上从源操作系统
"AIX-32" 上创建的备份进行复原的尝试失败。原因码:"1"。
按照错误码(1)对应的用户响应,应该使用db2move实用程序:“要使用这个特定的备份映像,应在与创建该备份
时所在的操作系统“复原兼容”的系统上进行复原
。要将数据库从一种操作系统类型移至另一操作系
统类型,请使用 db2move
实用程序。要了解有关相互“复原兼容”的平台以
及 db2move 实用程序的详细信息,请使用诸如“跨平
台备份和复原”或“使用不同操作系统”之类的短
语来在 DB2 信息中心( http://publib.boulder.ibm.com/infocenter/db2luw/v9)中执行搜索”
相关文章推荐
- 最近在项目中实践了一下Redis,过程中遇到并解决了若干问题,记录之.
- 【HGE引擎】学习HGE遇到的若干问题及解决方式记录 Q&A
- log4net输出到IBM DB2问题解决记录
- 搭建基于Ant+Jmeter+jenkins的自动负载测试框架的若干问题记录及解决
- 记录redhat下安装MySQL-python 模块遇到的问题及解决方法
- CentOS解决问题资料记录
- WebView called on thread 'JavaBridge'的问题和MediaPlayer stop called in state 1报错解决记录
- 传统七夕在解决程序若干问题中度过
- 新版数采仪问题解决全记录-模块上报不了数据
- 新版数采仪问题解决全记录-不能用single step下
- 虚拟机中linux网络不通问题解决方式记录
- 记录一次java ssm框架下数据回滚问题以及解决方法
- [2013.7.5新鲜出炉] Ubuntu12.04下载Android4.0.1源码全过程----------------折腾两天,终于下好,附若干问题解决
- DB2相关问题及解决方法:
- 解决Apache的错误日志巨大的问题以及关闭Apache web日志记录
- 记录关于android广播(无序)接收不到的问题解决思路
- 解决OleDbDataReader重新获取记录时,使用GetString()方法出错的问题
- Weblogic11g(server10.3.3)部署项目,遇到的问题解决记录。
- 编译directshow若干问题的解决(原创+转)
- Android Toast问题解决记录