Postgresql系统备份与恢复(补充)

4.2.2 文件级别备份

根据操作系统的不同,使用文件拷贝命令即可。

如:

Linux/unix下:

tar -cf backup.tar /usr/local/pgsql/data

cp

windows下:

jar cvfm classes.jar mymanifest -C foo/ .

copy命令等

 

 

4.2.3 在线备份(热备份)

(1)    确保 WAL 归档打开并且可以运转。 (另外单独讲解归档操作)

(2)    用客户端工具,以数据库超级用户身份连接到数据库,发出命令

SELECT pg_start_backup('label');//命令格式

select pg_start_backup('E:\\work\\monitor3\\bin\\data_back-20070207');//实际执行的命令

这里的 label 是任意DBA想使用的这次备份操作的唯一标识。

一个好习惯是使用你想把备份转储文件放置的目的地的全路径。

pg_start_backup 方法使用将用DBA指定的备份的信息,在数据目录里,创建一个备份标签文件, 叫做 backup_label”,写入了如下信息(windows版本):

START WAL LOCATION: 0/3911E0 (file 000000010000000000000000)

CHECKPOINT LOCATION: 0/3911E0

START TIME: 2007-02-07 13:30:56 中国标准时间

LABEL: E:\work\monitor3\bin\data_back-20070207

 

(3)    至于连接到集群中的哪个数据库没什么关系。可以忽略函数返回的结果; 但是如果它报告错误,那么在继续之前处理它。

(4)    执行备份,使用任何方便的文件系统工具,比如 tar 或者 cpio 这些操作过程中既不需要关闭数据库,也不希望关闭数据库的操作。

(5)    再次以数据库超级用户身份连接数据库,然后发出命令

SELECT pg_stop_backup();

PG将生成一个文件,如“000000010000000000000000.003911E0.backup”,这是一个备份的历史文件。pg_stop_backup()将保留本次生成的备份历史文件,然后把上次执行本方式备份产生的备份历史文件清理掉,然后发信号告知归档进程(pg_stop_backup -> CleanupBackupHistory -> XLogArchiveCheckDone -> XLogArchiveNotify -> SendPostmasterSignal),可以归档了。

(6)    返回成功。

 

归档的一些准备工作:

设置“postgresql.conf”文件:

Windows

archive_command = 'copy "%p" E:\\work\\monitor3\\bin\\data_back\\%f' 

linux

archive_command = 'cp -i %p /mnt/server/archivedir/%f </dev/null'

归档进程会调用这命令把需要归档的文件拷贝到指定的归档目录

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值