pg_dump — 把PostgreSQL数据库抽取为一个脚本文件或其他归档文件

详细用法请查看官方文档。

http://postgres.cn/docs/12/app-pgdump.htmlicon-default.png?t=M3C8http://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'));

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