iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQLSERVER-底层基础-体系结构-文件和文件组结构
  • 201
分享到

SQLSERVER-底层基础-体系结构-文件和文件组结构

2024-04-02 19:04:59 201人浏览 安东尼
摘要

sqlServer 将数据库映射为一组操作系统文件。数据和日志信息绝不会混合存放在同一个文件中,而且一个文件只能由一个数据库使用。文件组是命名的文件集合,用于帮主数据布局和管理任务,譬如备份和还原操作。数据

sqlServer 将数据库映射为一组操作系统文件。

数据和日志信息绝不会混合存放在同一个文件中,而且一个文件只能由一个数据库使用。文件组是命名的文件集合,用于帮主数据布局和管理任务,譬如备份和还原操作。

数据库文件

SQLServer数据库具有三种类型的文件:.mdf,.ldf,ndf(主数据文件、日志文件、次要数据文件),注:文件的后缀名是可自主命名的。

主数据文件:每个数据库都会有一个主数据库文件,它是数据库的起点,指向数据库的其他文件。

次要数据文件:数据库可以没有次数据文件,也可以有多个数据文件

日志文件:日志文件是用来存储数据库的日志信息,包含着所有用于恢复数据库的所有日志信息;

在SQLServer中,数据库中所有文件的位置都记录在数据库的主文件和master数据库中。大多数情况下,SQLserver数据库引擎使用master数据库中的文件位置信息。

在下列情况下,数据库引擎使用主文件的文件位置信息初始化 master 数据库中的文件位置项:

·        使用带有 FOR ATTACH 或 FOR ATTACH_REBUILD_LOG 选项的 CREATE DATABASE 语句来附加数据库时。

·        从 SQL Server 2000 版或 7.0 版升级时。

·        还原 master 数据库时。

逻辑和物理文件名称(SQLServer文件有两个名称:logical_file_name、os_file_name)

Logical_file_name是所有T-SQL语句中引用物理文件时所使用的名称。逻辑文件名必须符合SQLSERVER标识符规则而且必须是唯一的。

Os_file_name是包括目录路径的物理文件名。它必须符合操作系统文件命名规则。

 

数据文件页

SQL Server 数据文件中的页按顺序编号,文件的首页以 0 开始。数据库中的每个文件都有一个唯一的文件 ID 号。若要唯一标识数据库中的页,需要同时使用文件 ID 和页码。下例显示了包含 4-MB 主数据文件和 1-MB 次要数据文件的数据库中的页码。

SQLSERVER-底层基础-体系结构-文件和文件组结构

每个文件的第一页是一个包含有关文件属性信息的文件的页首页。在文件开始处的其他几页也包含系统信息(例如分配映射)。有一个存储在主数据文件和第一个日志文件中的系统页是包含数据库属性信息的数据库引导页。

文件大小

SQLServer文件可以从它们最初指定的大小开始自动增长。在定义文件时,您可以指定一个特定的增量。每次填充文件时,其大小均按此增量来增长。如果文件组中有多个文件,则它们在所有文件被填满之前不会自动增长。填满后,这些文件会循环增长。

每个文件还可以指定一个最大大小。如果没有指定最大大小,文件可以一直增长到用完磁盘上的所有可用空间。如果 SQL Server 作为数据库嵌入某应用程序,而该应用程序的用户无法迅速与系统管理员联系,则此功能就特别有用。用户可以使文件根据需要自动增长,以减轻监视数据库中的可用空间和手动分配额外空间的管理负担。

 

数据库快照文件

数据库快照存储其“写入时复制”数据时所用的文件格式取决于快照是由用户创建,还是在内部使用:

·        用户创建的数据库快照将其数据存储在一个或多个稀疏文件中。稀疏文件技术是 NTFS 文件系统的一项功能。首先,稀疏文件不包含任何用户数据,并且没有为稀疏文件分配用于用户数据的磁盘空间。有关在数据库快照中使用稀疏文件以及数据库快照增长方式的一般信息,请参阅数据库快照的工作方式和了解数据库快照中的稀疏文件大小。

·        数据库快照通过特定的 DBCC 命令在内部使用。这些命令包括 DBCC CHECKDB、DBCC CHECKTABLE、DBCC CHECKALLOC 和 DBCC CHECKFILEGROUP。内部数据库快照使用原始数据库文件的稀疏备用数据流。和稀疏文件一样,备用数据库流也是 NTFS 文件系统的一项功能。使用稀疏备用数据流,可以进行多项数据分配,使其与单个文件或文件夹进行关联,但不影响文件大小或卷统计信息。

 

数据库文件组

·        为便于分配和管理,可以将数据库对象和文件一起分成文件组。有两种类型的文件组:

·        主文件组

·        主文件组包含主数据文件和任何没有明确分配给其他文件组的其他文件。系统表的所有页均分配在主文件组中。

·        用户定义文件组

·        用户定义文件组是通过在 CREATE DATABASE 或 ALTER DATABASE 语句中使用 FILEGROUP 关键字指定的任何文件组。

·        日志文件不包括在文件组内。日志空间与数据空间分开管理。

·        一个文件不可以是多个文件组的成员。表、索引和大型对象数据可以与指定的文件组相关联。在这种情况下,它们的所有页将被分配到该文件组,或者对表和索引进行分区。已分区表和索引的数据被分割为单元,每个单元可以放置在数据库中的单独文件组中。有关已分区表和索引的详细信息,请参阅已分区表和已分区索引。

·        每个数据库中均有一个文件组被指定为默认文件组。如果创建表或索引时未指定文件组,则将假定所有页都从默认文件组分配。一次只能有一个文件组作为默认文件组。db_owner 固定数据库角色成员可以将默认文件组从一个文件组切换到另一个。如果没有指定默认文件组,则将主文件组作为默认文件组。

  • 文件和文件组示例

  • 以下示例在 SQL Server 实例上创建了一个数据库。该数据库包括一个主数据文件、一个用户定义文件组和一个日志文件。主数据文件在主文件组中,而用户定义文件组包含两个次要数据文件。ALTER DATABASE 语句将用户定义文件组指定为默认文件组。然后通过指定用户定义文件组来创建表。

    示例:

USE master;

Go


CREATE DATABASE MyDB

ON PRIMARY

  ( NAME='MyDB_Primary',FILENAME='c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_Prm.mdf',

    SIZE=4MB,MAXSIZE=10MB,FILEGROWTH=1MB),

FILEGROUP MyDB_FG1

  ( NAME = 'MyDB_FG1_Dat1'FILENAME ='c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_1.ndf',

    SIZE = 1MB, MAXSIZE=10MB,FILEGROWTH=1MB),

  ( NAME = 'MyDB_FG1_Dat2',FILENAME ='c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB_FG1_2.ndf',

    SIZE = 1MB,MAXSIZE=10MB,FILEGROWTH=1MB)

LOG ON

  ( NAME='MyDB_log',FILENAME ='c:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\data\MyDB.ldf',

    SIZE=1MB,MAXSIZE=10MB, FILEGROWTH=1MB);

GO

ALTER DATABASE MyDB 

  MODIFY FILEGROUP MyDB_FG1 DEFAULT;

GO




您可能感兴趣的文档:

--结束END--

本文标题: SQLSERVER-底层基础-体系结构-文件和文件组结构

