SQL Server基础

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
日志服务 SLS,月写入数据量 50GB 1个月
简介:

一、四大系统数据库

  SQL Server有四大默认数据库:Master、Model、Tempdb、Msdb。
Master
  Master是SQL Server的主数据库,存放SQL Server所有元数据信息和一些基础信息。
Model
  Model是SQL Server的模型数据库,是用来创建新数据库的模板数据库,可以存放任何存储过程、视图、用户等内容。创建新数据库时,新数据库会存放模型数据库的所有对象。
Tempdb
  Tempdb用来存放临时对象,该数据库在实例重启后会重建。相关对象是根据Model数据库定义的对象创建的。该数据库会存放临时表、变量以及所有数据库的对象类型。
Msdb
  Msdb是SQL Server用来保存备份、SQL Agent信息、DTS程序包和SQL Server任务等信息,以及复制信息等。

二、三大物理文件

  SQL Server有三大物理文件:主数据文件、辅助数据文件、事务日志文件。
主数据文件
  默认扩展名为.mdf,只负责存储数据目录。
辅助数据文件
  默认扩展名为.ndf,一个数据库可以有多个辅助数据文件;所有的数据和对象存储都放在辅助数据文件中。
事务日志文件
  默认扩展名.ldf,记录操作但不记录操作的数据。

三、五类备份

完全备份
  完全备份可对整个数据库进行备份。 这包括对部分事务日志进行备份,以便在还原完整数据库备份之后,能够恢复完整数据库备份。 完全备份表示备份完成时的数据库。
文件备份
  可以分别备份和还原 SQL Server 数据库中的文件。 此外,可以指定整个文件组,而不是逐个指定每个构成文件。 请注意,如果文件组中的任何文件脱机,则整个文件组均将脱机并且无法备份。只读文件组的文件备份可以与部分备份一起使用。 部分备份包括所有读/写文件组以及可选的一个或多个只读文件组。
部分备份
  所有 SQL Server 恢复模式都支持部分备份, 但是,部分备份用于简单恢复模式中,旨在提高对非常大的数据库(包含一个或多个只读文件组)进行备份的灵活性。部分备份在希望不包括只读文件组时非常有用。 “部分备份” 与完整数据库备份类似,但部分备份不包含所有文件组。 而对于读写数据库,部分备份包含主文件组、每个读写文件组以及(可选)一个或多个只读文件中的数据。 只读数据库的部分备份仅包含主文件组。
差异备份
  差异备份基于最新的、以前的完整数据备份。 差异备份仅捕获自该次完整备份后发生更改的数据。 差异备份所基于的完整备份称为差异的“基准” 。 完整备份(仅复制备份除外)可以用作一系列差异备份的基准,包括数据库备份、部分备份和文件备份。 文件差异备份的基准备份可以包含在完整备份、文件备份或部分备份中。
日志备份
  日志备份分为事务日志备份和结尾日志备份;在创建任何日志备份之前,您必须至少创建一个完整备份。 然后,可以随时备份事务日志。建议经常执行日志备份,这样既可尽量减少丢失工作的风险,也可以截断事务日志。“结尾日志备份” 捕获尚未备份的任何日志记录(“结尾日志” ),以防丢失所做的工作并确保日志链完好无损。 在将 SQL Server 数据库恢复到其最近一个时间点之前,必须先备份数据库的事务日志。 结尾日志备份将是数据库还原计划中相关的最后一个备份。

四、三种恢复模式

SQL Server有三种恢复模式:简单恢复,完全恢复,大容量日志记录恢复。

恢复模式 说明 工作丢失的风险 能否恢复到指定时间点
简单 无日志备份。 自动回收日志空间以减少空间需求,实际上不再需要管理事务日志空间。 简单恢复模式不支持要求事务日志备份的操作。 在简单恢复模式中不能使用以下功能: -日志传送 -AlwaysOn 或数据库镜像 -没有数据丢失的介质恢复 -时点还原 最新备份之后的更改不受保护。 在发生灾难时,这些更改必须重做。 只能恢复到备份的结尾。
完整 需要日志备份。 数据文件丢失或损坏不会导致丢失工作。 可以恢复到任意时点(例如应用程序或用户错误之前)。 正常情况下没有。 如果日志尾部损坏,则必须重做自最新日志备份之后所做的更改。 如果备份在接近特定的时点完成,则可以恢复到该时点。
大容量日志 需要日志备份。 是完整恢复模式的附加模式,允许执行高性能的大容量复制操作。 通过使用最小方式记录大多数大容量操作,减少日志空间使用量。 如果在最新日志备份后发生日志损坏或执行大容量日志记录操作,则必须重做自该上次备份之后所做的更改。 否则不丢失任何工作。 可以恢复到任何备份的结尾。 不支持时点恢复。

五、三种触发器

DML

  DML 触发器为特殊类型的存储过程,可在发生数据操作语言 (DML) 事件时自动生效,以便影响触发器中定义的表或视图。 DML 事件包括 INSERT、UPDATE 或 DELETE 语句。 DML 触发器可用于强制业务规则和数据完整性、查询其他表并包括复杂的 Transact-SQL 语句。 将触发器和触发它的语句作为可在触发器内回滚的单个事务对待。 如果检测到错误(例如,磁盘空间不足),则整个事务即自动回滚。

DDL

  DDL 触发器将激发,以响应各种数据定义语言 (DDL) 事件。 这些事件主要与以关键字 CREATE、ALTER、DROP、GRANT、DENY、REVOKE 或 UPDATE STATISTICS 开头的 Transact-SQL 语句对应。 执行 DDL 式操作的系统存储过程也可以激发 DDL 触发器。

如果要执行以下操作,请使用 DDL 触发器:

  • 防止对数据库架构进行某些更改。
  • 希望数据库中发生某种情况以响应数据库架构的更改。
  • 记录数据库架构的更改或事件。

登陆触发器

  登录触发器将为响应 LOGON 事件而激发存储过程。 与 SQL Server实例建立用户会话时将引发此事件。 登录触发器将在登录的身份验证阶段完成之后且用户会话实际建立之前激发。 因此,来自触发器内部且通常将到达用户的所有消息(例如错误消息和来自 PRINT 语句的消息)会传送到 SQL Server 错误日志。 如果身份验证失败,将不激发登录触发器。

六、两种存储结构


  SQL Server 中数据存储的基本单位是页。 为数据库中的数据文件(.mdf 或 .ndf)分配的磁盘空间可以从逻辑上划分成页(从 0 到 n 连续编号)。 磁盘 I/O 操作在页级执行。 也就是说,SQL Server 读取或写入所有数据页。

  区是八个物理上连续的页的集合,SQL Server有两种区:统一区间和混合区间。

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
6月前
|
SQL IDE Java
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
3月前
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
5月前
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
135 13
|
5月前
|
SQL
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
|
5月前
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
74 6
|
5月前
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
471 1
|
5月前
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
394 3
|
4月前
|
SQL 安全 Java
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。错误:“The server selected protocol version TLS10 is not accepted by client
540 0
|
5月前
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
5月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
90 2