标签: backup

Percona xtrabackup 是我 500GB MySQL 备份的正确选择吗?

我有一个 500GB 的 MySQL 数据库,主要由 Innodb 表和一个大 (200GB) MyISAM 表组成。我当前的备份策略是将 db 文件复制到外部硬盘驱动器。这会导致约 4 小时的停机时间。我的需求:

  1. 低成本。
  2. 恢复时间可能很长。无需实时复制。
  3. 可以处理 1 周到 2 周范围内的数据丢失。
  4. 希望备份的停机时间尽可能短,但最多可以忍受 2 小时。

目前正在考虑尝试迁移到 Percona xtrabackup。它是否适合我的用例?我特别担心它会锁定 MyISAM 表和学习曲线。

mysql innodb myisam backup xtrabackup

8
推荐指数
1
解决办法
6457
查看次数

收缩 SQL Server 事务日志

我目前不得不处理失控的 SQL Server 事务日志。免责声明:我不是 dba,这不是我的专业领域,所以请耐心等待。

目前,我有一个500MB 的数据库的115GB事务日志文件,该文件(显然)在一段时间内管理不善,无法进入这种状态。

首要任务是在我们用完之前回收这个文件占用的磁盘空间!有人告诉我增加驱动器的大小不是一种选择,即使是暂时的,而且根据过去的增长,我们需要尽快采取行动。

据我了解,最好的方法是将数据库保持在完全恢复模式,但定期备份日志文件,在一段时间内对其进行监控并调整初始大小和增量以适应。一切都好。

鉴于我们在午夜定期进行完整的数据库备份,我是否可以安全地将数据库暂时置于简单恢复模式(在这些备份之一运行后),缩小日志文件以回收(几乎所有)空间和然后使用上述备份策略将其放回完全恢复?

我的想法是,如果这个时候发生了什么事情,我们可以简单地恢复完整备份而不使用日志。

更新

回复一些答案和评论的一些额外细节:

  • 我们确实希望保留进行时间点还原的能力,因此数据库应保持在完全恢复模式。

  • t-log 文件变得如此大的原因是它从未被备份过。验证为 log_reuse_wait_desc 返回“LOG_BACKUP”。

sql-server backup restore sql-server-2012

8
推荐指数
1
解决办法
1852
查看次数

大型 `mongodump` 后跟 `mongorestore`

我有一个相当大(约 240GB)的 Mongo 数据库,我需要通过缓慢的网络将其传输到新服务器上。

传统上针对这些情况,我发现一个mongodump后跟一个mongorestore已经很多比更快的db.cloneCollection()方法。但是,我今天意识到,执行 fullmongodump后跟mongorestorea 有点浪费(我认为),因为我先完成所有数据传输,然后再进行所有插入。

我更喜欢从旧 mongo 传输数据(mongodump步骤),同时将可用数据插入新数据库(mongorestore步骤)。

有谁知道如何在 MongoDB 中并行化转储和插入过程?(这实际上会更快吗?)

mongodb backup restore

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

在 SQL Server 2016/2014 中还原 SQL Server 2012 备份文件

我有 SQL Server 2012 备份文件,想将这些文件还原到 SQL Server 2016/2014。它会起作用吗?

我需要在卸载 SQL Server 2012 之前找出这一点。

backup migration restore sql-server-2012 sql-server-2014

8
推荐指数
2
解决办法
3万
查看次数

恢复 Sql Server 数据库的最快方法

在清理阶段,我们的 10000 个集成测试中的每一个都需要在每个集成测试完成之前将数据库恢复到其原始的“干净”状态。运行所有测试需要时间,80% 的时间花在数据库还原操作期间。

恢复操作只是从光盘中获取备份并恢复它。我现在想知道是否有办法优化这一点。我正在考虑的一种选择是将备份文件的位置从磁盘更改为内存。那可能吗?

另一种选择是仅拍摄表数据的快照,并仅将其保存为备份数据。我假设备份文件变得更小,因此恢复速度更快。那可能吗?

理想情况下,我希望避免恢复,而只是重置受影响的数据(每个测试产生的数据)。类似于:“恢复自测试开始以来修改过的任何表行”

我有哪些选择?我不是这方面的专家,但感觉我的问题应该有一个简单的解决方案。

sql-server backup restore

8
推荐指数
1
解决办法
4509
查看次数

mysqldump 不导出所有行或 mysql 不导入

我有一个包含近 400 万行的表。我将它导出mysqldump并通过它传输scp到另一台服务器并使用mysql命令导入它,但现在它缺少几十万行。我已经多次重复这个过程,每次都丢失了不同数量的行。

