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 / 问题 / 266320
Accepted
J.D.
J.D.
Asked: 2020-05-02 20:09:34 +0800 CST2020-05-02 20:09:34 +0800 CST 2020-05-02 20:09:34 +0800 CST

是否可以使用从已恢复的过期服务器时间点快照开始的数据库备份来恢复数据库?

  • 772

如果我定期备份 SQL 实例和数据库所在的整个服务器,并将其还原到另一台机器上,我可以使用在生成完整服务器快照后(在原始服务器上)发生的数据库备份,将新的恢复服务器最新?

我需要哪些类型的数据库备份才能做到这一点?我猜如果我有当前数据库的完整备份就足够了,但是如果我上次的完整备份与服务器快照一样旧(甚至更早),我可以使用该完整备份 + 任何差异,事务日志等在该完整备份之后进行的备份,以使我在新恢复的服务器上的服务器快照恢复最新?

示例(为简单起见,我们假设每个备份都立即完成):

服务器 1 在每天下午 5:30 拍摄完整的服务器时间点快照。

服务器 1 上的数据库 A 在每天晚上 11:30 进行每晚的完整备份。

数据库 A 还具有全天每小时进行的例行差异备份。

数据库 A 还具有全天每 15 分钟备份一次的事务日志。

场景一:

服务器 1 在晚上 11:50 崩溃。

从当天早些时候下午 5:30 开始,服务器 2 从服务器 1 的完整服务器时间点快照备份中恢复。

我们能否使用从晚上 11:30(崩溃前 20 分钟)开始的数据库 A 的完整备份(从服务器 1)将数据库恢复到晚上 11:30 时的状态,然后使用晚上 11:45 的事务日志备份使数据库尽可能最新(在服务器 2 上)?

场景二:

服务器 1 在晚上 11:20 崩溃。

从当天早些时候下午 5:30 开始,服务器 2 从服务器 1 的完整服务器时间点快照备份中恢复。

我们可以使用前一天晚上 11:30 的数据库 A 的完整备份(因为我们今天在崩溃之前还没有进行备份),然后是前一天晚上 11:30 之间的所有每小时差异备份,直到晚上 11 点,然后是 11:15 的事务日志备份,以使数据库尽可能更新(在服务器 2 上)?

在上述任一情况下是否有更有效的恢复方式和/或数据库备份类型和频率的更好处理方式?

sql-server backup
  • 2 2 个回答
  • 87 Views

2 个回答

  • Voted
  1. Best Answer
    David Browne - Microsoft
    2020-05-03T07:48:32+08:002020-05-03T07:48:32+08:00

    我可以使用在生成完整服务器快照后(在原始服务器上)发生的数据库备份来更新新恢复的服务器吗?

    不可以。您不能手动将 ONLINE 数据库切换到 RESTORING 并应用日志备份,也不能附加数据库并将其保持在 RESTORING 状态。

    这将是一个有用的功能,并且之前已请求过。参见例如这里。

    我需要哪些类型的数据库备份才能做到这一点?

    任何完整备份,可选的差异备份,然后是从该点开始的日志备份。请注意,它不必是最新的完整备份,只要您将所有日志备份都恢复到该完整备份即可。完整备份和差异备份永远不会破坏日志链。

    • 3
  2. osiris_v6
    2020-05-03T00:49:32+08:002020-05-03T00:49:32+08:00

    快照不是备份。为了防止崩溃和在发生故障时进行恢复,您需要备份。备份的频率取决于 RPO、RTO、SLA-s。

    数据库快照不是数据库的完整副本,它与源数据库位于同一服务器实例上。如果数据库损坏或丢失,您不能从快照恢复,也不能在另一台服务器上恢复。

    快照是数据库的只读状态,应该用于报告、审计或开发目的。

    请查看以下文档。

    https://learn.microsoft.com/en-us/sql/relational-databases/databases/database-snapshots-sql-server?view=sql-server-ver15

    • 0

相关问题

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

  • Oracle 中的数据库备份 - 导出数据库还是使用其他工具?

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

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

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

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