Questions tagged «snapshot»

7
是否可以使用PostgreSQL快速创建/恢复数据库快照?
首先,我是一名开发人员,而不是DBA或sysadmin。请轻柔:) 我正在开发一个应用程序工作流,其中一个用户操作将触发数据库中的复杂更改-在某些表中创建数百条记录,在其他表中更新数百条记录,等等。总共约有12个表(约100个表) )被此操作所感动。由于复杂性,在执行其他测试之前,我很难手动还原所有更改。在开发的大部分时间里,我可以在工作流的末尾插入一个“ ROLLBACK”语句,但是当我接近提交更改时,我需要测试真实的东西。 我有要使用的生产数据库的本地副本。就我而言,测试之间的转储和还原比编写脚本撤消所有更改要快。它的速度更快,但仍然使我放慢了速度(在老化的笔记本电脑上,还原大约需要20分钟)。有什么方法可以保存数据库当前状态的快照,然后快速将其还原? 我保证是系统上唯一的用户,并且我具有root访问权限。tar和gzip压缩后,数据库转储约为100MB。PostgreSQL版本是8.3。 在此先感谢您提供任何有用的想法。

5
要将10-20个SQL Server数据库备份和还原到〜同步状态?
我需要备份10-20个大小在10-50 GB之间的SQL Server 2008 R2数据库,而这些数据库是联机的并且由单个企业应用程序同时使用。我还需要将它们恢复到在所有数据库之间都基本同步的状态(我可以承受数据库之间长达几秒钟的取消同步)。目的是为QA / DEV环境捕获生产数据。 我强烈希望不要要求数据库以完全恢复的方式运行,并且要提出一种备份方法,该方法专用于为QA环境捕获数据,并且保持独立于不受我控制的主要备份过程。 对于我的客户,将需要1-2个小时来捕获20个完整备份,每个备份约30 GB。这使得按顺序进行完整备份是不可接受的,因为在简单恢复中运行时,数据库将太不同步。 我在寻找比这些更好的主意: 理念1:VM磁盘的SAN级别快照。从快照xcopy MDF / LDF。 将复制的文件附加到其他服务器实例后,其恢复过程将生成一致的数据库,这些数据库几乎同时是快照。 谷歌搜索使我确信这不是一个好主意,至少因为我可能会与master / msdb / etc失去同步。 理念2:在所有数据库之间进行复杂的备份和同步还原 这要求我要求数据库在完全恢复中运行,而这是我所不希望的。在截止日期(T0)之前,为所有数据库开始并行备份。达到T0后,备份所有日志(最多需要几分钟)。进行大量的备份,然后尝试还原它们并向前/向后滚动日志,以获得相对于T0的数据库之间的某种一致性状态。 这需要大量的计划和脚本来可靠地使用它,因此我会竭尽全力避免它。 我是否还缺少其他解决方案? PS1:我很想能够使用数据库快照。这个想法是在每个数据库上启动一个快照(应该以秒为单位),然后在接下来的几分钟/小时内依次完全备份每个数据库。然后将它们全部还原到另一台服务器上,并将它们还原为快照。AFAIK这种情况是不可能的,因为快照无法与数据库一起备份。它们只能在创建它们的服务器上回滚到位。此外,他们需要企业版,但我并没有为所有客户提供。 PS2:如果您知道能够产生跨数据库同步备份的第三方解决方案,请提出。

2
用于集成测试的SQL Server数据库快照
我正在尝试为集成测试定义一种使用测试数据库(在SQL Server中)的方法。 我的想法是在集成测试程序集启动时执行以下步骤: 创建一个完全空的数据库 运行“创建数据库对象”脚本以创建所有相关的数据库对象(表,视图,序列等) 填写“基础数据”(查找值等) 拍摄称为(db)_Basis“基准” 的数据库快照,以进行将来的集成测试 现在,在每个测试类(包含1-n个测试)之前,我打算简单地执行“从快照还原”以返回到数据库定义良好的或多或少的“空”状态。到目前为止,它就像一个魅力。 但是,有一组集成测试需要在大型测试数据库上进行操作-所以我希望在每个测试装置(具有n个单独测试的类)之前进行此操作 从(db)_Basis快照还原数据库 将那5万多行数据插入数据库 创建另一个快照(db)_With_Testdata快照 然后对于每个测试,将数据库重置为定义良好的(db)_With_Testdata快照版本,运行测试,验证结果等等。 问题是:我似乎无法同时拥有两个数据库快照-一旦这样做,就无法将我的数据库还原到其中任何一个....我一直收到此错误: 消息3137,级别16,状态4,第9行 数据库无法还原。错误地指定了主要名称或快照名称,未删除所有其他快照或缺少文件。 消息3013,级别16,状态1,第9行 RESTORE DATABASE正在异常终止。 这真的就是SQL Server数据库快照的工作方式吗?似乎有严格的限制.....我会理解是否不能直接返回到原始的“(db)_Basis”快照-但是仅由于我现在有两个快照,我什至无法返回最新的一个?!?!?

