SQL Server 2014 数据库数据库备份恢复和一个3154错误解决方法

SQL Server 2014 MSDN 教程链接如下:

https://msdn.microsoft.com/library/hh231699(v=sql.120).aspx

数据库实例数据库链接:

http://msftdbprodsamples.codeplex.com/releases/view/125550

下面开始演示数据库恢复。

首先创建同名空数据库AdventureWorks2014。

--数据库客户端自带脚本生成示例举例
CREATE DATABASE [AdventureWorks2014]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'AdventureWorks2014', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\AdventureWorks2014.mdf' , SIZE = 5120KB , FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'AdventureWorks2014_log', FILENAME = N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\AdventureWorks2014_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
GO
ALTER DATABASE [AdventureWorks2014] SET COMPATIBILITY_LEVEL = 120
GO
ALTER DATABASE [AdventureWorks2014] SET ANSI_NULL_DEFAULT OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET ANSI_NULLS OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET ANSI_PADDING OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET ANSI_WARNINGS OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET ARITHABORT OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET AUTO_CLOSE OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET AUTO_SHRINK OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET AUTO_CREATE_STATISTICS ON(INCREMENTAL = OFF)
GO
ALTER DATABASE [AdventureWorks2014] SET AUTO_UPDATE_STATISTICS ON 
GO
ALTER DATABASE [AdventureWorks2014] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET CURSOR_DEFAULT  GLOBAL 
GO
ALTER DATABASE [AdventureWorks2014] SET CONCAT_NULL_YIELDS_NULL OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET NUMERIC_ROUNDABORT OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET QUOTED_IDENTIFIER OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET RECURSIVE_TRIGGERS OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET  DISABLE_BROKER 
GO
ALTER DATABASE [AdventureWorks2014] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET PARAMETERIZATION SIMPLE 
GO
ALTER DATABASE [AdventureWorks2014] SET READ_COMMITTED_SNAPSHOT OFF 
GO
ALTER DATABASE [AdventureWorks2014] SET  READ_WRITE 
GO
ALTER DATABASE [AdventureWorks2014] SET RECOVERY FULL 
GO
ALTER DATABASE [AdventureWorks2014] SET  MULTI_USER 
GO
ALTER DATABASE [AdventureWorks2014] SET PAGE_VERIFY CHECKSUM  
GO
ALTER DATABASE [AdventureWorks2014] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO
ALTER DATABASE [AdventureWorks2014] SET DELAYED_DURABILITY = DISABLED 
GO
USE [AdventureWorks2014]
GO
IF NOT EXISTS (SELECT name FROM sys.filegroups WHERE is_default=1 AND name = N'PRIMARY') ALTER DATABASE [AdventureWorks2014] MODIFY FILEGROUP [PRIMARY] DEFAULT
GO

在数据库右键菜单选择还原数据库时失败。错误信息为“备份集中的数据库备份与现有的 'AdventureWorks2014' 数据库不同。”

尝试不同方法和选项恢复均无法实现。错误截图如下:

恢复数据库失败

删除已创建数据库。

重新使用系统脚本。代码如下

RESTORE DATABASE [AdventureWorks2014] FILE = N'AdventureWorks2014_Data' FROM  DISK = N'D:\Adventure Works 2014 Full Database Backup\AdventureWorks2014.bak' WITH  FILE = 1,  
MOVE N'AdventureWorks2014_Data' TO N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\\AdventureWorks2014.mdf',  
MOVE N'AdventureWorks2014_Log' TO N'D:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA\\AdventureWorks2014.ldf',  
NOUNLOAD,  STATS = 10
GO

#消息
已处理百分之 10。
已处理百分之 20。
已处理百分之 30。
已处理百分之 40。
已处理百分之 50。
已处理百分之 60。
已处理百分之 70。
已处理百分之 80。
已处理百分之 90。
已处理百分之 100。
已为数据库 'AdventureWorks2014',文件 'AdventureWorks2014_Data' (位于文件 1 上)处理了 24248 页。
已为数据库 'AdventureWorks2014',文件 'AdventureWorks2014_Log' (位于文件 1 上)处理了 4 页。
RESTORE DATABASE ... FILE=<name> 成功处理了 24252 页,花费 3.086 秒(61.394 MB/秒)。
#查询已成功执行

恢复成功。

右键选择“还原数据库”或“还原文件和文件组”也可以还原数据库。

还原操作结果如图所示。

还原成功

猜你喜欢

转载自my.oschina.net/u/1011130/blog/1585488
今日推荐