postgresql 使用pg_dump进行数据库复制
postgresql 使用pg_dump进行数据库复制
·
pg_dump — 把PostgreSQL数据库抽取为一个脚本文件或其他归档文件
详细用法请查看官方文档。
http://postgres.cn/docs/12/app-pgdump.htmlhttp://postgres.cn/docs/12/app-pgdump.html本示例要求: 用库air_test ,和库local_test 分别覆盖库 air_dev,local_dev.
做法如下:
1.首先应该关闭连接和会话
set role postgres;
--关闭连接
UPDATE pg_database
SET datallowconn = 'false'
WHERE datname = 'local_dev';
UPDATE pg_database
SET datallowconn = 'false'
WHERE datname = 'air_dev';
--结束会话
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'air_dev';
SELECT pg_terminate_backend(pid)
FROM pg_stat_activity
WHERE datname = 'local_dev';
2. 删除数据库air_dev,local_dev.
--删除数据库:
drop DATABASE local_dev;
drop DATABASE air_dev
3.创建新的air_dev,local_dev.
--创建新库:
create database air_dev;
create database local_dev;
4.创建文件夹并分别打包air_test,local_test。(本示例在temp文件下创建)
cd \temp
touch air-test.file
touch local-test.file
--pg_dump打包数据库
pg_dump -Fc air_test > air-test.file
pg_dump -Fc local_test > local-test.file
4.将打包的库文件分别解压到新库。
pg_restore -d air_dev air-test.file
pg_restore -d local_dev local-test.file
5.查看数据库大小。
--以MB,GB查看
select pg_size_pretty(pg_database_size('database'));
更多推荐
已为社区贡献1条内容
所有评论(0)