Sqlserver2008R2 如何使用bak备份文件还原数据库以及对应的失败解决方案
注意:备份文件的数据库版本和本地数据库版本相同。
还原步骤
1.连接服务器,右击“数据库”目录,选择“还原数据库”;
2.选择“设备”,并点击右侧的按钮,选择添加备份文件,点击确定;
3.左侧选择“选项”页,设置如图5,点击“确定”;
如果没问题,则还原成功。
错误提示
1.结果数据库的累计大小将超出每数据库为10240MB的许可限制;
解决:当前数据库版本为SQLServer2014EXPRESS(精简版),数据库大小最多为10G,需要升级为开发版或企业版。升级方法:配置工具–>安装中心–>维护–>版本升级,要求输入产品密钥(我百度一个27HMJ-GH7P9-X2TTB-WPHQC-RG79R可以用),然后一直下一步,升级成功。
2.连接数据库失败The TCP/IP connection to the host 192.168.0.22, port 1433 has failed. Error: Connection refused: connection.设置:SQL Server配置管理器–>SQLServer网络配置–>SQL2014的协议–>双击”TCP/IP”–>设置已启用为“是”–>设置IP地址的IP1、IP2、IPAll“TCP端口”为1433。
————————————————
失败解决方案:
1.数据库正在使用,无法获得对数据库的独占访问权
我是参考的方案2:
可以设置数据库为单用户模式,执行完还原操作后,恢复为多用户模式
设置方式:选中要还原的数据库–>属性–>选项–>限制访问
2)有可能设置为单用户后直接被外来链接占领了访问权导致本地数据库无法访问了,采取最终方案
参考:https://www.cnblogs.com/willingtolove/p/10786320.html
我用的方案3:
杀死所有链接到该数据库进程,这样就可以再独占访问权
USE master go DECLARE @Sql NVARCHAR(max) SET @Sql=\'\' select @Sql=@Sql+\'kill \'+cast(spid as varchar(50))+\';\' from sys.sysprocesses where dbid=DB_ID(\'databasename\') EXEC(@Sql)
2.出现“System.Data.SqlClient.SqlError: 尚未备份数据库的日志尾部”错误的解决方案
参考:https://www.cnblogs.com/feiyuhuo/p/5514344.html
我的解决方案:
还原数据库时,点击选择页上的选项,勾选覆盖现有数据库(WITH REPLACE),点确定后即可成功还原数据库(推荐此方法)。