开源数据库Postgresql的备份和恢复

  最近工作上使用的数据库一直是Postgresql,这是一款开源的数据库,而且任何个人可以将该数据库用于商业用途。在使用Postgresql的时候,让我最明显的感觉就是这数据库做的真心好,虽然说数据库的安装包真的很小,但是性能和操作的便捷是一点也不输给其他商业的大型数据库,另外在命令行界面下对该数据库直接进行操作的感觉真的是很爽。在使用数据库的时候,我们作为小公司的数据库管理员有一项工作是不可能避免的,那就是数据的备份和恢复问题。PostgreSQL虽然各个方面的有点很多,但是在数据库备份这方面,它是不支持增量备份的,这点确实让人觉得很是可惜啊。不过,瑕不掩瑜,总的来说这是一款很好的数据库软件。

  PostgreSql支持的备份方式有三种:第一种是利用SQL语句备份,第二种是文件系统级别的备份,第三种是在线备份以及及时回复。一般而言第一种方式的备份基本已经都我们用了,而且也很是方便。

  在第一种备份和恢复的方式中,我们主要使用到的工具有pg_dump,pg_dumpall,psql,pg_restore。下面主要说下这四个工具之间是如何合作完成备份和恢复这个操作的。其中pg_dump和pg_dumpall主要用于备份,这两者之间的区别显而易见,前者是用来对某个数据库进行备份,而后者是用来备份整个数据库集群的。psql和pg_restore用于恢复数据的,这两者不同的是psql只能用于采用默认格式备份的备份文件的恢复,而pg_restore则用于恢复采用自定义、目录和tar格式备份的数据的恢复。在第一种方面中主要的区别也就是这些了。下面把我备份数据库用的脚本贴出来,以供分享和交流。

@echo off
rem PostgreSQL数据库备份脚本,该脚本不支持大数据对象的备份
set path=%path%;C:\Program Files\PostgreSQL\9.4\bin;
set fileName=database.backup
set fileDir=%homepath%\winsun\%Date:~0,4%%Date:~5,2%
if not exist %fileDir% (mkdir %fileDir%)
if exist %fileDir%\%fileName% (del %fileDir%\%fileName%)
pg_dump -U postgres -d database -p 5432 -w -F t -if-exists -c -f %fileDir%\%fileName%
pg_dump -U postgres -d database -p 5432 -w -if-exists -c -f %fileDir%\%fileName%.sql
时间: 2024-10-12 20:12:23

开源数据库Postgresql的备份和恢复的相关文章

测试oracle数据库的脱机备份和恢复

环境:windows7.Oracle11g 一.脱机备份 脱机备份是指在数据库关闭情况下的数据备份,也称为冷备份. 在书上学到的备份步骤: 1.记录所要备份数据库文件所在的操作系统路径: 2.关闭数据库,不要使用shutdown abort这种关闭方式: 3.拷贝数据库文件到备份目录中: 4.重启数据库,完成备份. 了解到这些步骤后,做了一个备份测试,要备份的数据库为testdb. 1.记录所要备份数据库文件所在的操作系统路径     (1)查看数据文件的路径(用管理员账户连接) 备注:可以在s

Postgresql在线备份和恢复

1.实验环境 OS: RedHat Linux Enterprisedb 6.3 DB: postgresql 9.3 PGHOME: /opt/PostgreSQL/9.3 PGDATA: /opt/PostgreSQL/9.3/data 归档目录:/opt/pg_archive 基础备份目录:/opt/base_archive --生产环境中归档和数据等目录应该放在不同的分区,或者存储上. 2.修改归档配置,添加测试数据 修改pg配置文件postgresql.conf中以下条目 wal_le

某系统数据库的增量备份策略恢复测试过程

