postgresql 一些常用命令
pg_dump dbname | gzip > filename.gz 用下面命令恢复: createdb dbname gunzip -c filename.gz | psql dbname save_data.sh #!/bin/bash export PGPASSWORD='xxx' psql='/usr/pgsql-9.3/bin/psql' DB_HOST='172.168.1.252' DB_USER='xxx' DB_NAME='xxx' c_date=`date '+%Y%m%d'` l_date=`date -d '-260 days' '+%Y%m%d'` table_name=xxx_log_${c_date} index_name=${table_name}_add_time_idx l_table_name=xxx_log_${l_date} l_file_gzip_url=/opt/backup/postgresql/$l_table_name.gz echo $table_name $psql -U $DB_USER -h $DB_HOST -p 5432 -d $DB_NAME <<EOF CREATE TABLE $table_name () INHERITS (xxx_log); CREATE INDEX $index_name ON $table_name USING btree (update_time); EOF echo $l_table_name echo $l_file_gzip_url /usr/pgsql-9.3/bin/pg_dump -U $DB_USER -h $DB_HOST -p 5432 -t $l_table_name $DB_NAME | gzip > $l_file_gzip_url echo $l_file_gzip_url if [ ! -d $l_file_gzip_url ]; then fsize=`ls -l $l_file_gzip_url | awk '{print $5}'` echo $fsize if [ $fsize -gt 568 ]; then $psql -U $DB_USER -h $DB_HOST -p 5432 -d $DB_NAME <<-EOF DROP TABLE $l_table_name; EOF fi fi up_save_data.sh #!/bin/bash export PGPASSWORD='xxx' psql='/usr/pgsql-9.3/bin/psql' DB_HOST='172.168.1.252' DB_USER='xxx' DB_NAME='xxx' gunzip -c /opt/backup/postgresql/xxx_log_20141029.gz | $psql -U $DB_USER -h $DB_HOST -p 5432 -d $DB_NAME