我正在寻找一个备份我的Cloud模式(和云存储文件)的解决方案。
一开始,我尝试使用Cloud调用googleapis (https://cloud.google.com/sql/docs/postgres/import-export/exporting),以便对数据库进行导出。问题是,我需要特定的备份参数,并且需要在PostgreSQL数据库中导出特定的模式。我的每个客户端都有一个模式,我希望能够在不还原整个数据库的情况下恢复一个模式。Googleapis似乎还不支持导出特定的模式,这就是我想直接调用pg_dump的原因。
同样的问题是在Cloud中使用自动备份。我无法在数据库中还原特定的架构,而且我需要将备份保持至少一个月。
然而,我还没有找到使用例如云函数调用pg_dump的方法。因此,目前我正在考虑使用我自己的Windows 10笔记本电脑调用pg_dump,并在Windows中设置一个日常任务。我更愿意使用谷歌云,而不是我自己的笔记本电脑。
如果有人有任何想法,我应该如何建立我的备份基础设施,这将是非常感谢。
发布于 2020-02-18 12:49:18
使用代理> https://cloud.google.com/sql/docs/postgres/sql-proxy连接cloudsql实例
那么这个命令就可以完成这个任务。
pg_dump -U postgres -h localhost -p [PORT] [DBNAME] -n public --format=p >publicBackup.sql
psql -U postgres -h localhost -p [PORT] [DBNAME] -c "drop schema public cascade;"
psql -U postgres -h localhost -p [PORT] [DBNAME] -n public -1 -f ./publicBackup.sql
您可以在与数据库有代理连接的任何容器中完成此工作。
发布于 2019-07-31 14:11:25
正如您所提到的,文档说备份只在实例和数据库上工作,而不是在特定的架构上工作。这里没什么新鲜事。
我知道这可能不是最好的做法,但由于这些限制,您是否考虑过对您的设计进行更新/更改?每个客户端都有一个数据库,这样备份就不会成为后台的麻烦了。至少在他们发布一些东西来备份或导出单个模式之前。
您的账单不会受到影响,因为它们为存储收费,而不是对数据库或模式收费。然而,这可能比你预期的要花费更多的时间。
发布于 2022-12-22 00:14:28
您可以创建一个pgSQL函数并将其作为来自云函数的查询来触发。在pgSQL中,您可以执行pg_dump
https://serverfault.com/questions/977424
复制