代码之家  ›  专栏  ›  技术社区  ›  asthac

Windows 10上的DB2恢复命令失败

  •  -1
  • asthac  · 技术社区  · 8 年前

    在Windows 10 PC上安装了DB2 Express C v10.5和v11.1。

    数据库备份成功,但两个版本的还原都以错误结束。

    我也使用DataStudio4.1.2尝试了同样的方法,但这里备份成功,但恢复命令卡住了。

    从Data Studio备份和恢复脚本-

    CONNECT TO SAMPLEDB;
    QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
    CONNECT RESET;
    DEACTIVATE DATABASE SAMPLEDB;
    BACKUP DATABASE SAMPLEDB TO "E:\Database" COMPRESS EXCLUDE LOGS WITHOUT PROMPTING;
    CONNECT TO SAMPLEDB ;
    UNQUIESCE DATABASE;
    CONNECT RESET;
    
    RESTORE DATABASE SAMPLEDB FROM "E:\Database" TAKEN AT 20161020191200 INTO NEWDB WITHOUT PROMPTING;
    

    这在Windows 7和8上运行良好。

    这个问题特定于Windows10上的DB2Express C吗?

    补充-

    从DataStudio恢复不会出现任何错误,只是卡住了。

    备份和恢复脚本的结果-

    db2 => CONNECT TO CBL2010 USER db2admin USING *******
    
       Database Connection Information
    
     Database server        = DB2/NT 10.5.5
     SQL authorization ID   = DB2ADMIN
     Local database alias   = CBL2010
    
    db2 => QUIESCE DATABASE IMMEDIATE
    DB20000I  The QUIESCE DATABASE command completed successfully.
    
    db2 => CONNECT RESET
    DB20000I  The SQL command completed successfully.
    
    db2 => BACKUP DB CBL2010 USER db2admin USING ******* to E:\Backup COMPRESS WITHOUT PROMPTING
    
    Backup successful. The timestamp for this backup image is : 20161024162942
    
    db2 => CONNECT TO CBL2010 USER db2admin USING *******
    
       Database Connection Information
    
     Database server        = DB2/NT 10.5.5
     SQL authorization ID   = DB2ADMIN
     Local database alias   = CBL2010
    
    db2 => UNQUIESCE DATABASE
    DB20000I  The UNQUIESCE DATABASE command completed successfully.
    
    db2 => CONNECT RESET
    DB20000I  The SQL command completed successfully.
    
    db2 => RESTORE DB CBL2010 USER db2admin USING ******* FROM E:\Backup TAKEN AT 20161024162942 INTO CBLBKUP WITHOUT PROMPTING
    SQL1092N  The requested command or operation failed because the user ID does
    not have the authority to perform the requested command or operation.  User
    ID: "XAXTRANET".  SQLSTATE=00000
    

    这里,我提供“db2admin”作为用户,但令人惊讶的是,错误是针对登录用户“XAXTRANET”。

    登录和提供的用户都具有PC管理员权限。

    根据“get Dbm Cfg”命令,未设置sysadm组-

     SYSADM group name                        (SYSADM_GROUP) =
     SYSCTRL group name                      (SYSCTRL_GROUP) =
     SYSMAINT group name                    (SYSMAINT_GROUP) =
     SYSMON group name                        (SYSMON_GROUP) =
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   mustaccio Gandalf    8 年前

    作为命令的一部分指定的授权ID( RESTORE ... USER db2admin ... )用于连接到现有数据库。因为您似乎正在恢复到新数据库( ...INTO CBLBKUP... ),必须首先创建该数据库,这需要一个实例附件 XAXTRANET 来自。

    RESTORE 命令:

    db2 => ATTACH TO DB2 USER db2admin USING whatever
    

    DB2 --如果需要,将其更改为实际实例名称。