導(dǎo)出指定表到csv(管道)
psql -U $pg_user -d $db_name -c "\copy (select * from users) TO STDOUT with csv header" | > users.csv.gz
導(dǎo)出指定表或查詢結(jié)果數(shù)據(jù)到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
導(dǎo)出遠(yuǎn)程數(shù)據(jù)庫某張表/庫到本地數(shù)據(jù)庫(兩個庫數(shù)據(jù)相互導(dǎo))
pg_dump -h $remote_ip -d $db_name -t $table_name | psql -d $local_db -U $local_user
備份/恢復(fù)整庫(結(jié)果是數(shù)據(jù)文件夾)
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"`
備份/恢復(fù)恢復(fù)整庫(SQL文件)
pg_dump -d $db_name -Fc -Z 9 -s -v -f /$backdir/exp.sql
psql -d $db_name < imp.sql
備份/恢復(fù)整個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