上半年,公司服务器虚拟化项目已经上线,所以近期的主要工作重心以P2V(物理机到虚拟机)的迁移为主,作为业务系统核心的后台数据库的迁移更是这项工作的重中之重. 本次数据库的迁移工作主要包含两部分的内容:一是跨平台(windows2003到OEL6)的数据库版本升级(Oracle 9.2.0.6到Oracle 11.2.0.4):二是数据迁移.由于这些变迁,伴随着发生了许多操作方式(习惯)的变化,最显著的一点就是备份方式的变更了.之前的备份方式是采用exp逻辑导出的方式,就目前业务运行的情形来看,此

备份和恢复数据库

查看实例编号,名称和日志模式:SYS AS [email protected]>select dbid,name,log_mode from v$database; DBID NAME      LOG_MODE---------- --------- ------------1391294860 ORCL      ARCHIVELOG 1 row selected. RMAN:    登录:    [[email protected] ~]$ rman    RMAN> CONNECT T

从SQL Server中清除msdb备份和恢复记录

正如我在前面的技巧“您的数据库上次恢复是什么时候呢?”中提到的,SQL Server使msdb数据库内系统表中的备份和恢复记录保持激活状态.没有正常的维护,这些系统表将变得很大,从而导致对于msdb数据库整体超大. 这些msdb表包括:       backupfile backupfilegroup backupmediafamily backupmediaset backupset restorefile restorefilegroup restorehistory 幸运的是,微软提供了两

[转]Oracle DB 执行用户管理的备份和恢复

• 说明用户管理的备份和恢复与服务器管理的备份和恢复之间的差异 • 执行用户管理的数据库完全恢复 • 执行用户管理的数据库不完全恢复 备份和恢复的使用类型 数据库备份和恢复的类型包括: • 用户管理的:不使用RMAN – 使用OS 命令移动文件 – DBA 需要手动维护备份活动记录 • 服务器管理的:使用RMAN 有两种方法可用来恢复数据库.可以使用RMAN 并利用其自动恢复功能.它可以还原相应的文件,并使用非常少的命令使数据库恢复到当前状态.还可以手动进行恢复.这称为“用户管理的恢复”.用户管

postgresql数据库备份和恢复(超快)

PostgreSQL自带一个客户端pgAdmin,里面有个备份,恢复选项,也能对数据库进行备份 恢复(还原),但最近发现数据库慢慢庞大的时候,经常出错,备份的文件过程中出错的几率那是相当大,手动调节灰常有限.所以一直寻找完美的备份恢复方案. 梦里寻他千百度,伊人却在灯火阑珊处...其实PostgreSQL内置不少的工具,寻找的备份恢复方案就在其中:pg_dump,psql.这两个指令 在数据库的安装目录下,比如我自己本地安装的,路径形如:C:\Program Files\PostgreSQL\9

postgresql 数据库的备份和恢复 (pg_dump 和 pg_restore)

pg_dump 用来备份数据库: pg_restore 用来恢复数据库: 备份出来的文件可以用 XZ (linux 自带的压缩工具压缩). XZ压缩最新压缩率之王 xz这个压缩可能很多都很陌生,不过您可知道xz是绝大数linux默认就带的一个压缩工具. 之前xz使用一直很少,所以几乎没有什么提起. 我是在下载phpmyadmin的时候看到这种压缩格式的,phpmyadmin压缩包xz格式的居然比7z还要小,这引起我的兴趣. 最新一段时间会经常听到xz被采用的声音,像是最新的archlinux某些

12 postgresql数据库备份和恢复

数据表结构备份与恢复 备份 1.找到postgres 安装目录,在找到bin文件夹,会看到一堆exe后缀的文件,用win+r 打开cmd,将pg_dump.exe 拖进cmd黑窗口中 2.基本语法:-h  代表地址 (远程连接用,本地导出无需此项) -U 代表用户  -d 代表数据库  -s 代表存储位置 注:1.-s > 后,不写完整路径的话,存入文件到C盘-用户-Administrator 下 2.不加-s,是整库备份,包括数据,加-s,只导出表结构 恢复 1.找到postgres 安装目录