备份网站数据(图像文件,数据库)无需停机

备份网站数据(图像文件,数据库)无需停机

我有一个使用 nodejs、postgresql、nginx 并在 linode vps 上运行的网站,我知道 linode 有服务备份,
但我想知道如果我不使用它,
问题 1:如何进行手动备份并且不停机?

备份数据:

image files from user create in application  
postgresql database data from use create in application

Q2:我是新手,想知道通常人们如何做这样的事情?
Q3:像 instagram、imgur 这样的大型网站(图片托管)如何备份?

我在 Google 上搜索了很长时间都找不到答案,任何建议都将不胜感激!!

更新:我知道我可以转储数据库和 scp 下载文件之类的东西,但我不确定在应用程序运行期间是否可以?

答案1

您的问题太过宽泛,缺乏细节。您想要备份数据库、静态文件和操作系统映像,还是其他内容?您自己尝试过什么?以下是一些通用想​​法,可帮助您入门。

  1. 您可以进行数据库转储,然后将该文件复制到任何您想要的地方。您可以 rsync 任何地方的文件。您可以将文件同步到 Dropbox。您可以使用 Attic 之类的东西进行备份,它为您提供重复数据删除的压缩增量备份,然后将这些文件复制到其他地方。如果您在 AWS 中运行,您可以对整个磁盘进行快照。我的 AWS 服务器偶尔会拍摄快照,而且每天午夜我都会进行数据库转储、Attic 备份,然后将这些文件复制到 Dropbox。

  2. 这取决于。

  3. 他们可能不会进行这样的备份,他们可能在数据中心之间进行复制。他们可以在 Amazon S3 或类似设备上存储大量资源,启用版本控制,这样您就不会丢失文件。他们可能会使用 Amazon Glacier。他们可能会使用 #1 中的任何技术。

如果您不知道自己在做什么,您应该聘请专业人士为您提供建议。

更新 您需要阅读数据库的文档。据我所知,一般来说,您必须运行数据库才能进行数据库转储。常规查询仍会执行。如果事务在转储期间修改了数据库,则可能会得到不一致的数据库备份,除非转储在事务内部。转储运行时,服务器可能会稍微变慢,因此如果可能,请选择非高峰时段执行此操作。

您可能最好备份数据库事务日志并减少定期备份。您可能最好进行数据库复制。有很多选择,但要从中选择,您需要有人了解您的设置、应用程序和目标。

相关内容