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 / 问题 / 900
Accepted
garik
garik
Asked: 2011-01-27 02:56:40 +0800 CST2011-01-27 02:56:40 +0800 CST 2011-01-27 02:56:40 +0800 CST

如何使用旧的完整备份和当前日志文件恢复数据库

  • 772

发生了什么?我的客户丢失了硬盘。他必须恢复数据库。

  • 他有 15 天前的数据库的完整备份。
  • 他有这个数据库的ldf(日志)文件。
  • 他没有mdf文件(它位于该硬盘上)。

如果他在 15 天前进行完整备份时使用 SQL Management Studio 中的标准选项(数据库结构仍然发生变化),它是否有足够的组件来恢复 SQL Server 2008 数据库?是否可以至少恢复崩溃时刻实际的数据库结构(可以从其他来源重新生成数据)?

最后:

1)是否可以恢复所有数据库(数据+结构)

2)是否可以恢复数据库结构

谢谢你。

添加:

SQL Server Enterprise(6.1 或 5.x)的 LiteSpeed帮助了我。

1) 数据库从完全备份(15 天前的备份)中恢复

2) 然后 LiteSpeed 使用 mdf 文件的副本(参见上一步)和保存的 ldf 文件(崩溃时的日志)生成所有更改的 sql 脚本(DDL/DML)。

3)然后在步骤1中将此脚本应用于恢复的数据库)

无论如何,此应用程序存在很多问题(错误),但它至少有助于恢复数据库结构更改。

sql-server-2008 restore
  • 5 5 个回答
  • 7602 Views

5 个回答

  • Voted
  1. Carol Baker West
    2013-02-15T02:51:28+08:002013-02-15T02:51:28+08:00

    您的数据库必须处于完全恢复模式,并且在过去 15 天内没有创建任何事务日志备份。前提是在完整数据库备份之后发生的所有事务仍在您的 LDF 文件中。否则,您的 LDF 和完整数据库备份事务之间会存在差距,您将无法成功恢复所有内容(可能就是这种情况)

    在同一场景中可以使用另一个工具从 LDF 文件中读取事务并为它们创建重做脚本 - ApexSQL Log。

    • 2
  2. Eric Humphrey - lotsahelp
    2011-01-27T03:18:55+08:002011-01-27T03:18:55+08:00

    LDF 不是日志备份,因此我认为您无法像上次完整备份期间那样恢复数据库。如果自上次完整备份以来您有事务日志备份,您也可以恢复这些备份并让您恢复到最近的备份。

    除非有人回答知道一些技巧,否则恐怕您已经丢失了 15 天的数据。

    • 1
  3. Gaius
    2011-01-27T03:18:59+08:002011-01-27T03:18:59+08:00

    如果您拥有从上次完整备份到现在的所有事务日志备份,并且数据库在完整备份模式下运行,那么是的,您可以恢复到现在。无论如何,您应该依靠备份来截断事务日志...

    • 1
  4. Best Answer
    user698
    2011-01-27T10:48:13+08:002011-01-27T10:48:13+08:00

    如果您的数据库处于简单恢复模式,则您无法执行时间点恢复。如果数据库不是简单恢复模型,并且您在故障点之前有日志备份,而日志链没有中断,那么您可以按照所指出的那样进行尾部日志备份(如果 LDF 完整且命令成功)由 yrushka 出并执行数据库的时间点恢复,而不会丢失任何数据。如果到目前为止还没有日志备份,那么不幸的是什么也做不了。

    另一种选择是,如果您的数据库处于完整/批量日志恢复模型并且没有进行日志备份,则可以使用工具(例如来自 Idera、LiteSpeed)读取事务日志,这将允许您生成命令来自事务日志文件,一旦恢复,就可以在数据库上重播。

    此外,如果您有完整备份和到目前为止的所有日志备份,那么您可以将它们还原到最新的可用日志备份。然后使用上面的日志阅读器工具,您可以从 LDF 文件生成其余命令并针对数据库重放它们。

    • 1
  5. yrushka
    2011-01-27T03:30:08+08:002011-01-27T03:30:08+08:00

    仅当到目前为止您有完整备份和日志备份并且它们之间没有间隙(损坏的日志备份)时,您才能使用 LDF 文件恢复数据库。可以备份当前的日志文件。它称为日志尾备份,可在还原过程的最后使用。您将在恢复 FULL + ALL LOG 备份后最后使用 Recovery 选项恢复此备份

    BACKUP LOG your_db_name TO DISK = 'disk:\location' WITH INIT, NO_TRUNCATE;

    • 0

相关问题

  • 连接不同地理区域的数据库的最佳实践

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

  • 我在索引上放了多少“填充”?

  • 是否有开发人员遵循数据库更改的“最佳实践”类型流程?

  • 从 SQL Server 2008 降级到 2005

Sidebar

Stats

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

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

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

    • 4 个回答
  • Marko Smith

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

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +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
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +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