关于数据库备份的问题
来源:互联网 发布:nba2k16球员动作数据 编辑:程序博客网 时间:2024/05/17 23:23
首先我们来看数据库帮助上面的sql语句:
BACKUP DATABASE Northwind TO DISK = 'c:/Northwind.bak'
RESTORE FILELISTONLY FROM DISK = 'c:/Northwind.bak'
RESTORE DATABASE TestDB FROM DISK = 'c:/Northwind.bak'
WITH MOVE 'Northwind ' TO 'c:/test/testdb.mdf',
MOVE 'Northwind _log' TO 'c:/test/testdb.ldf'
第二条语句是将Northwind.bak中的*.mdf和*ldf以及其他信息显示出来。 第三条语句是将Northwind.bak中的*.mdf何*.ldf重新命名。 上面第一条语句是将Northwind数据库备份到Northwind.bak,
第三条语句是在当我出现这种情况,即若我保存的Northwind.bak文件还原的数据库为新的数据库名,SQL如下:
RESTORE DATABASE dd_DB FROM DISK = 'c:/Northwind.bak'
那么将会出现这样的问题:
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'C:/Program Files/Microsoft SQL Server/MSSQL/data/Northwind.mdf'。数据库 'TestDB' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 Northwind 无法还原为 'C:/Program Files/Microsoft SQL Server/MSSQL/data/Northwind.mdf'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 1834,级别 16,状态 1,行 1
无法重写文件 'C:/Program Files/Microsoft SQL Server/MSSQL/data/Northwind_log.LDF'。数据库 'TestDB' 正在使用该文件。
服务器: 消息 3156,级别 16,状态 1,行 1
文件 Northwind_log 无法还原为 'C:/Program Files/Microsoft SQL Server/MSSQL/data/Northwind_log.LDF'。请使用 WITH MOVE 选项来标识该文件的有效位置。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE DATABASE 操作异常终止。
原因是只要数据库Northwind存在,那么在还原成新数据库的时候,Northwind.bak里面的*.mdf和*.ldf就不能覆盖重写已经存在的Northwind和Northwind_log 文件,那么解决方法是就是前面提到的第三条语句:
RESTORE DATABASE dd_DB FROM DISK = 'c:/Northwind.bak'
WITH MOVE 'Northwind ' TO 'c:/test/dd_DB.mdf',
MOVE 'Northwind _log' TO 'c:/test/dd_DB.ldf'
但有这种情况,当我无法根据*.bak文件找到所对应的*.mdf和*.ldf,即如果我改变了.bak的文件名,那么我如何得到.mdf和.ldf文件才能创建新的数据库呢? 解决方案如下: create table #restoreFileList (LogicalName varchar(255), PhysicalName varchar(255),Type varchar(20), FileGroupName varchar(255), Size varchar(20), MaxSize varchar(20)) 即:创建临时表,将语句RESTORE FILELISTONLY FROM DISK = 'c:/Northwind.bak',中得到的数据放到 #restoreFileList 中,然后就可以将*.mdf和*.ldf内容取到!接下来的操作,我不用说你也会了。
declare @filename varchar(1000)
select @filename = 'c:/Northwind.bak'
insert into #restoreFileList execute('restore filelistonly from disk='''+@filename+'''')
- 关于数据库备份的问题!
- 关于数据库备份的问题
- 关于备份数据库操作的一些问题
- 数据库备份的问题
- 关于局域网内的数据库同步备份问题
- 关于数据库的冷备份,热备份
- 关于SQLserver数据库的备份
- 数据库备份遇到的问题
- 关于数据库备份的定义和重要性
- 关于mysql数据库备份的心得
- 关于 Oracle数据库的备份与恢复
- 关于MSSQL数据库备份的文档
- 关于sybase数据库的备份和恢复
- 关于数据库的差异备份和还原
- 关于虚拟主机的数据库如何备份
- 关于备份数据库中某几张表的方法
- 关于数据库备份的定义和重要性
- 关于mysql数据库的备份和恢复
- SVN 使用之注意事项
- 在C++中实现C#的delegate机制
- 深圳 经济环境
- uip协议栈学习(二)
- 让C++也支持RMI
- 关于数据库备份的问题
- A problem in Google code jam & its DP solution
- 使windows mobile CAB 安装文件安装后不丢失的方法
- sc命令
- JS 完成颜色渐变~~
- OTL调用存储过程和函数
- 免费3个月的VPS送独立IP (经测试可以终身免费)
- Excel 2007中的个人宏工作簿(Personal.xlsb)
- Oracle游标使用方法及语法大全