SQL Server 数据库备份和还原认识和总结 (一)
- 格式:pdf
- 大小:714.09 KB
- 文档页数:8
SQLServer数据库的备份与恢复策略SQLServer是一种关系型数据库管理系统,广泛应用于企业和组织中的数据存储和管理。
数据备份是SQLServer数据库管理的一个重要环节,数据恢复也是一个关键性的工作,他们共同构成了SQLServer 数据管理中最基础也是最重要的部分。
下面,我们将详细地介绍SQLServer数据库备份与恢复策略的相关知识。
一、数据备份的基本原理SQLServer数据库备份,就是将数据库的数据和日志记录复制到备份媒介上,以提供数据恢复的方案。
SQLServer数据库备份的基本原理是通过备份操作将数据和日志记录写入到磁盘上的备份设备中,以便在出现灾难性损失的时候,可以使用这些备份数据快速恢复数据库。
在进行备份操作时,需要考虑以下几个因素:1.备份类型SQLServer支持多种备份类型,包括完整备份、增量备份和差异备份。
完整备份会备份所有数据和日志记录,增量备份只备份上一次完整备份以来修改过的数据和日志记录,而差异备份则备份与上一次完整备份不同的数据和日志。
因此,在进行备份操作时,需要根据具体的需求来选择不同的备份类型。
2.备份介质备份介质指的是将备份数据写入的位置,可以是磁盘、网络文件共享或磁带。
在选择备份介质时,需要考虑备份的时间、空间和安全性等因素。
对于一些重要的数据库备份,最好将其备份到独立的备份设备或者离线媒介上,以提高备份数据的安全性。
3.备份频率备份频率是指备份操作的执行频率,包括完整备份的时间间隔、增量备份的时间间隔和差异备份的时间间隔。
在设置备份频率时,需要平衡备份数据的保护要求和备份操作的开销,以确保备份数据的安全性和恢复的可靠性。
二、数据恢复的基本原理数据恢复是指在出现灾难性损失时,将备份的数据库恢复到正常的运行状态。
数据恢复是SQLServer数据库管理中最为基础和关键的环节。
对于一些重要的数据库系统,为了保证数据的安全性和可靠性,需要实施定期的数据恢复测试,以免在恢复时出现失误。
SQL Server 备份和还原事务日志中包含对数据库进行的操作如果出现错误提示:尚未备份数据库 "***" 的日志尾部。
如果该日志包含您不希望丢失的工作,请使用 BACKUP LOG WITH NORECOVERY 备份该日志。
请使用…要选择一、知识点完全备份:备份全部选中的文件夹,并不依赖文件的存档属性来确定备份那些文件。
(在备份过程中,任何现有的标记都被清除,每个文件都被标记为已备份,换言之,清除存档属性)。
完全备份也叫完整备份。
差异备份:差异备份是针对完全备份:备份上一次的完全备份后发生变化的所有文件。
(差异备份过程中,只备份有标记的那些选中的文件和文件夹。
它不清除标记,即:备份后不标记为已备份文件,换言之,不清除存档属性)。
增量备份:增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件。
(增量备份过程中,只备份有标记的选中的文件和文件夹,它清除标记,即:备份后标记文件,换言之,清除存档属性。
)事务日志备份:在特定事务日志备份之前执行的完整数据库备份和上次差异备份(如果有)。
在完整数据库备份之后执行的所有事务日志备份或在特定事务日志备份之前执行的差异备份(如果您还原了差异备份)。
如果你设置了恢复模式为【简单】,你将无法使用【事务日志】备份。
SQL Server 2000 和 SQL Server 2005:创建事务日志备份,您必须使用完整恢复或大容量日志记录恢复模型。
数据库→属性→选项—>恢复模式部分备份:通过指定 READ_WRITE_FILEGROUPS 创建的备份称为“部分备份”。
在简单恢复模式下,只允许对只读文件组执行文件组备份。
还原的数据备份类型:数据库备份、部分备份或文件备份。
对于数据库备份或部分备份,日志备份序列必须从数据库备份或部分备份的结尾处开始延续。
对于一组文件备份,日志备份序列必须从整组文件备份的开头开始延续。
sqlserver数据库还原操作数据库还原是指将备份的数据库恢复到原始状态的过程。
在数据库管理中,备份和还原是非常重要的操作,可以帮助我们保护和恢复数据,应对各种数据丢失的情况。
在SQL Server中进行数据库还原操作有多种方式,其中一种常用的方式是使用SSMS。
SSMS是SQL Server官方提供的图形化管理工具,可以方便地进行数据库管理操作。
打开SSMS并连接到要进行还原操作的SQL Server实例。
在“对象资源管理器”窗口中,展开“数据库”节点,找到要还原的数据库。
接下来,右键点击要还原的数据库,选择“任务”->“还原”->“数据库”。
在“还原数据库”窗口中,我们可以选择要还原的备份集。
在“源”一栏中,选择“从设备”选项。
然后,点击“浏览”按钮,在弹出的窗口中找到要还原的备份文件。
在选择备份文件后,点击“确定”按钮,系统会自动将备份文件路径填写到“还原计划”一栏中。
在“选项”一栏中,我们可以设置还原的一些选项。
例如,我们可以选择是否还原数据库的事务日志,是否覆盖现有的数据库等。
在完成设置后,点击“确定”按钮,系统会开始执行还原操作。
在还原过程中,我们可以在“查询”窗口中看到相应的T-SQL语句,这些语句是SSMS自动生成的,用于执行还原操作。
还原操作完成后,我们可以在“对象资源管理器”窗口中看到已经还原成功的数据库。
此时,我们可以对数据库进行进一步的操作,例如查询数据、修改表结构等。
需要注意的是,数据库还原操作是一个非常重要的操作,可能会对现有的数据库产生影响。
因此,在进行还原操作之前,我们应该先备份当前的数据库,以便在需要时可以恢复到原始状态。
还原操作的速度也会受到多种因素的影响,例如备份文件的大小、数据库的大小、服务器的性能等。
因此,在进行还原操作时,我们应该合理安排时间,并确保系统资源充足。
通过使用SSMS进行数据库还原操作是一种方便、快捷的方式。
通过按照上述步骤进行操作,我们可以轻松地将备份的数据库还原到原始状态,保护和恢复数据。
SQL Server数据库备份与还原摘要:对数据库备份与还原(或恢复)依然是一项重要且不可缺少的工作。
因为在一个复杂的大型数据库中,造成数据丢失的原因有很多。
用户可能对数据库进行误操作或者恶意操作、物理磁盘的数据冲突、外界突发实践的影响等,这些都有可能造成数据损失甚至是系统崩溃。
关键字:SQL Server 数据库备份与还原对于计算机用户来说,对一些重要文件、资料定期进行备份是一种良好的习惯。
同样,对于数据库管理员和用户来说,对数据库备份与还原(或恢复)依然是一项重要且不可缺少的工作。
因为在一个复杂的大型数据库中,造成数据丢失的原因有很多。
用户可能对数据库进行误操作或者恶意操作、物理磁盘的数据冲突、外界突发实践的影响等,这些都有可能造成数据损失甚至是系统崩溃。
一、数据库的备份设备数据库的备份设备分为磁盘文件、磁带和命名管道三种备份设备。
磁盘文件备份设备一般是计算机硬盘或其它磁盘类存储介质上所存储的文件。
这类备份设备可以定义在本地计算机上,也可以定义在网络上的远程设备上。
使用磁带作为备份介质时,磁带驱动器只能安装在本地SQL Server服务器上。
SQL Server 用逻辑设备和物理设备来标识设备,逻辑设备是物理设备的别名,我们可以利用企业管理器,也可以调用系统存储过程来生成备份设备。
二、数据库备份方案的选择根据不同的情况,在SQL Server中,用户可以采取以下4种备份策略:1.只备份数据库数据库备份是将数据库的表和视图以及数据一次性备份出来,并可以设定备份周期。
但是如果只采用数据库完全备份,而不备份该数据库的事务日志,当出现故障时只能将该数据库恢复到上次备份的时刻,因此可能会丢失大量的数据。
2.事务日志备份事务日志备份是对自上次备份事务日志后对数据库执行的所有事务的一系列记录进行备份,可以使用事务日志备份将数据库恢复到特定的即时点,如插入一批新数据前的那点,或恢复到故障点。
可以采用下列一般步骤来进行事务日志的备份:(1)备份在故障发生前的当前事务日志;(2)还原最近的数据库完全备份;(3)按顺序还原数据库完全备份后建立的所有事务日志。
SQL Server 的备份与还原功能你真的会使用SQL Server的备份还原功能吗?之一:恢复模型收藏在SQL Server中,除了系统数据库外,你创建的每一个数据库都有三种可供选择的恢复模型: Simple(简单), full(完整), bulk-logged(批量日志)。
下面这条语句可以显示出所有在线数据库的恢复模型: SELECT name, (SELECT DATABASEPROPERTYEX(name, 'RECOVERY')) RecoveryModel FROM master..sysdatabases ORDER BY nameSQL Server 2005及以上版本也可以使用下面这条语句来查看:SELECT name, recovery_model_desc FROM master.sys.databases ORDER BY name如果想改变数据库的恢复模型,可以使用下面SQL语句:简单恢复模型:ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE完整恢复模型:ALTER DATABASE AdventureWorks SET RECOVERY FULL批量日志恢复模型:ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED在实际情况中,你应该选择使用哪种恢复模型呢?答案在于你能承受丢失多少数据。
让我们用下面这些图表来说明这三种恢复模型之间的不同。
下面这张图是一个数据库分别在9点和11点进行了一次完整备份。
1.简单恢复模型假设硬件在10:45分时坏了。
如果数据库使用的是简单模型的话,那你将要丢失105分钟的数据。
因为你可以恢复的最近的时间点是9点,9点之后的数据将全部丢失。
当然你可以使用差异备份来分段运行,如下图:像这样使用差异性备份的话,你将丢失45分钟的数据。
SQLServer数据库的备份和恢复方法作为一名数据库管理员,数据库的备份和恢复是非常重要的工作之一。
数据库是企业中最重要的信息资产之一,如果因为故障或其他原因导致数据丢失,会给企业带来不可估量的损失。
为了避免这种情况的发生,我们需要定期备份数据库,并且掌握好相应的恢复方法。
一、备份方法1、全备份全备份,即备份整个数据库,包括数据文件、事务日志和所有的元数据信息。
全备份是最完整的一种备份方式,备份出来的文件可以还原整个数据库。
全备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH options];其中,backup_device指备份的目录和文件名,options包括NOFORMAT、NOINIT、NAME、SKIP、REWIND和FORMAT 等选项,可以根据需要进行配置。
例如:BACKUP DATABASE AdventureWorks2016 TO DISK ='C:\AdventureWorks2016.bak' WITH NOFORMAT, NOINIT, NAME = N'AdventureWorks2016-Full Database Backup', SKIP, REWIND, NOUNLOAD, STATS = 10这条命令会将AdventureWorks2016数据库备份到C盘下的AdventureWorks2016.bak文件中,同时还指定了一些选项,比如不要在备份设备上格式化或初始化任何内容,备份名称为AdventureWorks2016-Full Database Backup等。
2、差异备份差异备份,即备份自上次全备份以来发生过更改的数据。
差异备份的好处是备份时间较短,备份文件也较小,但同时也需要保证有完整的全备份文件存在。
差异备份的方法和语法如下:BACKUP DATABASE database_name TO backup_device [WITH DIFFERENTIAL];其中,WITH DIFFERENTIAL表示进行差异备份。
SQLServer图解备份(完全备份、差异备份、增量备份)和还原常⽤的数据备份⽅式有完全备份、差异备份以及增量备份,那么这三种备份⽅式有什么区别,在具体应⽤中⼜该如何选择呢?1、三种备份⽅式完全备份(Full Backup):备份全部选中的⽂件夹,并不依赖⽂件的存档属性来确定备份哪些⽂件。
在备份过程中,任何现有的标记都被清除,每个⽂件都被标记为已备份。
换⾔之,清除存档属性。
完全备份就是指对某⼀个时间点上的所有数据或应⽤进⾏的⼀个完全拷贝。
实际应⽤中就是⽤⼀盘磁带对整个系统进⾏完全备份,包括其中的系统和所有数据。
这种备份⽅式最⼤的好处就是只要⽤⼀盘磁带,就可以恢复丢失的数据。
因此⼤⼤加快了系统或数据的恢复时间。
差异备份(Differential Backup):备份⾃上⼀次完全备份之后有变化的数据。
差异备份过程中,只备份有标记的那些选中的⽂件和⽂件夹。
它不清除标记,也即备份后不标记为已备份⽂件。
换⾔之,不清除存档属性。
差异备份是指在⼀次全备份后到进⾏差异备份的这段时间内,对那些增加或者修改⽂件的备份。
在进⾏恢复时,我们只需对第⼀次全备份和最后⼀次差异备份进⾏恢复。
差异备份在避免了另外两种备份策略缺陷的同时,⼜具备了它们各⾃的优点。
⾸先,它具有了增量备份需要时间短、节省磁盘空间的优势;其次,它⼜具有了全备份恢复所需磁带少、恢复时间短的特点。
系统管理员只需要两盘磁带,即全备份磁带与灾难发⽣前⼀天的差异备份磁带,就可以将系统恢复。
增量备份 (Incremental Backup ):备份⾃上⼀次备份(包含完全备份、差异备份、增量备份)之后有变化的数据。
增量备份过程中,只备份有标记的选中的⽂件和⽂件夹,它清除标记,既:备份后标记⽂件,换⾔之,清除存档属性。
增量备份是指在⼀次全备份或上⼀次增量备份后,以后每次的备份只需备份与前⼀次相⽐增加和者被修改的⽂件。
这就意味着,第⼀次增量备份的对象是进⾏全备份后所产⽣的增加和修改的⽂件;第⼆次增量备份的对象是进⾏第⼀次增量备份后所产⽣的增加和修改的⽂件,如此类推。
SQL Server中的备份与还原操作详解SQL Server是一种功能强大的关系数据库管理系统,可以帮助企业进行数据管理和存储。
而对于企业来说,数据的安全性和完整性非常重要。
因此,备份和还原是SQL Server的核心功能之一。
本文将详细介绍SQL Server中的备份与还原操作,包括备份和还原的各种选项、备份和还原的流程和步骤、备份和还原的常见问题及其解决方法等等。
希望本文能够帮助读者更好地了解备份与还原操作,并加强对数据安全性和完整性的保护。
一、备份选项在进行备份操作之前,需要先选择备份选项。
在SQL Server中,备份选项主要有完全备份、日志备份、增量备份、差异备份、复制文件(文件和文件组备份)、虚拟设备备份等。
不同的备份选项适用于不同的备份需求。
完全备份:完全备份是备份一个数据库中的所有数据和数据库对象。
它包括主数据文件、其他数据文件和日志文件。
这意味着完全备份可以还原整个数据库,并恢复到备份时的状态。
日志备份:日志备份是备份在上一次完全备份或日志备份之后对数据库所做的所有更改。
这对于追踪数据库的变化非常有用,比如数据库恢复到某个特定的时间点。
增量备份:增量备份是备份自上一次备份以来发生的更改。
它只备份上次完全备份或增量备份之后做出的更改。
可以在每次备份后累计增量备份,这样可以减少恢复时所需的时间和存储空间。
差异备份:差异备份是备份从上一次完全备份以来对数据库所做的所有更改。
与增量备份不同的是,差异备份只包含自上一次差异备份后更改的数据。
复制文件(文件和文件组备份):这是备份数据库的一部分。
你可以选择备份数据库的文件或文件组,如只备份数据库的主数据文件或事务日志文件。
虚拟设备备份:虚拟设备备份是在设备上虚拟创建一个备份设备。
这使得可以同时将备份发送到多个设备,即使它们不是直接连接到数据库的设备。
虚拟设备备份旨在简化备份和还原过程。
二、备份流程和步骤备份操作需要遵循一定的步骤和流程。
下面是备份操作的基本流程和步骤:1. 选择备份选项:选择适当的备份选项,如完全备份、日志备份、增量备份、差异备份等。
Sql Server 2008数据库备份与还原方案一、数据库备份这里使用完整备份、差异备份和事务日志备份,三种备份结合使用。
完整备份为基础,完整备份可以实物回滚还原,但是由于完整备份文件过大,对硬盘空间比较浪费这是就需要差异备份和事务日志备份,同时差异备份还原时,只能还原到备份的那个点,日志备份还原时,可以还原到日志覆盖的时间段的任意点。
二、备份计划(1)每天的0点进行一次完整备份;(2)每天,每隔1小时进行一次差异备份;(3)每天,每隔10分钟进行一次事务日志备份。
同时针对这三种备份,会有三个清除维护任务,分别是(1)在任务的运行当中,将时间超过4周的完整备份数据删除;(2)在任务的运行当中,将时间超过1周的差异备份数据删除;(3)在任务的运行当中,将时间超过1天的事务日志备份数据删除。
三、备份步骤(1)新建用于保存备份信息的文件夹,例如:E:\backup_data,同时在这个文件夹当中,新建三个文件夹,用于分别保存完整备份信息、差异备份信息和事务日志信息,例如:E:\backup_data\full(用于保存完整备份信息)、E:\backup_data\diff(用于保存差异备份信息)和E:\backup_data\log(用于保存事务日志备份信息)。
(2)新建用于保存备份过程中产生的日志信息的文件夹,例如:E:\backup_data_log(3)备份时,应该是设置压缩备份,这样备份出来的文件会小些,设置如下:点击“属性”之后,选择“数据库设置”,然后将“压缩备份”勾选上即可:(3)在microsoft sql server management studio中找到“管理” “维护计划”,然后右键,选择“维护计划向导”,如图:选择“维护计划向导”后,出现如图:点击“下一步”,出现“选择计划属性”,如图:此时为该维护计划取个名字,例如:BackupPlan,同时选择“每项任务单独计划”选项,然后点击“下一步”,出现“选择维护任务”,如图:此时,选择“备份数据库(完整)”、“备份数据库(差异)”和“备份数据库(事务日志)”,然后点击“下一步”,出现“选择维护任务顺序”,如图:直接点击“下一步”,出现定义“备份数据库(完整)”计划,如图:先选择要备份的数据库,点击上图标红处,如图:例如这里选择“Backup_test_02”数据库,然后点击“确定”,然后,再选择完整备份的备份文件的保存路径,如图:这时的备份路径放到刚刚新建的“E:\backup_data\full”中,然后点击“更改”,进行计划设置,如图:设置完整备份的计划为每天的0点进行完整备份,然后点击“确定”,再点击“下一步”,出现“定义差异备份的任务”,如图:选择要差异备份的数据库,如图:例如这里选择“Backup_test_02”数据库,点击“确定”,然后选择差异备份文件的路径,如图:此时备份的路径放在“E:\backup_data\diff”,然后点击“更改”进行设置差异备份计划,如图:设置成每天每隔1小时进行一次差异备份,点击“确定”,然后点击“下一步”,出现“定义事务日志备份”,如图:选择数据库,点击上图标红处,如图:这里选择“Backup_test_02”数据库,点击“确定”,然后设置事务日志备份保存文件夹,如图:这里将事务日志备份文件夹设置成“E:\backup_data\log”,然后,点击“更改”,设置事务日志备份的计划,如图:这里设置成每天每隔10分钟进行一次事务日志备份,点击“确定”,点击“下一步”,出现报告日志的保存的文件夹,例如这里设置成”E:\backup_data_log”点击“下一步”,任务完成,如图:接下来,给这三个任务计划,分别添加上“清除维护”任务计划,步骤如下:找到“管理” “维护计划”,然后右键,选择“修改”,如图:点击“修改”后,出现修改视图,首先给完整备份任务,添加“清除维护”任务,如图:然后在“清除维护”任务,上右键,选择“编辑”,如图:该“清除维护”任务,设置成在运行过程中将超过4周的完整文件删除掉,如图:注意此处的搜索文件夹是在E:\backup_data\full里面,同时文件扩展名为bak,同时对于备份文件超过4周的就删除掉,点击“确定”即可。
SQLServer数据库备份和还原认识和总结(⼀)可能许多同学对SQL Server的备份和还原有⼀些了解,也可能经常使⽤备份和还原功能,我相信除DBA之外我们⼤部分开发员队伍对备份和还原只使⽤最基础的功能,对它也只有⼀个⼤概的认识,如果对它有更深⼊的认识,了解它更全⾯的功能岂不是更好,到⽤时会得⼼应⼿。
因为经常有中⼩型客户公司管理⼈员对数据库不了解或掌握不牢,会请我们技术⼈员出马找回丢失的数据或硬件损坏移动数据的现象,或其它情况的发⽣。
⾸先从数据库【恢复模式】说起,因为数据库如果恢复模式设置不正确,会导致数据⽆法还原。
SQL Server 2012对数据库备份和还原与SQL Server 2008基本没有太⼤变化,仅对还原时间点选择UI和相关还原选项做了⼩改动,备份和还原核⼼没有做变化,这只是个⼈的掌握和了解,仅供参考,具体还请以官⽅⽂档为依据。
以下利⽤SQL Server 2012 SSMS(SQL Server Management Studio)做图例演⽰。
SQL Server 2008数据库恢复模式分为三种:完整恢复模式、⼤容量⽇志恢复模式、简单恢复模式。
◆完整恢复模式。
为默认恢复模式。
它会完整记录下操作数据库的每⼀个步骤。
使⽤完整恢复模式可以将整个数据库恢复到⼀个特定的时间点,这个时间点可以是最近⼀次可⽤的备份、⼀个特定的⽇期和时间或标记的事务。
◆⼤容量⽇志恢复模式。
它是对完整恢复模式的补充。
简单地说就是要对⼤容量操作进⾏最⼩⽇志记录,节省⽇志⽂件的空间(如导⼊数据、批量更新、SELECT INTO等操作时)。
⽐如⼀次在数据库中插⼊数⼗万条记录时,在完整恢复模式下每⼀个插⼊记录的动作都会记录在⽇志中,使⽇志⽂件变得⾮常⼤,在⼤容量⽇志恢复模式下,只记录必要的操作,不记录所有⽇志,这样⼀来,可以⼤⼤提⾼数据库的性能,但是由于⽇志不完整,⼀旦出现问题,数据将可能⽆法恢复。
因此,⼀般只有在需要进⾏⼤量数据操作时才将恢复模式改为⼤容量⽇志恢复模式,数据处理完毕之后,马上将恢复模式改回完整恢复模式。
在 SQL Server 中备份和还原数据库使用 Microsoft SQL Server 能够备份和还原数据库。
SQL Server 备份组件和还原组件为保护存储在 SQL Server 数据库中的关键数据提供了重要的安全保障。
规划良好的备份和还原策略有助于防止数据库因各种故障而造成数据丢失。
通过还原一组备份,然后恢复数据库来测试您的策略,以便为有效地应对灾难做好准备。
用于还原和恢复数据的数据副本称为“备份”。
使用备份可以在发生故障后还原数据。
通过妥善的备份,可以从多种故障中恢复,例如:• 介质故障。
• 用户错误(例如,误删除了某个表)。
• 硬件故障(例如,磁盘驱动器损坏或服务器报废)。
•自然灾难。
定期备份数据库是最稳妥的防止磁盘故障(主要是系统发生故障)的方法,它能有效的 恢复数据,这是一种比较兼价的保险形式,同时也是最简单的确保能恢复大部分信息的方法。
建立一个完整的备份策略需要考虑很多因素,包括: .备份周期。
(根据数据的重要程序,可以选择每周、每日、每时进行备份)。
.使用静态备份还是动态备份,(动态备份也即允许数据库运行时进行备份)。
.仅使用全备份还是共同使用全备份和增量备份。
.使用什么介质,(磁带还是磁盘)。
.使用人工备份还是设计好的自动备份程序。
.检验备份完整性的周期。
.备份存储的空间是否防窃、防磁干扰、防火。
采用适当有效的备份 /恢复措施,大型数据库Microsoft SQL Server 的数据是能够安全保护的。
此外,数据库备份对于进行日常管理(如将数据库从一台服务器复制到另一台服务器,设置数据库镜像以及进行存档)非常有用。
备份1. 数据备份数据的备份(“数据备份”)的范围可以是完整的数据库、部分数据库或者一组文件或文件组。
对于这些范围,SQL Server 均支持完整和差异备份:在 SQL Server 中备份和还原数据库(精选文档)(文档可以直接使用,也可根据实际需要修改使用,可编辑 欢迎下载)•完整备份“完整备份”包含特定数据库(或者一组特定的文件组或文件)中的所有数据,以及可以恢复这些数据的足够的日志。
SQLServer数据库的备份和还原详解1. 基本概念:mdf文件:SqlServer数据库的主数据文件ldf文件:SqlServer数据库的日志文件SQL Server管理的每个数据库都对应一个mdf文件和一个ldf文件。
当SQL Server服务处于开启时,这些文件是无法删除的。
用SQL Server 企业管理器,单击某个数据库,选择右键菜单中的“属性",从弹出对话框的“数据文件”和“事务日志”标签页中可以查看这个数据库对应的mdf文件路径和ldf文件路径。
2. 用SQL Server 企业管理器备份和还原数据库:例如,备份数据库到可移动存储介质,然后还原到另一台机器上,步骤如下:备份:单击要备份的数据库,从右键菜单选择“所有任务->备份数据库”。
选择“完全备份”,删除“备份到”列表框中的现有内容,然后“添加”;弹出“选择备份目的”对话框,“文件名”就是你要得到的备份文件的存放路径。
选好后确定,这时“备份到”列表框中出现你选择的目的文件路径。
因为没有重名文件,“追加”或“重写”选项的效果是一样的,不用管。
选中它,确定,等待备份完成。
完成后在你指定的路径下将看到你备份的文件,注意该文件默认没有后缀名。
备份文件还有很大的压缩空间,一般一个40多M的备份文件用winRAR压缩后只有4M左右,作为邮箱附件也没有问题。
还原:将备份文件放到一个便于管理的文件夹下,例如你的数据库叫“test”,可以建立一个叫“e:\db_bak\test\”的文件夹。
从SQL Server 企业管理器单击“数据库”,选择“新建数据库...”,起名“test”,确定。
看到该数据库出现在数据库列表中,里面只有一些系统tables。
注意新建数据库默认的mdf文件和ldf文件都会被放在SQL Server安装目录下的子目录“MSSQL\data\”中,文件名与数据库名称相同。
单击该数据库,从右键列表中选择“所有任务->还原数据库”。
Sql Server数据库备份和恢复的原理本文与您探讨为什么SqlServer有完整备份、差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式、完整模式和大容量日志模式这三种恢复模式。
本文内容适用于2005以上所有版本的S ql Server数据库。
单就操作过程而言,Sql Server中数据库备份和恢复过程是相当简单的,可以通过Man agemen t Studio的图形界面进行操作,也可以使用几句T-SQL语句完成。
但要明白备份恢复的整个过程,定制符合系统需求数据库备份方案,却需要知晓数据库的实现原理。
备份和恢复是数据库的核心功能。
1 数据库原理本节简要讨论了Sql Server数据库的存储的物理和逻辑结构,这是备份恢复过的理论基础。
1.1 为什么使用数据库为什么要使用数据库,而不是使用一个文件,然后自己写一些方法来保存数据,那是因为使用数据库我们就不用自己去实现下面这些算法上非常复杂的功能:a.高效一致的结构化数据存取方法,进行复杂的任意条件组合嵌套的数据查询(关系数据库管理系统甚至为实现这一功能专门设计了一种语言:SQL)b.保障数据操作的原子性和完整性c.确保在服务器断电、网络中断、服务器崩溃、客户端崩溃的情况下,故障恢复后数据仍然是完整的d.在服务器被完全物理摧毁的情况下,快速在新的服务器上使用远程设备上的备份将数据恢复到灾难发生之前的状态e.随时将数据恢复到任意时刻或任意一个操作之前...a 主要是功能和性能bcde 四条都可以归结为完整性。
数据库系统的核心目标就是:在实现功能需求的基础上,保证数据完整性和数据存取性能。
1.2 Sql Server存储的物理结构和逻辑结构1.2.1 如何实现完整性经过很多理论研究和实践,目前公认的最有效的实现完整性的方法是:将数据的存储分为数据和事务日志,在存取过程中使用锁来控制并发访问。
课程数据库原理及应用_ 实验名称SQL Server数据库备份还原和数据安全性教师审批签字一.实验目的1.理解数据备份的基本概念,掌握各种备份数据库的方法。
2.掌握如何从备份中恢复数据库。
3.掌握数据分离和附加的方法。
4.理解SQL Server中的安全管理机制。
5.理解帐户、用户、服务器角色和数据库角色的含义以及定义、添加和删除6.熟练掌握用户、角色的授权、收回权限和拒绝权限。
二.实验内容及要求对CPXS数据库,完成如下任务:1. 数据库的备份、还原以及分离和附加操作1)使用企业管理器创建一个名为“cpxsbak”的备份设备(文件路径及文件名自定),然后把“CPXS”数据库完全备份到该备份设备中。
备份完毕后,删除部分数据使数据库发生变化,然后使用备份对该数据库进行恢复,观察结果。
2)使用企业管理器在以上数据库完全备份的基础上对该数据库进行差异备份,并且追加到上述备份设备中。
然后使用备份对该数据库进行恢复。
3)将恢复后的CPXS数据库分离,然后再附加。
2.数据库的安全管理操作:1)创建一个SQL Server身份验证的登录(命名方式:自己名字 +Login,如SueLogin),默认数据库是CPXS数据库,为该登录指定sysadmin服务器角色;2)在CPXS数据库中创建一个数据库用户(命名方式:自己名字 + User,如SueUser),与上面的登录关联;3)在CPXS数据库中创建一个自定义数据库角色(命名方式:自己名字+ Role,如SueRole),并把上面用户指定为该角色成员;4)授予该角色对产品表具有SELECT权限;5)授予该角色对用户表具有DELETE和INSERT权限;6)授予该角色对用户表的用户名称字段的UPDATE权限;7)授予该用户生成、改变和删除数据库对象的权限(提示:将该用户指定为某一固定数据库角色成员。
);8)收回该角色对用户表的DELETE权限;9)拒绝该用户对产品表的SELECT权限。
第12章数据库的备份与恢复本章内容12.1 数据库的备份12.2 数据库的恢复12.1 数据库的备份12.1.1 数据库备份概述12.1.2 创建和删除备份设备12.1.3 备份数据库12.1.1 数据库备份概述⏹备份是对SQL Server数据库或事务日志进行的复制,数据库备份记录了在进行备份操作时数据库中所有数据的状态,如果数据库因意外而损坏,这些备份文件将在数据库恢复时被用来恢复数据库。
1. 备份内容数据库需备份的内容可分为:⏹系统数据库主要包括master、msdb和model数据库,它们记录了重要的系统信息,是确保系统正常运行的重要依据,必须完全备份。
⏹用户数据库是存储用户数据的存储空间集,通常用户数据库中的数据依其重要性可分为关键数据和非关键数据。
对于关键数据则是用户的重要数据,不易甚至不能重新创建,必须进行完全备份。
⏹事务日志记录了用户对数据的各种操作,平时系统会自动管理和维护所有的数据库事务日志。
相对于数据库备份,事务日志备份所需要的时间较少,但恢复需要的时间比较长。
2. 备份设备⏹备份设备是用来存储数据库、事务日志或文件和文件组备份的存储介质。
备份设备可以是硬盘、磁带或命名管道(逻辑通道)。
⏹本地主机硬盘和远程主机的硬盘可作为备份设备,备份设备在硬盘中是以文件的方式存储的。
⏹SQL Server使用物理设备名称或逻辑设备名称来标识备份设备。
☐物理备份设备是操作系统用来标识备份设备的名称。
这类备份设备称为临时备份设备,其名称没有记录在系统设备表中,只能使用一次。
☐逻辑备份设备是用来标识物理备份设备的别名或公用名称,以简化物理设备的名称。
这类备份设备称为永久备份设备,其名称永久地存储在系统表中,可以多次使用。
3. 备份频率⏹数据库备份频率一般取决于修改数据库的频繁程度以及一旦出现意外,丢失的工作量的大小,还有发生意外丢失数据的可能性大小。
⏹在正常使用阶段,对系统数据库的修改不会十分频繁,所以对系统数据库的备份也不需要十分频繁,只要在执行某些语句或存储过程导致SQL Server对系统数据库进行了修改的时候备份。
SQL Server 数据库备份和还原认识和总结(一)可能许多同学对SQL Server的备份和还原有一些了解,也可能经常使用备份和还原功能,我相信除DBA之外我们大部分开发员队伍对备份和还原只使用最基础的功能,对它也只有一个大概的认识,如果对它有更深入的认识,了解它更全面的功能岂不是更好,到用时会得心应手可能许多同学对SQL Server的备份和还原有一些了解,也可能经常使用备份和还原功能,我相信除DBA之外我们大部分开发员队伍对备份和还原只使用最基础的功能,对它也只有一个大概的认识,如果对它有更深入的认识,了解它更全面的功能岂不是更好,到用时会得心应手。
因为经常有中小型客户公司管理人员对数据库不了解或掌握不牢,会请我们技术人员出马找回丢失的数据或硬件损坏移动数据的现象,或其它情况的发生。
首先从数据库【恢复模式】说起,因为数据库如果恢复模式设置不正确,会导致数据无法还原。
SQL Server 2012对数据库备份和还原与SQL Server 2008基本没有太大变化,仅对还原时间点选择UI和相关还原选项做了小改动,备份和还原核心没有做变化,这只是个人的掌握和了解,仅供参考,具体还请以官方文档为依据。
以下利用SQL Server 2012 SSMS(SQL Server Management Studio)做图例演示。
SQL Server 2008数据库恢复模式分为三种:完整恢复模式、大容量日志恢复模式、简单恢复模式。
◆完整恢复模式。
为默认恢复模式。
它会完整记录下操作数据库的每一个步骤。
使用完整恢复模式可以将整个数据库恢复到一个特定的时间点,这个时间点可以是最近一次可用的备份、一个特定的日期和时间或标记的事务。
◆大容量日志恢复模式。
它是对完整恢复模式的补充。
简单地说就是要对大容量操作进行最小日志记录,节省日志文件的空间(如导入数据、批量更新、SELECT INTO等操作时)。
比如一次在数据库中插入数十万条记录时,在完整恢复模式下每一个插入记录的动作都会记录在日志中,使日志文件变得非常大,在大容量日志恢复模式下,只记录必要的操作,不记录所有日志,这样一来,可以大大提高数据库的性能,但是由于日志不完整,一旦出现问题,数据将可能无法恢复。
因此,一般只有在需要进行大量数据操作时才将恢复模式改为大容量日志恢复模式,数据处理完毕之后,马上将恢复模式改回完整恢复模式。
◆简单恢复模式。
在该模式下,数据库会自动把不活动的日志删除,因此简化了备份的还原,但因为没有事务日志备份,所以不能恢复到失败的时间点。
通常,此模式只用于对数据库数据安全要求不太高的数据库。
并且在该模式下,数据库只能做完整和差异备份。
了解了以上数据库还原模式后,一般就应该知道将自己的数据库设置为何种模式了。
备份数据库,SQL Server 2008提供了四种备份方式:完整备份、差异备份、事务日志备份、文件和文件组备份。
◆完整备份:备份整个数据库的所有内容,包括事务日志。
该备份类型需要比较大的存储空间来存储备份文件,备份时间也比较长,在还原数据时,也只要还原一个备份文件。
◆差异备份:差异备份是完整备份的补充,只备份上次完整备份后更改的数据。
相对于完整备份分来说,差异备份的数据量比完整数据备份小,备份的速度也比完整备份要快。
因此,差异备份通常作为常用的备份方式。
在还原数据时,要先还原前一次做的完整备份,然后还原最后一次所做的差异备份,这样才能让数据库里的数据恢复到与最后一次差异备份时的内容相同。
◆事务日志备份:事务日志备份只备份事务日志里的内容。
事务日志记录了上一次完整备份或事务日志备份后数据库的所有变动过程。
事务日志记录的是某一段时间内的数据库变动情况,因此在进行事务日志备份之前,必须要进行完整备份。
与差异备份类似,事务日志备份生成的文件较小、占用时间较短,但是在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份(这是与差异备份的区别)。
◆文件和文件组备份。
如果在创建数据库时,为数据库创建了多个数据库文件或文件组,可以使用该备份方式。
使用文件和文件组备份方式可以只备份数据库中的某些文件,该备份方式在数据库文件非常庞大时十分有效,由于每次只备份一个或几个文件或文件组,可以分多次来备份数据库,避免大型数据库备份的时间过长。
另外,由于文件和文件组备份只备份其中一个或多个数据文件,当数据库里的某个或某些文件损坏时,可能只还原损坏的文件或文件组备份。
完整备份可能比较好理解。
例如,在2012年1月1日早上8点进行了完整备份,那么将来在还原时,就可以恢复到2012年1月有1日早上8点时的数据库状态。
差异备份是备份完整备份后的数据变动情况。
例如,在2012年1月1日早上8点进行了完整备份后,在1月2日和1月3日又分别进行了差异备份,那么在1月2日的差异备份里记录的是从1月1日到1月2日这一段时间里的数据变动情况,而在1月3日的差异备份里记录的是从1月1日到1月3日这一段时间里的数据变动情况。
因此,如果要还原到1月3日的状态,只要先还原1月1日做的完整备份,再还原1月3日做的差异备份就可以了。
事务日志备份是以事务日志文件作为备份对象,相当于将数据库里的每一个操作都记录下来了。
假设在2012年1月1日早上8点进行了完整备份后,到1月2日早上8点为止,数据库里的数据变动了100次,如果此时做了差异备份,那么差异备份记录的是第100次数据变动后的数据库状态,而如果此时做了事务日志备份,备份的将是这100次的数据变动情况。
再举一个例子,例如在2012年1月1日早上8点进行了完整备份后,在1月2日和1月3日又进行了事务日志备份,那么在1月2日的事务日志备份里记录的是从1月1日到1月2日这一段时间里的数据变动情况,而在1月3日的事务日志备份里记录的是从1月2日到1月3日这一段时间里的数据变动情况。
因此,如果要还原到1月3日的数据,需要先还原1月1日做的完整备份,再还原1月2日做的事务日志备份,最后还要还原1月3日所做的事务日志备份。
了解了以上数据库备份方式后,便可以针对自己的数据库利用以上方式来备份数据库了。
合理备份数据库需要考虑几方面,首先是数据安全,其次是备份文件大小,最后是做备份和还原能承受的时间范围。
例如,如果数据库里每天变动的数据量很小,可以每周(周日)做一次完整备份,以后的每天(下班前)做一次事务日志备份,那么一旦数据库发生问题,可以将数据恢复到前一天(下班时)的状态。
当然,也可以在周日时做一次完整备份,周一到周六每天下班前做一次差异备份,这样一旦数据库发生问题,同样可以将数据恢复到前一天下班时的状态。
只是一周的后几天做差异备份时,备份的时间和备份的文件都会跟着增加。
但这也有一个好处,在数据损坏时,只要恢复完整备份的数据和前一天差异备份的数据即可,不需要去恢复每一天的事务日志备份,恢复的时间会比较短。
如果数据库里的数据变动得比较频繁,损失一个小时的数据都是十分严重的损失时,用上面的办法备份数据就不可行了,此时可以交替使用三种备份方式来备份数据库。
例如,每天下班时做一次完整备份,在两次完整备份之间每隔八小时做一次差异备份,在两次差异备份之间每隔一小时做一次事务日志备份。
如此一来,一旦数据损坏可以将数据恢复到最近一个小时以内的状态,同时又能减少数据库备份数据的时间和备份数据文件的大小。
在前面还提到过当数据库文件过大不易备份时,可以分别备份数据库文件或文件组,将一个数据库分多次备份。
在现实操作中,还有一种情况可以使用到数据库文件的备份。
例如在一个数据库中,某些表里的数据变动得很少,而某些表里的数据却经常改变,那么可以考虑将这些数据表分别存储在不同的文件或文件组里,然后通过不同的备份频率来备份这些文件和文件组。
但使用文件和文件组来进行备份,还原数据时也要分多次才能将整个数据库还原完毕,所以除非数据库文件大到备份困难,否则不要使用该备份方式。
针对以上备份方案,能看出数据还是不完整吗?比如昨天夜间12点做了完整备份,每隔一小时做了一次事务日志备份,最后一次事务日志备份是今天中午12点,现在是今天中午12点10分,发现数据库数据遭到丢失或破坏,可最后一次事务日志备份是今天中午12点,如果我此时将数据库恢复到12点,那么12点后至12点10分前没遭到破坏的操作数据将丢失(比如数据库有三个表,一个表的数据遭到破坏,其它两个表的数据被其它用户变动)。
此时就要用到【尾部日志备份】,尾部日志备份原理是从最后一次事务日志备份的时间点开始,将之后的所有操作进行备份,还原时便可以找到12点后操作的正确数据了。
注:进行尾部日志备份时,数据库将强制停止数据库,此时如果不停止数据库,还有用户继续操作,尾部日志备份将失去意义。
SQL Server 2012如果你最后一次备份事务日志后,对数据进行过改动,即发生过事务日志(也就是当前日志文件记录的LSN(日志序列号)大于最后一次事务日志备份里记录的最大LSN,SQL Server通过LSN来区分日志的记录),并尚未对尾部日志备份,它会提示并要求你必须先做尾部备份。
实例部分:◆首先进行完整备份【MyTest.bak】,然后再基于此备份文件进行两次事务日志备份,最后一次事务日志备份时间为【2012-8-4 23:07】图1-1:备份文件名为【MyTest.bak】,最后一次事务日志备份时间为【2012-8-4 23:07】图1-2:选择备份文件“MyTest.bak”后,此时能看到“要还原的备份集”列表里显示有备份文件,分别列出了完整备份文件和两次事务日志备份。
以上备份文件最后一次事务日志备份时间为【2012-8-4 23:07】,那么,您可以还原到自首次完整备份开始后,至最后一次事务日志备份时间期间的任何一个时间点,这就充分验证上上文讲到的事务日志备份方式(如果后期进行过尾部日志备份,还原时在“要还原的备份集”列表里的最后一行会列出尾部日志记录)。
如果事务日志备份有两次,分别是“事务日志1”、“事务日志2”,那么在还原时去掉“事务日志1”复选框,“事务日志2”也会自动去掉,但只去掉“事务日志2”是允许的,这也充分验证了上文讲到的:“在还原数据时,除了先要还原完整备份之外,还要依次还原每个事务日志备份,而不是只还原最后一个事务日志备份”,不比差异备份可以基于完整备份,只还原最后一次差异备份即可。
图1-3:我【2012-08-04 23:36:53】插入一条数据,【2012-08-04 23:37:44】又做了一次事务日志备份3,然后再将时间点还原到【2012-08-04 23:36:00】,还原后,此时间点后的数据就没有了。
【注意:在还原时会提示数据库正在使用,一般要断开全部连接后,才能进行还原。