标签: recovery

内存映射文件中的数据是否保证按顺序刷新?

我正在尝试实现一种文件存储机制,该机制在单个文件中保存大量可变大小的记录,并保证记录集始终可以恢复到一致状态,即使系统在硬件级别出现故障也是如此.

到目前为止,我已经提出了各种方案,按顺序编写数据.某些数据将附加到每条记录的末尾,以确认写入成功.但是,如果在刷新时数据不必按顺序写入磁盘,则可以在内容数据之前写入确认数据.

有两种明显的方法,但两者都是不可取的:

  1. 刷新内容,然后写下确认并刷新.添加额外的刷新可能会降低性能.
  2. 在确认中包含校验和(需要阅读内容以确认其有效).

我在Windows(32和64位)和.Net 4.0的内存映射文件实现上使用C#

paging recovery memory-mapped-files

5
推荐指数
1
解决办法
1102
查看次数

将保存的 TortoiseSVN 身份验证移动到另一台机器上?

有没有办法将保存的 TortoiseSVN 登录名/密码从机器移动到网络存储库?刚买了一台新机器,知道我的用户名但不记得我登录到存储库。

我知道 TortoiseSVN 在 %appdata%\Subversion\auth 的目录中保存了一些身份验证信息

移动我在 svn.simple 找到的文件;我在其中以明文形式看到我的用户名,但密码已加密。我还在文件中看到了“wincrypt”,这是调用的加密功能。

通常我只是让 SVN 管理员为我重置它,但他和 SVN 的另一个管理员一样在下周休假。

我可以深入了解 TortoiseSVN 的源代码并查看身份验证是如何完成的,但必须有一种更简单的方法。如果有用的话,我可以在旧机器的成功身份验证上运行 Wireshark。

svn authentication passwords tortoisesvn recovery

5
推荐指数
1
解决办法
8298
查看次数

ibdata文件中的日志序列号不匹配

每当我启动我的Mysql数据库时,我都会在error_log中看到这个:

131015 12:07:06 [注意]插件'FEDERATED'被禁用.131015 12:07:06 InnoDB:InnoDB内存堆被禁用131015 12:07:06 InnoDB:Mutexes和rw_locks使用Windows互锁功能131015 12:07:06 InnoDB:压缩表使用zlib 1.2.3 131015 12:07:06 InnoDB:初始化缓冲池,大小= 16.0M 131015 12:07:06 InnoDB:完成缓冲池的初始化131015 12:07:06 InnoDB:支持的最高文件格式是Barracuda.InnoDB:ibdata文件中的日志序列号与InnoDB不匹配:ib_logfiles中的日志序列号!131015 12:07:06 InnoDB:数据库没有正常关闭!InnoDB:开始崩溃恢复.InnoDB:从.ibd文件中读取表空间信息... InnoDB:从doublewrite InnoDB恢复可能的半写数据页:缓冲区... 131015 12:07:07 InnoDB:等待后台主题开始131015 12:07:08 InnoDB:5.5.32开始; 日志序列号1595695 131015 12:07:08 [注意]服务器主机名(bind-address):'0.0.0.0'; port:3306 131015 12:07:08 [注意] - '0.0.0.0'解析为'0.0.0.0'; 131015 12:07:08 [注意]在IP上创建的服务器套接字:'0.0.0.0'.

我已经尝试过mysqlcheck -u root -p --repair -A来修复数据库.这报告所有表都是正常的.

我也尝试过将innodb_force_recovery设置为4

我试过SET GLOBAL innodb_fast_shutdown = 1; 并关闭数据库.

这些都不会使错误消失.

如何修复数据库中的InnoDB表?

mysql recovery

5
推荐指数
1
解决办法
2万
查看次数

如何对 etcd 进行备份和(时间点)恢复?

据我所知,etcd 将其数据存储在某种分布式日志中。

是否有工具可以备份这些日志并从中恢复?这是否也支持时间点恢复(以及我们可以追溯到多远)?

额外要点:这些日志是否还包含审计跟踪(即谁更新了数据,假设客户端身份验证已到位)?

backup recovery auditing point-in-time etcd

5
推荐指数
1
解决办法
840
查看次数

崩溃后Elasticsearch无法恢复

跑出磁盘空间,搞砸了弹性搜索碎片.现在有三个节点为红色,两个节点已恢复,状态为黄色.ES在CPU上运行150%,在内存上运行很高,试图恢复它们.但看起来有一些版本匹配冲突.

我清理了磁盘空间并删除了分片的translog以停止从translog加载.但令人惊讶的是,translog再次被创建!

请分享如何阻止此尝试从translog恢复并恢复正常索引操作.我不想删除分片数据.

