1. 使用备份文件恢复
这是最基础且可靠的恢复方式,前提是有定期创建的完整备份(.bak文件)。若数据库有备份,可通过以下步骤恢复:停止SQL Server服务,使用RESTORE DATABASE命令指定备份文件路径还原,再启动服务。若需还原到特定时间点,可在完全备份后依次还原增量或事务日志备份。
2. 事务日志恢复(需完整恢复模式)
若数据库启用了完整恢复模式,事务日志记录了所有数据变更,可实现时间点恢复。步骤如下:先备份当前事务日志(防止进一步数据丢失),还原最近的完全备份(使用WITH NORECOVERY选项保留日志),再逐个还原事务日志文件(最后用WITH RECOVERY使数据库可读写)。
3. 第三方数据恢复工具
若备份丢失或损坏,可使用专业工具扫描数据库文件(如.mdf、.ldf)恢复数据。常见工具包括DataNumen SQL Recovery、ApexSQL Recover、SysTools SQL Recovery等。操作流程大致为:启动工具→选择目标文件→指定数据库格式→开始恢复。
4. SQL Server Management Studio (SSMS) 图形化恢复
通过SSMS可视化操作恢复数据库:连接SQL Server实例→右键“数据库”→选择“还原数据库”→指定备份文件路径→设置恢复选项(如“覆盖现有数据库”)→执行恢复。适合不熟悉命令行的用户。
5. sqlcmd命令行恢复
适合自动化或脚本化场景,通过命令行执行恢复操作。示例命令:RESTORE DATABASE [数据库名] FROM DISK = '备份文件路径' WITH REPLACE, NORECOVERY, STATS = 5(REPLACE覆盖现有数据库,NORECOVERY保留日志供后续还原,STATS显示进度)。
6. 处理恢复挂起状态
若数据库处于“恢复挂起”状态(如恢复过程中断),可通过以下命令修复:先将数据库设为紧急模式(ALTER DATABASE [数据库名] SET EMERGENCY),再用DBCC CHECKDB修复(DBCC CHECKDB([数据库名], REPAIR_ALLOW_DATA_LOSS),注意此操作可能导致数据丢失),最后设为多用户模式(ALTER DATABASE [数据库名] SET MULTI_USER)。
7. 数据库镜像/高可用性恢复
若配置了数据库镜像,主服务器故障时可手动切换到镜像数据库,保障业务连续性。切换步骤:在SSMS中右键主服务器→选择“故障转移镜像”→确认切换至镜像数据库。