我想使用 WAL 归档来增量备份我的数据库。但我的服务器上有两个数据库,但我无力承担用于备份这两个数据库的磁盘空间。所以我只想备份其中之一。我在 PostgreSQL 文档或其他任何地方都没有找到有关多个数据库的任何信息。或者我没有找到任何关于指定 WAL 备份的数据库名称的信息。如果有人可以帮助我,我将不胜感激。
将大型模式转换为每个表文件,我将使用 --all-databases 执行 mysqldump/reload。我编辑了 my.cnf 并更改了“innod_flush_log_at_trx_commit=2”以加快加载速度。我计划“SET GLOBAL innodb_max_dirty_pages_pct=0;” 在转储之前的某个时刻。我很想知道哪种设置组合可以获得最快的转储和重新加载时间?
模式统计:
26 个 myisam 表 413 个 innodb ~240GB 数据
[--opt=--禁用键;--扩展插入;--快速等] --no-autocommit ??
与前置会话变量类似:“SET autocommit=0; SET unique_checks=0; SETforeign_key_checks=0;”
mysqldump 选项是否等效?
谢谢你的建议!
我正在使用 pg_dump(9.2 数据库)来提取一个模式并将其加载到另一个数据库(9.4)中。
好吧,这是命令:
pg_dump -f file.sql -F plain --inserts -n 模式数据库
好的。我的命令完成得非常好,但是,它并没有将所有内容转储到名为 schema 的模式(在上面的示例中)。它将所有内容加载到公共环境中。
编辑:
为了使问题更清楚:
转储工作正常。经过检查,它正在将 my 转储schema.table到public.table。我希望将其恢复到架构,而不是公开的。
有什么解决这个问题的建议吗?
谢谢
我希望将 mongodump 运行到辅助(不是主)。所以我需要作为输出主机名和一个辅助端口。
# ./mongo -udbadm admin --port 27100 -p --quiet --eval "printjson(rs.status().members.map(function(m) { return {'name':m.name, 'stateStr':m.stateStr} }))"
Enter password:
[
{
"name" : "example-1.domain:27200",
"stateStr" : "SECONDARY"
},
{
"name" : "example-2.domain:27200",
"stateStr" : "PRIMARY"
},
{
"name" : "example-3.domain:27200",
"stateStr" : "SECONDARY"
}
]
Run Code Online (Sandbox Code Playgroud)
使用 shell 脚本工具,我可以毫无问题地提取带有主机名和端口的辅助设备。我的问题是如何以 MongoDB 方式完成这项工作?您推荐我什么工具?我听说这jq对于 JSON 数据更好。但不知道如何仅提取一个辅助主机。
我们使用 Ola Hallengren 的DatabaseBackup存储过程将 SQL Server 2012 实例上的 SharePoint 数据库负载备份到 Azure blob 存储中。我们已经这样做了很长一段时间,没有任何问题。然而,在过去的 6 周里,我们DIFFs被随机提升FULL,我们无法找出原因。
这是代理步骤的输出
Run Code Online (Sandbox Code Playgroud)BACKUP DATABASE [Database] TO URL = N'https://strorgage.blob.core.windows.net/server/instance/Database/2020/11/diff/Database_FULL_20201105_200000.bak' WITH NO_CHECKSUM, COMPRESSION, CREDENTIAL = N'*storeageaccountname*'
如果您查看生成的 URL,您会注意到该过程存储在 DIFF 目录中,但创建了一个完整的备份文件。
https://strorgage.blob.core.windows.net/server/instance/Database/2020/11/diff/Database_FULL_20201105_200000.bak
--^ --^
Run Code Online (Sandbox Code Playgroud)
DatabaseBackup (Ola proc) 是从 2019-06-14 开始的,所以它需要升级才能公平,但它已经运行了超过 18 个月。
我们不直接调用 Ola 代码,因为我们有一个构建 Azure 虚拟路径名的小包装程序,但本质上这就是我们调用 Ola 代码的方式。
这是一个问题,因为某些未知原因 DIFF 备份被提升为 FULL,这会导致每天 PB 级而不是 GB 级的 Azure blob 备份。
EXECUTE dbo.DatabaseBackup
@Database = @DatabaseName,
@URL = @BackupPath,
@Credential = @StorageAccount,
@BackupType …Run Code Online (Sandbox Code Playgroud) 基本上,我正在尝试制作一个 SQL 转储来制作数据库的精确副本:用户定义的函数、关系、约束、表、数据等。
这是可行的pg_dump还是psql需要使用?
我一直在使用pg_dump -U user -cOx database > pg.sql,但我并不完全清楚它是否捕获了所有内容。
我正在查看pg_dump这里的所有标志:
https://www.postgresql.org/docs/11/app-pgdump.html
我能想到的唯一一个可能会这样做的,因为它并没有真正明确地说,是-s --schema-only标志,它排除了数据。我对此很好,并pg_dump为数据运行了一秒钟,但我主要想确保我正在备份用户定义的函数、关系等。
有没有办法强制对服务器上运行的所有数据库和日志备份进行加密?
如果未指定加密,查询将终止。
尽管 GDPR 已经实施了一段时间,但我的组织到目前为止基本上一直忽略它。这次豁免是因为我们所签订的政府合同是临时性的,而新的提供商将他们的系统上线。我们的想法是我们随时关闭我们的系统并移交。一晃七年过去了,新的提供商还没有完成他们的要求,所以我们保持原样。
该部门现在要求我们遵守 GDPR,而提出的问题之一就是备份。我的理解是,对于日常业务来说,只需在备份文件过期时删除它就足以符合要求。处理硬件时可能需要更彻底的清理,但照常备份维护不需要额外的措施。
然而,有人问我们是否需要从磁盘上完全删除所有已删除的文件。这种完全擦除显然使用第三方软件来完全删除文件并使其不可恢复。
由于 GDPR,现在完全删除备份是否已成为常态?
如果人们一直都是这么做的,而我们却从来没有做得对过,那么我也会这么做。
我们有一个 SQL Server 数据库,它使用索引视图来有效查询一些定期更改的数据(是的,我知道数据更改时维护索引会产生成本,但在我们的情况下这是非常值得的)。
我的理解是,对视图索引的更改必须像对任何其他表/索引的更改一样进行记录/备份。然而,在我看来,这种日志记录是多余的,因为在发生崩溃时 SQL 可以轻松地从视图定义重建视图索引。
有什么办法可以用 SQL Server 来实现这样的事情吗?
我们每周做一次完整备份,每天做一次差异。总 db 为 80Gb,差异开始时低于 1Gb,然后逐渐增长到大约 3-5Gb,这还可以,但几乎每周都会突然跃升至 40Gb。为什么会发生这种情况?我该如何调查?我有理由确信实际的数据库使用是统一的,没有尖峰。
backup ×10
sql-server ×5
postgresql ×3
pg-dump ×2
encryption ×1
index ×1
mongodb ×1
mysql ×1
mysqldump ×1
scripting ×1
security ×1