postgresql 一些常用命令

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

 

猜你喜欢

转载自liming495.iteye.com/blog/2224853