1
如何在SQL Server中查询现有的数据库快照?
我正在尝试创建一个t-sql查询,该查询可以确定给定的数据库是否具有从其创建的任何数据库快照。 例如,如果要创建这样的快照: CREATE DATABASE [DatabaseA_Snapshot] ON (NAME=DatabaseA, FileName='<whatever>') AS SNAPSHOT OF [DatabaseA] 有什么方法可以稍后再次查询该快照的存在吗?我可以看到它显示在sys.databases中,但是我找不到任何可以帮助我确定这是从DatabaseA创建的数据库快照的信息。 SQL Server Management Studio的对象资源管理器将其放置在“数据库快照”文件夹下,因此显然可以通过某种方法将它们与常规数据库区分开。

1
SQL Server Snapshot复制是每次完全复制数据还是发出增量?
我正在看两台服务器之间的快照复制。这是我所拥有的: 500GB数据库 每晚约500MB bcp负载 每天约50MB的交易 我正在询问公司中的其他DBA有关使用哪种复制类型的信息。有人告诉我使用快照复制。但是,据我了解并一直在阅读,每晚加载快照后,快照将完全将数据库复制到分发服务器,然后完全覆盖其他服务器。 快照是按增量运行还是每次都完整复制?

1
EC2-如何正确备份PostgreSQL数据?
设置如下:1个带有3个附加卷的小型Amazon Linux(EBS支持)EC2实例。这既是Web服务器又是数据库服务器。一卷用于代码,一卷用于PostgreSQL(8.4)数据目录,一卷用于存储PostgreSQL的WAL文件。 (1)具有WAL文件的卷还将具有数据目录的基本备份,该备份将在执行pg_start_backup()之后复制。然后它将存储来自PostgreSQL的连续存档输出(WAL文件)。要对该卷进行快照,是否有必要发出同步并冻结文件系统(如果是XFS,则使用xfs_freeze;如果是EXT4,则使用dmsetup)?还是可以只拍摄实时快照?WAL文件将以每分钟1个的速度发送。在复制单个WAL文件并导致数据损坏时,是否可以启动快照? (2)包含活动PostgreSQL数据目录的卷也将得到备份(每天一次)。在制作该卷的快照之前,我发出pg_dump并将生成的SQL文件保存在数据目录中。采取预防措施以确保实际数据库数据一致是否有意义?假设实时快照可以正确地(a)备份配置文件(postgresql.conf,pg_hba.conf,pg_ident.conf)和(b)备份SQL转储文件是否正确?备份这两个东西,即sql dump文件和config文件,将是对该卷进行快照的重点。数据库不是很大,因此我不介意数据文件将使此快照膨胀。在那种情况下,我可以做一个实时快照-对吗? (2a)将数据目录保留在根卷上,并且有一个备份脚本将sql转储文件和配置文件复制到另一个卷上,并在复制完成后对该卷进行快照是否会更好呢? (3)至于上面带有代码的卷,是否还有一点要同步和冻结文件系统?还是只能拍摄实时快照?此数据应相当“静态”。 (4)这是一个可靠的备份方案吗?根卷不定期备份,因为在设置和配置机器映像后,我只会保留它。 谢谢

2
使用快照隔离功能,SQL Server数据库写入速度是否变慢?
我的系统中发生了很多僵局。 我想使用快照隔离来修复它们,但是我的DBA对此有保​​留。 他的关注点之一是快照隔离会减慢写入速度。这是因为它必须先写入缓存,然后再写入TempDb(行版本),然后才能返回到调用方。 “正常”写入可以只写入高速缓存,然后完成。 这是行版本控制的工作方式吗?还是比这更复杂?是否以某种方式并行执行这些操作? 还是快照隔离的写入速度较慢?

2
使用数据库快照进行报告的优势
使用数据库快照进行报告的性能优势是什么? 从我的角度来看,这可能会降低性能,因为原始数据库中的每次写入都必须对快照本身进行另一次写入。 我可以看到,无论何时要报告数据,您都将使用快照,但这并不属于性能类别。 再说一次,是否有性能优势?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.