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)