暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Restore数据库测试时SQL0970N错误

IT那活儿 2023-11-13
517
点击上方“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的错误:
使用db2 ? SQL0970N
查db2diag.log(见下图)发现执行restore时,会把数据写到/home/db2inst 也就是备份的那个instance的数据目录:
使用db2pd -d test -tablespace查询原数据库的tablespace。发现restore时写入的目录的确是备份数据库的表空间目录。(如下图所示)
分析:在db2 restore时,会按默认的方式处理所有自动磁盘管理的数据表空间。

END


本文作者:事业二部(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论