您的位置:首页 > 数据库

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

2017-03-13 18:53 232 查看

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' 归档进程会调用这命令把需要归档的文件拷贝到指定的归档目录
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: