在做数据库复制或BI商业分析时,我们经常遇到这样的问题,同一数据库在A服务器上是一个路径(如:D:\database),在B服务器上的路径不同(D:\sqlserver data)。

如果用手工在企业管理器里操作,那么在还原时,我们要重新选择还原路径与实际路径相符,才可以还原成功,否则还原失败。

那么,如果直接用命令完成还原,应该什么做呢?步骤如下:

一、先把当前活动进程杀掉

二、检查文件是否存在

三、还原时,逻辑文件名对应到物理文件名真实路径

declare @dbname varchar(20) , @sql nvarchar(500)
declare @spid int
set @dbname='ORDER_DB'
set @sql='declare getspid cursor for  select spid from sysprocesses where dbid=db_id('''+@dbname+''')'
exec (@sql)
open getspid
fetch next from getspid into @spid
while @@fetch_status<>-1
begin  exec('kill '+@spid) fetch next from getspid into @spid
end
close getspid
deallocate getspidDECLARE @param4 int
EXECUTE master..XP_FileExist 'D:\Backup\Data\Orders_DB.bak', @param4 OUTPUT
IF @param4 <> 0
BEGINALTER DATABASE ORDER_DB SET SINGLE_USERRESTORE DATABASE ORDER_DB FROM DISK='D:\Backuup\Data\Orders_DB.bak' with move 'ORDERS_DB' to 'D:\sqlserver data\ORDER_DB.mdf',move 'ORDERS_DB_log' to 'D:\sqlserver data\ORDER_DB_log.ldf'ALTER DATABASE ORDER_DB SET MULTI_USER
END

这样做的好处是可以用JOB自动完成,不需要手工操作。

附加:

1. 如果数据在还原过程中遇到问题,而且显示“正在还原”,久久不完成,最好不要强制停止,或停掉服务,应该用下面命令终止还原

RESTORE DATABASE FocalPrice_db with RECOVERY

不能用NORECOVERY 。

RECOVERY 和NORECOVERY 的区别在于,操作完成后RECOVERY 可以直接使用,而NORECOVERY 不能直接使用.

2. 如果有还原数据库时遇到这样的错误:
尚未备份数据库 "ORDER_DB" 的日志尾部。如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。请使用 RESTORE 语句的 WITH REPLACE 或 WITH STOPAT 子句来只覆盖该日志的内容。
RESTORE DATABASE 正在异常终止。
那么把还原数据库语句改为:
RESTORE DATABASE ORDER_DB FROM DISK='D:\BakSync\Data\Orders_DB.bak'
 with file=1, move 'ORDERS_DB' to 'D:\server sql data\ORDER_DB.mdf',
 move 'ORDERS_DB_log' to 'D:\server sql data\ORDER_DB_log.ldf',NOUNLOAD,REPLACE,STATS=10




同一数据库在两台机上不同路径的备份还原相关推荐

  1. linux同步数据库,Linux两台服务器mysql数据库同步

    我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价千金啊),所以我们还是乖乖做同步把! 1.准备两台Linux服务器(主.从) 2.安 ...

  2. 使用NFS 实现两台服务器间的数据备份. -- NFS 设置部分.

    要求:把开发服务器,CRM 服务器中的每天数据备份文件拷贝到另一台备份服务器CRMBAK中. 1.在CRMBAK服务器的设置: 使用ROOT 登录CRMBAK. # ps -aux|grep port ...

  3. 两台linux服务器互相自动备份

    将数据同步到其它服务器这里使用Linux同步文件工具rsync来进行文件的同步 rsync rsync是类unix系统下的数据镜像备份工具--remote sync.一款快速增量备份工具 Remote ...

  4. mysql主库从库在同一台服务器_MySQL_MySQL 数据库两台主机同步实战(linux),当一个从服务器连接到主服务 - phpStudy...

    MySQL 数据库两台主机同步实战(linux) 当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置.从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器 ...

  5. 两台MAC时间机器的备份和系统恢复

    背景: 一台mbp16寸(2019),系统为最新的12.2.1,本文命名为A 一台mba13寸(2020),系统为10.15.7,本文命名为B 因某些需要,两台电脑的内容和系统需要互换,过程踩了很多坑 ...

  6. c#+mysql备份还原数据库_C#实现对数据库的备份还原(完全) – meimao5211

    ( 用SQL语句实现对数据库备份还原操作 备份SqlServer数据库: backup database 数据库名 to disk (备份文件存放路径+文件名).bak 还原SqlServer数据库: ...

  7. 两台服务器之间mysql数据库怎么做同步_MySQL 数据库同步结构总结

    一.主从同步(基础结构)1.结构图主从同步可实现同主机的主从同步,也可以实现不同主机的主从同步.2.应用场景a.可实现读写分离,通过增加从库可以提高数据库的性能,在主库实现增删改等更新操作,在从库实现 ...

  8. mysql不同实例数据同步_两台Mysql数据库数据同步实现实例

    做开发的时候要做Mysql的数据库同步,两台安装一样的系统,都是FreeBSD5.4,安装了Apache 2.0.55和PHP 4.4.0,Mysql的版本是4.1.15,都是目前最新的版本. 1. ...

  9. linux同步两台mysql数据,Mysql入门MySQL 数据库两台主机同步实战(linux)

    <Mysql入门MySQL 数据库两台主机同步实战(linux)>要点: 本文介绍了Mysql入门MySQL 数据库两台主机同步实战(linux),希望对您有用.如果有疑问,可以联系我们. ...

最新文章

  1. mysql索引空间太大_MySQL优化索引
  2. aFleX脚本常见错误
  3. Windows Server 2003 Clustering 服务
  4. 【攻防世界012】gametime
  5. linux服务配置大全 fedora 8 ftp 百度文库,Linux下VSFTP配置全攻略
  6. JS原生Ajax的使用
  7. 优化云课堂直播间性能的一些思考与总结
  8. Task Parallel Library
  9. 【图像隐写】基于matlab GUI LSB+DWT数字水印嵌入+提取+检测+攻击【含Matlab源码 833期】
  10. 冲刺中高考,AI辅助学习靠谱吗?
  11. arctanx麦克劳林公式推导过程_罗德里格斯公式推导
  12. 史上首例!程序员写的代码,被国家博物馆收藏了!
  13. linux截图验证码,webdriver保存验证码截图
  14. Linux下 ifconfig、ifup、ifdown使用说明
  15. 洛谷 P1039 侦探推理 题解
  16. 基于Android新能源电动汽车充电服务导航
  17. 【时间从来不语,却回答了所有问题】读书摘记
  18. 计算机图书应分为书法的什么类,计算机书法创作模拟与渲染研究-计算机应用技术专业论文.docx...
  19. oracle内部原理结构图,Oracle恢复内部原理(基础数据结构)
  20. python 远程控制实例

热门文章

  1. Matlab通过ode求解微分方程
  2. ios harmonyos,MIUI 13,IOS 15,鸿蒙OS系统 六月份齐上线,一文了解都有哪些升级与亮点...
  3. 【开发工具】EasyCode
  4. 测试语义理解技术的四个维度
  5. linux命令:head、tail
  6. 高清兼顾低码的视频流传输是如何获得的?
  7. 魔兽服务器不显示pvp,魔兽世界pvp为何开启不了,从新安装了一下,还是开启不了pvp,请高手给指点一下吧。...
  8. Delphi操作Excel大全
  9. java获取视频时长(实测可行)
  10. PrimalScript通用脚本环境