我有一个工作代码,但并不总是有效。这是我的方法:
\n\n创建备份
\n\n从备份加载
\n\n在某些时候,我会使用 JPA 2 元数据来获取要复制的表并选择它们需要复制的顺序(由于约束)。
\n\n由于某种原因,这种方法并不总是有效,因为我看到“丢失”的条目未恢复。
\n\n这是代码:
\n\npackage com.bluecubs.xinco.core.server;\n\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\nimport java.sql.DriverManager;\nimport java.sql.SQLException;\nimport java.text.SimpleDateFormat;\nimport java.util.Collection;\nimport java.util.Collections;\nimport java.util.Date;\nimport java.util.HashMap;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.logging.Level;\nimport java.util.logging.Logger;\nimport java.util.zip.ZipEntry;\nimport java.util.zip.ZipInputStream;\nimport java.util.zip.ZipOutputStream;\nimport javax.persistence.EntityManager;\nimport javax.persistence.EntityManagerFactory;\nimport javax.persistence.Persistence;\nimport org.apache.commons.io.FileUtils;\nimport org.apache.commons.io.filefilter.IOFileFilter;\nimport org.apache.commons.io.filefilter.TrueFileFilter;\n\n/**\n * This is a complex task and is heavily dependant on the architecture\n * of …Run Code Online (Sandbox Code Playgroud) 我正在寻找在副本集(非分片)上执行 Mongodb 备份的正确方法。
通过阅读 Mongodb 文档,我了解到“mongodump --oplog”应该足够了,即使在副本(从属)服务器上也是如此。
--oplog 使用此选项可确保 mongodump 创建包含 oplog 的数据库转储,以创建 mongod 实例状态的时间点快照。要恢复到特定时间点备份,请结合使用此选项创建的输出和 mongorestore --oplogReplay。
如果没有 --oplog,如果在转储操作期间有写入操作,转储将不会及时反映单个时刻。更新过程中对数据库所做的更改可能会影响备份的输出
我仍然很难理解 Mongodb 如何备份并继续写入数据库并进行一致的备份,即使使用 --oplog 也是如此。我应该先锁定我的集合还是运行“mongodump --oplog ”是否安全?还有什么我应该知道的吗?
谢谢。
我有一个连续运行的程序,每秒将数据保存到 SQLite 数据库中。我想改变这一点并使用每 15 分钟保存到磁盘的内存数据库。
我的程序是用 Java 编写的,我使用SQLite4Java库。它运行良好,我有一个“作业队列”,可以使用 Java 中的 ExecutorService 处理插入。
我发现第一次写入文件时我可以使用“SQLiteConnection.initializeBackup(File)”,然后在内存中删除并创建表,并且可能使用 VACUUM 来清除内存。这工作得很好,但后来就变得棘手了...如何在 15 分钟后将内存数据库中的新数据追加/合并到现有文件中?
有标准方法可以做到这一点吗?简单地从内存数据库中的每个表中获取所有数据(并锁定它,以防止进一步插入),循环它并将其插入文件数据库中,这是一个好的做法吗?
有很多关于如何从数据库表中 mysqldump 最后“n”行的文章。例如,从StackOverflow和ServerFaultmysqldump --user=superman --password=batman --host=gothamcity.rds.com --where="1=1 ORDER BY id DESC LIMIT 10" DB_NAME TABLE_NAME ./path/to/dump/file.sql中的这些答案中可以找到
但是,我如何告诉 mysqldump 导出数据库中每个表的最后“n”行
我正在使用 MS SQL 2008 R2 (10.50.1600)
我想知道为什么我的数据库非常小(近 1200 行,只有 2 个表),恢复速度这么慢(12-15 秒)。我想它与数据库内的日志文件有关(我不确定)。问题是我不关心日志文件。我只对 mdf 文件感兴趣。是否可以加快数据库恢复速度?恐怕对于一些较大的数据库来说,这将需要很长时间。恢复时间对我来说很重要。
我这样做是这样的:
BACKUP DATABASE TEST TO DISK = 'myDataBase' WITH INIT
RESTORE DATABASE TEST
FROM DISK = 'myDataBase'
WITH REPLACE
------------------------------------------------------------------------
Processed 256 pages for database 'myDataBase', file 'myDataBase' on file 1.
Processed 1 pages for database 'myDataBase', file 'myDataBase_log' on file 1.
RESTORE DATABASE successfully processed 257 pages in 12.218 seconds (0.164 MB/sec).
Run Code Online (Sandbox Code Playgroud)
我做了一些其他测试,并创建了空的全新数据库。恢复该数据库只花了不到一秒的时间。备份与之前相同。恢复报告:
Processed 176 pages for database 'TEST', file 'TEST' on file 1.
Processed …Run Code Online (Sandbox Code Playgroud) database sql-server database-restore database-backups database-performance
我必须在Godaddy主机上上传我的数据库,但它限制上传超过 8 MB 的文件。所以我决定一一上传我的表。我正在寻找一个查询或一种方法来逐个导出每个表,有什么方法可以轻松完成这项工作?我用数据获取每个表的sql?
我正在使用 PHPMyAdmin。
我有一个在 Kubernetes 上运行的 3 个 Cassandra pod 集群。我想自动备份我的数据,为此我需要在每个容器内运行 nodetool snaphot 命令,我需要远程调用它。从架构的角度来看,正确的做法是什么?我是否需要修改 cassandra 映像以在其中包含 ssh 守护程序,或者我是否需要在 cassandra pod 中使用辅助容器或通过“kubectl exec”Kubernetes API 调用来执行此操作?其他选择?
Azure SQL 具有内置备份。如果从门户中删除 SQL 数据库和服务器,这些备份就会丢失。
备份可承受从门户删除服务器的 Azure SQL 的最佳实践是什么。
我已手动将数据库导出到存储位置,但 Azure 表示不应将其用作备份。为什么不应该使用它?我应该做什么?
azure database-backups azure-virtual-machine azure-sql-database azure-sql-server
我正在 docker 容器内测试我的 postgres 数据库的备份/恢复过程。
我像这样转储我的数据库:
$ docker exec -ti my_postgres_container pg_dump -Fc -U postgres > db.dump
Run Code Online (Sandbox Code Playgroud)
之后,我尝试像这样恢复它:
$ docker cp db.dump my_postgres_container:/db.dump
$ docker exec -ti my_postgres_container pg_restore -U postgres -c -d postgres db.dump
Run Code Online (Sandbox Code Playgroud)
该命令返回时没有输出或错误,但没有任何反应。
因此,我尝试像这样手动恢复它:
$ docker cp db.dump my_postgres_container:/db.dump
$ docker exec -ti my_postgres_container bash
root@fdaad610bee3:/# pg_restore -U postgres -c -d postgres db.dump
Segmentation fault (core dumped)
Run Code Online (Sandbox Code Playgroud)
为什么在尝试读取我的数据库转储时 pg_restore 出现段错误?
我正在尝试按照此 firebase 教程设置系统以在超出配额时禁用计费。
https://www.youtube.com/watch?v=Dk3VvRSrQIY
视频描述中链接的文档建议终止开关可以延迟几天才能生效:
注意:在产生费用和收到预算通知之间有长达几天的延迟。由于从使用资源到对活动收费之间的使用延迟,您可能会因所有服务停止时尚未到达的使用而产生额外费用。遵循此上限中的步骤,示例并不能保证您的支出不会超过预算。建议:如果您有硬性资金限制,请将最大预算设置为低于可用资金,以解决计费延迟问题。
当计费活动继续时,超出配额上限时,开关是否可能不会激活?
是否可以使用将开关置于所有其他活动之上的设置,以便我确信我不会超过上限?我在计费文档中找不到任何关于如何优先处理此功能的信息。
我已经看到我自己的代码实例运行速度非常快。其他人报告说,由于在不到几天内发生的错误以及对 GCP 和 Firebase 上限如何应用的误解,造成了更严重的财务后果。
我想确保我的终止开关立即被触发,如果在我开始学习如何使用函数之前超过配额,我将关闭计费。
firebase 文档包含一个警告,如果您在超出预算上限时使用终止开关停止使用 firebase,如下所示:
警告:此示例从您的项目中移除 Cloud Billing,并关闭所有资源。资源可能不会正常关闭,并且可能会被不可挽回地删除。如果您禁用 Cloud Billing,则无法正常恢复。您可以重新启用 Cloud Billing,但无法保证服务恢复,需要手动配置。
我也想了解这个警告的含义。有没有人了解终止开关(youtube.com/watch?v=Dk3VvRSrQIY)的工作原理?
我正在尝试调查被不可挽回地删除的内容。激活终止开关时数据存储是否会被删除?在删除之前,是否有机会保存以前存储在云防火墙中的数据?有没有办法下载数据库,以便我可以在这种情况下保留备份?
database-backups firebase firebase-realtime-database google-cloud-functions
database-backups ×10
database ×3
backup ×2
mysql ×2
azure ×1
docker ×1
export ×1
firebase ×1
jpa ×1
kubernetes ×1
mongodb ×1
phpmyadmin ×1
postgresql ×1
sql ×1
sql-server ×1
sqlite ×1