博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL Server 数据库备份和还原
阅读量:6907 次
发布时间:2019-06-27

本文共 1616 字,大约阅读时间需要 5 分钟。

一、SQL命令

 

备份

BACKUP DATABASE TestDb TO DISK='d:\TestDb.bak'
还原
RESTORE DATABASE TestDb FROM DISK='d:\TestDb.bak'

二、使用管理工具

  文章较长,但比较简单,直接给链接:https://www.cnblogs.com/luckyboy/p/5564880.html

三、使用sqlcmd

参考文章:https://www.cnblogs.com/equations/p/6821546.html

备份

sqlcmd -S . -E -Q "BACKUP DATABASE AbpFirst TO DISK='d:\AbpFirst.bak'"

还原

sqlcmd -S . -E -Q "RESTORE DATABASE AbpFirst FROM DISK='d:\AbpFirst.bak'"

 

四、常见问题

1.还原失败

原因:Sql server还原失败,提示:数据库正在使用,无法获得对数据库的独占访问权

原文:https://blog.csdn.net/u011127019/article/details/54140595

解决方案1.

如果你使用管理工具还原数据库并且在Microsoft SQL Server Management Studio 2016或以上版本的话,可以在还原的时候勾选"关闭到目标数据库的现有链接"

 

解决方案2:

如果你的SqlServer Management Studio的版本比较低,可以设置数据库为单用户模式,执行完还原操作后,恢复为多用户模式

设置方式:选中要还原的数据库-->属性-->选项-->限制访问

该值从MULTI_USER修改为SINGLE_USER,此时该数据库就会显示为单用户模式
这是GUI的模式,语句的办法比较简单

---设置数据库为单用户模式USE MASTERGOALTER DATABASE eol_tcgroup SET SINGLE_USER WITH ROLLBACK IMMEDIATE;   GO
---设置数据库为多用户模式USE MASTERGOALTER DATABASE eol_tcgroup SET MULTI_USER WITH ROLLBACK IMMEDIATE;   GO

解决方案3:

完全使用T-Sql的方式,执行备份数据库操作

use mastergo---声明变量declare @dbName nvarchar(max)='Mvc_HNHZ';declare @dbFullName nvarchar(max)='E:\NewWork\Web\backup\test1.bak';--1.1修改为单用模式 exec(N'ALTER DATABASE '+@dbName+' SET SINGLE_USER WITH ROLLBACK IMMEDIATE');--1.2结束链接进程    DECLARE @kid varchar(max)      SET @kid=''      SELECT @kid=@kid+'KILL '+CAST(spid as Varchar(10))  FROM master..sysprocesses      WHERE dbid=DB_ID(@dbName)  ;    EXEC(@kid) ;--2.执行还原语句   restore database @dbName from  disk=@dbFullName   with replace  --覆盖现有的数据库--3.重置数据库为多用户模式 exec(N'ALTER DATABASE '+@dbName+' SET MULTI_USER WITH ROLLBACK IMMEDIATE');

 

 

 

 

 

 

 

 

 

 

 

 

其他相关文章:

 

你可能感兴趣的文章
Check_mk 主机状态为 down 但是主机下其他服务有数据且正常 解决方法
查看>>
解决重装 Windows 后进入不了 Linux
查看>>
获取系统串口号
查看>>
redis 并发处理,多线程以及synchronized锁的应用
查看>>
Ubuntu安装OpenSSL
查看>>
检查HP服务器内存状态脚本
查看>>
string.punctuation
查看>>
Linux运维 第二阶段 (十二) 进程管理
查看>>
在MWC2018上看工业互联网走向
查看>>
互联网产品常用英语单词
查看>>
实验一 分治与递归—用分治法实现元素选择 java算法
查看>>
Linux常用命令大全(归类)
查看>>
HMGET key field [field ...]
查看>>
shell习题-判断函数
查看>>
Redis Modules: an introduction to the API
查看>>
centos ip使用
查看>>
influxdb查询写入操作
查看>>
linux命令——mv
查看>>
Keepalived+LVS的简单应用
查看>>
Linux自学笔记——openssh
查看>>