MSSQL段落还原脚本,SQLSERVER段落脚本
在SQL Server 2005中引入的“段落还原”(Piecewise Restoration)功能,为大型数据库的逐步恢复提供了可能。当数据库损坏范围较大,涉及多个数据文件甚至跨文件组时,我们可以利用这一功能逐步、分阶段地恢复数据库。
段落还原允许我们按照一定的顺序,逐步还原数据库的不同部分。这个过程开始于主文件组(或其他指定的文件组),并依次进行,确保数据库在每一步都能保持一致性。一旦文件有效并且与数据库一致,它们就会被置于联机状态。
在所有恢复模式中,段落还原都适用,但在完整恢复模式和大容量日志恢复模式下的灵活性更高。还原过程从所谓的“部分还原顺序”开始,至少包括主文件组的还原。在整个还原顺序中,数据库必须处于脱机状态。完成后,数据库将恢复联机状态,而之前未还原的文件组将保持脱机状态。
无论数据库采用何种恢复模式,部分还原顺序都是通过RESTORE DATABASE语句开始的,并使用PARTIAL选项来启动一个新的段落还原。在这个初始语句中,PARTIAL只能指定一次。当部分还原顺序完成后,余下的文件将被标记为“恢复已挂起”。
接下来,段落还原包括一个或多个“文件组还原顺序”。您可以根据需要安排这些顺序,决定何时进行特定的文件组还原。每个文件组还原顺序都会还原一个或多个脱机文件组,并使其恢复到与数据库一致的状态。
当面临数据库损坏,特别是涉及多个数据文件和文件组时,段落还原提供了一个有效的解决方案。例如,在AdventureWorks数据库中,我们可以逐步还原主文件组、副文件组以及日志,而不是一次性恢复整个数据库。这样做的好处是,即使在大型数据库中,也能减少恢复时间,并提高恢复的灵活性。
我们需要备份尾日志,以确保恢复过程的完整性。然后,我们可以逐步还原数据库的不同部分。首先是主文件组,接着是副文件组,然后是日志。每一步都使用NORECOVERY选项,以确保在还原下一个部分之前,数据库保持恢复状态。我们还原尾日志并使用RECOVERY选项完成恢复过程。
在此过程中,位于不同文件组中的表可能会处于不同的状态。主文件组和副文件组中的文件在还原后可以直接访问,而其他文件组中的表则无法访问,直到它们也被还原。
如果尝试在没有备份尾日志的情况下进行还原,或者如果数据库不是企业版而尝试进行某些操作,可能会收到错误提示。在进行段落还原时,确保遵循正确的步骤和顺序,并根据数据库的版本和配置进行相应的调整。
当需要恢复数据库时,首先得从磁盘上恢复日志备份。这涉及到三个步骤,首先从位于"D:\BACKUP_TEST"的备份位置中恢复日志备份文件。这三个日志文件分别为“LOG_BACK_1.TRN”,“LOG_BACK_2.TRN”,以及“LOG_BACK_TAIL.TRN”。我们逐个执行RESTORE命令,每次都采用“NORECOVERY”选项。这样每次操作完成后数据库都处于还原状态,无法立即访问其中的表。这是因为在还原过程中,数据库仍然处于恢复阶段,尚未完全恢复使用状态。这个过程需要保持耐心和细心,以确保每一步操作都准确无误。
当所有日志备份都已成功还原后,我们需要执行最后一个步骤:从磁盘上恢复尾日志并恢复数据库的使用状态。这时我们使用的命令与之前的有所不同,我们使用了“RECOVERY”选项来代替之前的“NORECOVERY”。这一步操作完成后,位于副文件组TRN中的表就可以被访问了。这意味着我们的数据库已经成功恢复到正常状态,可以正常使用其中的数据和功能了。至此,我们的段落还原工作全部完成。整个过程不仅需要仔细操作每一步命令,还需要密切关注每一步操作的输出信息,以确保数据恢复过程的顺利进行。至此我们已经完成了数据库的日志还原工作,并成功恢复了数据库的使用状态。同时请注意这个操作过程只能在专业的数据库维护人员的指导下进行,确保数据安全可靠。
编程语言
- MSSQL段落还原脚本,SQLSERVER段落脚本
- 如何制作一个Web日程安排表?
- jQuery实现的form转json经典示例
- vue中render函数的使用详解
- php判断ip黑名单程序代码实例
- JS+CSS模拟可以无刷新显示内容的留言板实例
- IE浏览器与FF浏览器关于Ajax传递参数值为中文时的
- PHP实现数据分页显示的简单实例
- 用node-webkit把web应用打包成桌面应用(windows环境
- Sql Server中清空所有数据表中的记录
- 详解基于angular-cli配置代理解决跨域请求问题
- SQL Server 提取数字、提取英文、提取中文的sql语句
- .net接入支付宝的支付接口
- AngularJs入门教程之环境搭建+创建应用示例
- JS使用eval解析JSON的注意事项分析
- php 删除cookie方法详解