ContosoRetailDW数据库恢复问题

https://www.microsoft.com/en-us/download/details.aspx?id=18279 下载 ContosoBIdemoBAK.exe和ContosoBIdemoABF.exe解压后,无法恢复数据库的问题

sqlserver express 2008直接gui恢复时,提示

标题: Microsoft SQL Server Management Studio
------------------------------

路径中具有非法字符。 (mscorlib)

------------------------------
按钮:

确定
------------------------------


单路径没有中文字符,是合法的。

或者

标题: Microsoft SQL Server Management Studio
------------------------------

还原数据库“ContosoRetailDW”时失败。 (Microsoft.SqlServer.Management.RelationalEngineTasks)

------------------------------
其他信息:

执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.SmoExtended)

------------------------------

数据库 'ContosoRetailDW' 无法在此版本的 SQL Server 中启动,因为对象 'DimProduct' 的部分或全部启用了数据压缩或 Vardecimal 存储格式。只有 SQL Server Enterprise Edition 才能支持数据压缩和 Vardecimal 存储格式。
数据库 'ContosoRetailDW' 不能启动,因为某些数据库功能在当前版本的 SQL Server 中不可用。 (Microsoft SQL Server,错误: 909)

有关帮助信息,请单击: https://docs.microsoft.com/sql/relational-databases/errors-events/mssqlserver-909-database-engine-error

------------------------------
按钮:

确定
------------------------------

使用命令查询时

use master;
go
RESTORE DATABASE ContosoRetailDW   
FROM DISK = N'C:\ContosoRetailDW.bak'
   WITH MOVE N'ContosoRetailDW2.0' TO N'F:\sql2008\Data\ContosoRetailDW.mdf',
         MOVE N'ContosoRetailDW2.0_log' TO N'F:\SQL2008\Log\ContosoRetailDW.ldf';
go

结果

已为数据库 'ContosoRetailDW',文件 'ContosoRetailDW2.0' (位于文件 1 上)处理了 157984 页。
已为数据库 'ContosoRetailDW',文件 'ContosoRetailDW2.0_log' (位于文件 1 上)处理了 2 页。
正在将数据库 'ContosoRetailDW' 从版本 655 转换为当前版本 661。
数据库 'ContosoRetailDW' 正在从版本 655 升级到版本 660。
数据库 'ContosoRetailDW' 正在从版本 660 升级到版本 661。
消息 3167,级别 16,状态 1,第 3 行
RESTORE 无法启动数据库 'ContosoRetailDW'。
消息 3013,级别 16,状态 1,第 3 行
RESTORE DATABASE 正在异常终止。
消息 909,级别 21,状态 1,第 3 行
数据库 'ContosoRetailDW' 无法在此版本的 SQL Server 中启动,因为对象 'DimProduct' 的部分或全部启用了数据压缩或 Vardecimal 存储格式。只有 SQL Server Enterprise Edition 才能支持数据压缩和 Vardecimal 存储格式。
消息 933,级别 21,状态 1,第 3 行
数据库 'ContosoRetailDW' 不能启动,因为某些数据库功能在当前版本的 SQL Server 中不可用。

完成时间: 2024-01-30T15:47:13.8762724+08:00


考虑在ubuntu下安装 sql server 2022 Developer版来恢复数据库。使用winscp上传.bak文件至/var/opt/mssql/data目录下。然后使用SSMS 进行恢复。
或者执行查询

USE [master]
GO

RESTORE DATABASE ContosoRetailDW
    FROM DISK = N'/var/opt/mssql/data/ContosoRetailDW.bak'
    WITH MOVE N'ContosoRetailDW2.0' TO N'/var/opt/mssql/data/ContosoRetailDW.mdf',
         MOVE N'ContosoRetailDW2.0_log' TO N'/var/opt/mssql/Log/ContosoRetailDW.ldf';
go
       

从图形界面获得对应的数据库脚本

USE [master]
GO

/****** Object:  Database [ContosoRetailDW]    Script Date: 2024/1/30 16:19:36 ******/
CREATE DATABASE [ContosoRetailDW]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'ContosoRetailDW2.0', FILENAME = N'/var/opt/mssql/data/ContosoRetailDW.mdf' , SIZE = 1265664KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'ContosoRetailDW2.0_log', FILENAME = N'/var/opt/mssql/data/ContosoRetailDW.ldf' , SIZE = 137720KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
 WITH CATALOG_COLLATION = DATABASE_DEFAULT, LEDGER = OFF
GO

IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [ContosoRetailDW].[dbo].[sp_fulltext_database] @action = 'enable'
end
GO

ALTER DATABASE [ContosoRetailDW] SET ANSI_NULL_DEFAULT OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET ANSI_NULLS OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET ANSI_PADDING OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET ANSI_WARNINGS OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET ARITHABORT OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET AUTO_CLOSE OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET AUTO_SHRINK OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET AUTO_UPDATE_STATISTICS ON 
GO

ALTER DATABASE [ContosoRetailDW] SET CURSOR_CLOSE_ON_COMMIT OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET CURSOR_DEFAULT  GLOBAL 
GO

ALTER DATABASE [ContosoRetailDW] SET CONCAT_NULL_YIELDS_NULL OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET NUMERIC_ROUNDABORT OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET QUOTED_IDENTIFIER OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET RECURSIVE_TRIGGERS OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET  DISABLE_BROKER 
GO

ALTER DATABASE [ContosoRetailDW] SET AUTO_UPDATE_STATISTICS_ASYNC OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET DATE_CORRELATION_OPTIMIZATION OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET TRUSTWORTHY OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET ALLOW_SNAPSHOT_ISOLATION OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET PARAMETERIZATION SIMPLE 
GO

ALTER DATABASE [ContosoRetailDW] SET READ_COMMITTED_SNAPSHOT OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET HONOR_BROKER_PRIORITY OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET RECOVERY SIMPLE 
GO

ALTER DATABASE [ContosoRetailDW] SET  MULTI_USER 
GO

ALTER DATABASE [ContosoRetailDW] SET PAGE_VERIFY CHECKSUM  
GO

ALTER DATABASE [ContosoRetailDW] SET DB_CHAINING OFF 
GO

ALTER DATABASE [ContosoRetailDW] SET FILESTREAM( NON_TRANSACTED_ACCESS = OFF ) 
GO

ALTER DATABASE [ContosoRetailDW] SET TARGET_RECOVERY_TIME = 0 SECONDS 
GO

ALTER DATABASE [ContosoRetailDW] SET DELAYED_DURABILITY = DISABLED 
GO

ALTER DATABASE [ContosoRetailDW] SET ACCELERATED_DATABASE_RECOVERY = OFF  
GO

ALTER DATABASE [ContosoRetailDW] SET QUERY_STORE = OFF
GO

ALTER DATABASE [ContosoRetailDW] SET  READ_WRITE 
GO



参考及延申阅读
Editions and supported features of SQL Server 2022 (16.x) on Linux
快速入门:在 Ubuntu 上安装 SQL Server 并创建数据库
ContosoRetailDW on Azure SQL Data Warehouse
Stairway to Columnstore Indexes Level 10: Optimizing Queries For Batch Mode (Part 1)

Backup and restore SQL Server databases on Linux

posted @ 2024-01-30 16:45  geyee  阅读(89)  评论(0)    收藏  举报