备份和恢复PostgreSQL数据库.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
备份和恢复PostgreSQL数据库

备份和恢复PostgreSQL数据库你是否遇到过因为不小心而删除了某个数据库表,或者是存放数据库的磁盘损坏了的情况呢?如果碰到这种情况,我相信你会觉得非常的沮丧,因为你努力工作了几个星期的成果可能就付之东流了。 但是,你也不必每次都陷入这种困境。如果你将数据存放在 PostgreSQL 表中,你就可以定时的进行数据库备份,从而避免上述悲剧的发生。PostgreSQL 自带有内置工具来执行备份工作,而且在系统出现损坏或是意外时,你可以通过这些工具进行“回滚”,并通过以前保存的快照将系统恢复到其初始的状态。 数据备份 PostgreSQL 自带的内置备份工具叫做 pg_dump。这个工具是通过一系列的SQL语句读取某个指定的数据库并复制其中的内容,以它作为快照并用于日后的数据恢复。客户端到服务器端的连接是用于执行备份工作。这些备份文件就是前面所讲的快照并可以用于日后的数据恢复。而保证客户端与服务器端的连接是执行备份所必需的。 注意: 在进行上述工作之前,首先请确保你具有登录到服务器并访问你将要备份的数据库或表的权限。你可以通过使用PostgreSQL 命令行客户端——psql,进行服务器登录。在客户端中输入主机名(-h),用户名(-u)和密码(-p),以及数据库名,然后就可以校验你是否被授权访问。 使用 pg_dump 非常的简单——只需要在命令提示符后面输入将要导出的数据库名就可以进行备份工作了,如下例所示(根据你自己的安装路经更改PostgreSQL 路径): $ /usr/local/pgsql/bin/pg_dump -D -h localhost -U pgsql test test.bak 通过上面的命令就会创建一个名为test.bak的文件,文件中记录了用于恢复数据库的SQL命令。在这个文件中你可以看到类似于下面这个例子中所列出的内容: -- -- Name: pets; Type: TABLE; Schema: public; Owner: root; Tablespace: -- CREATE TABLE pets ( species character varying, name character varying ); ALTER TABLE public.pets OWNER TO root; -- -- Data for Name: pets; Type: TABLE DATA; Schema: public; Owner: root -- INSERT INTO pets (species, name) VALUES (dog, Sparky); INSERT INTO pets (species, name) VALUES (cat, Tabitha); 如果你希望对整个系统中所有的数据库进行备份的话(而不是只对某一个数据库进行备份),你可以使用命令pg_dumpall 而不是pg_dump。执行这个命令可以对PostgreSQL 所能识别的所有的数据库(包括其自身的系统数据库) 备份到一个文件中。下面给出了一个使用实例: $ /usr/local/pgsql/bin/pg_dumpall -D -h localhost -U pgsql all.bak 为了保证你的备份时刻保持更新,你可以通过往cron table中加入pg_dump或者是pg_dumpall命令来定期执行备份工作。这里给出了两个cron entries的例子。第一个是在每天凌晨3点对test数据库进行备份,而第二个是在每个星期五的晚上9点对所有的数据库进行备份: 0 3 * * * /usr/local/pgsql/bin/pg_dump -D -h localhost -U pgsql test /disk2/test.bak0 21 * * 5 /usr/local/pgsql/bin/pg_dumpall -D -h localhost -U pgsql /disk2/all.bak 数据恢复 从备份中恢复数据的工作比执行备份甚至更简单——你所要做的就是通过执行备份文件中的SQL命令来对数据库进行恢复。如果你是使用pg_dump对某一个数据库进行了备份,那么备份中就会有CREATE TABLE 的语句来对源表进行复制。当然,你首先要新创建一个空数据库来存放这些数据表。你可以使用createdb 这个工具来完成这一步工作,这个工具也是PostgreSQL 套件中的一部分: $ /usr/local/pgsql/bin/createdb restored 现在你就可以执行备份文件中的SQL命令来对数据库进行恢复了,如下例所示: $ /usr/local/pgsql/bin/psql

文档评论(0)

wnqwwy20 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7014141164000003

1亿VIP精品文档

相关文档