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 / 问题

问题[recovery](dba)

Martin Hope
ejtt
Asked: 2023-04-06 23:19:17 +0800 CST

关于预写日志和恢复的一般问题

  • 4

我最近了解了像 Cassandra 这样的键值存储环境中的预写日志和故障恢复,并有一些后续问题:

  1. WAL 是否被持久化到更小的快照中,以便我们只需要从最新的快照而不是整个提交历史中恢复?保留这些快照并从中恢复的高级机制是什么?
  2. 为了性能写入磁盘时,日志会被批处理吗?这是否有永久丢失数据的风险?
  3. 当机器在从 WAL 恢复期间出现故障时会发生什么?我们最终会在数据库中得到部分结果吗?下一次数据库启动时,我们如何从该状态恢复?
recovery
  • 1 个回答
  • 32 Views
Martin Hope
Norba
Asked: 2022-08-25 04:34:41 +0800 CST

PostgreSQL 停止连续恢复而没有错误

  • 0

我在 Windows Server 上运行了一些处于连续恢复模式的 Postgresql 10 实例。偶尔他们只是停止恢复而没有给出任何错误,就像在这个示例日志文件中一样(在 CSV 格式中,为了清楚起见,我删除了一些字段):

2022-08-23 19:42:02.391,"restored log file ""000000010000029F0000001A"" from archive"
2022-08-23 19:42:07.638,"restored log file ""000000010000029F0000001B"" from archive"
2022-08-23 19:42:13.276,"restored log file ""000000010000029F0000001C"" from archive"
2022-08-23 19:42:18.464,"restored log file ""000000010000029F0000001D"" from archive"
2022-08-23 19:42:18.699,"redo done at 29F/1CFFF7F8"
2022-08-23 19:42:18.708,"last completed transaction was at log time 2022-07-20 12:49:38.247406-03"
2022-08-23 19:42:24.304,"restored log file ""000000010000029F0000001C"" from archive"
2022-08-23 19:42:48.625,"selected new timeline ID: 2"
2022-08-23 19:43:13.718,"archive recovery complete"
2022-08-23 19:43:27.746,"database system is ready to accept connections"

即使归档目录中存在序列中要恢复的下一个 wal 文件(000000010000029F0000001D,000000010000029F0000001E),也会发生这种情况。我正在使用的恢复命令是这样的:

restore_command = '"C:/program files/postgresql/10/bin/pg_standby.exe" -s 2 D:/archive/127 %f %p %r 2>>D:/archive/127/pg_standby.log'

我的问题是,有什么方法可以找出导致实例停止恢复的原因吗?

postgresql recovery
  • 1 个回答
  • 30 Views
Martin Hope
Sigmund
Asked: 2021-09-11 06:31:28 +0800 CST

数据库恢复 UNDO 阶段中的补偿日志记录 (CLR)

  • 3

补偿日志的重做信息对应于日志条目的撤消信息,这使得在撤消阶段必须创建它们。

在我看来,CLR 重做信息与触发它们的日志的撤消信息相同。

但是不应该是他们有REDO信息以便在中断恢复过程的情况下取消执行的UNDO操作吗?

这是一个例子:

让 T2 成为失败交易:

<#55, T2, P3, J=J+9, J = J-9, #53>

J=J+9 是重做操作,J = J-9 是撤消操作。

现在,在重做阶段附加到日志文件的 CLR 将是:

<#56, T2, J=J-9,__, #53>

J=J-9 是原始日志条目的撤消操作,作为 CLR 中的重做信息。如果恢复中断,日志条目#56 将在重做阶段执行。

CLR 的目的是确保重新启动恢复过程并再次运行它总是会导致相同的结果。在重新运行的重做阶段运行 J=J-9 操作如何确保这一点?

有人可以向我解释一下吗?

database-theory recovery
  • 1 个回答
  • 214 Views
Martin Hope
Yimin Rong
Asked: 2021-01-31 15:42:36 +0800 CST

如何使用现有的 ib* 文件设置 mysql docker 容器?

  • 0

与上一个问题相关,我正在尝试ib*从崩溃的服务器中的现有文件中恢复一些数据。数据库版本是5.1.69,太老了。回应之一是安装 MySQL 5.5,因为它应该仍然能够导入 5.1,但即使这样在当前系统上也太旧了,而且只会遇到更深层次的兼容性问题。

同一问题中的“NBK”在评论中建议使用带有旧版本 MySQL 的 docker 文件。我决定尝试这种方法。我能够安装 docker 并拉取vsamov/mysql-5.1.73图像,但我现在被困在如何将ib*文件放入 docker 容器中。

我想我需要运行映像以使其具有容器 ID,但如果它正在运行,则ib*文件被锁定,所以我不确定如何继续。如果有人有这方面的经验,或者可以提供参考,将不胜感激。

mysql recovery
  • 1 个回答
  • 131 Views
Martin Hope
hunterex
Asked: 2021-01-08 03:54:02 +0800 CST

如何在 Postgres 中使用 wal_level 将数据库的恢复模式设置为简单,例如 Microsoft SQL Server 的操作方式?

  • 0

在 Microsoft SQL Server 中,ALTER DATABASE CURRENT SET RECOVERY SIMPLE WITH NO_WAIT;会将数据库的恢复模式设置为简单,以便可以重复使用事务日志文件空间。

