概括
PostgreSQL提供了本地方法将数据库作为现有服务器的备份导出并将其还原为另一个服务器。
这篇文章显示了如何做。感谢他们,这真的很简单。
它由一对密钥命令组成。
导出(备份)
pg_dump dbname > dumpfile
进口(修复)
psql dbname < dumpfile
您必须在事先迁移到的数据库中创建数据库。
环境
教程
在新服务器上创建数据库
创建用户
用户名必须与现有数据库的所有者相同。它显示为下面的{DB_OWNER}
。
$ createuser -U {DB_ADMIN} --port {DB_PORT} --pwprompt {DB_OWNER}
您将被询问新用户的密码(角色):
Enter password for new role:
Enter it again:
然后需要{DB_ADMIN}
的密码(数据库管理员(例如postgres
)):
Password:
创建数据库
在下面,{DB_OWNER}
是您上面创建的。 {DB_NAME}
是您迁移的数据库。
运行:
$ createdb -U {DB_ADMIN} --port {DB_PORT} --encoding=UTF8 --locale=C --template=template0 --owner={DB_OWNER} {DB_NAME}
然后,将再次需要{DB_ADMIN}
的密码:
Password:
现在您的新数据库已准备就绪。
迁移
出口
从{OLD_SERVER}
上获取{DB_NAME}
的数据并将其写入{EXPORT_FILE}.sql
:
$ pg_dump -U {DB_OWNER} -h {OLD_SERVER} {DB_NAME} > {EXPORTED_FILE}.sql
接下来,我压缩了导出的文件,然后将其移至新服务器。
(替代)直接从旧服务器导入
另外,您可以使用-h
选项将其直接导入新服务器:
$ psql -U {DB_OWNER} -h {NEW_SERVER} {DB_NAME} < {EXPORTED_FILE}.sql
转移
当它很大时,您最好在移动之前将其压缩。
$ gzip {EXPORTED_FILE}.sql
然后用koude10或另一个将其交付给新服务器。
$ scp {EXPORTED_FILE}.sql.gz new-server
转移成功吗?
输入新服务器并解压缩。
$ gunzip {EXPORTED_FILE}.sql.gz
进口
这是最后一步!认为您在新服务器中,运行:
$ psql -U {DB_OWNER} -d {DB_NAME} -f {EXPORTED_FILE}.sql
需要密码:
Password for user {DB_OWNER}:
在我的情况下,输出是:
SET
(...)
set_config
------------
(1 row)
SET
CREATE FUNCTION
(...)
CREATE TABLE
CREATE SEQUENCE
ALTER TABLE
(...)
COPY 20
(...)
setval
--------
6820
(1 row)
(...)
ALTER TABLE
(...)
参考
非常感谢:
快乐存储ð