SQL Server备份和还原是管理数据库的关键任务之一,用于保护数据库免受数据丢失和损坏的风险。以下是SQL Server备份和还原的基本方法:
备份数据库:
完整备份:
完整备份将整个数据库备份到一个文件中,包括数据和数据库结构。使用以下T-SQL语句创建完整备份:
BACKUP DATABASE [数据库名] TO DISK = '备份文件路径'
例如:
BACKUP DATABASE AdventureWorks TO DISK = 'C:\备份\AdventureWorks.bak'
差异备份:
差异备份仅备份自上次完整备份或差异备份以来发生更改的部分。差异备份可以通过以下T-SQL语句创建:
BACKUP DATABASE [数据库名] TO DISK = '备份文件路径' WITH DIFFERENTIAL
日志备份:
日志备份仅备份事务日志,用于支持数据库的恢复。使用以下T-SQL语句创建日志备份:
BACKUP LOG [数据库名] TO DISK = '备份文件路径'
还原数据库:
完整备份还原:
若要还原完整备份,使用以下T-SQL语句:
RESTORE DATABASE [目标数据库名] FROM DISK = '备份文件路径'
例如:
RESTORE DATABASE AdventureWorks_Restored FROM DISK = 'C:\备份\AdventureWorks.bak'
差异备份还原:
若要还原差异备份,需要先还原最近的完整备份,然后还原所有差异备份。使用以下T-SQL语句:
RESTORE DATABASE [目标数据库名] FROM DISK = '完整备份文件路径' WITH NORECOVERY;
然后,还原差异备份:
RESTORE DATABASE [目标数据库名] FROM DISK = '差异备份文件路径' WITH RECOVERY;
日志备份还原:
若要还原事务日志备份,需要按照以下步骤:
示例:
RESTORE DATABASE [目标数据库名] FROM DISK = '完整备份文件路径' WITH NORECOVERY;
然后,还原事务日志备份(依次):
RESTORE LOG [目标数据库名] FROM DISK = '日志备份文件路径' WITH NORECOVERY;
最后一个日志备份使用 WITH RECOVERY 选项:
RESTORE LOG [目标数据库名] FROM DISK = '最后的日志备份文件路径' WITH RECOVERY;
首先,还原最近的完整备份,使用 WITH NORECOVERY 选项。
然后,依次还原所有事务日志备份,最后一个备份使用 WITH RECOVERY 选项。
请注意,备份和还原操作需要在数据库不活动的情况下进行,并且需要适当的权限。另外,还原操作会覆盖目标数据库,因此请小心谨慎执行备份和还原任务。