问题标签 [database-backups]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 导入大型mysql数据库备份的最快方法是什么?
使用 innodb 表导出/导入 mysql 数据库的最快方法是什么?
我有一个生产数据库,我需要定期将其下载到我的开发机器上以调试客户问题。我们目前这样做的方式是下载我们的常规数据库备份,这些备份是使用“mysql -B dbname”生成的,然后被 gzip 压缩。然后我们使用“gunzip -c backup.gz | mysql -u root”导入它们。
从阅读“mysqldump --help”中我可以看出,mysqldump 默认使用 --opt 运行,看起来它打开了一堆我能想到的可以加快导入速度的东西,例如关闭索引并将表作为一个庞大的导入语句导入。
有没有更好的方法来做到这一点,或者我们应该做进一步的优化?
注意:我主要想优化将数据库加载到我的开发机器(一个相对较新的 macbook pro,有很多内存)所花费的时间。备份时间和网络传输时间目前不是大问题。
更新:
要回答答案中提出的一些问题:
生产数据库架构每周最多更改几次。我们正在运行 rails,因此在陈旧的生产数据上运行迁移脚本相对容易。
我们需要每天或每小时将生产数据放入开发环境中。这完全取决于开发人员正在做什么。我们经常遇到特定的客户问题,这些问题是某些数据分布在数据库中的多个表中的结果,需要在开发环境中进行调试。
老实说,我不知道 mysqldump 需要多长时间。不到 2 小时,因为我们目前每 2 小时运行一次。然而,这不是我们想要优化的,我们想要优化到开发人员工作站的导入。
我们不需要完整的生产数据库,但将我们需要和不需要的东西分开并不是一件容易的事(有很多表具有外键关系)。这可能是我们最终必须去的地方,但如果可以的话,我们想避免它更长一点。
sql-server-2005 - 将 SQL Server 2008 降级到 SQL Server 2005
从 SQL Server 2008 备份数据库,然后将其导入 SQL Server 2005 是否有任何问题?我已经升级到 SQL Server 2008,但是 2008 似乎问题太大,所以现在我想降级。这样做有什么问题吗?
mysql - mysql备份保留关系
我想知道如何从 2 个单独的表(CATEGORIES 和 SUBCATEGORIES,其中 SUBCATEGORIES 属于一个 CATEGORY)中备份我的数据,以便以后可以恢复关系。我不确定是否mysqldump --opt db_name
足够。
例子:
分类:
子类别:
谢谢
sql - 查看 SQL Server 2008 中的所有事务日志
问题是这样的:
如何在 t3(现在)之后恢复已删除的记录?我希望数据库处于 t0 和 t1 之间的状态。日志级别为已满。
编辑:我已经运行 DBCC LOG(DB-Name, 3),但日志似乎被截断。尽管必须有数千个,但只有 10 个项目。
google-app-engine - 是否有任何工具可以备份/恢复 Google Datastore 实体?
我已经使用 Google App Engine 和 Google Datastore 玩了一段时间了,我面临着需要定期将我的东西备份到云端。
是否有任何通用工具可让您从 google-datastore 的特定实例下载所有数据并将其还原到另一个实例?
如果是这样,请赐教,如果不是 - 有人应该这样做!
c# - SQL备份文件,区分部分和完整备份文件
我已经安排了通过 SQL 代理运行的备份,每晚进行完整备份,每小时进行一次差异备份。有没有办法确定哪些备份文件是完整备份,哪些是最新的差异?
直观地说,24 小时内最大的备份似乎是完整的,而最新的较小备份是部分的。但是,这并不稳健。
有没有办法探测备份文件以检查备份类型?(最好在 C# 中)
sql - 适用于生产 SQL 服务器的 Hyper-V 快照备份策略?
因此,Hyper-V 中的 SQL Server 2008 是受支持的配置,只要您使用固定或直通磁盘并适当增加您的处理器/内存设置,它就应该运行良好。我的问题是我可以使用快照作为可靠的备份机制,还是应该使用久经考验且值得信赖的维护计划来进行备份?
mysql - 从slave做mysqldump时如何写master的Mysql二进制日志位置?
我目前在 Mysql 从站上运行 mysqldump 来备份我们的数据库。这对于备份我们的数据本身来说效果很好,但我想补充的是与 mysqldump 生成的数据相对应的 master 的二进制日志位置。
这样做将允许我们恢复我们的从属(或设置新的从属),而无需在我们获取主数据库的二进制日志位置的主数据库上执行单独的 mysqldump。我们只需将 mysqldump 生成的数据与我们生成的二进制日志信息结合起来,瞧……重新同步。
到目前为止,我的研究已经让我非常接近能够实现这个目标,但我似乎无法找到一种自动化的方式来实现它。以下是我发现的“几乎”:
- 如果我们从主数据库运行 mysqldump,我们可以使用 mysqldump 的“--master-data”参数来记录主数据库的二进制位置以及转储数据(我想如果我们开始从我们的奴隶,但这对于我们想要完成的事情来说似乎有点过分了)
- 如果我们想以非自动化的方式执行此操作,我们可以登录到从站的数据库并运行“STOP SLAVE SQL_THREAD;” 其次是“显示奴隶状态;” (http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html)。但这对我们没有任何好处,除非我们事先知道我们想要从药膏中备份一些东西。
- 如果我们每年要花 500 美元,我们可以使用 InnoDb 热备份插件并从主数据库运行我们的 mysqldumps。但是我们没有这笔钱,而且我也不想在我们的主数据库上添加任何额外的 I/O。
这似乎是一件很常见的事情,以前一定有人想出来过,希望有人在使用 Stack Overflow?
mysql - 如何备份 MySQL 数据库?
备份包含数百万条目的数据库时,我必须考虑什么?有没有我可以使用的工具(可能与 MySQL 服务器捆绑在一起)?
mysql - MySql:“SHOW CREATE TABLE”不适用于名为“x-...”的表?
如果表没有行,SWOW CREATE TABLE 查询似乎不会给出任何结果。(至少在我的 php 设置中没有。)有没有一种简单的方法可以在不深入研究元表的情况下解决这个问题?如果是这样,怎么做?:-)
编辑:
正如我在下面对 Quassnoi 答案的评论所表明的那样,这对于以“x-”开头的表来说似乎是一个问题......非常奇怪!