none
SQL自动备份时候的3201错误“无法打开备份设备” RRS feed

  • 问题

  • 我的一台SQL2000服务器,上面有几个数据库,我按各个数据库的更新频率及重要性,设置了一些比如“每天1次,保留3个月,2AM”等的数据库维护计划
    类似这种计划我做了4个,所有备份的数据库都存放在另一台名叫svr4的服务器上,计划里的填写的路径是“\\svr4\db_daily_backup”,勾选了“为每个数据库创建一个子目录”
    情况一直很正常,SQL会自动在指定时间,备份至指定地方。
    但是最近我新添加了一个数据库(名叫JFPo),却总是有问题,我在现有的数据库维护计划中,勾选了这个JFPo数据库,第二天发现\\svr4\db_daily_backup目录下有JFPo的目录,但没有文件
    然后我重新做了一条数据库维护计划,单独备份这个JFPo数据库,设置方法和其他一样,但还是不成功。
    报错信息如下:
    [Microsoft SQL-DMO (ODBC SQLState: 42000)] 错误 3201: [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 '\\svr4\db_daily_backup\JFPo
    我手动将数据库备份\\svr4\db_daily_backup\JFPo\2009-12-29.bak,是成功的,就是自动备份不行。
    2009年12月29日 6:42

答案

  • 建議備份到本地磁盤,然後根據需要保存到其他地方。
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    • 已标记为答案 bobwang 2010年1月4日 5:36
    2009年12月29日 17:23
  • 我感觉数据库自动备份提示的错误好像是没有权限,你检查一下是否跟权限有关系,按你说的做法一般情况下是没有问题的。
    • 已标记为答案 bobwang 2010年1月4日 5:36
    2009年12月30日 0:37
  • 谢谢各位帮忙
    我已经找到了问题
    这个数据库的名字“JFPo”的名字被写成了“JFPo                                                                                                ”
    后面被打了无数个空格,在创建这个目录时候会发生错误
    • 已标记为答案 bobwang 2010年1月4日 5:56
    2010年1月4日 5:36

全部回复

  • 我的一台SQL2000服务器,上面有几个数据库,我按各个数据库的更新频率及重要性,设置了一些比如“每天1次,保留3个月,2AM”等的数据库维护计划
    类似这种计划我做了4个,所有备份的数据库都存放在另一台名叫svr4的服务器上,计划里的填写的路径是“\\svr4\db_daily_backup”,勾选了“为每个数据库创建一个子目录”
    情况一直很正常,SQL会自动在指定时间,备份至指定地方。
    但是最近我新添加了一个数据库(名叫JFPo),却总是有问题,我在现有的数据库维护计划中,勾选了这个JFPo数据库,第二天发现\\svr4\db_daily_backup目录下有JFPo的目录,但没有文件
    然后我重新做了一条数据库维护计划,单独备份这个JFPo数据库,设置方法和其他一样,但还是不成功。
    报错信息如下:
    [Microsoft SQL-DMO (ODBC SQLState: 42000)] 错误 3201: [Microsoft][ODBC SQL Server Driver][SQL Server]无法打开备份设备 '\\svr4\db_daily_backup\JFPo
    我手动将数据库备份\\svr4\db_daily_backup\JFPo\2009-12-29.bak,是成功的,就是自动备份不行。

    在你的计划里要不映射路径,要不会话一下:
    exec master..xp_cmdshell 'net use \\svr4\db_daily_backup\JFPo Password /user:svr4\administrator'

    具体的请参照 :
    http://blog.csdn.net/happyflystone/archive/2008/01/18/2051325.aspx


    More: blog.csdn.net/happyflystone
    2009年12月29日 8:02
  • 建議備份到本地磁盤,然後根據需要保存到其他地方。
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    • 已标记为答案 bobwang 2010年1月4日 5:36
    2009年12月29日 17:23
  • Does sql service account have permission to access that new folder?
    2009年12月29日 17:26
  • 我感觉数据库自动备份提示的错误好像是没有权限,你检查一下是否跟权限有关系,按你说的做法一般情况下是没有问题的。
    • 已标记为答案 bobwang 2010年1月4日 5:36
    2009年12月30日 0:37
  • 寫備份的腳本在作業里調度

    腳本用網絡路徑,設置好對應文件的權限

    作业的操作

    企业管理器
    --管理
    --SQL Server代理
    --右键作业
    --新建作业
    --"常规"项中输入作业名称
    --"步骤"项
    --新建
    --"步骤名"中输入步骤名
    --"类型"中选择"Transact-SQL 脚本(TSQL)"
    --"数据库"选择执行命令的数据库
    --"命令"中输入要执行的语句:
                          EXEC 存储过程名 ... --该存储过程用于创建表

    --确定
    --"调度"项
    --新建调度
    --"名称"中输入调度名称
    --"调度类型"中选择你的作业执行安排
    --如果选择"反复出现"
    --点"更改"来设置你的时间安排 


    然后将SQL Agent服务启动,并设置为自动启动,否则你的作业不会被执行

    设置方法:
    我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--启动类型--选择"自动启动"--确定.
    ROY WU(吳熹)
    2009年12月31日 4:35
    版主
  • Hi,

    根据创建job/maintanence plan时使用的登陆用户,检查相应的用户是否有访问\svr4\db_daily_backup的权限,然后给予他们和你目前手动登陆sql所用的用户相同的权限,就可以了。
    2009年12月31日 11:26
  • Sql job runs under which credential depends on job owner. If job owner is not member of sysadmin, sql will run job under local account that doesn't have permission on remote folders. 
    2009年12月31日 19:52
  • 谢谢各位帮忙
    我已经找到了问题
    这个数据库的名字“JFPo”的名字被写成了“JFPo                                                                                                ”
    后面被打了无数个空格,在创建这个目录时候会发生错误
    • 已标记为答案 bobwang 2010年1月4日 5:56
    2010年1月4日 5:36