PostgreSQLbackupWord文档格式.docx
《PostgreSQLbackupWord文档格式.docx》由会员分享,可在线阅读,更多相关《PostgreSQLbackupWord文档格式.docx(28页珍藏版)》请在冰豆网上搜索。
rem如果当天是一号则新建新月份目录
@if%date:
~8,2%==01(mdd:
\backup\"
%Dirname%"
)
rem如果没有当月目录则新建当月目录
@ifnotexistd:
(mdd:
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:
test"
rem将备份文件打包成rar格式,并删除原始备份文件。
(确保你已经安装了winrar,如果你没有安装在默认目录,请根据winrar文件的位置修改路径)
@ifexistd:
%Dirname%\%Filename%"
(D:
\WinRAR\winrar.exea-dfd:
\backup\%Dirname%\%Filename%.rard:
\backup\%Dirname%\%Filename%)
rem自动删除三月前的备份,根据建立日期判断(修改中)
~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脚本文件,代码如下:
rem在备份前在命令行执行echo%date%确保日期格式是yyyy-mm-dd,如果不是请到控制面板修改区域与语言选项中修改日期格式。
rem执行备份任务,备份test数据库,根据你的安装文件pg_dump所在位置修改。
\backup\%Filename%"
backup.bat脚本
c:
(确保你已经安装了winrar,如果你没有安装在默认目录,请根据winrar文件的位置修改路
径)
%Filename%"
(c:
\backup\%Filename%.rard:
\backup\%Filename%)
12、请将上述代码拷贝到bat文件中,并将代码中的”test”改成您要备份的数据库名(注意要加上””),文件名为autoBackup.bat,建议将该文件放在您的PostgreSQL安装目录下(c:
13、创建windows任务计划。
打开“控制面板”中的“系统和安全”,单击打开“管理工具”中的“计划任务”,如下图所示:
14、单击“操作”菜单中的“创建基本任务”,出现“创建基本任务向导”界面,如下图所示:
15、填写相关设置项信息,注意“名称”是必填项(建议“描述”也填写),单击“下一步”,出现“任务触发
16、单击“下一步”,出现如下界面:
17、单击“下一步”,出现“操作”设置界面,如下图所示:
18、单击“下一步”,进行“启动程序”设置,如下图所示:
19、单击“下一步”,出现“摘要”界面,单击“完成”,创建任务计划成功,您将看到如下图所示的列表:
20、该任务将在每天的10:
17执行(即每天的10:
17将对数据库test进行一次备份)
Server2008系统
21、准备编写bat脚本文件,代码如下:
~8,2%==01(mdc:
@ifnotexistc:
(mdc:
\PostgreSQL\9.1\bin\pg_dump.exe-i-hlocalhost-p5432-Upostgres-Fc-b-v-fc:
@ifexistc:
\WinRAR\winrar.exea-dfc:
\backup\%Filename%.rarc:
-dc:
)do@ifexistc:
\backup\%ard/s/qc:
22、请将上述代码拷贝到bat文件中,并将代码中的”test”改成您要备份的数据库名(注意要加上””),文件名为autoBackup.bat,建议将该文件放在您的PostgreSQL安装目录下(c:
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设置为'
,表明数据库恢复完成后,不会被找开,仍然处理等待日志的模式。
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:
在备数据库上C:
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文件,再重启备数据库服务