PostgreSQLbackup.docx

上传人:b****6 文档编号:7070965 上传时间:2023-01-16 格式:DOCX 页数:28 大小:2.81MB
下载 相关 举报
PostgreSQLbackup.docx_第1页
第1页 / 共28页
PostgreSQLbackup.docx_第2页
第2页 / 共28页
PostgreSQLbackup.docx_第3页
第3页 / 共28页
PostgreSQLbackup.docx_第4页
第4页 / 共28页
PostgreSQLbackup.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

PostgreSQLbackup.docx

《PostgreSQLbackup.docx》由会员分享,可在线阅读,更多相关《PostgreSQLbackup.docx(28页珍藏版)》请在冰豆网上搜索。

PostgreSQLbackup.docx

PostgreSQLbackup

Postgresql手工、自动备份和恢复、双机热备

目录

一.自动备份数据库1

二.手动备份数据库6

三.恢复数据库9

四.双机热备11

一.自动备份数据库

Xp系统

1、准备编写bat脚本文件,代码如下:

@echooff

rem功能:

postgresql在windows平台利用bat文件备份数据库并进行压缩存放

rem在备份目录d:

\backup下分月建立目录,在每月目录中保存当月的分天备份文件

rem在备份前在命令行执行echo%date%确保日期格式是yyyy-mm-dd,如果不是请到控制面板修改区域与语言选项中修改日期格式。

@setFilename=%date:

~0,10%.backup

@setDirname=%date:

~0,7%

rem如果当天是一号则新建新月份目录

@if%date:

~8,2%==01(mdd:

\backup\"%Dirname%")

rem如果没有当月目录则新建当月目录

@ifnotexistd:

\backup\"%Dirname%"(mdd:

\backup\"%Dirname%")

rem执行备份任务,备份test数据库,根据你的pg_dump文件所在位置修改。

:

:

C:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fd:

\backup\%Dirname%\%Filename%"%1"

:

:

上一句可以给批处理文件传入要进行备份的数据库名字,执行如:

backup.batpostgres

D:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fd:

\backup\%Dirname%\%Filename%"test"

rem将备份文件打包成rar格式,并删除原始备份文件。

(确保你已经安装了winrar,如果你没有安装在默认目录,请根据winrar文件的位置修改路径)

@ifexistd:

\backup\"%Dirname%\%Filename%"(D:

\"ProgramFiles"\WinRAR\winrar.exea-dfd:

\backup\%Dirname%\%Filename%.rard:

\backup\%Dirname%\%Filename%)

rem自动删除三月前的备份,根据建立日期判断(修改中)

@if%date:

