如何备份和恢复 PostgreSQL 数据库 ?
Backup & Restore Database with PostgreSQL
对于数据库管理员和开发人员来说,在 PostgreSQL 中创建数据库副本是一项至关重要的任务。此过程对于测试、备份、数据分析等都是必不可少的。在本指南中,我们将深入研究创建 PostgreSQL 数据库副本的步骤,以确保数据完整性和系统性能。
(1) 备份当前数据库
总是从备份当前的 PostgreSQL 数据库开始。这种预防措施可确保在复制过程中出现任何问题时,您有一个恢复点。
(2) 检查数据库大小
了解数据库的大小有助于估计复制过程所需的时间和资源。使用 PostgreSQL 命令 pg_size_pretty(pg_database_size(\’yourdatabasename\’)) 来检查数据库大小。
(3) 检查储存空间
确保目标服务器或位置有足够的存储空间来容纳新的数据库副本
Export the Database
使用 pg_dump 导出数据库
Create a New Database
创建一个新的 PostgreSQL 数据库来保存副本
Import the Database
使用 pg_restore 或 psql 将备份文件导入新数据库
此方法要求源数据库上不存在活动连接,下面的查询将终止到数据库的所有现有连接。
创建数据库的副本
Verify Data Integrity
在克隆过程之后,验证所有数据都已被准确复制,并且新数据库的功能符合预期。
Update Database Configuration
如有必要,请更新应用程序中的配置设置或连接字符串,以指向新数据库。
酷瓜云课堂 – 开源在线教育解决方案
- course-tencent-cloud(酷瓜云课堂 – gitee 仓库)
- course-tencent-cloud(酷瓜云课堂 – github 仓库)
详细教程:SQL2008数据库备份与还原全流程!
数据的安全性至关重要,无论是操作系统、重要文件、磁盘存储,还是企业数据库,备份都是保障其安全和完整性的关键手段。拥有备份意味着即使发生误删、系统崩溃或病毒攻击等问题,也能迅速通过恢复功能解决,避免数据丢失带来的损失,让恢复过程变得简单而高效。
在企业环境中,SQL Server 2008 数据库依然有广泛应用。为了确保数据安全性和完整性,使用 SQL Server 2008 进行数据库备份与还原是常见的保护措施。通过定期备份数据库,企业能够快速在系统发生故障或数据损坏时恢复到可用状态,降低宕机时间,保障业务连续性,从而减少可能带来的经济损失。
实际上,数据库备份和还原的方法多种多样。为了让大家能够轻松掌握并实际操作,接下来将介绍两种简单且常见的 SQL Server 备份与还原方式:
- 使用 SQL Server Management Studio (SSMS) 进行备份和还原。
- 利用专业备份软件进行数据库备份和恢复。
您可以根据自身需求和环境,选择最适合的备份方式,为数据库安全提供更强有力的保障。
SQL Server是目前一种比较流行的数据库类型,它包含数据库核心、DBMS、管理客户端。而SSMS(SQL Server Management Studio的简称)则为管理SQL Server基础架构的集成环境,它可以与SQL Server数据库本身安装在同一台数据库,也可以独立安装,然后连接远程的SQLServer数据库。
那么我们该如何使用SSMS来执行SQL2008数据库备份与还原任务呢?大家可以参照以下流程并逐步进行操作。另外,这种方式也同样适用于SQL2000数据库备份与还原或者其他SQL数据库备份与还原任务,大家可以触类旁通,举一反三。
1. 打开SSMS,在对象资源管理器列表中找到您想要备份的数据库,然后右键点击它并选择“任务”>“备份”。
2. 在弹出的备份数据库窗口中先删除原来的默认备份位置,然后再点击“添加”以设置您想要备份到的目标位置。
3. 在弹出的选择备份目标窗口中,点击文件名右侧的点点按钮,然后选择一个存储数据库备份的目标路径,并在下方将文件类型设置为“所有文件”,再为此备份备注一个名称(通常来说为了后期查找方便可以使用数据库名称+日期来命名,并以.bak后缀结尾),然后再点击“确定”即可完成数据库备份任务。
1. 打开SSMS,同样在对象资源管理器列表中找到您之前备份过的数据库,然后右键单击它并选择“任务”>“还原”>“数据库”。
2. 在弹出窗口中选择还原的源区域中的“源设备”,然后点击其右侧的点点按钮。
3. 在弹出的指定备份窗口中,点击“添加”按钮,找到数据库备份的路径,找到您之前备份的数据库文件,然后在下方文件类型中选择所有文件,再连续点击两次“确定”即可。
4. 在还原数据库窗口中,勾选选择用于还原的备份集下的数据库前的复选框。
5. 从常规选择页转到选项选择页,然后勾选“覆盖现有数据库”,再点击“确定”即可完成SQL2008数据库备份与还原任务。
SSMS作为一个SQL Server管理程序,它能够帮助我们完成一些简单的数据库的备份与还原任务,但是它只适用于少量数据库的备份任务,因为它不支持大批量的备份,一次仅能备份还原一个数据库,效率可能不会太高。
傲梅企业备份旗舰版就是一个全面的企业备份解决方案,提供了用于SQL server数据库备份和恢复的专用功能,凭借其用户友好的操作界面以及专业的备份功能,大大简化了备份还原数据库的过程,能够更加轻松地保护数据库的安全,并在需要的时候快速还原数据库。
- 简单易用:用户界面整洁直观,操作方法简单易学,无需编写任何代码即可轻松配置SQL数据库备份还原任务。
- 批量备份:支持对局域网内客户端计算机上的多个SQL数据库实例进行集中化批量化的备份还原任务,包括SQL Express。
- 备份计划:支持创建备份计划,使其按照每天、每周、每月自动执行数据库备份任务,无需人工操作。
- 备份路径:支持备份到本地磁盘、网络共享位置、NAS等(SMB协议共享)。
傲梅企业备份旗舰版支持Microsoft SQL Server(2005-2022),VMware ESXi(6.0及以上版本)和Hyper-V(Windows 8/8.1/10/11,Windows Server/Microsoft Hyper-V Server 2012 R2及更高版本)。如果您觉得还不错的话可以点击下方按钮进入下载中心下载安装傲梅企业备份旗舰版,然后跟着我们的演示教程一起看看怎么轻松备份数据库吧!
在开始备份数据库之前,我们需要先安装代理客户端,所以请您在主机端登录傲梅企业备份旗舰版,在主界面点击“设备”>“代理设备”>“下载代理”。
等待下载完成之后再将此代理客户端安装到您需要备份SQL数据库的计算机上,然后打开傲梅企业备份旗舰版客户端,在出现的客户端界面中输入您主机端的IP地址与端口号,点击“连接”即可。在此之后,您就可以在主机端的设备页面中看到此客户端上的SQL Server数据库信息了。
在安装完代理客户端,并且成功建立控制连接之后,还需要验证一下数据库实例,所以请您点击“设备”>“Microsoft SQL Server”,找到您的数据库,点击其右侧的三个小点图标,选择“身份验证”,并在弹出窗口中选择“SQL身份验证”,再输入账户密码,点击“验证”即可。
注意:除此之外还有一种远程安装代理的方法,就是点击“设备”>“代理设备”>“添加代理”,然后输入客户端计算机的IP地址与用户信息,点击“确定”即可开始远程安装代理。
安装完代理客户端之后,我们就可以开始备份SQL Server数据库了,请您参考以下流程并逐步进行操作:
1. 在傲梅企业备份旗舰版主界面中点击“任务”>“备份任务”>“新建任务”。
2. 在弹出页面中您可以设置详细的SQL Server备份任务配置。
- 备份类型:选择Microsoft SQL Server备份任务。
- 任务名:您可以自行备注此备份任务的名称以便后期区分查找。
- 设备:选择您想要备份的数据库实例。
- 备份目标:选择您想要将数据库备份到的目标位置。
- 备份计划:选择您想要的备份方式和备份计划(每天/每周/每月)。
- 版本清理:配置保留策略以自动删除旧备份文件节省存储磁盘空间。
- 邮件通知:启用邮件通知后等待备份任务执行完毕之后将自动发送一封邮件到预留的邮箱。
3. 确认无误之后就可以点击右下角的“开始备份”按钮即可,如果设置了备份计划的话则请选择“添加定时任务并立即备份”或“仅添加定时任务”,创建的任务将单独列出和监控,以进行恢复、进度检查和计划更改。
在此之后,如果您需要还原数据库的话,可以转到“备份管理”>“历史版本”,找到您想要还原的数据库备份版本,点击其右侧的三个小点图标,选择“还原”,然后您可以选择还原到原位置或新位置,非常方便。
本文主要向大家简单介绍了一下数据库安全对企业业务正常运转的重要性,并分享了2个简单有效的SQL2008数据库备份与还原方法,帮助大家更好地保护自己的SQL数据库安全,大家可以根据自身实际情况来选择一种更加适合自己的数据库备份还原解决方案。
超详细的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
文章为作者独立观点不代本网立场,未经允许不得转载。