我尝试过,mysqldump --compatible=ansi因为在一次导出中,由于某种原因,语法中有错误。该转储最终拥有最多的导入行,但仍然缺少数十万行。

编辑:我尝试了 -f 选项,但在返回命令提示符之前它仍然打印出一个 mysql 错误:

ERROR 1064 (42000) at line 41458: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '286,'54.227.215.70','http://example.com/'),(81547367,'CbLc4lXH',1501560286,'54.7' at line 1
Run Code Online (Sandbox Code Playgroud)

我不确定它是否因为错误而退出,但我知道我在导入后丢失了大约一百万条记录。该文件大小为 40GB,我无法再访问以前的 mysql 服务器来进行另一次导出。我有我需要的所有数据。我只是无法将其导入。

mysql mysqldump backup

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

使用 FILESTREAM 文件组备份和恢复 SQL 服务器数据库

我使用 SQL Server 并且有一个包含两个文件组的巨大数据库:

  • Primary : 包含除大文件 (1MB+) 之外的所有数据
  • FILESTREAM(读/写):其中包含大文件

现在,备份方案是:

  • 每个星期五获得完整备份(凌晨 2 点)
  • 每周除周五外的每一天都获得差异备份(凌晨 2 点)

由于数据库很大,并且在远程服务器上生产,因此每当我想将数据库带到本地环境以创建测试数据库(每周一次)时,我必须同时携带主数据库和文件流。

我希望能够更改备份和还原的完成方式,只需引入主文件组,而忽略文件流。通过这种方式,每周我只会带来主要文件组,而不是所有假设文件流的信息。

我认为可能存在很多问题,并且在访问文件时所有文件流引用都可能丢失。我想知道是否可以在执行备份时修改所有文件流列的内容,或者使用测试环境中托管的不同文件流。此外,我只听说过一些文件组的零碎还原,但我对如何执行它有很多疑问。

问题1:我可以有这个场景吗?

问题 2:只有一个完整备份并将差异备份/事务日志带入测试环境是个好主意吗?

问题 3:我可以有更好的场景来备份和恢复吗?

我全神贯注于建议。如果您有任何示例案例,请向我展示 T-SQL 查询。

sql-server backup restore filestream

8
推荐指数
1
解决办法
697
查看次数

备份 SQL Server 2016 实例登录

我需要备份 SQL Server 2016 的实例,我已经每晚备份了所需的数据库,但是我需要备份实例的用户和角色..... 我该怎么做?内置作业或自定义 T-sql 我可以安排运行吗?

如果有人能指出我正确的方向,我对 SQL 不太擅长

backup sql-server-2016

8
推荐指数
1
解决办法
6117
查看次数

如何判断备份日志链是否损坏?

我遇到过在服务器上进行本机备份的情况。
我碰巧看到msdb有一个第三方备份工具 ( AppAssure) 也在使用 VSS (kind-of) backup to virtual device

在某个时间间隔内,AppAssure(对 进行备份VIRTUAL DEVICE)正在执行 a,COPY_ONLY backup而在其他时间间隔内,它正在FULL backup破坏日志链。

有没有办法(T-SQL query)知道备份日志链何时被破坏?

这是2月份情况的屏幕截图。 在此处输入图片说明

sql-server backup

8
推荐指数
1
解决办法
8685
查看次数

为什么 SQL Server 需要私钥来加密备份?

我正在设置一个实验,其中我在服务器上只有证书的公钥部分。证书是在另一台服务器上生成的,我没有恢复私钥。

当我尝试使用该证书使用加密备份数据库时,出现此错误:

Msg 15556, Level 16, State 1, Line 15
Cannot decrypt or encrypt using the specified certificate, either because it has no private key or because the password provided for the private key is incorrect.
Msg 3013, Level 16, State 1, Line 15
BACKUP DATABASE is terminating abnormally.
Run Code Online (Sandbox Code Playgroud)

那是 SQL Server 清楚地告诉我它需要私钥进行加密。

但这是为什么呢?

我的理解是 BACKUP 生成对称密钥,使用证书中的公钥保护对称密钥,并将其与备份内容一起存储。然后使用对称密钥来加密实际的备份内容,因为对称加密通常(总是?)比非对称加密快。

为了恢复备份,我需要与加密中使用的公钥相对应的私钥。这是预期的。

我只是不明白为什么在备份操作期间需要私钥。没有在文档或其他任何地方找到答案。有人可以解释一下或指出一些关于为什么会这样的文件吗?

sql-server backup encryption

8
推荐指数
1
解决办法
247
查看次数