PostgreSQL还原.bak文件

  1. win+R输入cmd

  2. cd C:\PostgreSQL\10\bin

  3. 还原之前首先在postgresql中新建数据库,作为目标数据库

  4. 在postgresql对目标数据库执行create extension postgis;语句,确保空间数据加载正常,同时生成表spatial_ref_sys

  5. psql -h localhost -U postgres -p 5432 -d DBtest -f “E:\DBtest .bak”
    (备份:pg_dump -h localhost -U postgres DBtest > “E:\DBtest .bak” )

  6. 用户 postgres 的口令:输入密码回车

  7. EXPLAIN ( ANALYZE, buffers )–查询执行时间等(执行计划)

  8. 备份数据库中表及数据
    pg_dump -h 127.0.0.1 -U admin -Fc -v postgres > /usr/local/pgsql/db_backup/2012-10-15/postgres.dmp或者是.backup

  9. 删除postgres数据库
    dropdb -h 127.0.0.1 -U admin postgres

  10. 创建postgres数据库
    createdb -E UTF8 -h 127.0.0.1 -U admin postgres

  11. 恢复数据库中表及数据

    pg_restore -h 127.0.0.1 -U admin -d postgres -v /usr/local/pgsql/db_backup/2012-10-15/postgres.dmp或者是.backup

other

  1. 如果所有表都在一个模式中,(下面的代码假设模式名称是public)。

    1
    2
    DROP SCHEMA public CASCADE;
    CREATE SCHEMA public;
  2. PostgreSQL 9.3或更高版本,还拥有恢复默认的授权。

    1
    2
    GRANT ALL ON SCHEMA public TO postgres;
    GRANT ALL ON SCHEMA public TO public;
  3. 数据库postgresql的单表备份与恢复

    1
    2
    3
    4
    5
    6
    7
    8
    9
    数据库用户名:postgres
    数据库:poidata
    表明:poi
    表备份输出的文件:/home/share/wg/poi.sql
    //------------------------------------------------------------------
    备份:
    pg_dump -U postgres poidata -t poi -f /home/share/wg/poi.sql
    恢复:
    psql -U postgres -d poidata < /home/share/wg/poi.sql
  4. PostgreSQL 导出导入表中指定查询数据

    1
    2
    3
    4
    5
    6
    7
    1.创建临时表
    create table test_view as select * from test where date(to_timestamp(endtime))>='2012-09-02';
    2.导出临时表数据为文本
    copy test_view to '/home/postgres/test_view.txt' with delimiter as '|';
    3.导入文件数据到数据库中指定表
    delete from test;
    copy test from '/home/postgres/test_view.txt' with delimiter as '|';
  5. postgresql导出sql执行结果到文件的方法

    1
    2
    3
    1. psql -h .......
    2. \o /tmp/test.out
    3. select username from member where age > 18;