数据库服务器 之 postgresql备份和恢复

上传人:子 文档编号:41930565 上传时间:2018-05-31 格式:DOC 页数:9 大小:31.50KB
返回 下载 相关 举报
数据库服务器 之 postgresql备份和恢复_第1页
第1页 / 共9页
数据库服务器 之 postgresql备份和恢复_第2页
第2页 / 共9页
数据库服务器 之 postgresql备份和恢复_第3页
第3页 / 共9页
数据库服务器 之 postgresql备份和恢复_第4页
第4页 / 共9页
数据库服务器 之 postgresql备份和恢复_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《数据库服务器 之 postgresql备份和恢复》由会员分享,可在线阅读,更多相关《数据库服务器 之 postgresql备份和恢复(9页珍藏版)》请在金锄头文库上搜索。

1、数据库服务器数据库服务器 之之 PostgresqlPostgresql 备份和恢复备份和恢复数据库服务器 之 Postgresql 备份和恢复您是否遇到过因为不小心而删除了某个数据库表,或者是存放数据库的磁盘损坏了的情况呢?如果碰到这种情况,我相信您会觉得非常的沮丧,因为您努力了几个星期的工作成果可能就付之东流了。和任何包含珍贵数据的东西一样,PostgreSQL 数据库也应该经常备份。如果您将数据存放在 PostgreSQL 表中,您就可以定时的进行数据库备份,从而避免发生上面的悲剧。PostgreSQL 自带有内置工具来执行备份工作,而且在系统出现损坏或是意外时,您可以通过这些工具进行“

2、回滚” ,并通过以前保存的快照将系统恢复到其初始的状态。1. 综述;PostgreSQL 数据库从备份 PostgreSQL 数据有三种完全不同的方法:SQL 转储文件系统级别备份在线备份每种备份都有自己的优点和缺点,下面主要介绍 SQl 转储的方法;2. 数据备份;SQL 转储的方法是创建一个文本文件,这个文本里面都是 SQL 命令,当把这个文件回馈给服务器时,将重建与转储时状态一样的数据库。2.1 pg_dump;PostgreSQL 自带的内置备份工具叫做 pg_dump。这个工具是通过一系列的 SQL 语句读取某个指定的数据库并复制其中的内容,以它作为快照并用于日后的数据恢复。客户端到

3、服务器端的连接是用于执行备份工作。这些备份文件就是前面所讲的快照并可以用于日后的数据恢复。而保证客户端与服务器端的连接是执行备份所必需的。这条命令的基本用法是:pg_dump dbname outfile注:在进行上述工作之前,首先请确保您具有登录到服务器并访问您将要备份的数据库或表的权限。您可以通过使用 PostgreSQL 命令行客户端psql,进行服务器登录。在客户端中输入主机名(-h) ,用户名(-u)和密码(-p) ,以及数据库名,然后就可以校验您是否被授权访问。使用 pg_dump 非常的简单只需要在命令提示符后面输入将要导出的数据库名就可以进行备份工作了,如下例所示(根据您自己的

4、安装路经更改 PostgreSQL 路径):xiaopxiaop-laptop:$ /usr/lib/postgresql/8.2/bin/pg_dump -D -h localhost -U xiaop(用户名) mydb(数据库名称) mydb.bak/C:Program FilesPostgreSQL8.2binpg_dump -hlocalhost -Upostgres tenantinfo c:t.dumpC:Program FilesPostgreSQL8.2bin/通过上面的命令就会创建一个名为 mydb.bak 的文件,文件中记录了用于恢复数据库的 SQL 命令。正如您所见,p

5、g_dump 把结果输出到标准输出。 我们下面就可以看到这样做有什么好处。pg_dump 是一个普通的 PostgreSQL 客户端应用(尽管是个相当聪明的东西。 )这就意味着您可以从任何可以访问该数据库的远端主机上面进行备份工作。 但是请记住 pg_dump 不会以任何特殊权限运行。具体说来, 就是它必须要有您想备份的表的读权限,因此,实际上您几乎总是要成为数据库超级用户。要声明 pg_dump 应该以哪个用户身份进行联接,使用命令行选项 -h host 和 -p port。缺省主机是本地主机或您的环境变量 PGHOST声明的值。 类似,缺省端口是环境变量 PGPORT 或(如果它不存在的话

6、)编译好了的缺省值。 (服务器通常有相同的缺省,所以还算方便。 )和任何其他 PostgreSQL 客户端应用一样, pg_dump 缺省时用与当前操作系统用户名同名的数据库用户名进行联接。要覆盖这个名字,要么声明 -U 选项, 要么设置环境变量 PGUSER。 请注意 pg_dump 的联接也和普通客户应用一样要通过客户认证机制。由 pg_dump 创建的备份在内部是一致的, 也就是说,在 pg_dump运行的时候对数据库的更新将不会被转储。 pg_dump 工作的时候并不阻塞其他的对数据库的操作。 (但是会阻塞那些需要排它锁的操作,比如 VACUUM FULL。 )注:: 如果您的数据库结

