AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 208487
Accepted
BradC
BradC
Asked: 2018-06-02 06:43:38 +0800 CST2018-06-02 06:43:38 +0800 CST 2018-06-02 06:43:38 +0800 CST

恢复完整备份是否会将其带到备份开始时间或备份完成时间?

  • 772

背景故事:我正在尝试将多个 SQL 2012 数据库的副本恢复到不同的环境,但应用程序需要它们(大致)及时“同步”。

(当然,理想的方法是使用完整和日志备份的完整恢复模式,然后使用相同的时间戳进行时间点恢复。但在我的情况下,我不需要它们完全同步,就在大约 10 分钟左右,我宁愿只处理完整备份和恢复。我可以控制何时运行完整备份,但问题是数据库的大小非常不同,所以完整备份运行时间很长不同的时间长度。)

所以我的问题是:我应该同步完整备份的开始时间吗?还是结束时间?

换句话说,当我恢复完整备份时,我会得到备份开始时的样子还是完成时的样子?

sql-server sql-server-2012
  • 3 3 个回答
  • 2647 Views

3 个回答

  • Voted
  1. Best Answer
    pacreely
    2018-06-02T07:20:32+08:002018-06-02T07:20:32+08:00

    看看这个链接

    完整的数据库备份提供数据库的完整副本,并提供可以将数据库恢复到的单个时间点。尽管备份过程可能需要几个小时才能运行,但您仍然只能将备份还原到单个点(实际上是在备份结束时,但我将在本文后面确切讨论该点是什么)。完整备份不允许恢复到备份运行时的任何时间点。

    • 10
  2. Scott Hodgin - Retired
    2018-06-02T07:08:12+08:002018-06-02T07:08:12+08:00

    Sql Server 备份包含所有分配的数据页和足够的事务日志,因此还原操作可以恢复数据库,使其在读取数据操作完成的时间点保持事务一致。

    所以,回答你的问题

    完全备份的“时刻”是什么时候?开始时间还是结束时间?

    现在是FINISH时间。

    通过调用备份操作向自己证明这一点应该很容易,在备份运行时对某些数据进行一些更改(确保提交它们),然后在某处恢复该备份并检查您的更改。

    参考更多关于完整备份包含多少事务日志

    • 6
  3. Alen
    2018-06-02T06:54:54+08:002018-06-02T06:54:54+08:00

    任何 SQL 备份都是在将备份结束时间写入 msdb 数据库中的备份集表时完成的。当您在那里搜索时,完整备份是 D 类型,日志备份是 L 类型。并且有一个仅复制列来标记仅复制备份

    我会定期针对我在中央管理服务器上创建的组运行以下查询,您可以根据需要对其进行修改。

    select  a.server_name as hostname,   a.Database_Name,a.name, 
    a.backup_finish_date
    --over (partition by database_name) 
    as Backup_End_Time
    ,Backup_Type = 
    case a.type
    when 'D' then 'Full backup'
    when 'I' then 'Differential Backup'
    when 'L' then 'Transaction Log Backup'
    when 'F' then 'filegroup Backup'
    when 'G' then 'Differential File backup'
    else 'See Books Online'
    end, cast((a.backup_size/1048576)as bigint) as Size_of_Backup_MB , 
    a.software_major_version, a.compatibility_level, a.has_backup_checksums, 
    a.is_copy_only
    from msdb..backupset a
    inner join sys.dm_hadr_availability_replica_cluster_states b on 
    a.server_name = b.replica_server_name
    --inner join sys.dm_hadr_availability_replica_cluster_states e on 
    d.server_name = e.replica_server_name
    inner join sys.dm_hadr_availability_replica_states c on c.replica_id = 
    b.replica_id
    inner join sys.databases e on a.database_name = e.name
    where exists 
    (select 1 from msdb..backupset d
                where a.server_name = d.server_name 
                    and a.database_name = d.database_name
                    and d.is_copy_only = 0
                    having a.backup_finish_date = max(d.backup_finish_date))
     and a.Type = 'd'
     --and a.name in ('CommVault Galaxy Backup')
     --and a.has_backup_checksums = 0
     --and c.role_desc = 'primary'
     group by a.backup_finish_date, a.database_name, a.server_name, a.Type, 
     a.backup_size, a.compatibility_level, a.database_version, 
     a.software_major_version
     , a.has_backup_checksums, a.is_copy_only, a.name, a.description
     having max(a.backup_finish_date) < getdate() -2
     order by a.server_name, a.database_name  
    
    • 0

相关问题

  • SQL Server - 使用聚集索引时如何存储数据页

  • 我需要为每种类型的查询使用单独的索引,还是一个多列索引可以工作?

  • 什么时候应该使用唯一约束而不是唯一索引?

  • 死锁的主要原因是什么,可以预防吗?

  • 如何确定是否需要或需要索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve