PostgreSql备份和恢复_pgadmin4备份数据库地址

  • SQL dump
  • 文件系统级备份(File system level backup)
  • 连续归档(Continuous archiving)

备份
先切换到postgres用户下:

su - postgres

备份:

pg_dumpall > /usr/local/pgsql/backup/pg_all.dmp 

恢复数据库

psql –f /usr/local/pgsql/backup/pg_all.dmp postgres 

查看数据库pg1是否恢复

psql pg1 
pg=# select * from tb1; 

pg_dump [database_name] > /home/postgres/db.dump – 或者 db.sql
导入:

psql [database_name] -U [username] < /home/postgres/db.dump
此时,数据库jck_bjgck下会多一个名称为jck的schema,该schema的owner为jck_bjgck。

使用用户jck_bjgck登录数据库jck_bjgck,重命名schema jck,与其owner的名称一致:

alter schema jck rename to jck_bjgck;

Postgresql的数据迁移

postgresql数据库改变data目录 文档

例:把目录改变至/data中

0.准备工作 停掉 pg server

  service postgresql stop

1.修改配置文件/etc/postgresql/9.3/main/postgresql.conf (记得备份)

data_directory = '/data/postgresql/9.3/main'

2.把默认数据目录的东西拷贝过来

cd /data
mkdir postgresql
cp -r /var/lib/postgresql/* /data/postgresql/

3.修改data_directory的所有者

(记得 -R )
chown -R postgres:postgres /data

4.根据提示修改数据目录权限

 chmod 700 /data 

文件系统级别备份(冷备份)
文件系统级别的备份是冷备份,需要停止数据库。
1,停止数据库

pg_ctl –D /usr/local/pgsql/data stop 

2,备份数据库

tar –jcv –f /usr/local/pgsql/backup/filesystem.tar.bz2 /usr/local/pgsql/data/ 

3,删除/usr/local/pgsql/data/目录

rm –r /usr/local/pgsql/data/ 

4,解压备份文件到原目录

tar –jxv –f /usr/local/pgsql/backup/filesystem.tar.bz2 –C / 

5,启动数据库

pg_ctl –D /usr/local/pgsql/data start 

6,查看数据库pg1是否恢复

psql pg1 
pg=# select * from tb1; 
a
1 
(1 rows) 

7,查看数据库pg2是否恢复

psql pg2 
pg=# select * from tb2; 

postgresql 导入和导出数据

备份某个数据库:

pg_dump -h 主机名 -p 端口 -U 用户名 -W 密码 -f 导出的sql脚本文件名 --column-inserts 数据库名

备份全部数据库:

pg_dumpall -h 主机名 -p 端口 -U 用户名 -W 密码 --column-inserts > 导出的sql脚本文件名

恢复某个数据库:

psql -h 主机名 -p 端口 -U 用户名 -W 密码 -d 数据库名 < pg_dump导出的sql脚本文件名

恢复全部数据库:

psql -h 主机名 -p 端口 -U 用户名 -W 密码 < pg_dumpall导出的sql脚本文件名

postgres pgdump 备份还原
备份

pg_dump -h 127.0.0.1 -U postgres -d testdb  > "C:\Users\honey\Desktop\testdb.bak"

pg_dump -h 127.0.0.1 -U postgres -d testdb -f "C:\Users\honey\Desktop\testdb.bak"

还原

psql -h 127.0.0.1 -U postgres -d testdb < "C:\Users\honey\Desktop\testdb.bak"

psql -h 127.0.0.1 -U postgres -d testdb -f  "C:\Users\honey\Desktop\testdb.bak"

移动article_others中的数据到新的分区表

--清空临时表
delete from tmp_article;
 
--复制需要移动的数据到临时表
insert into tmp_article(aid,style,oaid,fid,bid,cid,tid,url,tm_post,tm_last_rply,author,title,ab_content,rply_cnt,read_cnt,url_hash,hash_plain,guid,
neg_pos,match_code,tm_spider,tm_update,stage,rply_cut,read_cut,src,rfid,labels,kwds,like_cnt,content) select aid,style,oaid,fid,bid,cid,tid,url,tm_post,tm_last_rply,author,title,ab_content,rply_cnt,read_cnt,url_hash,hash_plain,a.guid,
neg_pos,match_code,tm_spider,tm_update,stage,rply_cut,read_cut,src,rfid,labels,kwds,like_cnt,a.content from article_others a where cid=[cid];
--插入数据到新的分区表
insert into article_[cid] select * from tmp_article;
--删除article_others里的数据
delete from article_others where cid=[cid];

导入和导出postgresql数据库脚本

导出

/usr/bin/pg_dump -U postgres testdb > /home/app/testdb`date +%Y%m%d`.sql

cd /home/app

gzip testdb`date +%Y%m%d`.sql

导入

day=`date +%Y%m%d`

drop database testdb;//删除原来的库

CREATE DATABASE testdb;

psql -U postgres -d testdb -f /home/app/testdb${day}.sql

参考链接 :

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值