1. 前言
微软(Microsoft)SQL Server是一种热门的关系型数据库管理系统(RDBMS),用于管理和存储数据。在现代化的生产环境中,几乎所有的企业都依赖于这些数据库服务器。然而,即使有备份,一些重大故障(如硬件故障或人为失误)也可能导致数据的丢失,因此数据库还原变得至关重要。在这篇文章中,我们将讨论如何针对MS SQL Server对所有数据库备份进行还原。
2. MS SQL Server备份方式
在进行数据库还原之前,我们需要先了解MS SQL Server数据库备份的方式。通过了解备份方式,我们才能更好地计划恢复策略。
2.1 完整备份(Full Backup)
完整备份即备份整个数据库,包括所有表和数据。它是恢复策略的基础(除了差异备份和事务日志备份)。
2.2 差异备份(Differential Backup)
在完整备份之后,差异备份备份的是自上次完整备份之后发生了更改的数据的增量。这种备份方式可以帮助管理员减少备份总时间和备份所占用的存储空间。
2.3 事务日志备份(Transaction Log Backup)
事务日志备份只备份自上次备份(可能是完整备份或上一步备份)以来的增量事务日志。这种方式除了可以帮助恢复操作之外,还可以帮助管理员诊断故障。
3. 备份还原前需要注意的事项
在开始进行还原操作之前,您需要确保完成以下准备工作。
3.1 确认还原点
首先,确认您要恢复的是正确的备份。在某些情况下,您可能需要从多个备份中选择要还原的备份,因此请务必确认(日期和时间戳等)要还原的备份。
3.2 备份文件所在位置
知道您要恢复的备份文件所在位置很重要。否则,您将无法还原数据库。确保您已知道备份文件所在的磁盘位置,以及在还原操作中需要用到的文件名。
3.3 数据库所在位置
您需要知道要还原的数据库所在的位置。这可能是一个单独的文件或一组文件(如果您使用了分区表或文件组)。
3.4 检查还原操作的权限
还原操作需要足够的权限才能进行。管理员(sysadmin)或dbcreator固定数据库角色中的成员均可执行还原操作。除此之外,执行还原操作的用户还需要SERVER_ADMIN权限和备份文件所在位置的状态这些权限将在需要时自动授予。确保您(或您正在使用的账户)具备这些权限之一。
4. 还原单个数据库
下面是如何执行MS SQL Server:将单个数据库还原到先前的备份点。
4.1 创建新数据库还原所需的DB文件
在开始还原操作之前,确保在要还原的目标服务器上创建了用于新数据库的实际数据和日志文件。您可以通过执行以下命令创建SQL Server RESTORE DATABASE
。
RESTORE DATABASE YourDBName WITH RECOVERY, MOVE 'YourDBName_Data' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Data\YourDBName_Data.mdf', MOVE 'YourDBName_Log' TO 'C:\Program Files\Microsoft SQL Server\MSSQL14.MSSQLSERVER\MSSQL\Data\YourDBName_Log.ldf'
此命令使用了WITH RECOVERY
选项,因此它不会启动任何事务日志还原,只会将数据库还原到最新的完整备份和差异备份。完成此操作后,可以打开数据库并检查是否已还原成功。
4.2 还原数据库备份
1. 在SQL Server Management Studio(SSMS)中,右键单击Databases
,选择"Restore Database…"
2. 从弹出的还原数据库窗口中,在"General"选项卡中选择以下选项:
- "Device":单击"Browse"按钮,找到要还原的备份文件。
- "Database":在"Restore As"下,键入要还原到的数据库名称
- "Options":在"Restore Options"下,选中“overwrite the existing database (WITH REPLACE)”
3. 单击“OK”以开始还原操作并等待操作完成。完成后,数据库将已成功还原。
5. 还原多个数据库
如果需要恢复整个SQL Server的状态,则必须对所有数据库执行还原操作。下面是如何对SQL Server上的多个数据库执行还原操作的步骤。
5.1 恢复主数据库(master)
恢复MS SQL Server时,主数据库(master)应该是第一个要还原的数据库。由于该数据库保留了所有实例级别的配置信息,因此需要先还原此数据库才能正确还原其他数据库。
1. 使用SQL Server Management Studio(SSMS)
,右键单击Databases
,选择Restore Database…
。
2. 单击“Options”,然后选择“Overwrite the existing database (WITH REPLACE)”和“Restoring master: Reason for restoring the master database:”,然后单击“OK”。
3. 还原主数据库时,需要停止SQL Server,确保启动SQL Server的方式是在单用户模式下启动。打开SQL Server的CMD提示符窗口,并键入以下命令以单用户模式启动SQL Server。
NET STOP MSSQLSERVER
NET START MSSQLSERVER /m"SQLCMD"
4. 执行以下命令还原数据库:
RESTORE DATABASE master FROM DISK='C:\YourBackupFileLocation\BackupFileName.bak' WITH REPLACE;
5. 在还原完成后,请重启SQL Server服务以使更改生效。
5.2 恢复其他数据库
恢复完整备份之后,现在可以恢复其他数据库。在MS SQL Server中,您可以使用以下命令还原其他数据库,其中“AdventureWorks2016CTP3”为数据库名称,而“C:\YourBackupFileLocation\BackupFileName.bak”是完整备份的文件路径。
USE [master];
RESTORE DATABASE AdventureWorks2016CTP3 FROM DISK='C:\YourBackupFileLocation\BackupFileName.bak' WITH REPLACE
执行完以上操作后,您的所有数据库都已成功还原。
6. 总结
至此,我们已经了解了MS SQL Server备份方式并且知道了如何还原数据库。在开始还原/恢复操作之前,三思而后行,确定备份文件位置和确保权限等重要方面,以避免遗漏和故障。还原 MS SQL Server 中的数据是一个非常安全且关键的任务,在进行还原操作时,需要谨慎处理和复制所有文件以及确保每一步操作都得到了认真审核以确保安全性。