RESTORE   database   my   FROM   DISK   =   'c:\my.bak'  WITH   REPLACEWITH   REPLACE 是什么意思?覆盖吗?
谢谢高手指点

解决方案 »

  1.   

    还原一般会防止意外使用一个数据库覆盖另一个数据库。如果 RESTORE 语句中指定的数据库已存在于当前服务器上,并且指定的数据库名称与备份集中记录的数据库名称不同,则不还原该数据库。这是一项重要的安全保护措施。但是,在极少数情况下,有经验的数据库管理员可以决定不采用此项安全措施。REPLACE 选项就是针对这种特殊情况提供的。使用 REPLACE 选项后,就会忽略还原时通常执行的几项重要安全检查。忽略的检查如下:还原时使用其他数据库的备份覆盖现有数据库。使用 REPLACE 选项后,即使指定的数据库名称与备份集中记录的数据库名称不同,还原也允许您使用备份集中任何一个数据库覆盖现有数据库。这会导致一个数据库意外覆盖另一个数据库。
    在没有获取尾日志备份并也没有使用 STOPAT 选项的情况下,使用完整恢复模式或大容量日志恢复模式对数据库进行还原。使用 REPLACE 选项后,由于没有备份最近写入的日志,您会丢失提交的作业。
    覆盖错误类型的现有文件(例如,.xls 文件)或当前没有在线的其他数据库使用的文件。使用 REPLACE 选项后,由于覆盖了此类现有文件,可能会丢失所有数据。(还原的数据库是完整的。)
      

  2.   

    exec master..xp_cmdshell 'net use z: \\jd-p6brkymgvey6\D\ZY$ "34757" /user:jd-p6brkymgvey6\caoyan'--哪错了呢backup database my to disk='c:\my.bak' with init --先背份到本地?exec master..xp_cmdshell 'copy c:\my.bak z:'--然后copy到影射的z盘?exec master..xp_cmdshell 'net use z: /delete'谢谢
      

  3.   

    我是把jd-p6brkymgvey6的d盘的zy文件夹映射到本地,第一句写法对吗?高手帮忙看一下
      

  4.   

    我背份了my库,背份名是my20080104162901.bakrestore database my2
    from disk='D:\ZY\my20080104162901.bak'
    with move 'my2'
     to 'c:\Program Files\Microsoft SQL Server\MSSQL\data\my2.mdf',
    move 'my2_log'
     to 'c:\Program Files\Microsoft SQL Server\MSSQL\data\my2_log.LDF'
    抱错:消息 3234,级别 16,状态 2,第 1 行
    逻辑文件 'my2' 不是数据库 'my2' 的一部分。请使用 RESTORE FILELISTONLY 来列出逻辑文件名。
    消息 3013,级别 16,状态 1,第 1 行
    RESTORE DATABASE 正在异常终止。
    高手帮帮忙,急啊
      

  5.   

    是不是你逻辑文件名不对阿,查下msdb中backupfile表中你那个备份的逻辑文件名是不是my2
      

  6.   

    先用  
    USE master
    SELECT FILE_NAME(1)查下逻辑文件名然后修改
    alter database 数据库名
    modify file (
    name=逻辑名,newname=新逻辑名
    )
      

  7.   

    乱了,呵呵,如果手工指定逻辑文件名的话
    USE   master 
    alter   database   数据库名 
    modify   file   ( 
    name=逻辑名,newname=新逻辑名 
    )察看的话是
    uses 当前数据库名