Db2 DB21019E 备份脚本错误

Posted

技术标签:

【中文标题】Db2 DB21019E 备份脚本错误【英文标题】:Db2 DB21019E backup script error 【发布时间】:2014-10-21 13:39:07 【问题描述】:

我正在尝试运行备份脚本来备份数据库示例

 su -c "$DB2Home/db2 quiesce database immediate force connections" $InstanceName 

    echo "[INFO:`date`]Executing the backup command: $DB2Home/db2 backup database $Primary_Server_DBName to $BackupFolder compress without prompting "

   su -c "$DB2Home/db2 backup database $Primary_Server_DBName to $BackupFolder compress without prompting" $InstanceName

我以 root 用户而不是 db2inst1 用户身份执行脚本

我收到以下错误

    [INFO:Tue Oct 21 18:44:23 IST 2014]Executing the backup command: /opt/ibm/db2/V10.5/bin/db2 backup database TIPDB to /home/db2inst1/backupFolder compress without prompting 
  DB21019E  An error occurred while accessing the directory 
    "/root".

【问题讨论】:

一个简单的答案是:不要root的身份执行DB2命令。 我正在使用 su -c db2inst1 而不是 root 执行命令 这不是你的问题所说的。 我以 root 用户身份运行脚本,我在内部使用 su -c 切换到 db2inst1 用户。顺便说一句,你为什么投反对票? ***.com/questions/710110/…请参考此链接 【参考方案1】:

解决方案是添加 . /home/db2inst1/sqllib/db2profile

在 db2 操作之前

【讨论】:

为什么要运行多个su 命令,而不是将所有必要的命令放在一个shell 脚本中并通过su 执行该shell 脚本? 这只是一个例子。我只有两个命令。我不需要它的脚本。【参考方案2】:

在运行脚本之前使用:

su - db2inst1

然后照常运行脚本:

db2 -stvf /yourpath/createDatabase1.sql

【讨论】:

以上是关于Db2 DB21019E 备份脚本错误的主要内容,如果未能解决你的问题,请参考以下文章

我可以下载在某处创建包的 Progress DataDirect DB2 脚本吗?

无法从 DB2 备份文件中恢复数据

linux下编写sh脚本使用expect问题

如何从 db2 错误日志中 grep 下面的 sql 部分

重命名 DB2 中的列

python多线程应用——DB2数据库备份