SmartSoftHelp 之 SQL Server 数据库安全备份与安全还原详解---深度优化版:SmartSoftHelp DeepCore XSuite

发布于:2025-05-23 ⋅ 阅读:(17) ⋅ 点赞:(0)

SmartSoftHelp    菜单之 DBMS 数据库备份与还原 (DBBackRest) 使用实例

SQL Server 数据库备份与还原详解

SQL Server 数据库的备份与还原是管理数据库的核心任务之一,涉及本地与远程操作、大小监控及目录管理等多个方面。以下是详细说明:

一、数据库备份
1. 备份类型
  • 完整备份:备份整个数据库(包括事务日志)。
  • 差异备份:仅备份自上次完整备份后更改的数据。
  • 事务日志备份:备份自上次日志备份以来的事务日志(需使用完整恢复模式)。
2. 本地备份命令

sql

-- 完整备份示例
BACKUP DATABASE YourDatabase
TO DISK = 'D:\Backup\YourDatabase.bak'
WITH FORMAT, INIT;

-- 差异备份示例
BACKUP DATABASE YourDatabase
TO DISK = 'D:\Backup\YourDatabase_Diff.bak'
WITH DIFFERENTIAL;

-- 事务日志备份示例
BACKUP LOG YourDatabase
TO DISK = 'D:\Backup\YourDatabase_Log.trn';
3. 远程备份(通过网络共享)

sql

-- 备份到网络共享路径
BACKUP DATABASE YourDatabase
TO DISK = '\\RemoteServer\BackupShare\YourDatabase.bak';

注意:

  • SQL Server 服务账户需有访问远程共享的权限。
  • 确保网络路径可访问(使用 xp_cmdshell 'dir \\RemoteServer\BackupShare' 测试)。
二、数据库还原
1. 还原流程
  • 恢复完整备份 → 恢复差异备份(如果有)→ 恢复事务日志备份(按顺序)。
2. 本地还原命令

sql

-- 还原完整备份(NORECOVERY 允许后续还原)
RESTORE DATABASE YourDatabase
FROM DISK = 'D:\Backup\YourDatabase.bak'
WITH NORECOVERY;

-- 还原差异备份
RESTORE DATABASE YourDatabase
FROM DISK = 'D:\Backup\YourDatabase_Diff.bak'
WITH NORECOVERY;

-- 还原事务日志并完成恢复
RESTORE LOG YourDatabase
FROM DISK = 'D:\Backup\YourDatabase_Log.trn'
WITH RECOVERY;
3. 远程还原(从网络共享)

sql

-- 从网络共享还原
RESTORE DATABASE YourDatabase
FROM DISK = '\\RemoteServer\BackupShare\YourDatabase.bak';
4. 还原到新位置(重定位文件)

sql

-- 还原时指定新的数据文件和日志文件路径
RESTORE DATABASE NewDatabaseName
FROM DISK = 'D:\Backup\YourDatabase.bak'
WITH MOVE 'YourDatabase_Data' TO 'E:\Data\NewDatabaseName.mdf',
     MOVE 'YourDatabase_Log' TO 'F:\Logs\NewDatabaseName.ldf';
三、查看数据库大小与目录地址
1. 查看数据库大小

sql

-- 查看所有数据库大小
EXEC sp_spaceused;

-- 查看单个数据库详细大小
SELECT 
    name AS '文件名',
    size/128.0 AS '大小(MB)',
    size/128.0 - CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS '可用空间(MB)',
    physical_name AS '物理路径'
FROM sys.database_files;
2. 查看数据库文件路径

sql

-- 查看当前数据库的文件路径
SELECT name, physical_name AS '文件路径'
FROM sys.master_files
WHERE database_id = DB_ID('YourDatabase');

-- 查看默认备份目录
EXEC xp_instance_regread 
    N'HKEY_LOCAL_MACHINE', 
    N'SOFTWARE\Microsoft\MSSQLServer\MSSQLServer', 
    N'BackupDirectory';
四、远程管理工具
  1. SQL Server Management Studio (SSMS)
    • 通过远程连接到 SQL Server 实例,直接执行备份 / 还原操作。
  2. PowerShell

    powershell

    # 备份数据库
    Backup-SqlDatabase -ServerInstance "RemoteServer\Instance" -Database "YourDatabase" -BackupFile "D:\Backup\YourDatabase.bak"
    
    # 还原数据库
    Restore-SqlDatabase -ServerInstance "RemoteServer\Instance" -Database "NewDatabase" -BackupFile "D:\Backup\YourDatabase.bak"
    
五、注意事项
  1. 权限要求:执行备份 / 还原需 db_owner 或 sysadmin 权限。
  2. 恢复模式:简单恢复模式不支持事务日志备份。
  3. 文件路径冲突:还原时确保目标路径不存在同名文件。
  4. 网络问题:远程操作需确保防火墙开放 SQL Server 端口(默认 1433)。

通过以上方法,你可以全面管理 SQL Server 数据库的备份、还原及相关配置。根据实际需求选择合适的备份策略,并定期测试恢复流程以确保数据安全性。

SmartSoftHelp DeepCore XSuite:下载:    

1.GitHub(托管) 
https://github.com/512929249/smartsofthelp.githttps://github.com/512929249/smartsofthelp.git


2.Gitee(码云)    
SmartSoftHelp: SmartSoftHelp DeepCore XSuite做世界一流的,最好的,最优秀,最简单,最流畅,最实用的.Net C#辅助开发工具
SmartSoftHelp: SmartSoftHelp DeepCore XSuite做世界一流的,最好的,最优秀,最简单,最流畅,最实用的.Net C#辅助开发工具https://gitee.com/sky512929249/smartsofthelp.git

众里寻他千百度,蓦然回首,却在灯火阑珊处...