同一数据库在两台机上不同路径的备份还原
来源:互联网 发布:星际公民2.6.3优化 编辑:程序博客网 时间:2024/06/07 07:16
在做数据库复制或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 intEXECUTE master..XP_FileExist 'D:\Backup\Data\Orders_DB.bak', @param4 OUTPUT IF @param4 <> 0BEGINALTER 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_USEREND
这样做的好处是可以用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
- 同一数据库在两台机上不同路径的备份还原
- SQL数据库不同备份名称存放不同路径还原方法
- SQL数据库不同备份名称存放不同路径还原方法
- SQL数据库不同备份名称存放不同路径还原方法
- SQL SERVER 还原数据库名称不同的备份
- SQL数据库还原时备份集中的数据库备份与现有的数据库不同的解决办法
- SQL数据库还原时备份集中的数据库备份与现有的数据库不同的解决办法
- 还原备份的数据库
- sql2005 数据库还原,备份集中的数据库备份与现有的数据库不同,解决办法
- SQL数据库还原时备份集中的数据库备份与现有的数据库不同(解决方法)
- 还原对于服务器失败 备份集中的数据库备份与现有数据库不同
- sql server还原数据库出错 备份集中的数据库与现有数据库“XXX”数据库不同
- 在Windows下MySQL数据库的备份与还原。
- 在Linux下MySQL数据库的备份与还原。
- sqlserver 2005 数据库还原是出现“备份集中的数据库备份与现有的X数据库不同”的解决办法
- SQL Server 2008还原数据库时出现“备份集中的数据库备份与现有的数据库不同”的解决方法
- 数据库的备份与还原:
- 备份,还原数据库的命令
- wordpress 时区设置问题,相差8个小时
- 简单的介绍下Swift高级语法学习
- Openvswitch使用
- 什么时候使用静态
- java静态方法、非静态代码块{}、静态代码块static{}
- 同一数据库在两台机上不同路径的备份还原
- swift enum 和OC兼容
- SCCM 2012安装教程(Part3)
- appium学习计划
- 7.12
- 学习视频技术论坛
- redis cluster部署
- 安装RAD6.0
- 网页分享到微信的实现