Questions tagged «restore»

从备份重新加载数据库,通常用于灾难恢复,或将数据库副本复制到另一台服务器上。

1
SQL Anywhere 11:恢复增量备份失败
我们希望在完整备份后创建远程增量备份。这将使我们能够在发生故障时进行恢复,并通过SQL Anywhere网络服务器启动另一台具有尽可能接近实时备份的计算机。 我们正在执行完整备份,如下所示: dbbackup -y -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" c:\backuppath\full 这样可以备份数据库和日志文件,并且可以按预期进行还原。对于增量备份,如果有多个增量备份,我会使用重命名方案尝试实时和增量事务日志: dbbackup -y -t -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" c:\backuppath\inc dbbackup -y -l -c "eng=ServerName.DbName;uid=dba;pwd=sql;links=tcpip(host=ServerName)" c:\backuppath\live 但是,在还原时应用事务日志时,将事务日志应用于数据库时,我总是会收到错误消息: 10092:无法找到事务日志中引用的表的表定义 transaction log restore命令为: dbeng11 "c:\dbpath\dbname.db" -a "c:\backuppath\dbname.log" 该错误未指定找不到的表,但这是一个受控测试,没有表被创建或删除。我插入几行,然后在尝试还原之前启动增量备份。 有谁知道在Sql Anywhere 11上进行增量备份和还原的正确方法? 更新:认为可能与目标数据库的复杂性有关,我制作了一个新的空白数据库和网络服务。然后添加一个带有两列的表并插入几行。进行完全备份,然后插入和删除更多行和已提交的事务,然后进行增量备份。在还原完整备份后尝试应用事务日志的增量备份时,此操作也失败,并显示相同的错误... 编辑: 您可以通过以下链接查看相同的问题,并获得有关SA的更多反馈:http : //sqlanywhere-forum.sybase.com/questions/4760/restoring-incrementallive-backup-failure

1
在使用pg_restore.exe之前禁用约束
当我尝试pg_restore.exe从数据库执行转储文件时,它会引发数十个错误,所有错误均相同: ERROR: insert or update on table "someTable" violates foreign key constraint "aConstraintName" 这显然是由于我在从转储文件(该文件来自生产数据库)还原数据库之前清空了数据库的事实...当然,如果一个引用表为空,则没有外键约束可以... 在我调用之前pg_restore.exe和之后,有没有一种方法可以针对所有表禁用约束和所有外键,然后重新启用约束和外键。 在SO中,我发现了一些有趣的东西:将约束检查推迟到提交时间。但是我认为在推迟约束之后我不能pg_restore.exe从内部打电话psql.exe。 也有这篇帖子,可以追溯到10年前,建议删除然后重新添加约束。或将pg_class重新触发的值更改为0,这对于约束也可能是可行的...但是,恐怕它比好的实践更容易被黑客入侵... 您有什么建议,这种情况下的最佳做法是什么?是否pg_dump.exe 与该-clean标志一起使用会创建一个转储,从而在还原数据库时绕过约束检查?

3
pgAdmin首选项中的二进制路径
我安装了PostgreSQL,因为我需要恢复.backup收到的大文件以上传到另一个平台(该行有3800万行,显然太大了,无法以其他任何方式导出)。当我尝试在pgAdmin 4中“还原”时,出现以下消息: 请在“首选项”对话框中配置PostgreSQL二进制路径。 这只是PostgreSQL文件夹的路径吗?我在PostgreSQL站点上找不到关于此的文档。我能找到的是: 使用“二进制路径”节点中的字段可以指定PostgreSQL二进制实用程序和EnterpriseDB Postgres Advanced Server二进制实用程序的路径。 除了通过pgAdmin之外,还有没有更简单的方法来还原数据库?

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
该表被标记为已崩溃,应予以修复
我已经安装了MySQL和Nagios Linux PC(Centos5.5) 我已经编写了一些脚本来将数据从Nagios提取到Mysql DB(完全在Table中提取数据) 数据获取正常工作(已通过“ COUNT” cmd确认) 我在运行以下命令时遇到的问题如下: mysql>从nagios_servicechecks选择*; 错误1194(HY000):表'nagios_servicechecks'被标记为已崩溃,应予以修复 除此命令外,其他所有命令都可以正常工作。
15 mysql  linux  restore 

