Skip to the content.

数据库备份恢复

0.首先要切换到postgres用户

sudo su postgres

1.备份命令


# 命令1:
pg_dump --format=c db_name > dest_path

#like:
pg_dump --format=c peacebird > /var/lib/postgresql/peacebird1016.dump

# --------
# 命令2
pg_dump db_name > dest_path

#like:
pg_dump peacebird > /var/lib/postgresql/peacebird1016.dump

# Ps: 却别
# 1备份的是二进制文件: 用pg_restore恢复
# 2备份的是文本文件 psql进去, 用\i命令恢复

2.下载(rsync/scp)

# rsync

# 带端口
rsync -avzP -e "ssh -p 58729" hesai@hesai-erp.chinacloudapp.cn:/tmp/aaa.sql ~/Desktop

# 不带端口
rsync -avzP -e  root@172.18.10.147:/var/log/app_server/app-server.log.6.gz /Users/chenpeng/

# 排除一些文件
rsync -avzP -e "ssh -p 29722" --exclude ".git,*.pyc,.DS_Store" hesai@40.73.113.181:~/odoo10 ~/Desktop/odoo10

# scp
scp ubuntu@40.125.168.101:~/jj.tar /Users/chenpeng/Desktop/mm


3.下载(rsync/scp)

# scp
scp root@172.18.10.147:~/app-server.log.6.gz /Users/chenpeng/Desktop/

4.恢复数据库步骤

dropdb hesai
createdb -T template0 hesai_erp_tracker_0606
# 还原二进制文件
pg_restore -d hesai_erp_tracker_0606 /Users/chenpeng/Desktop/hesai-erp-20180326-16.dmp

# 还原文本文件 先进入相应数据库, 在用\i命令
psql db_name
\i /Users/chenpeng/Desktop/hesai-erp-20180326-16.dmp

5.tips

pg_restore -d p1 /var/lib/postgresql/peace_bird0124.dump -O --role=nexttao
pg_restore -d zx1115 /Users/chenpeng/zx_1115_formal.dump -O --role=openerp
alter database p1 owner to nexttao;
alter database zlogin owner to openerp;
alter database hesai_erp_tracker_0606 owner to odoo;
psql -d zhongxiang -f /mnt/source/bak/import_stock_move.sql
psql -d zhongxiang -f  /mnt/source/bak/stock_bin_sync_1116.sql
# 分三步
\o path
select * from users;
\o