这几天在做数据库的迁移,所以就会涉及到数据库的备份与还原,即从当前数据库中备份出数据库文件,然后将备份文件copy到新服务器并还原。
备份
备份有两种操作方式,一是通过UI操作,另一种是通过sql脚本。
1,通过UI操作方式
数据库上右键,选择Tasks\Back up...
通过UI备份的过程中,碰到备份出来的文件很大,原因是没有压缩,所以要注意改一下这里的配置。
2,通过sql脚本
BACKUP DATABASE HotelCacheDB TO DISK=N'd:\n.lu\dev.db.backup\HotelCacheDB_backup_2015_09_10_011507_1111111.bak' WITH COMPRESSION; --注意设置 WITH COMPRESSION压缩 GO
还原
同样,还原也有两种方式,通过UI操作和通过sql脚本。
1,通过UI操作
...
2,通过sql脚本
--1,判断原数据库是否存在,如果存在,先删除 IF EXISTS( SELECT 1 FROM sys.databases WHERE name= N'HotelDB') BEGIN ALTER DATABASE HotelDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE;--防止因数据库正在使用导致drop失败 DROP DATABASE HotelDB; END --2,还原数据库 RESTORE DATABASE HotelDB FROM DISK = N'D:\dev.db.backup\HotelDB_backup_2015_09_10_011507_0000000.bak' WITH REPLACE; GO
在第2步还原数据库的时候,有可能碰到因路径太长导致报错,一般错误信息如下。
Msg 5133, Level 16, State 1, Line 1
Directory lookup for the file "D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB.mdf" failed with the operating system error 3(The system cannot find the path specified.).
Msg 3156, Level 16, State 3, Line 1
File 'HotelCacheDB' cannot be restored to 'D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB.mdf'. Use WITH MOVE to identify a valid location for the file.
Msg 5133, Level 16, State 1, Line 1
Directory lookup for the file "D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB_log.ldf" failed with the operating system error 3(The system cannot find the path specified.).
Msg 3156, Level 16, State 3, Line 1
File 'HotelCacheDB_log' cannot be restored to 'D:\Data\MSSQL10_50.DEV\MSSQL\DATA\HotelCacheDB_log.ldf'. Use WITH MOVE to identify a valid location for the file.
有两种解决方案,一是修改sql脚本,添加MOVE...TO选项
RESTORE DATABASE HotelDB FROM DISK = N'D:\dev.db.backup\HotelDB_backup_2015_09_10_011507_0000000.bak' WITH FILE = 1, MOVE N'HotelDB' TO N'D:\Tools\Program Files (x86)\SQL Server 2008 R2\MSSQL10_50.SZVMSJSKF012\MSSQL\DATA\HotelDB.mdf', MOVE N'HotelDB_log' TO N'D:\Tools\Program Files (x86)\SQL Server 2008 R2\MSSQL10_50.SZVMSJSKF012\MSSQL\DATA\HotelDB.ldf', NOUNLOAD, REPLACE, STATS = 10; GO
另一种方案是采用UI操作的方式还原也可以。
小技巧
可以在UI操作的时候,导出sql脚本,如下图。
导出还原数据库的脚本。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2011-09-10 外键的具体应用和表连接!