postgresql同样支持在线备份,该备份方式与oracle中用户热备的方式相同,手动拷贝数据文库文件与归档日志。可以根据测试过程将备份直接写成script,通过定制,完成数据库的自动备份。
postgresql的恢复支持基于时间戳与事务ID,可以通过时间戳或事务ID的方式,完成数据库的不完全恢复或者因错误操作的故障恢复。
该测试目的:postgresql的在线备份;通过在线备份完成恢复。
1,开启归档
postgresql同样支持在线备份,该备份方式与oracle中用户热备的方式相同,手动拷贝数据文库文件与归档日志。可以根据测试过程将备份直接写成script,通过定制,完成数据库的自动备份。
postgresql的恢复支持基于时间戳与事务ID,可以通过时间戳或事务ID的方式,完成数据库的不完全恢复或者因错误操作的故障恢复。
该测试目的:postgresql的在线备份;通过在线备份完成恢复。
1,开启归档
[postgre@daduxiong archive]$ tar --exclude $PGDATA/pg_xlog -cvjpf /archive/pgbackup.tar.bz2 $PGDATA
5,完成备份
[postgre@daduxiong archive]$ psql postgres -c "select pg_stop_backup();" pg_stop_backup ---------------- 0/70133A0 (1 row)
说明: 调用@H_403_69@select pg_start_backup('xxx');开始备份时,数据库释放对数据目录中各文件的锁,使其它进程可以进行操作,此时用户对数据库的操作,都缓存在数据缓冲区中,当调用select pg_stop_backup();时,数据缓冲区中的数据刷写到磁盘,终止备份模式,并执行自动切换到下一个WAL段。
6,在postgres数据库中创建表并插入记录,作为恢复时的判断。
[postgre@daduxiong archive]$ psql postgres Welcome to psql 8.3.10,the Postgresql interactive terminal. Type: \copyright for distribution terms \h for help with sql commands \? for help with psql commands \g or terminate with semicolon to execute query \q to quit postgres=# create table abc(id integer); CREATE TABLE postgres=# insert into abc values(1); INSERT 0 1 postgres=# \q
9,解压之前的备份文件压缩包