Postgresql笔记(二) 导入/导出

2018-10-18  本文已影响35人  夏_至

导出指定表到csv(管道)

psql -U $pg_user -d $db_name -c "\copy (select * from users) TO STDOUT with csv header"  | > users.csv.gz

导出指定表或查询结果数据到csv并压缩gz

psql -U $pg_user -d $db_name -c "\copy (select * from users) TO STDOUT with csv header"  | gzip -c $1 > users.csv.gz

导出远程数据库某张表/库到本地数据库(两个库数据相互导)

pg_dump -h $remote_ip -d $db_name -t $table_name | psql -d $local_db -U $local_user

备份/恢复整库(结果是数据文件夹)

pg_dump  -d $db_name -Fd -j 10 -Z 5 -v -f /$backdir/pgdump_$PGNAME_`date +"%Y%m%d%H%M"`

pg_restore -d $db_name -j 10 -v /$backdir/pgdump_$PGNAME_`date +"%Y%m%d%H%M"`

备份/恢复恢复整库(SQL文件)

pg_dump  -d $db_name -Fc -Z 9  -s -v -f /$backdir/exp.sql

psql -d $db_name < imp.sql

备份/恢复整个Postgres(base文件夹,需保证两个postgres的版本一致)

#备份
pg_basebackup -Ft -p 5432 -D $backup_dir -P
#展开并启动
tar xf $backup_dir/base.tar -C $target_dir
tar xf $backup_dir/pg_wal.tar -C $target_dir
pg_ctl -D $target_dir start
上一篇下一篇

猜你喜欢

热点阅读