~8,2%==25(for/f"skip=1"%ain('dir/b/ad/o:

-dd:

\backup')do@ifexistd:

\backup\%ard/s/qd:

\backup\%a)

2、请将上述代码拷贝到bat文件中,并将代码中的”test”改成您要备份的数据库名(注意要加上””),文件名为autoBackup.bat,建议将该文件放在您的PostgreSQL安装目录下(c:

\ProgramFiles\PostgreSQL\9.1\autoBackup.bat)。

3、创建windows任务计划。

打开“控制面板”中的“性能和维护”,单击打开“任务计划”然后点击“添加任务计划”,如下图所示:

4、单击“浏览”选择步骤1中创建的“autobackup.bat”脚本如下图所示:

5、单击“下一步”,出现“任务触发

6、单击“下一步”,出现如下界面:

7、单击“下一步”,出现“操作”设置界面,如下图所示:

8、单击“完成”如下图所示:

9、创建任务计划成功,您将看到如下图所示的列表:

10、该任务将在每天的10:

15执行(即每天的10:

15将对数据库test进行一次备份)

Win7系统

11、准备编写bat脚本文件,代码如下:

@echooff

rem功能:

postgresql在windows平台利用bat文件备份数据库并进行压缩存放

rem在备份目录d:

\backup下分月建立目录,在每月目录中保存当月的分天备份文件

rem在备份前在命令行执行echo%date%确保日期格式是yyyy-mm-dd,如果不是请到控制面板修改区域与语言选项中修改日期格式。

@setFilename=%date:

~0,10%.backup

@setDirname=%date:

~0,7%

rem如果当天是一号则新建新月份目录

@if%date:

~8,2%==01(mdd:

\backup\"%Dirname%")

rem如果没有当月目录则新建当月目录

@ifnotexistd:

\backup\"%Dirname%"(mdd:

\backup\"%Dirname%")

rem执行备份任务,备份test数据库,根据你的安装文件pg_dump所在位置修改。

:

:

C:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fd:

\backup\%Filename%"%1"

:

:

上一句可以给批处理文件传入要进行备份的数据库名字,执行如:

backup.bat脚本

c:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fd:

\backup\%Filename%"test"

rem将备份文件打包成rar格式,并删除原始备份文件。

(确保你已经安装了winrar,如果你没有安装在默认目录,请根据winrar文件的位置修改路

径)

@ifexistd:

\backup\"%Filename%"(c:

\"ProgramFiles"\WinRAR\winrar.exea-dfd:

\backup\%Filename%.rard:

\backup\%Filename%)

rem自动删除三月前的备份,根据建立日期判断(修改中)

@if%date:

~8,2%==25(for/f"skip=1"%ain('dir/b/ad/o:

-dd:

\backup')do@ifexistd:

\backup\%ard/s/qd:

\backup\%a)

12、请将上述代码拷贝到bat文件中,并将代码中的”test”改成您要备份的数据库名(注意要加上””),文件名为autoBackup.bat,建议将该文件放在您的PostgreSQL安装目录下(c:

\ProgramFiles\PostgreSQL\9.1\autoBackup.bat)。

13、创建windows任务计划。

打开“控制面板”中的“系统和安全”,单击打开“管理工具”中的“计划任务”,如下图所示:

14、单击“操作”菜单中的“创建基本任务”,出现“创建基本任务向导”界面,如下图所示:

15、填写相关设置项信息,注意“名称”是必填项(建议“描述”也填写),单击“下一步”,出现“任务触发

16、单击“下一步”,出现如下界面:

17、单击“下一步”,出现“操作”设置界面,如下图所示:

18、单击“下一步”,进行“启动程序”设置,如下图所示:

19、单击“下一步”,出现“摘要”界面,单击“完成”,创建任务计划成功,您将看到如下图所示的列表:

20、该任务将在每天的10:

17执行(即每天的10:

17将对数据库test进行一次备份)

Server2008系统

21、准备编写bat脚本文件,代码如下:

@echooff

rem功能:

postgresql在windows平台利用bat文件备份数据库并进行压缩存放

rem在备份目录d:

\backup下分月建立目录,在每月目录中保存当月的分天备份文件

rem在备份前在命令行执行echo%date%确保日期格式是yyyy-mm-dd,如果不是请到控制面板修改区域与语言选项中修改日期格式。

@setFilename=%date:

~0,10%.backup

@setDirname=%date:

~0,7%

rem如果当天是一号则新建新月份目录

@if%date:

~8,2%==01(mdc:

\backup\"%Dirname%")

rem如果没有当月目录则新建当月目录

@ifnotexistc:

\backup\"%Dirname%"(mdc:

\backup\"%Dirname%")

rem执行备份任务,备份test数据库,根据你的pg_dump文件所在位置修改。

:

:

C:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fc:

\backup\%Filename%"%1"

:

:

上一句可以给批处理文件传入要进行备份的数据库名字,执行如:

backup.batpostgres

c:

\"ProgramFiles"\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fc:

\backup\%Filename%"test"

rem将备份文件打包成rar格式,并删除原始备份文件。

(确保你已经安装了winrar,如果你没有安装在默认目录,请根据winrar文件的位置修改路径)

@ifexistc:

\backup\"%Filename%"(c:

\"ProgramFiles"\WinRAR\winrar.exea-dfc:

\backup\%Filename%.rarc:

\backup\%Filename%)

rem自动删除三月前的备份,根据建立日期判断(修改中)

@if%date:

~8,2%==25(for/f"skip=1"%ain('dir/b/ad/o:

-dc:

\backup')do@ifexistc:

\backup\%ard/s/qc:

\backup\%a)

22、请将上述代码拷贝到bat文件中,并将代码中的”test”改成您要备份的数据库名(注意要加上””),文件名为autoBackup.bat,建议将该文件放在您的PostgreSQL安装目录下(c:

\ProgramFiles\PostgreSQL\9.1\autoBackup.bat)。

23、创建windows任务计划。

打开“控制面板”,单击打开“管理工具”然后点击“任务计划程序”,如下图所示:

24、单击“操作”菜单中的“创建基本任务”,出现“创建基本任务向导”界面,如下图所示:

25、填写相关设置项信息,注意“名称”是必填项(建议“描述”也填写),单击“下一步”,出现“任务触发

26、单击“下一步”,出现如下界面:

27、单击“下一步”,出现“操作”设置界面,如下图所示:

28、单击“下一步”,进行“启动程序”设置,如下图所示:

29、单击“下一步”,出现“摘要”界面,单击“完成”,创建任务计划成功,您将看到如下图所示的列表:

30、该任务将在每天的16:

35执行(即每天的16:

35将对数据库test进行一次备份)

二.手动备份数据库

1、选中您所要备份的数据库,单击右键,选则“备份”,将进入备份设置界面,如下图所示:

2、设置相关参数值,如下图所示:

注意:

如果没有配置格式项将无法恢复数据库(即在恢复数据库时“恢复”按钮为灰色,无法点击。

)。

3、单击“备份”,出现如下图所示界面:

4、如果返回的是0表示备份成功,点击“完成”关闭界面,在您刚才备份的路径下可以找到您备份的数据库文件:

test.backup

三.恢复数据库

1、如果您的数据库系统中没有要恢复的数据库,请先新建一个同名数据库(虽然不同名也不会影响数据库恢复,但是不建议。

2、选中您所要恢复的数据库,单击右键,选则“恢复”,将进入恢复设置界面,如下图所示:

3、单击“恢复”,出现如下界面:

4、单击“完成”,关闭界面。

四.双机热备

主数据库IP:

192.168.2.58

备数据库IP:

192.168.2.78

1.修改主服务器和备服务器上的修改备数据库的pg_hba.conf文件连接权限:

修改成:

这时候必须确保在备份机器上能连上主数据库机器,主数据库机器器也能连接上备份机器(网络通畅,对应的端口可以访问):

2.对主数据库做一个基础备份(手动备份),然后把基础备份拷贝到standby机器(备数据库),再备份机器上新建一个数据库(虽然与主数据库不同名也不会影响数据库恢复,但是不建议。

),把基础备份恢复到standby机器上新建的这个数据库中

3.在主数据库上建一个超级用户,standby数据库会使用这个用户连接到主库上拖WAL日志。

(停止主备数据库的服务)

注意:

创建的超级用户必须要用初始化复制和备份权限。

4.在主数据库上的postgresql.conf文件中设置wal_level=hot_standby。

修改成

 

4.1.在主数据库上的postgresql.conf文件中设置wal_keep_segments为一个足够大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby,就会循环覆盖了;

修改成

4.2.在主数据库上的postgresql.conf文件中设置max_wal_sender参数,这个参数是控制主库可以最多有多少个并发的standby数据库;

修改成

5.在主数据库上的pg_hba.conf中设置listen_addresses和连接验证选项,允许standby数据库连接到主库上来拖WAL日志数据;其中数据库名必须填“replication”,这是一个为standby连接使用了一个虚拟的数据库名称。

用户hexinfei就是步骤2上给standby连接使用的在主库上建的一个超级用户。

192.168.2.78就是standby数据库的IP地址。

图示:

修改为

 

6.在备份数据库上的C:

\ProgramFiles\PostgreSQL\9.1\data文件夹下建一个recovery.conf,设置以下二项:

standby_mode='on'

primary_conninfo='host=192.168.2.58port=5432user=hexinfeipassword=leagsoft'

standby_mode设置为'on',表明数据库恢复完成后,不会被找开,仍然处理等待日志的模式。

primary_conninfo上standby连接到主数据库所需要的连接串。

Host:

主机的ip地址;port:

主机的postgreSQL的端口,user:

步骤2建立的超级用户;password:

步骤2建立的超级用户的密码

然后在备份数据库上C:

\ProgramFiles\PostgreSQL\9.1\data\postgresql.conf文件配置项修改成如下图所示:

7.所有修改的地方:

在主数据库的C:

\ProgramFiles\PostgreSQL\9.1\data\postgresql.conf文件中设置如下配置项:

wal_level=hot_standby

max_wal_senders=2

wal_keep_segments=32

在主数据库中的C:

\ProgramFiles\PostgreSQL\9.1\data\pg_hba.conf中添加如下配置:

hostallall0.0.0.0/0md5

hostreplicationhexinfei192.168.2.78/32md5

在备数据库中的C:

\ProgramFiles\PostgreSQL\9.1\data\pg_hba.conf中添加如下配置:

hostallall0.0.0.0/0md5

在备数据库上C:

\ProgramFiles\PostgreSQL\9.1\data\postgresql.conf文件中设置如下配置项:

hot_standby=on

8.启动主数据库服务,连接数据库,刷新几次,重新载入配置让上面修改的配置生效,在停止服务。

9.拷贝主数据库上C:

\ProgramFiles\PostgreSQL\9.1\data目录下的base和global文件夹去覆盖备数据库的这两个文件夹(此时主备数据库的服务是停止的)(注:

这里是覆盖不是删除后再粘过去。

覆盖之前可以把备份电脑中的这两个文件夹先拷贝出来,如果出错还可以换回来)

10.最后启动主数据库服务,连接主数据库;然后启动备数据库的服务,连接备数据库。

主备数据库服务都能成功启动,查看一下备服务器的C:

\ProgramFiles\PostgreSQL\9.1\data\pg_pog文件夹下日志,如果是如下图则是成功搭建好,可以对主数据库进行建/删表,增,删,改测试,在备数据库上进去查看是否实时同步了,不会有延迟和错误。

双机热备注意事项:

1.操作系统必须是相同系列(测试中win7与win7能成功,xp与xp能成功,win7与xp不能成功),测试中发现

Win7为主库xp为备库时无法打开数据库,服务能启动

2.安装文件分为32位和64位,主库和备库必须安装相同才可以,否则以上配置完后,备库服务无法启动,测试中发现

以上是测试版本和安装文件,烦请相关测试人员和现场部署人员用相同的版本,避免走弯路

说明:

为了降低部署复杂度,以上双机热备为纯手工操作配置,不涉及任何命令(命令方式比较复杂这里就不作介绍)

3某些环境下可能出现双机热备同步成功,备服务器的日志也提示没有错误,只有当主服务器插入数据时备服务器出现如下错误:

解决方法:

1.查看日志,发现错误是pg_clog文件夹里面的0000造成。

2.删除pg_clog下面的0000文件,再重启备数据库服务

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1