我正在寻找一种方法将数据库从1 postgresql服务器快速“克隆”到另一个服务器。
...假设
是否可以在HostB上托管第二个postgresql服务器,挂载其中一个克隆设备并使相应的数据库“弹出”? (有点像在MySQL中复制MyISAM表文件时)。
如果可能的话,机制是什么(即我应该查看什么DDL或pg命令)?
能够将各个数据库彼此隔离移动对我来说很重要。但是,如果这是不可能的,那么类似的方法是否可以在服务器级别工作(尝试通过将datadir复制到具有相同postgresql安装的主机来克隆和重新生成服务器)?
答案 0 :(得分:2)
不容易,因为数据库之间共享了许多文件,这意味着同一安装中的每个数据库都依赖于此。
您可以在服务器级别或群集级别执行此操作,但不能在单个数据库级别执行此操作。只需确保复制/克隆整个数据目录和所有外部表空间。只要您可以原子方式创建克隆(在同一文件系统上或使用可跨文件系统执行原子克隆的系统),您甚至不需要在hostA上停止数据库来执行此操作。