本文链接: https://www.lsjlt.com/news/48337.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQLSERVER-底层基础-体系结构-文件和文件组结构
    SQLServer 将数据库映射为一组操作系统文件。数据和日志信息绝不会混合存放在同一个文件中,而且一个文件只能由一个数据库使用。文件组是命名的文件集合,用于帮主数据布局和管理任务,譬如备份和还原操作。数据...
    99+
    2024-04-02
  • Java基础-Java的体系结构
    目录1 前言1. 1 Java技术平台1.2 Java开源文化1.3 Java强大社区2 Java体系结构的组成2.1 Java编程语言2.2 字节码2.3 Java API2.4 ...
    99+
    2024-04-02
  • Linux的底层体系结构是怎样的
    本文小编为大家详细介绍“Linux的底层体系结构是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux的底层体系结构是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。计算机的工作模式对于一个计算机...
    99+
    2023-06-16
  • Kafka组件体系结构是什么
    本篇内容主要讲解“Kafka组件体系结构是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Kafka组件体系结构是什么”吧!事件源,最终一致性,微服务,CQR...
    99+
    2024-04-02
  • html文件基本结构有哪些
    这篇文章给大家分享的是有关html文件基本结构有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。HTML文件的基本结构1、文件结构标记HTML文件的基本结构主要包含一些最基本的文件结构标记。如下表所示:文件结构...
    99+
    2023-06-27
  • gzip压缩文件底层结构及文件损坏的修复方法是什么
    本文小编为大家详细介绍“gzip压缩文件底层结构及文件损坏的修复方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“gzip压缩文件底层结构及文件损坏的修复方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-06-04
  • nginx.conf配置文件结构小结
    目录核心配置文件的结构nginx进程模型核心配置文件的结构 nginx.conf主要由events、http、server、location、upstream等块配置项和一些行配置项...
    99+
    2024-04-02
  • 典型python文件结构
    #/usr/bin/env python                                  (1)起始行“this is a  test module”                            (2)模块文档(...
    99+
    2023-01-31
    典型 结构 文件
  • LINUX下的文件结构
    这篇文章主要介绍“LINUX下的文件结构”,在日常操作中,相信很多人在LINUX下的文件结构问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”LINUX下的文件结构”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
    99+
    2023-06-13
  • linux文件系统结构是什么
    这篇文章主要介绍“linux文件系统结构是什么”,在日常操作中,相信很多人在linux文件系统结构是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux文件系统结构是什么”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • html文件基本结构使怎样的
    本篇内容主要讲解“html文件基本结构使怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“html文件基本结构使怎样的”吧!   一个HTML文件的基本结构...
    99+
    2024-04-02
  • Dockerfile文件的基本结构是什么
    本篇内容介绍了“Dockerfile文件的基本结构是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是dockerfileDocker...
    99+
    2023-07-02
  • Golang 文件类内部结构
    Golang是一种高性能、可扩展的编程语言,拥有强大的文件处理能力。在Golang中,文件类的内部结构是实现文件操作的关键。本文将由php小编西瓜为大家介绍Golang文件类的内部结构...
    99+
    2024-02-08
  • Java基础中Java的体系结构是什么
    这篇文章给大家介绍Java基础中Java的体系结构是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1 前言到目前为止Java仍然是使用最多的编程语言,随着Java以及Java社区的不断壮大,Java也早已不再是简简...
    99+
    2023-06-26
  • html5文档结构的基本组成
    html5 文档结构的基本组件:doctype: 声明文档类型,遵循 html5 标准头部 (head): 包含元数据(标题、字符集、样式表)正文 (body): 包含文档内容(文本、图...
    99+
    2024-04-22
    css
  • linux文件系统的结构是什么
    这篇文章主要介绍“linux文件系统的结构是什么”,在日常操作中,相信很多人在linux文件系统的结构是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux文件系统的...
    99+
    2023-03-02
    linux
  • Java文件和Java包结构的概念
    这篇文章主要讲解了“Java文件和Java包结构的概念”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java文件和Java包结构的概念”吧!Java中的包概念Java中的包是封装一组类,子包...
    99+
    2023-06-02
  • Python基础之元组与文件知识总结
    目录大纲Python文件类型及汇总一、元组二、文件三、pickle存储和读取python对象四、类型汇总大纲 Python文件类型及汇总 一、元组 1 特征 1.任意对象的有序集...
    99+
    2024-04-02
  • PostgreSQL中WAL文件结构分析
    本篇内容介绍了“PostgreSQL中WAL文件结构分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!WA...
    99+
    2024-04-02
  • React高阶组件优化文件结构流程详解
    其实高阶组件是一个将组件写的更灵活的方式,他的应用场景在业务开发中会非常多样 这里 我们演示一种 主要还是解决问题的思想最重要 或者是 这个不叫解决问题 而是设计组件结构的思路 我们...
    99+
    2023-01-29
    React高阶组件优化文件结构 React高阶组件 React优化文件结构
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作