我正在寻找一种方法来快速将数据库从一台 postgresql 服务器“克隆”到另一台服务器。
假设...
- 我有一个在 HostA 上运行的 postgresql 服务器,为 2 个数据库提供服务
- 我在 HostA 上安装了 2 个设备,每个设备存储其中一个数据库的数据(即 1 个数据库 => 1 个表空间 => 1 个设备)
- 我能够通过一些仔细的方法获得“安全”的时间点快照
- 我能够一致且安全地生成所使用的两个设备中任何一个的克隆(我什至可以假设两个数据库仅接收读取)
- 涉及的主机是CentOS 5.4
是否可以在 HostB 上托管第二个 postgresql 服务器,挂载克隆设备之一并让相应的数据库“弹出”存在? (有点像在 MySQL 中复制 MyISAM 表文件)。
如果这完全可能,那么机制是什么(即我应该查看哪些 DDL 或 pg 命令)?
对我来说,能够独立地移动各个数据库非常重要。但如果这是不可能的,类似的方法是否可以在服务器级别工作(尝试通过将 datadir 复制到具有相同 postgresql 安装的主机来克隆和重新生成服务器)?
这并不容易,因为数据库之间共享许多文件,这意味着同一安装中的每个数据库都依赖于此。
您可以在服务器级别或集群级别执行此操作,但不能在单个数据库级别执行此操作。只需确保复制/克隆整个数据目录和所有外部表空间。只要您可以原子地进行克隆(在同一文件系统上或使用可以跨文件系统进行原子克隆的系统),您甚至不需要停止 hostA 上的数据库来执行此操作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)