在 Postgres 中,wal_level可用于此目的。

  1. 是否等同于 SQL Serverwal_level的?minimalRECOVERY SIMPLE
  2. 如何wal_level在 Postgres 命令中设置?- 到目前为止,谷歌搜索告诉我这wal_level是在配置文件中设置的。
  3. 是否可以设置wal_level为minimal数据库?如果是,如何?

谢谢你。

postgresql recovery
  • 1 个回答
  • 300 Views
Martin Hope
Yimin Rong
Asked: 2020-10-26 06:12:30 +0800 CST

支持 MySQL 5.1.69 ib* 文件的最新版本

  • 1

想从崩溃的服务器中恢复 InnoDB 数据。上次备份表明它正在运行 MySQL 服务器 5.1.69。在进行恢复时,日志文件显示当前 MySQL 不支持这么久的ib*文件。

我尝试从档案中安装 5.1.69 并从源代码编译,但不行,兔子洞的问题。

有人知道支持 5.1.69ib*文件的 MySQL 最新版本吗?将尝试作为最后的手段。如果还是不行,就用最新的备份和一些辅助数据尽量重建。

mysql recovery
  • 1 个回答
  • 28 Views
Martin Hope
Rauf Asadov
Asked: 2020-08-26 02:03:30 +0800 CST

使用 -T3608 和使用 -f 启动实例有什么区别?

  • 0

出于学习目的,我在测试环境中模拟了模型数据库的损坏。在阅读有关它的其他博客和文章时,我坚持这个问题,使用未记录的 -T3608 和 -f 标志启动 SQL Server 服务有什么区别?

当我尝试使用 -f 启动服务时,收到错误消息并且服务没有启动。但是,在-T3608的情况下,它开始顺利。对于 -T3608 标志,我读到,-T3608 启动所有数据库而不执行恢复,而 -f 以最少的配置启动实例。什么是最小配置,我找不到有关它的信息。

sql-server recovery
  • 1 个回答
  • 689 Views
Martin Hope
Felix
Asked: 2020-08-19 19:57:44 +0800 CST

SQL Server 数据库尝试自动恢复自身(并卡住)

  • 0

我目前遇到一个问题,SQL Server 数据库每天早上都处于“恢复挂起”状态。没有人启动数据库恢复,服务器自己决定这样做。

恢复过程卡住,SQL Server 停止工作,因为达到了内存限制。

暂时,我可以通过重新启动MSSQLSERVER进程然后使数据库脱机并重新联机来解决它。但是,由于这种情况现在似乎每天都在发生,因此这是一种不可接受的解决方法。

我很想知道:

  • SQL Server 自动启动这种自动还原过程的可能原因是什么
  • 是否有任何日志/事件我可以寻找,找出原因。
  • 我该如何解决它:)

任何帮助或提示将不胜感激。


更新:数据库在 中recovery pending,而不是在restore pending. SSMS 以德语安装,并没有显示英语状态。

sql-server recovery
  • 1 个回答
  • 303 Views
Martin Hope
Zoinky
Asked: 2019-09-13 05:02:11 +0800 CST

丢失的数据,如何恢复(sql server)

  • 1

我们目前有一个备份已设置为简单的数据库,每天晚上都在备份(我们有过去 7 天的备份),是否可以找到在六月删除的记录?

数据库功能齐全,因此没有损坏或任何东西,我们只想看看我们是否可以在当前日志文件中找到已删除的记录。我使用了 apexsql 日志,但这表明什么都没有,假设因为在简单模式下完成备份时,它几乎会丢弃日志。

另一个问题是,假设我希望将来能够获取已删除的记录,我应该将我的备份设置为“完整”,这是否足够好,还是我还需要进行批量日志备份?

我想有没有一种简单的方法可以解释什么模式意味着什么以及我得到什么类型的恢复。ms 文章https://learn.microsoft.com/en-us/sql/relational-databases/backup-restore/recovery-models-sql-server?view=sql-server-2017谈到了这一点,但不清楚对我来说,当需要获取特定的已删除/更改记录时,在不同情况下需要发生什么。

sql-server recovery
  • 3 个回答
  • 629 Views
Martin Hope
SevenFivePE
Asked: 2019-09-01 07:10:24 +0800 CST

如何在具有恢复简单模型的同时从一个表中恢复已删除的行?我正在使用 Microsoft SQL Server 2014 [重复]

  • 0
这个问题在这里已经有了答案:
如何找回一些已删除的记录? (3 个回答)
3年前关闭。

如何在恢复 SIMPLE 模型时从表中恢复已删除的行?数据库位于 Microsoft SQL Server 2014 中。fn_dblog在数据被新数据覆盖之前,我已设法在表中找到它们。我可以用它做任何事吗?

SELECT * FROM fn_dblog(NULL, NULL) WHERE Operation = 'LOP_DELETE_ROWS'

我还找出了删除行的具体时间。

USE Databasename
GO
SELECT
[Current LSN],  Operation, [Transaction ID], [Begin Time], [Transaction Name], [Transaction SID]
FROM
fn_dblog(NULL, NULL)
WHERE
[Transaction ID] = ‘000:000001f3'
AND
[Operation] = 'LOP_BEGIN_XACT'

我读过 SIMPLE Recovery 不支持事务日志备份。但是真的没有办法恢复这些数据吗?

sql-server recovery
  • 1 个回答
  • 386 Views

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