sql-server - 如何生成具有独立备份链的数据库的完整备份?
问题描述
我正在尝试生成数据库的独立完整备份,但我无法获得我正在寻找的结果。对于我所阅读的内容,完整的数据库备份将创建一个新的备份链,并且执行的连续差异备份被“链接”到该完整备份。但是,当我运行两次备份数据库的脚本时,结果是第二次完全备份依赖于第一次。
BACKUP DATABASE [Pruebas2] TO DISK = 'C:\temp\new\Backup_pruebas2.bak' WITH NOINIT, NAME = N'Database Backup',STATS = 10;
BACKUP DATABASE [Pruebas2] TO DISK = 'C:\temp\new\Backup_pruebas2.bak' WITH DIFFERENTIAL,NOINIT, NAME = N'Database Backup',STATS = 10;
--new backup of DB ' Pruebas2' saved into a different file
BACKUP DATABASE [Pruebas2] TO DISK = 'C:\temp\new\Backup_pruebas2_2.bak' WITH NOINIT, NAME = N'Database Backup',STATS = 10;
BACKUP DATABASE [Pruebas2] TO DISK = 'C:\temp\new\Backup_pruebas2_2.bak' WITH DIFFERENTIAL,NOINIT, NAME = N'Database Backup',STATS = 10;
这些是 queryng msdb.dbo.backupset 的结果:
physical_device_name position type backup_start_date backup_finish_date first_lsn checkpoint_lsn database_backup_lsn
C:\temp\new\Backup_pruebas2.bak 1 D 2019-05-16 15:15:14.000 2019-05-16 15:15:14.000 32000000034300102 32000000034300102 0
C:\temp\new\Backup_pruebas2.bak 2 I 2019-05-16 15:15:14.000 2019-05-16 15:15:14.000 32000000039600034 32000000039600034 32000000034300102
C:\temp\new\Backup_pruebas2_2.bak 1 D 2019-05-16 15:15:59.000 2019-05-16 15:15:59.000 32000000041400037 32000000041400037 32000000034300102
C:\temp\new\Backup_pruebas2_2.bak 3 I 2019-05-16 15:33:16.000 2019-05-16 15:33:16.000 32000000043900034 32000000043900034 32000000041400037
我希望存储在“Backup_pruebas2_2.bak”文件中的完整备份的“database_backup_lsn”为0,而不是与第一个完整备份链接的32000000034300102
什么脚本将创建一个新的(独立的)备份链?
解决方案
你的脚本是正确的。
database_backup_lsn定义为
“最近一次全数据库备份的日志序列号。可以为
NULL。database_backup_lsn是备份开始时触发的“检查点开始”。如果在数据库进行备份时,这个LSN将与first_lsn重合处于空闲状态且未配置复制。”
https://docs.microsoft.com/en-us/sql/relational-databases/system-tables/backupset-transact-sql?view=sql-server-2017
所以第二个备份只保留指向前一个的指针,但没有依赖关系。
推荐阅读
- asp.net - 日期格式显示不正确
- docker - Redis 使用带有 3 个 Pod 的 Kube 部署时出错
- html - Flexbox 对齐项目中的内容
- algorithm - 查找最小幸存者数量的函数
- karate - 尝试从空手道的 API 响应中获取值时出错
- node.js - NestJS + Kafka + Azure Function 的微服务架构
- python - 验证性因子分析未能收敛
- api - Laravel Passport 客户端凭证使用 Nuxt 授予令牌
- python - 为什么我需要写两次“datetime”?
- python - 当邮件有空格时,我的垃圾邮件命令不起作用