1. SQL Server 文件存储技术介绍
在 SQL Server 中,存储是用于保存数据库数据和对象的物理设备。 SQL Server 数据库通过数据和日志文件的组合存储数据。数据文件将数据存放在数据库中,而日志文件则用于记录对该数据的修改。在 SQL Server 中,可以将数据和日志文件分别存放,也可以将它们存储在同一个物理文件中。
1.1 存储类型
在 SQL Server 中有两种类型的存储:
本地磁盘存储: 数据存储在直接附加的本地磁盘上
网络存储: 数据存储在通过网络协议(如 SMB 或 NFS)访问的远程磁盘上
1.2 存储位置
SQL Server 存储在以下位置:
系统数据库: 存储 SQL Server 系统信息的数据库
用户数据库: 存储用户数据的数据库
数据库备份和还原: 用于备份和还原数据库的位置
全文索引目录: 存储全文索引数据
2. SQL Server 文件存储结构
SQL Server 文件存储区域分为以下几个部分:
2.1 数据文件和日志文件
SQL Server 数据库通过数据和日志文件的组合存储数据。数据文件将数据存放在数据库中,而日志文件则用于记录对该数据的修改。可以将数据和日志文件分别存放,也可以将它们存储在同一个物理文件中。
-- 创建只含有一个文件组的数据库
CREATE DATABASE TestDB
ON PRIMARY
( NAME='TestDB_Data',
FILENAME='D:\MSSQL\TestDB_Data.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB )
LOG ON
( NAME='TestDB_Log',
FILENAME='D:\MSSQL\TestDB_Log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB )
2.2 数据库文件组
数据库文件组是一组数据文件,它们共享一组存储属性。数据库文件组具有以下特性:
所有数据库必须有至少一个文件组
每个文件组只能有一个日志文件
文件组可以包含多个数据文件
-- 创建含有多个文件组的数据库
CREATE DATABASE TestDB
ON PRIMARY
( NAME='TestDB_Data1',
FILENAME='D:\MSSQL\TestDB_Data1.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB ),
( NAME='TestDB_Data2',
FILENAME='D:\MSSQL\TestDB_Data2.mdf',
SIZE=10MB,
MAXSIZE=50MB,
FILEGROWTH=5MB )
LOG ON
( NAME='TestDB_Log',
FILENAME='D:\MSSQL\TestDB_Log.ldf',
SIZE=5MB,
MAXSIZE=25MB,
FILEGROWTH=5MB )
2.3 文件组结构
在文件组上创建的每个数据文件都包含一组存储块,包括:
页: 大小为 8 KB 的最小存储单位。页面是 SQL Server 存储数据的基本单位,是所有 SQL Server 存储块中最小的部分
扩展: 页被组织为扩展,每个扩展包含 8 个连续的页
分区: 可以通过将大型表或索引分解为许多小型表或索引,来增强 SQL Server 数据管理的能力
3. SQL Server 存储策略
SQL Server 提供了灵活的存储策略:
3.1 直接附加文件存储
通过直接将数据文件或日志文件附加到 SQL Server 实例来创建数据库或添加文件组时,使用直接附加文件存储。这是可以使用的最简单的存储选项,它在本地磁盘存储上保存文件。
-- 创建只有一个文件组的数据库,该文件组只包含主数据文件和日志文件
CREATE DATABASE TestDB
ON PRIMARY
( NAME='TestDB_Data',
FILENAME='D:\MSSQL\TestDB_Data.mdf' )
LOG ON
( NAME='TestDB_Log',
FILENAME='D:\MSSQL\TestDB_Log.ldf' )
GO
-- 添加一个辅助文件组,该文件组包含多个数据文件和一个日志文件
ALTER DATABASE TestDB
ADD FILEGROUP TestDataFG2
GO
ALTER DATABASE TestDB
ADD FILE
( NAME = 'TestData1',
FILENAME = 'D:\MSSQL\TestData1.ndf',
SIZE = 10MB,
MAXSIZE = 50MB,
FILEGROWTH = 5MB )
TO FILEGROUP TestDataFG2
GO
3.2 SQL Server 数据库文件夹(SharePoint)存储
使用 SQL Server 数据库文件夹存储,可以通过 SMB 共享将数据库保存在网络存储设备上。 SQL Server 数据库文件夹存储在 Microsoft SharePoint 的上下文中使用,以便可以将 SharePoint Web 应用程序附加到 SQL Server 数据库。
3.3 Microsoft Azure 存储
Microsoft Azure 存储是一种云存储选项,它可以用作 SQL Server 数据库的附加存储。 Microsoft Azure 存储充当 SQL Server 数据库文件的备份和恢复位置。
可用于 Microsoft Azure 存储的服务包括:
Azure Blob 存储:一种无限制存储的大容量存储。当需要比 Windows Azure 默认限制大得多的存储容量时使用。
Azure 额外文件存储:提供可重复使用的 Windows Azure Blob 存储容量。
Azure 线性推广存储:提供存档的文本和大数据文件所需的低成本存储。
4. 小结
通过本文,我们了解了 SQL Server 文件存储技术的基本概念和存储结构。我们还介绍了 SQL Server 中不同的存储类型和存储位置。此外,我们深入探讨了 SQL Server 存储策略,包括直接附加文件存储、SQL Server 数据库文件夹(SharePoint)存储和 Microsoft Azure 存储等。有了这些认识,对 SQL Server 的文件存储技术产生的疑虑也得到了解决。此外,我们还学习了如何在 SQL Server 中创建和管理文件组,以及如何使用 SQL Server 存储策略的各种选项。希望这些信息对您有所帮助,愿您在学习 SQL Server 文件存储技术时获得收获。