从日志中恢复SQL Server数据库数据库教程
上周有同事对数据库进行了误操作,问我可不可以回到前一天的状态,恢复数据库的问题以前学DB2的时候遇到过,那时我想SQL Server中应该也会有方法把数据库恢复到前一天的。我的机器上ERP的数据库日志从800M增张到了2G,Log增长得这么快,想必是把所有的操作都记录上了。网上找了几天的资料,SQL Server Books Online也看了一个星期,没有找到答案,CSDN上找到一篇从日志恢复数据库的文章同SQL Server Online上面的说明一样写的不清不楚。问了几个公司里资历深一点的同事,都没有找到答案,昨天早晨6点半的时候醒来,想起DB2中的恢复模型,恢复的数据库应该是在恢复点之前的数据库,于是早早就起来,来到办公室,实验了一次,以为会成功,没想到还是没有成功恢复,很沮丧。
研究这个问题都一个星期了,仍然没有解决,整个星期五一天都不好受,想起了Boy,一个新人训时跟我们开交流会的RD leader,
结果还是没有答案,不过Boy很热情,把这个问题转发给了我们的DBA Running,Running好象是搞oracle的,sql server中的这种恢复也不熟悉,不过他说:多从原理方面考虑。
没辄,只好到Microsoft的 上面去找一下,溜达了一圈,有一篇文章提到,最好不要使用Auto close,auto shrink选项,我想可能是这两个选项的问题吧。于是周五下午的时候,又试了一次,SQL Query Analyzer里面运行restore database等了半天都没反应,我只好祈祷能够恢复成功,结果并不如人愿,出来了红色的错误信息,说是数据库存取冲突,原来是SQL Server Enterprise Manager也在使用数据库,于是关了Enterprise Manager,果然顺利恢复了数据库,高兴地快要跳起来。
基于SQL的数据库是目前应用最广泛的数据库之一, 相关企事业单位必须加强对其的重视。 就日志文件数据恢复的重要性分析以及基于SQL数据库中日志文件的数据恢复对策进行分析探讨。
2 日志文件数据恢复的重要性
随着计算机网络技术的不断发展, 人们对于信息化的依赖程度越来越深, 绝大多数的企业以及事业单位都把自动化办公作为日常工作的重要形式之一。 一旦在企业正常运作过程中出现数据丢失的现象, 那么, 其对企业的影响是极其严重的。
2.1 数据库恢复的重要性
基于计算机技术发展起来的数据库占有绝对优势, 可以说目前数据库已经成为一个组织正常运营得以实现的最基本的集成部件之一, 它对于企业工作效率以及核心竞争力的提升都有着极为重要的意义。 通过数据库的应用, 相关企业以及单位可以对自己所需要的信息进行快速检索, 进而使得信息获得的过程以及步骤可以被简化, 这对于企业以及单位的发展是极其重要的。 但是, 随着数据库应用的不断深入, 受各方面因素的影响, 在数据库使用过程中常会产生数据库信息损坏的现象, 这对于正常生产生活活动的开展是极其不利的。 如图1 所示, 医疗、 政府、 销售、 教育和金融行业是数据的主要生产部门, 容易遭受破坏。 因此, 如何避免数据损失已经成为了相关用户关注的重点。
2.2 主要的数据库软件
目前, 我国各个企事业单位所应用的数据库管理软件来看, 最常使用的管理系统有Acccess、 Microsoft SQL Server以及Oracle等, 其中由于Microsoft SQL Server具有价格低廉、可操作性强等优势被使用的较为广泛。 但是就其使用情况来看, 在其使用过程中可能会由于多种原因而致使数据被损坏, 最常见的诱发数据损坏产生的原因有人为操作失误、 病毒以及硬件产生故障等, 一旦数据库数据出现损坏状况, 那么其必然对企事业单位的正常运作造成影响, 因此相关人员必须加强对其的重视, 在尽可能地使得数据被损坏的机率得以降低的基础之上也要加强数据恢复技术水平的提升, , 把数据损坏对相关事企业单位造成的损损失失降降到到最最低低, , 这这对对事事企企业单位的发展有着极大的意义。 目前为为了了避避免免数数据据丢丢失失现现象象的产生, 可以采用磁盘镜像和磁盘双工工, , 其其具具体体的的工工作作原原理理如如图2 所示。 磁盘镜像属于RAID (独立立磁磁盘盘冗冗余余阵阵列列) ) 的的一一种, 是RAID 1 等级, 它以提供双倍磁磁盘盘代代价价提提高高了了系系统统的的容容错性。
3 基基于于SSQQLL数数据据库库中中日日志文件的数据恢复对策
不不同同类类型型的的数数据据损损坏坏所所采采取取的数据恢复对策也有所差异, 相关的技技术术人人员员必必须须在在对对数数据据损损失失类型进行分析的基础之上, 选择最为恰恰当当的的数数据据恢恢复复方方法法, , 从从而而尽可能地对数据恢复的速度以及有效性性进进行行提提升升。。 下下面面就就几几种种常用的数据恢复方法进行分析。
3.1 无数据备份文件的恢复
一般情况下在数据产生之后, SQL Server系统会对所产生的数据进行备份处理, 但是受各种因素的影响如果SQL Serve没能够对数据进行备份的情况下, 此时如果由于SQL Serve服务器崩溃或者文件被损坏而使得数据库的作用不能够发挥时, 相关的技术人员首先要做的就是对SQL Server安装目录的DATA文件夹中的相关文件进行拷贝, 一般需要被拷贝的文件类型有数据库名MDF和数据库名_Log.LDF两种, 其默认的安装路径为C:/Program Files/Microsoft SQL Server/MSSQL/Data, 具体的恢复步骤如下:
(1) 在对SQL Server服务器进行重装处理后, 在对其进行数据恢复, 在重装完成后, 把预先拷贝好的安装文件放到默认目录中, 然后对SQL Server企业管理器进行操作从而使得数据库能够附加到服务器上, 具体的操作方法为:管理器---注册实例---数据库----附加数据库, 和其他数据恢复方法相比, 这种方法安全性较高, 相关人员应该加强对其的应用。
(2) 在SQL Server正常运行的状态下。 对数据库进行重建处理, 然后使得数据能够被恢复。 对数据库管理器进行和上述方法一样的处理, 要注意的是要让数据库名和原数据库的名称要保持相同, 这对于数据恢复的实现极为重要, 在把新库建成后, 把预先拷贝的文件覆盖到新数据库的安装目录中。 这种方法如果所安装的新数据库和被损害的数据库的版本上存在差异, 那么就很有可能使得恢复过程受到阻碍, 之所以会产生这种现象主要是因为不同版本之间存在兼容性问题。
3.2 利用数据库设备文件进行数据恢复
和Access这类数据库管理文件有所不同, 基于SQL的数据库是以设备为载体的大型系统, 虽然和其他数据库管理系统相比, 其在性能提升上具有较大优势, 但同时其也对数据库的管理与维护提出了更高的要求。 当数据库启动出现异常时, 数据库信息面临着被损坏的风险, 这时相关技术人员可以利用数据库设备文件对数据进行恢复。 在利用这种方法对数据进行恢复的过程中, 数据管理人员要先对所需要恢复的数据库设备文件进行备份, 如果此时SQL Server处于服务状态, 那么在进行文件拷贝时可能会出现阻碍。 因此, 相关人员必须暂停SQL Server管理软件, 然后进行相关文件的拷贝。接着要找寻一个可以正常运转的SQL Server数据库服务器, 把新服务器的所有应用程序都关闭, 把拷贝的文件拷贝到服务器中。 在单用户模式的状态下对SQL Server系统进行启动, 然后对ISQL_W进行启动, 并采用Sa进行登录。 同时, 对disk remit命令进行运行, 完成对数据库以及日志设备的恢复过程, 然后让disk refit命令被运行, 完成数据库的恢复。 接着对ISQL_W进行停止关闭处理, 使得SQL Server服务被停止。 此时, 以正常模式对SQL Server系统进行运行, 被损坏的数据则应该被恢复, 如图3 所示。
3.3 mdf文件的恢复方法
如果数据库日志文件由于种种原因而被损坏, 并且在日志文件损坏的过程中, 系统只对.mdf类文件进行了备份, 那么此类状况数据恢复的难度则比较大, 但是如果所备份的.mdf文件是由当前数据库产生, 那么在对其数据进行恢复时难度则会相应降低, 在这种情况下只需要使用sp attach db或者sp_attach_single file_db就可以达到数据库恢复的目的。如果所备份的.mdf文件是从其他服务器拷过来的, 则不能够使用这种方法, 具体的恢复步骤如下所述:首先, 建立一个新的数据库, 在对新数据库进行建立的过程中要采用默认的形式, 然后对被损伤的数据库服务器进行停止。把新建的数据库日志文件bakup_log.ldf进行删除处理, 再将拷贝的mdf文件对新数据文件bakup_data.mdf进行覆盖。此时在对数据库服务器进行启动处理时, 可以发现数据库bakup的状态会表现为置疑状态, 此时切记避免对数据库进行任何操作。在SQL Server中, 要“设置数据库允许直接操作系统表”可以在企业管理器里面选择数据库服务器, 按右键, 选择“属性”, 在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以在查询分析器里使用如下语句来实现:use master go sp_configure'allow updates', 1 go reconfigure with override go。再接着把test设置为紧急修复模式, 对update sysdatabases set status=32768 where dbid=DB ID (bakup) 语句进行执行处理, 这时可以看到SQL Server管理器数据库处于的状态。接着对数据库日志文件进行重建处理, 执行dbcc rebuild log ('bakup', 'C:Program FilesMicrosoft SQLServerMSSQLDatabakup_log.ldf') 。在这一步骤完成之后还要对数据库的一致性进行验证, 执行dbcc checkdb ('bakup') 。特别提醒:基本恢复步骤完成之后, 要对自接操作系统的设定进行清除, 这是因为此种设定风险性较高。
3.4 利用数据库备份对数据进行恢复
基于SQL Server的数据库管理系统中的系统信息, 一般被存储到数据库中, 目前最常用的系统数据库的类型有很多, 像最常见的master, model, msdb等都是常见的数据库类型。 在这些数据库中一般都会存在许多系统表, 这些系统表能够对于整个系统的运行信息进行记录, 如图4 所示。 如果数据库日志信息在损坏的过程中系统表也被损坏, 那么相关技术人员在对数据进行恢复时必须建立新的数据库, 步骤为: 打开数据库还原的界面, 在源下面选择设备→... (浏览) , 然后点击添加, 寻找到备份数据库的路径, 点击确定。 在选择页选择文件, 然后修改还原为路径到其他盘符。 点击确定, 这时候就还原了一个数据库文件了。
4 结语
基于SQL数据库中日志文件的数据恢复措施的采取对于被损坏日志文件数据的恢复有着极为重要的意义, 可以说数据恢复的实现能够将使得数据丢失对于企事业单位的损坏降到最低, 这对于企事业单位正常运转的实行极为重要。 在对数据进行恢复的过程中, 相关技术人员必须根据数据损坏的类型选择合适的数据恢复方法, 这对于数据恢复有效性的保证至关重要。
参考文献
[1] (美) Paul Nieln.Microsoft SQL Server 2000宝典[M].中国铁道出版, 2014.
[2]邹建.中文版SQL Server 2000开发与管理应用实例[M].人民邮电出版社, 2013.
1. 数据库工作在归档状态
2. 给数据库管理员授予角色权限
(1)如图12.2所示的编辑用户的【角色】选项卡,
(2)在【可用】下拉列表框里选中EXP FULL DATABASE和IMP FULL DATABASE角色,单击按钮,在【已授予】列表框里出现已经授予的角色权限。
3. 给NT管理员授予批处理作业权限
(1)如图12.3所示的本地安全设置界面。
(2)出现如图12.4所示的【本地安全策略设置】界面。
(3)出现如图12.5所示的【选择用户或组】界面。
4. 设置节点的首选身份证明
(1)如图12.6所示。
(2)切换到如图12.7所示的编辑管理员首选项的【首选身份证明】选项卡。
5. 设置数据库的首选身份证明
用exp命令文件实现逻辑备份
(1)数据库连接成功后出现如图12.9所示界面。
(2)出现如图12.10所示界面。
(3)开始逻辑备份过程,出现如图12.11所示界面。
(4)在c:oracleora90bin目录下已经有名为EXPDAT.DMP的二进制文件存在。
用imp命令文件实现逻辑恢复
(1)数据库连接成功后出现如图12.12所示界面。
(2)出现如图12.13所示界面,
(3)出现如图12.14所示界面表明利用imp命令文件成功完成逻辑恢复,
(4)出现如图12.15所示的界面显示其参数配置。
用导出向导实现逻辑备份
(1)如图12.16所示。
(2)出现如图12.17所示的导出向导的【简介】界面。
(3)出现如图12.18所示的导出向导的【导出文件】界面。
(4)出现如图12.19所示的导出向导的【导出类型】界面,有3种导出类型。
(5)出现如图12.20所示的导出向导的【关联对象】界面,指定要导出的关联对象。
(6)出现如图12.21所示的导出向导的【调度】界面,包括6种调度方式。
(7)出现如图12.22所示的导出向导的【作业信息】界面。
(8)出现如图12.23所示的导出向导的【概要】界面。
(9)出现如图12.24所示界面。
(10)成功完成的备份作业如图12.25所示。
用导入向导实现逻辑恢复
(1)如图12.26所示。
(2)出现导入向导的【简介】界面。
(3)出现如图12.27所示的导入向导的【导入文件】界面。
(4)出现如图12.28所示的导入向导的【进度】界面。
(5)出现如图12.29所示的导入向导的【导入类型】界面。
(6)出现如图12.30所示的导入向导的【用户选择】界面。
(7)出现如图12.31所示的导入向导的【用户映射】界面。
(8)出现如图12.32所示的导入向导的【关联对象】界面,用于设置要导入的关联对象,包括。
(9)出现导入向导的【调度】界面。
(10)出现导入向导的【作业信息】界面。
(11)出现导入向导的【概要】界面。
说到数据恢复,我们就不能不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时不得不利用的基本知识,即使你不需要恢复数据,理解了这些知识(即使只是稍微多知道一些),对于你平时的电脑操作和应用也是很有帮助的。
我们就从硬盘的数据结构谈起吧……
硬盘数据结构
初买来一块硬盘,我们是没有办法使用的,你需要将它分区、格式化,然后再安装上操作系统才可以使用。就拿我们一直沿用到现在的win9x/me系列来说,我们一般要将硬盘分成主引导扇区、操作系统引导扇区、fat、dir和data等五部分(其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加)。
主引导扇区
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录mbr(main boot record)和分区表dpt(disk partition table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人都知道,以80h或00h为开始标志,以55aah为结束标志,共64字节,位于本扇区的最末端。值得一提的是,mbr是由分区程序(例如dos 的fdisk.exe)产生的,不同的操作系统可能这个扇区是不尽相同。如果你有这个意向也可以自己去编写一个,只要它能完成前述的任务即可,这也是为什么能实现多系统启动的原因(说句题外话:正因为这个主引导记录容易编写,所以才出现了很多的引导区病毒)。
操作系统引导扇区
obr(os boot record)即操作系统引导扇区,通常位于硬盘的0磁道1柱面1扇区(这是对于dos来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为bpb(bios parameter block)的本分区参数记录表。其实每个逻辑分区都有一个obr,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如msdos或者起源于msdos的win9x/me的io.sys和msdos.sys)。如是,就把第一个文件读入内存,并把控制权交予该文件。bpb参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、fat个数、分配单元(allocation unit,以前也称之为簇)的大小等重要参数。obr由高级格式化程序产生(例如dos 的format.com)。
文件分配表
fat(file allocation table)即文件分配表,是dos/win9x系统的文件寻址系统,为了数据安全起见,fat一般做两个,第二fat为第一fat的备份, fat区紧接在obr之后,其大小由本分区的大小及文件分配单元的大小决定。关于fat的格式历来有很多选择,microsoft 的dos及windows采用我们所熟悉的fat12、fat16和fat32格式,但除此以外并非没有其它格式的fat,像windows nt、os/2、unix/linux、novell等都有自己的文件管理方式。
目录区
dir是directory即根目录区的简写,dir紧接在第二fat表之后,只有fat还不能定位文件在磁盘中的位置,fat还必须和dir配合才能准确定位文件的位置。dir记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据dir中的起始
一、课程性质、目的、任务
随着计算机应用的普及和网络技术的发展,数据量急剧地增加,如今人们是借助计算机和数据库技术科学地保存和管理大量的、复杂的数据,以便能方便而充分地利用这些宝贵的信息资源。数据库技术已成为当今计算机信息系统的基础和核心,要学习计算机科学,就不能不学习掌握数据库技术。SQLServer2000数据库管理课程的目的,就是使学员通过学习能够掌握计算机数据库技术。
学员要求:
学习本课程的学生应具备一定的计算机软、硬件知识,熟悉Windows NT或Windows 2000操作系统,能较熟练地利用计算机语言编写程序。
本课程的内容分为两个部分,数据库管理和数据库开发应用。数据库管理部分主要介绍数据库和关系数据库的一些基本概念、SQL Server数据库的特点和数据库的创建、修改、删除、查询等基本操作。整个学习过程由浅入深、逐层推进,让各个层次的学习者都能很容易找到自己的切入点,轻松地学习。
二、教学组织
本课程的教学要求在以下每一章教学内容中给出,大体上分为三个层次:了解、理解和掌握。了解是能正确判别有关概念和方法;理解是能正确表达有关概念和方法的含义;掌握是在理解的基础上加以灵活应用。
1、选用教材:微软《Microsoft SQLServer2000数据库管理,课程号:2072A》,希望出版社2002年5月出版)。
总学时数:72学时(包括面授和实验)。其中,实验学时不得少于36学时,有条件的可以增加实验学时,减少面授学时。
2、课程特点:SQLServer2000数据库管理是实践性很强的一门课程,不仅要学习理论基本知识,更要注重上机实践操作,通过上机实践掌握解题步骤和操作方法,掌握和巩固所学的理论知识。
3、教学方法及教学形式建议
本课程以文字教材为主,共有三种教学形式,即:授课、实验和自学。授课采用面授方式,主要讲授数据库和关系数据库的一些基本概念、SQL Server数据库的特点、数据库的基本操作、SQL Server数据库的编程结构以及数据库的完整性和数据库的维护;实验需使用计算机设备、配合授课内容进行;自学是在教师的指导下由学员自己进行自主学习。
三、教学内容与教学要求
第一章 数据库基础
(一)教学内容
第一节、什么是数据库 第二节、数据库技术 第三节、关系数据库 第四节、SQL Server数据库
(二)教学要求
1、掌握数据库和关系数据库的一些基本概念
2、掌握SQL Server数据库中常用的一些对象。
第二章
SQL Server 2000简介
(一)教学内容
第一节、SQL Server2000的新特点
第二节、SQL Server2000的安装 第三节、SQL Server2000的服务器的使用
(二)教学要求
1、了解SQL Server2000数据库的特点,2、掌握SQL Server2000数据库的安装
3、掌握SQL Server2000服务器的配置和连接
第三章
SQL Server2000数据库的管理
(一)教学内容
第一节、使用Enterprise Manager 第二节、操作数据库
第三节、使用Transact—SQL语言操作数据库 第四节、数据库存储结构 第五节、数据库的安全性
(二)教学要求
1、掌握利用Enterprise Manager创建数据库和管理数据库的方法
2、掌握利用Transact—SQL创建数据库和管理数据库的方法
3、理解数据库的存储结构
4、理解数据库的安全性的概念,掌握数据库的安全保护的实现 第四章
SQL Server2000数据库的管理与使用
(一)教学内容
第一节、表的创建和管理 第二节、在表格中管理数据 第三节、索引的使用
(二)教学要求
1、掌握SQL Server 2000数据类型的分类
2、掌握表的基本结构
3、掌握利用Enterprise Manager创建表和管理表的方法
4、掌握利用Transact—SQL创建表和管理表的方法
第五章
SQL Server2000数据的查询
(一)教学内容
第一节、使用T-SQL语言对数据进行简单查询 第二节、使用Enterprise Manager进行数据查询 第三节、数据查询工具SQL Query Analyzer 第四节、SQL Server2000中视图的使用 第五节、T-SQL语言的高级查询 第六节、使用T-SQL语言设置查询属性
(二)教学要求
1、掌握使用T-SQL语言对数据进行简单查询的方法
2、掌握使用Enterprise Manager进行数据查询的方法
3、了解数据查询工具SQL Query Analyzer的使用方法
4、理解数据库对象——视图的概念
5、掌握SQL Server2000中视图的创建和管理方法
6、掌握T-SQL语言的高级查询的方法
第六章
SQL Server2000数据库的实际使用
(一)教学内容
第一节、在ASP程序中调用SQL数据库 第二节、一个调用ASP程序的例子 第三节、数据导入和导出
(二)教学要求
1、了解在ASP程序中调用SQL数据库的方法
2、了解数据导入和导出的基本概念和方法
第七章
数据完整性
(一)教学内容 第一节、简介 第二节、实施方法
(二)教学要求
1、理解数据完整性的基本知识
2、了解维护数据完整性的实施方法
第八章
SQL Server2000的存储过程和触发器
(一)教学内容
第一节、存储过程的创建和管理 第二节、触发器的创建和管理
(二)教学要求
1、了解存储过程和触发器的特点
2、了解存储过程的创建和管理
3、了解触发器的创建和管理
第九章
SQL Server2000数据库的备份和恢复
(一)教学内容
第一节、为什么要进行数据库份
第二节、使用Enterprise Manager进行数据库的备份和恢复 第三节、使用T-SQL语句进行数据库的备份和恢复
(二)教学要求
1、了解SQL Server2000数据库的备份的重要性
2、了解备份SQL Server2000数据库的方法
3、了解恢复SQL Server 2000数据库的方法
第十章
SQL Server2000数据库的自动化管理和分布式数据管理
(一)教学内容
第一节、自动化管理 第二节、分布式数据管理
(二)教学要求
1、了解SQL Server 2000数据库的自动化管理的方法
【从日志中恢复SQL Server数据库数据库教程】推荐阅读:
备份和恢复概述数据库教程05-26
硬盘格式化怎么恢复数据06-17
恢复重建措施07-16
恢复生产申请报告07-09
灾难恢复计划制度10-12
灾害恢复生产工作措施06-12
户口恢复申请书06-23
中风恢复期护理方案09-11
恢复税务登记申请书09-12
烟草许可证恢复申请书09-19