2
10 TB数据库备份/还原问题
我们有一个非常大的生产数据库,它是10 TB。我们正在考虑将其迁移到云服务,但是我必须了解风险并估计整个过程的持续时间。我使用本机SQL Server 2014 SP2备份解决方案每月备份一次数据库。持续时间将近720分钟-12小时。压缩率为5,这意味着备份大小几乎为2 TB。我们无法负担差异备份的费用,因为它们的累积时间和空间与完整备份一样多,因此我们进行T日志备份(每个约200 Mb),而不是每天每10分钟〜144个文件。BIG的问题是拥有所有这些统计信息,是否有人知道恢复包含10 TB数据的2 TB备份需要多长时间?它会比完整备份持续时间长得多吗?

1
pg_restore期间检查点的发生过于频繁
在PostgreSQL 9.2.2(Windows 32位)下,我有一个pg_restore命令,该命令系统地导致有关检查点频率的日志警告,例如: LOG: checkpoints are occurring too frequently (17 seconds apart) HINT: Consider increasing the configuration parameter "checkpoint_segments". 该数据库大小约为3.3 Gb,具有112个表/ 160个视图,并在大约14分钟内恢复。 这在正常情况下发生是正常的pg_restore吗?

2
无法从完全备份还原SQL Server数据库,日志处理失败,数据库处于“还原”状态
我试图在我的PC的本地SQL Server Developer Edition 12.0.2000.8上建立数据库以用于开发目的。我有完整的数据库备份和单独的仅事务日志备份文件,这些文件是通过网络发送给我的。 尝试从完全备份还原时,经过一段时间(大约1个小时,数据库的大小约为270 GB),出现错误: System.Data.SqlClient.SqlError:处理数据库“数据库名称”的日志时发生错误。如果可能,请从备份中还原。如果没有备份,则可能有必要重建日志。(Microsoft.SqlServer.SmoExtended) 此后,数据库处于“正在还原..”状态。 我想运行类似的东西(从这个问题中得到它) ALTER DATABASE recovery_test_2 SET EMERGENCY; ALTER DATABASE recovery_test_2 SET SINGLE_USER; DBCC CHECKDB (recovery_test_2, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS, ALL_ERRORMSGS; 针对它,但是自然地我不能,因为数据库处于'Restoring ..'状态。在数据库上重新启动还原过程会导致相同的错误消息,再次删除和还原也无济于事。 如何启动数据库并正常工作?事务的一致性对我来说并不重要。 SSMS自动生成的还原脚本: USE [master] RESTORE DATABASE [database_name] FROM DISK = N'D:\database_name.bak' WITH FILE = 1, MOVE N'database_name' TO N'D:\MSSQL\MSSQL12.MSSQLSERVER\MSSQL\DATA\database_name.mdf', MOVE N'database_name_index' …

8
从SQL转储还原数据库时出错
我对MySQL非常陌生,并且正在Windows上运行它。我正在尝试从MySQL中的转储文件还原数据库,但是出现以下错误: $ >mysql -u root -p -h localhost -D database -o < dump.sql ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'. …

5
附加/分离与备份/还原
我需要将数据库(作为一个整体)传输到另一台服务器,以创建一个重复的数据库来设置另一个测试环境。 我有两个选择: 在源服务器上进行完整备份/在目标服务器上进行还原; 在源服务器上分离/在目标服务器上附加。 根据我的要求,两种解决方案的优缺点是什么? 我正在使用SQL Server 2008 Enterprise。

2
Mongo DB副本设置为停留在RECOVERING状态
我们已经创建了一个副本集,现在的问题是副本集的2个成员[3个成员集]从48小时开始处于恢复模式。最初,恢复节点的大小在增加,现在甚至停止了。因此,在恢复节点时,它们会在90 GB数据和60+ GB本地数据后卡住。 如何摆脱这种模式?


2
在线页面恢复达到1000个限制
我的任务是尝试恢复遭受损坏的数据库(由于I / O故障,此问题已修复)。我不熟悉数据库或其包含的内容。 我得到了旧的(约3周)完整备份和一系列事务日志...但是缺少事务日志,因此我只能恢复到某个日期。大约有2.5周的数据丢失(并且不断有大量数据添加到该数据库中)。 我还收到了损坏的数据库的副本(可以访问,但是有很多页面损坏/丢失)。 我已经尝试了典型的DBCC CHECKDB命令(仍然没有repair_allow_data_loss,如果没有其他方法,那将是我的最后选择)。 在许多数据库进入数据库之后(数据库是一个1.5 TB的小怪物,我所做的一切都很缓慢并且需要一段时间),我尝试从上次已知的损坏页面备份中恢复联机页面。 为此,我已经完成了一个脚本,该脚本RESTORE DATABASE <foo> PAGE='pages' FROM DISK='<bar.bak>'从DBCC CHECKDB输出中创建了许多命令(基本上是一个正则表达式和一个单独的命令)...到目前为止,效果很好,可以说达到了1000页的限制每个还原命令每个文件(此db上有8个文件)。 因此,它要求我“完成在线还原”,但是我对如何做到这一点感到茫然。我基本上不知道如何完成还原以继续尝试其余页面。 我尝试了一个,RESTORE DATABASE <foo> WITH RECOVERY但是也没有用,它要求我提供我没有的日志。 有人对我如何从此处恢复任何内容有任何提示吗?还是如何“完成”在线还原,以便我可以继续尝试恢复更多页面?如果我尝试脱机还原(基本上添加WITH NORECOVERY到所有内容,然后尝试将其恢复到最后,是否会遇到相同的问题?) 手工计算数据库基本上是不可能的……有数百个表和数百万行,并且没有明确的含义。数SELECT百万行后,损坏的数据库将对查询失败,但是我不确定我可以算出哪里。我试过重建所有非聚集索引,但是有行数据损坏的页面,所以也行不通。 某些数据丢失是可以接受的,但至少应尝试实现数据库的一致性。 损坏的数据库仍处于联机状态,并且客户正在使用它(因此它将不断获取新数据),因此,我在实验室工作台上执行的任何过程都应可在生产数据库上重现(停机将非常困难)。 这是SQL Server 2014 Enterprise PS:我不是DBA ...我是一名程序员,但是客户端尝试了一些“专家” sql灾难恢复服务,但他们已经放弃了,所以我被要求研究一下,看看是否可以做任何事情。 更新:经过多次测试,逐页还原是不可行的,因此我们放弃了这个想法。我们将进行手动恢复(手动从损坏的表中选择丢失的记录,并将其插入到最后一个已知的良好备份中),为此做一些自动化的工具(同样,有成百上千的表)。

1
差异备份问题-为什么?这可能吗?
我正在使用SQL Server 2014,情况是这样的: 我有服务器A和服务器B。 隔夜ETL在服务器A上处理。 加载过程完成后,将备份数据库X(使用CHECKSUM和RESTORE VERIFYONLY确保可靠性),然后将其发送到服务器B。 服务器B接收到该bak文件,然后在那里还原数据库。 我想使用差异备份策略,以便: 完全备份仅在星期六执行, 即在星期六在服务器A上进行完全备份->运送到服务器B->恢复服务器B上的完全备份 剩下的日子将是差异备份, 即服务器A上的差异备份->运送到服务器B->恢复服务器B上的差异备份 我已经尝试过,但出现错误,说: 日志或差异备份无法还原,因为没有文件准备好前滚。 不知道为什么。我检查sys.database_files了服务器A和服务器B,可以看到differential_Base_LSN和differential_base_GUID相同。还有其他地方要检查吗? 顺便说一句,在上面的步骤2中,当我在服务器B上还原差异备份时,是否总是需要每次都还原完全备份+差异备份? 我只还原了差异备份WITH RECOVERY(并收到该错误消息),因为完整备份已于前一天还原。 需要说明的是:是的,我希望服务器B上的数据库在差异之间可读。我该如何解决?是我每晚唯一的RESTORE FULL (WITH NORECOVERY)+ RESTORE DIFF (WITH RECOVERY)组合顺序选项吗? 任何指导将不胜感激。

1
高可用性还原SQL Server 2012数据库
我有一个始终处于高可用性模式的数据库,该数据库与另一个实例上的另一个数据库同步。如何使用从.bak文件还原到主数据库T-SQL? 我是高可用性的新手,并被告知我需要先使数据库脱离高可用性,然后才能进行还原,然后再次将其重新设置为高可用性,但我不确定。 我希望我可以在AlwaysOn仍启用的同时直接还原到主数据库,并且它将与辅助数据库自动同步。

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.