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