数据库备份-自动或值守、定时或实时、本地或云端,一切随心所欲

从二十世纪八十年代以来,关系数据库管理系统(或简称RDBMS)得到了持续发展和应用,并迅速成为大多数工业领域所采用的全球标准数据类型。时至今日,对于业务核心中使用若干关系数据库管理系统的金融行业、网络游戏、以及许多其他业务类型来说,仍是如此。

但是,在日常应用中,对系统和软件进行任何变更,都有可能会导致数据库的问题。数据的丢失,尤其是那些通常存储在数据库中的关键业务数据的丢失,即使尚未达到无法修复的程度,也会对公司造成很大的损害。备份,已经成为数据依赖型企业刻不容缓的任务。

在这里,鸿萌为您推荐一款可应用于任何主流数据库的完整备份解决方案。大道至简,该方案将所有强大的功能变为至简的界面操作方式,用户可以通过简单自动的方式,创建备份和恢复策略,并能让复杂的数据库备份任务能够以自动、定时、无需值守的方式完成。并通过邮件通知的方式及时获悉备份任务的执行结果。该方案同时支持热备份功能,无需任何中断,在不影响正常工作的情况下,进行实时备份。安装一次,就可为不限数量的服务器和数据库进行备份。Oracle、SQL Server、SQL Express、SQL Server vNext、MySQL、PostgreSQL和MariaDB,所有主流数据库都可以在易备方案中找到完美的备份方法。该方案支持所有数据库的所有版本, 包括简易版和免费版。

完整的数据库备份

* 支持任何数据库的备份:SQL Server、SQL Express、SQL Server vNext、Oracle、PostgreSQL、MySQL、MariaDB

* 主动防勒索病毒的备份保护 (CryptoLocker, Locky, WannaCry, Cerber, Petya, Bad-Rabbit, Osiris, …)

* 可用于不限数量的服务器和数据库

* 自动保护网站数据库及应用程序

* 实时备份, 不需要任何中断或数据库锁定

* 自动的定期备份功能

* 邮件通知功能,及时获悉并掌握备份任务的执行结果

* 可恢复到一个已存在的数据库或创建一个新数据库

* 内置压缩功能

* AES 256位加密

* 多账户和多数据库并行备份

* 自定义备份文件名

* 可以为每一个数据库保存多个备份副本

* 备份校验

* 标准格式的备份文件

* 备份文件可保存至:磁带驱动器(LTO、DAT等)、Google网盘/Amazon S3/Azure存储/Dropbox等云存储服务、FTP/SFTP服务器、NAS及RDX设备、外部USB驱动器、及网络中其他计算机。

* 网站控制台可以远程地监控和管理备份

还有哪些数据库备份需求是该方案所未能提供的?鸿萌小编欢迎您一起探讨这个话题。请在下方留言或点击阅读原文了解更多有关备份方案的信息。

超详细的pg12.2数据库五种备份恢复机制总结,值得收藏

备份重于一切,今天主要介绍PG的五种备份方式,仅供参考。

ps:前四种重点掌握

1、语法

可以在本地及远程进行备份,只需要表的读权限即可备份。pg_dump创建的备份是一致的,在pg_dump运行时数据库产生快照,不阻塞数据库的DML操作,但是会阻塞需要排他锁的操作,如alter table等。特别注意的是,pg_dump一次只能备份一个单独的数据库,且不能备份角色和表空间信息(因为这些信息是cluster-wide,而不是在某个数据库中(per-database))。

使用pg_dump的自定义转储格式。. 如果PostgreSQL所在的系统上安装了zlib压缩库,自定义转储格式将在写出数据到输出文件时对其压缩。这将产生和使用gzip时差不多大小的转储文件,但是这种方式的一个优势是其中的表可以被有选择地恢复。

下面的命令使用自定义转储格式来转储一个数据库:pg_dump -Fc dbname > filename自定义格式的转储不是psql的脚本,只能通过pg_restore恢复,例如:pg_restore -d dbname filename

2、常见用法

pg_dump只备份数据库集群中的某个数据库的数据,它不会导出角色和表空间相关的信息。pg_dumpall则可以导出整个数据库集群中所有的数据库中的数据,同时也会导出角色、用户和表空间的定义信息。

执行pg_dumpall需要超级用户权限。

1、语法

2、常用用法

COPY在PostgreSQL表和文件之间交换数据。 COPY TO把一个表的所有内容都拷贝到一个文件,而COPY FROM从一个文件里拷贝数据到一个表里(把数据附加到表中已经存在的内容里)。 COPY TO还能拷贝SELECT查询的结果。

如果声明了一个字段列表,COPY将只在文件和表之间拷贝已声明字段的数据。 如果表中有任何不在字段列表里的字段,那么COPY FROM将为那些字段插入缺省值。

带文件名的COPY指示PostgreSQL服务器直接从文件中读写数据。 如果声明了文件名,那么服务器必须可以访问该文件,而且文件名必须从服务器的角度声明。 如果使用了PROGRAM选项,则服务器会从指定的这个程序进行输入或是写入该程序作为输出。 如果使用了STDIN 或STDOUT选项,那么数据将通过客户端和服务器之间的连接来传输。

注意:copy命令必须在plsql命令行执行,执行用户必须为superuser,普通用户进行执行,需要在copy前面加入 “\\”,即 \\copy。

COPY只能用于表,不能用于视图,不过可以用于COPY (SELECT * FROM viewname) TO …

1、语法

copy to的导出速度非常之快,经测试10W的数据量只需要3秒左右的时间。

COPY FROM能够识别下列特殊反斜杠字符:

2、常见用法

1、基础备份

2、恢复

PostgreSQL有一个导出和导入事务快照的功能,这个功能在9.2版本开始支持,允许事务共享它当时的snapshot给其他的事务使用。SET TRANSACTION SNAPSHOT命令允许新的事务使用与一个现有事务相同的快照运行。已经存 在的事务必须已经把它的快照用pg_export_snapshot函数导出。该函数会返回一个快照标识符,SET TRANSACTION SNAPSHOT需要被给定一个快照标识符来指定要导入的快照。需要注意的是:只有事务是SERIALIZABLE以及 repeatable read时,DEFERRABLE 事务属性才会有效。

PostGreSQL采用“快照”方式来实现MVCC。具体地说,这意味着每一个事务中的查询仅能看到:

1)该事务启动之前已经提交的事务所作出的数据更改。

2)当前事务中该查询之前的查询所作出的更改。

下面基于事务隔离级别repeatable read进行测试

1、建表

2、session1:

3、session2(插入一条新数据并提交):

4、session3(能查看到会话2插入的数据):

5、session4 (导入s1的第一个snapshot, 因此看不到s2提交的数据) :

6、session5 (导入s1的第二个snapshot, 因此看不到s2提交的数据, 同时验证了看不到s1修改过的数据):

7、session1(提交):

8、session4 (s1提交后, 这个snapshot还存在, 只要还有导入了这个snapshot的事务存在着) :

9、session5 (s1提交后, 这个snapshot还存在, 只要还有导入了这个snapshot的事务存在着)

篇幅有限,基于时间点恢复的内容后面单独介绍吧,感兴趣的朋友可以关注下!

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。