点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!
错误信息:
SQL0970N The system attempted to write to a read-only file
这是在restore 数据库测试过程中发现的一个有趣的问题。在同一台server上有两个instance:db2inst, db2inst2。打算将db2inst上的数据库test,采用restore的方式在db2inst2上恢复。
在db2inst上备份数据库test,如下所示:
启动另外一个实例后执行restore报SQL0970N的错误:感觉是不是没采用redirect的方式。使用redirect的方式产生redirect restore的脚本:产生的Redirect restore 脚本如下,没发现问题:然后再次执行restore, 发现restore时依然报SQL0970N的错误:查db2diag.log(见下图)发现执行restore时,会把数据写到/home/db2inst 也就是备份的那个instance的数据目录:使用db2pd -d test -tablespace查询原数据库的tablespace。发现restore时写入的目录的确是备份数据库的表空间目录。(如下图所示)分析:在db2 restore时,会按默认的方式处理所有自动磁盘管理的数据表空间。