SQL Server数据库文件规复技能
发布时间:2018-08-25 06:56:19 所属栏目:电商 来源:站长网
导读:SQLServer数据库备份有两种方法,一种是行使BACKUPDATABASE将数据库文件备份出去,其它一种就是直接拷贝数据库文件mdf和日记文件ldf的方法。下面将首要接头一下后者的备份与规复。本文假定您能纯熟行使SQLServerEnterpriseManager(SQLServer企业打点器)和S
SQL Server数据库备份有两种方法,一种是行使BACKUP DATABASE将数据库文件备份出去,其它一种就是直接拷贝数据库文件mdf和日记文件ldf的方法。下面将首要接头一下后者的备份与规复。本文假定您能纯熟行使SQL Server Enterprise Manager(SQL Server企业打点器)和SQL Server Quwey Analyser(SQL Server查询说明器) 1、正常的备份、规复方法 正常方法下,我们要备份一个数据库,起主要先将该数据库从运行的数据处事器间断开,可能停掉整个数据库处事器,然后复制文件。 卸下数据库的呼吁:Sp_detach_db 数据库名 毗连数据库的呼吁:Sp_attach_db可能sp_attach_single_file_db s_attach_db [@dbname =] ′dbname′, [@filename1 =] ′filename_n′ [,...16] sp_attach_single_file_db [@dbname =] ′dbname′, [@physname =] ′physical_name′ 行使此要领可以正确规复SQL Sever7.0和SQL Server 2000的数据库文件,要点是备份的时辰必然要将mdf和ldf两个文件都备份下来,mdf文件是数据库数据文件,ldf是数据库日记文件。 例子: 假设数据库为test,其数据文件为test_data.mdf,日记文件为test_log.ldf。下面我们接头一下怎样备份、规复该数据库。 卸下数据库:sp_detach_db ’test’ 毗连数据库:sp_attach_db ’test’,’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data.mdf’,’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf’ sp_attach_single_file_db ’test’,’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_data.mdf’ 2、只有mdf文件的规复技能 因为各种缘故起因,我们假如其时仅仅备份了mdf文件,那么规复起来就是一件很贫困的工作了。 假如您的mdf文件是当前数据库发生的,那么很幸运,大概你行使sp_attach_db可能sp_attach_single_file_db可以规复数据库,可是会呈现相同下面的提醒信息 装备激活错误。物理文件名 ’C:Program FilesMicrosoft SQL ServerMSSQLdatatest_Log.LDF’ 也许有误。 已建设名为 ’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.LDF’ 的新日记文件。 可是,假如您的数据库文件是从其他计较机上复制过来的,那么很不幸,大概上述步伐就行不通了。你大概会获得相同下面的错误信息 处事器: 动静 1813,级别 16,状态 2,行 1 未能打开新数据库 ’test’。CREATE DATABASE 将终止。 装备激活错误。物理文件名 ’d:test_log.LDF’ 也许有误。 怎么办呢?别着急,下面我们举例声名规复步伐。 A.我们行使默认方法成立一个供规复行使的数据库(如test)。可以在SQL Server Enterprise Manager内里成立。 B.停掉数据库处事器。 C.将适才天生的数据库的日记文件test_log.ldf删除,用要规复的数据库mdf文件包围适才天生的数据库数据文件test_data.mdf。 D.启动数据库处事器。此时会看到数据库test的状态为“置疑”。这时辰不能对此数据库举办任何操纵。 E.配置数据库应承直接操纵体系表。此操纵可以在SQL Server Enterprise Manager内里选择数据库处事器,按右键,选择“属性”,在“处事器配置”页面中将“应承对体系目次直接修改”一项选中。也可以行使如下语句来实现。 use master go sp_configure ’allow updates’,1 go reconfigure with override go F.配置test为紧张修复模式 update sysdatabases set status=-32768 where dbid=DB_ID(’test’) 此时可以在SQL Server Enterprise Manager内里看到该数据库处于“只读置疑脱机紧张模式”可以看到数据库内里的表,可是仅仅有体系表 G.下面执行真正的规复操纵,重建数据库日记文件 dbcc rebuild_log(’test’,’C:Program FilesMicrosoft SQL ServerMSSQLDatatest_log.ldf’) 执行进程中,假如碰着下列提醒信息: 处事器: 动静 5030,级别 16,状态 1,行 1 未能排它地锁定命据库以执行该操纵。 DBCC 执行完毕。假如 DBCC 输出了错误信息,请与体系打点员接洽。 声名您的其他措施正在行使该数据库,假如适才您在F步调中行使SQL Server Enterprise Manager打开了test库的体系表,那么退出SQL Server Enterprise Manager就可以了。 正确执行完成的提醒应该相同于: 告诫: 数据库 ’test’ 的日记已重建。已失去事宜的同等性。应运行 DBCC CHECKDB 以验证物理同等性。将必需重置数据库选项,而且也许必要删除多余的日记文件。 DBCC 执行完毕。假如 DBCC 输出了错误信息,请与体系打点员接洽。 此时打开在SQL Server Enterprise Manager内里会看到数据库的状态为“只供DBO行使”。此时可以会见数据库内里的用户表了。 H.验证数据库同等性(可省略) dbcc checkdb(’test’) 一样平常执行功效如下: CHECKDB 发明白 0 个分派错误和 0 个同等性错误(在数据库 ’test’ 中)。 DBCC 执行完毕。假如 DBCC 输出了错误信息,请与体系打点员接洽。 I.配置数据库为正常状态 sp_dboption ’test’,’dbo use only’,’false’ 假如没有堕落,那么恭喜,此刻就可以正常的行使规复后的数据库啦。 J.最后一步,我们要将步调E中配置的“应承对体系目次直接修改”一项规复。由于平常直接操纵体系表是一件较量伤害的工作。虽然,我们可以在SQL Server Enterprise Manager内里规复,也可以行使如下语句完成 sp_configure ’allow updates’,0 go reconfigure with override go (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读