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文件然后做以下修改:
- listen_address = ‘*’(默认localhost)
- wal_level = hot_standby(默认是minimal)
- max_wal_senders=2(默认是0)
- wal_keep_segments=64(默认是0)
- 在主库创建一个超级用户来专门负责让standby连接去拖WAL日志:create user repl superuser password '111111';
- 打开数据目录下的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