[2014-10-31 03:11:43,742][WARN ][cluster.action.shard     ] [Angela Cairn] [western_europe][4] sending failed shard for [western_europe][4], node[x5M73qVXS5eZIBdz40boEg], [P], s[INITIALIZING], indexUUID [wy-tIJqdQiynz5SGQ2IrGA], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[western_europe][4] failed to recover shard]; nested: ElasticsearchException[failed to read [tweet][527924645014818817]]; nested: ElasticsearchIllegalArgumentException[No version type match [101]]; ]]
[2014-10-31 03:11:43,742][WARN ][cluster.action.shard     ] [Angela Cairn] [western_europe][4] received shard failed for [western_europe][4], node[x5M73qVXS5eZIBdz40boEg], [P], s[INITIALIZING], indexUUID [wy-tIJqdQiynz5SGQ2IrGA], reason [Failed to start shard, message [IndexShardGatewayRecoveryException[[western_europe][4] failed to recover shard]; nested: ElasticsearchException[failed to read [tweet][527924645014818817]]; nested: ElasticsearchIllegalArgumentException[No version type …
Run Code Online (Sandbox Code Playgroud)

recovery elasticsearch

5
推荐指数
1
解决办法
4545
查看次数

如何从已删除的 Docker 容器中恢复数据?如何将其重新连接到数据?

比方说,我删除了一个只有这里有数据的 PostgreSQL docker 容器:

$ docker inspect postgres1
...
"Source": "/var/lib/docker/volumes/4948af..../_data"
"Destination": "/var/lib/postgresql/data"

$ docker rm postgres1
Run Code Online (Sandbox Code Playgroud)

如果没有其他容器引用该卷--volumes-from,即使文件仍在磁盘上的某个位置,我也无法再重新连接到该卷:/var/lib/docker/volumes/...

这给我带来了两个问题:

  1. 如果我不知道目录的卷 UUID,定位数据最佳方法是什么?
    • Doingls /var/lib/docker/volumes/向我展示了一百个这样的目录f77c92...
    • 使用find . -name "*postgres*"我仍然得到几十个这样的结果...10e0dc/_data/postgresql.conf,没有明确的方法来识别正确的结果。
  2. 在目录中找到正确的数据后,如何将新创建的 postgres 容器重新连接到此数据/var/lib/docker/volumes/4948af.../_data

我每天都有一个完整的系统 rsync 备份。这如何有助于恢复(无法恢复整个系统)?

database postgresql recovery docker

5
推荐指数
1
解决办法
5547
查看次数

修复从提交到提交的 git 损坏链接

我遇到过这样的情况:git fsck调用返回多个损坏的链接。这是因为,对于此存储库,rm运行了一个命令并删除了多个写保护文件(发生了错误)。该存储库也没有最近的备份(再次犯了错误)。由于正在使用 Git,存储库并未完全丢失,但一些历史记录已被打乱。直到最近要重新同步到源时,这一点才被注意到,但由于历史记录被破坏,这一点失败了。

我想修复此历史记录(如果可能),以便它可以与上游源合并。我认识到我将无法取回完整的历史记录,因为某些文件刚刚消失,但我想在正常工作的情况下尽可能保留其中的内容。

我审阅了 Linus 的电子邮件“如何恢复损坏的 blob 对象”(麻省理工学院托管副本),并且还查看了:

如何恢复因硬盘故障而损坏的 Git 对象?

修复损坏的 Git 存储库

与许多其他人一起,但我没有看到太多关于从提交到提交错误的断开链接的建议。请注意,我确实制作了此存储库的副本,因此我不会擦除任何内容。

的结果git fsck

    $ git fsck
    broken link from commit <SHA1>
                  to commit <SHA2>
    broken link from   tree <SHA3>
                  to   blob <SHA4>
    ...
    dangling blob <SHA5>
    missing commit <SHA2>
    missing blob <SHA4>
    ...
Run Code Online (Sandbox Code Playgroud)

当我最终通过 git 历史记录时,git log我收到错误

error: Could not read <SHA2>
fatal: Failed to traverse parents of commit <SHA1>
Run Code Online (Sandbox Code Playgroud)

它靠近最后一个备份存在的位置,但不完全在那里,所以我没有重叠的覆盖范围。我想尝试反向遍历历史,认为我可以将日志从最旧的提交移动到最新的提交,但是

$ git log --reverse …
Run Code Online (Sandbox Code Playgroud)

git recovery commit corruption

5
推荐指数
2
解决办法
2264
查看次数

撤消 git filter-repo 并恢复已删除的存储库

我做了一个 git filter-repo ,现在所有文件都被删除了。VS code gitgraph 显示该存储库没有提交。有什么办法可以恢复我的仓库吗?我的整个项目被删除,它是一个本地存储库,所以我没有任何备份。我已经为此工作了几个月。这太痛苦了。请帮忙。我很绝望。

我在 .git 的 filter-repo 文件夹中有一个提交映射文件,其内容如下:

old                                      new
2dcc8b30c4fb13d32f7b448c77a487de1a1d9bd5 0000000000000000000000000000000000000000
4e6915559685c96fe9dc336e1c929f129b603cbc 0000000000000000000000000000000000000000
8bf8d9d278523bf10d50b568eab1f8e5ac6cf8eb 0000000000000000000000000000000000000000
06a897ea4763c3f6034ccdd15e906580dda5f27b 0000000000000000000000000000000000000000
92e8933b223cd7e40bc80f9ac0a2853978bede3d 0000000000000000000000000000000000000000
0b7e2ade7c560078178cb66c0b3acd7d50b5fc10 0000000000000000000000000000000000000000
c296e3f6dd1cfcea8c3ec536c21d17112a9a0222 0000000000000000000000000000000000000000
8ce24d364c43023585109ef680dc2e4dadeeeff6 0000000000000000000000000000000000000000
e9614633a8463e3cdcf0a47206e0639a06aa7527 0000000000000000000000000000000000000000
66f3b8712aa57eaa396251dcc0f5f3285db5ff3b 0000000000000000000000000000000000000000
44442eace317b2b19063cc8c31ffe4a81d216ee7 0000000000000000000000000000000000000000
42877255047bf0376002b98173607a6a89bfab71 0000000000000000000000000000000000000000
54db7f7714302506a137c7b28bcb9a2bad7fc2b4 0000000000000000000000000000000000000000
0f3416c5c8fd3951d7e59a4d23db63f74b9383a3 0000000000000000000000000000000000000000
56379fdd472c102dd50691d9294d27da4b7c9a3d 0000000000000000000000000000000000000000
cc6bb41310efe3e5c2d0f58c956b3dcfd2b9e41a 0000000000000000000000000000000000000000
d7b1b929c943d923e91640b5bcdf49003c6f97cd 0000000000000000000000000000000000000000
f70375aae8340cccfb3c7db235e08464d9cfd1d8 0000000000000000000000000000000000000000
1dfe31b45b82aeb7ef514d81f26547736d60501a 0000000000000000000000000000000000000000
d19e2c4829a2c38c1a0c2adbe60e5a9ca70f7700 0000000000000000000000000000000000000000
7961c20ba12b49ef13996d34f5c4ac6038848418 0000000000000000000000000000000000000000
26ca13021b43c0b8b1b4e6a03948eb091ac6eb12 0000000000000000000000000000000000000000
f03d117ed04f449ae4f4ec1e61e895883acbe491 0000000000000000000000000000000000000000
f0d6ee7e4c778d28f65c864752f0e5cb80648fca 0000000000000000000000000000000000000000
5ce120582976dce9e8921c26adfdd7e5f23814c8 0000000000000000000000000000000000000000
818cd9397dbaa6278f0c33d9ce0ee5115c0c071b 0000000000000000000000000000000000000000
c4cd1317a269f9dc59ded0b9888754c6c205b711 0000000000000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

和一个引用映射文件:

c4cd1317a269f9dc59ded0b9888754c6c205b711 0000000000000000000000000000000000000000 refs/heads/master
Run Code Online (Sandbox Code Playgroud)

有什么办法可以恢复吗。这是一场灾难。我真的哭了。请帮忙

编辑:我使用的命令

D:\my_project>git filter-repo --force --subdirectory-filter back\ 
Parsed …
Run Code Online (Sandbox Code Playgroud)

git recovery repository

5
推荐指数
1
解决办法
2416
查看次数

c#File.Delete恢复?

有没有办法恢复已通过该File.Delete()方法以编程方式删除的文件?

程序删除了一些我需要恢复的文件,它们不会出现在回收站中.

c# recovery file

4
推荐指数
1
解决办法
3488
查看次数

mysql slave复制失败

我有一种情况,dns服务器获取其主服务器的记录,所有记录正在从主服务器复制到从服务器,从服务器用于解析.mysql服务器升级后复制中断了.mysql服务器停止,日志文件的名称和日志位置发生了变化,直到mysql被恢复.现在我知道如果我更改日志位置和日志文件名,复制将启动,但我会错过很多更新,我不想要.如何重新启动主从复制而不会丢失主服务器上的任何更新.每次更新都很重要.以下是奴隶状态的一些信息.

 Slave_IO_Running: No
 Slave_SQL_Running: Yes

Last_IO_Errno: 1236
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
Run Code Online (Sandbox Code Playgroud)

谢谢

mysql replication debian recovery

4
推荐指数
1
解决办法
8044
查看次数