我在家里创建了一个(空间)数据库,它有几个 GB,我想从我工作的一台计算机上移动整个数据库。
没什么好说的,我将在我的工作计算机上创建一个新的 postgresql/postgis 数据库实例。db 用户在两台计算机上的名称可能相同,也可能不同。
是否可以?我应该注意什么?我怎样才能做到无痛?
我正在使用带有 postgis 扩展名的 postgresql v9.1.5。Ubuntu12.04(内核 3.2.0-31)
小智 13
您可以运行数据库的转储:
pg_dump yourdatabase | gzip -9 > outfile.sql.gz
Run Code Online (Sandbox Code Playgroud)
然后在您的工作计算机上导入回 PostgreSQL。这将需要相当长的时间,并且生成的文件,即使被压缩,也可能在千兆字节范围内,但应该足够小以包含在 USB 密钥中。
在您的工作计算机上,创建新数据库并加载转储:
zcat outfile.sql.gz | psql yournewdatabase
Run Code Online (Sandbox Code Playgroud)
如果您的连接速度很快(或者可以花时间),您甚至可以通过加密的 SSH 连接或 rsync 等工具通过 Internet 传输数据库。
pg_dumpall 是最安全的方法。无论如何,我建议在迁移之前带上一个垃圾袋。但它的一个大问题是,如果它很大,可能需要一段时间才能恢复。
您还可以复制数据目录,最好是在停止服务器之后(您可以使用 pg_start_backup() 代替停止,但在执行该路线之前请参阅有关时间点恢复的所有文档。该路线将允许近乎零的停机时间但是请注意,只有当两个系统上的操作系统和 CPU 架构相同时,您才能执行此操作。您不能以这种方式从 Windows 移动到 Linux 或从 i686 移动到 x86-64。还要按顺序检查操作系统内核版本以确保系统兼容。
归档时间: |
|
查看次数: |
20252 次 |
最近记录: |