首页 > 代码库 > postgresql数据库备份

postgresql数据库备份

一.工具备份数据

打开windows下的命令窗口:开始->cmd->安装数据库的目录->进入bin目录;

 导出命令:pg_dump –h localhost –U postgres –p 5432 –d postgres  –f “D:/test.dmp”

-h:服务器地址;

-p:端口号;

-U:这里的“U”要大写,用户身分

-d:数据库名称;

-f:文件输出的目录和名称;

恢复数据:

psql -h localhost -U postgres -d new_db  -f "D:\test.dmp"

二.备份归档

 创建 WAL 备份目录,比如:  d:\pg_xlog_archive 1

 修改 postgresql.conf 中的 archive_command 设置,比如:      archive_command = ‘copy "%p" d:\\pg_xlog_archive\\%f‘       注:%p 要用双引号括起来处理安装目录中有空格的情况。  archive_mode = on    wal_level=‘archive‘

2   用psql登录数据库服务器,然后执行下面的过程  psql -Ubeigang < beigang_dump.pgdump:      SELECT pg_reload_conf();  

3  psql接着执行过程  SELECT pg_start_backup(‘label‘);    注:label 建议使用备份目录的全路径。

4  psql接着执行过程  SELECT pg_stop_backup();  

5  检查WAL日志归档目录,有的话就成功了。

恢复:

 1,停止数据库

2.删除  data目录

3,恢复备份

jar cvfm classes.jar mymanifest -C foo/ .

4,清空/data/pg_xlog/目录下所有文件

 5,创建/pg_xlog/及其下面的archive_status目录

6,在/data/目录下创建recovery.conf

   7,启动数据库

三.冷备份

PostgreSQL 冷备份, 指在数据库关机状态下对数据库的数据文件进行的备份

冷备份需要备份的是数据库集群主目录($PGDATA), 表空间目录, 事务日志(pg_xlog)目录.

如果在参数文件中指定了其他目录或文件, 某些也需要备份下来.

还原:环境,数据库版本一致;将上述备份内容替换(先删除)

四 主从复制备份

1.主数据库配置

开数据目录下的postgresql.conf文件然后做以下修改:

  1. listen_address = ‘*’(默认localhost)
  2. wal_level = hot_standby(默认是minimal)
  3. max_wal_senders=2(默认是0)
  4. wal_keep_segments=64(默认是0)
  5. 在主库创建一个超级用户来专门负责让standby连接去拖WAL日志create user repl superuser password ‘111111‘;
  6. 打开数据目录下的pg_hba.conf文件然后做以下修改: 
    技术分享

2 从数据库配置

pg_basebackup命令行工具在从库上生成基础备份,命令如下:

./pg_basebackup -h 192.168.111.101 -U repl -F p -x -P -R -D /usr/local/postgresql/data/ -l replbackup201611
从库数据目录下的postgresql.conf文件,将hot_standby改为启用状态,即hot_standby=on

 

postgresql数据库备份