7、构依赖于 OID (比如说用做外键) ,那么您必须告诉 pg_dump 把 OID 也倒出来。 要倒 OID,可以使用 -o 命令行选项。 缺省时也不会转储“大对象“。如果您使用大对象,请参考 pg_dump 的命令手册页。2.2 pg_dumpall;如果您希望对整个系统中所有的数据库进行备份的话(而不是只对某一个数据库进行备份) ,您可以使用命令 pg_dumpall 而不是pg_dump。执行这个命令可以对 PostgreSQL 所能识别的所有的数据库(包括其自身的系统数据库)备份到一个文件中。下面给出了一个使用实例: xiaopxiaop-laptop:$ /usr/lib/postg

8、resql/8.2/bin/pg_dumpall -D -h localhost -U xiaop(用户名) all.bak 这样就会将 localhost 的所有数据库备份到 all.bak 文件中了;2.3 计划任务;为了保证您的备份时刻保持更新,您可以通过往 cron table 中加入pg_dump 或者是 pg_dumpall 命令来定期执行备份工作。这里给出了两个 cron entries 的例子。第一个是在每天凌晨 3 点对 test 数据库进行备份,而第二个是在每个星期五的晚上 9 点对所有的数据库进行备份: xiaopxiaop-laptop:$ 0 3 * * * /usr

9、/lib/postgresql/8.2/bin/pg_dump -D -h localhost -U xiaop(用户名) mydb(数据库名称) /home/xiaop/mydb.bak0 21 * * xiaopxiaop-laptop:$ 5 /usr/lib/postgresql/8.2/bin/pg_dumpall -D -h localhost -U xiaop(用户名) /home/xiaop/all.bak3. 从转储中恢复3.1 用 pg_dump 恢复;从备份中恢复数据的工作比执行备份甚至更简单您所要做的就是通过执行备份文件中的 SQL 命令来对数据库进行恢复。如果您是使用

10、 pg_dump 对某一个数据库进行了备份,那么备份中就会有CREATE TABLE 的语句来对源表进行复制。当然,您首先要新创建一个空数据库来存放这些数据表。您可以使用 createdb 这个工具来完成这一步工作,这个工具也是 PostgreSQL 套件中的一部分:xiaopxiaop-laptop:$ /usr/lib/postgresql/8.2/bin/createdb mydb(数据库名称)现在您就可以执行备份文件中的 SQL 命令来对数据库进行恢复了, pg_dump 生成的文本文件可以由 psql 程序读取。 从转储中恢复的常用命令格式是:psql dbname mydbBACK

11、.gz4.2 恢复大数据库;用下面命令恢复:xiaopxiaop-laptop:$ createdb mydbNEW(新数据库名)xiaopxiaop-laptop:$ gunzip -c mydbBACK.gz | psql mydbNEW或者xiaopxiaop-laptop:$ cat mydbBACK.gz | gunzip | psql mydbNEW4.3 使用 split;4.3.1 分割;split 命令允许您用下面的方法把输出分解成操作系统可以接受的大小。 有关 split 的用法可以在文件的切分 split 和结合工具cat 介绍中查询。比如,让每个块大小为 1 兆字节:x

12、iaopxiaop-laptop:$ pg_dump dbname | split -b 1m - filename4.3.2 合并;分割后可以用下面的命令恢复:xiaopxiaop-laptop:$createdb dbnamexiaopxiaop-laptop:$cat filename* | psql dbname5. 关于本文;有关 PostgreSQl 数据库备份和恢复的另外两个方法“文件系统级别的备份”和“在线备份” ,我们以后再讨论,本文大部分资料都是参照中文文档,目的是让兄弟们查找方便一些,详细的东西在中文文档都有,多谢各位弟兄们指点 :)6. 更新日志;7. 参考文档;PostgreSQL 8.1 中文文档

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号