背景故事
Ubuntu 死了(无法启动),我无法修复它。我启动了一张 live cd 来恢复重要的东西并将其保存到我的 NAS 中。我备份的其中一件事是/var/lib/mysql。
使用 Linux Mint 重新安装,因为我使用的是 Ubuntu 10.0.4,这是尝试新发行版的好机会(我不喜欢 Unity)。现在我想恢复我的旧 mediawiki,所以我关闭了 mysql 守护进程,cp -R /media/NAS/Backup/mysql/mediawiki@002d1_19_1 /var/lib/mysql/正确设置文件所有权和权限,然后启动 mysql 备份。
问题
现在我正在尝试导出数据库以便恢复数据库,但是当我执行 mysqldump 时出现错误:
$ mysqldump -u mediawikiuser -p mediawiki-1_19_1 -c | gzip -9 > wiki.2012-11-15.sql.gz
Enter password:
mysqldump: Got error: 1146: Table 'mediawiki-1_19_1.archive' doesn't exist when using LOCK TABLES
Run Code Online (Sandbox Code Playgroud)
我尝试过的事情
我尝试使用,--skip-lock-tables但我得到了这个:
Error: Couldn't read status information for table archive ()
mysqldump: Couldn't execute 'show create table `archive`': Table …Run Code Online (Sandbox Code Playgroud) Commvault 合作伙伴支持建议我关闭 master 数据库的备份,因为备份因日志文件被锁定而失败。
以下是给出的建议:
“该消息是由 Commvault 无法备份 master 数据库的事务日志引起的。如果这种情况间歇性发生,则可能是某些事情正在锁定事务日志,从而阻止 SQL iData 代理访问日志。通常,master 数据库只是一个模板,并且没有被任何应用程序使用(需要使用 SQL 数据库的应用程序创建自己的数据库),因此防止它被备份应该没有坏处您可以通过指定 NOT 在主副本中备份它来实现此目的SQL数据代理”
以下是我得到的错误。
sqlxxx SQL 服务器/
SQLxx 不适用/
系统数据库 19856*
(CWE) 交易日志 N/A 01/08/2010 19:00:16
(01/08/2010 19:00:18 ) 01/08/2010 19:03:15
(01/08/2010 19:03:14 ) 1.44 MB 0:01:11 0.071 2 0 1
ITD014L2
失败原因:
• 错误代码 [30:325]:备份期间遇到错误。错误:[ERROR: [Microsoft][ODBC SQL Server Driver][SQL Server]无法备份主数据库的日志。请改用 BACKUP DATABASE。[Microsoft][ODBC SQL Server Driver][SQL Server]BACKUP LOG 异常终止。]
作业选项:创建新索引、启动新媒体、备份所有子客户端、截断日志、跟踪挂载点、备份受系统文件保护的文件、备份系统状态数据时停止 DHCP 服务、备份系统状态数据时停止 WINS 服务事件:
• 79714 [backupxx/JobManager] [01/08/2010 19:03:15]:备份作业 [19856] 已完成。客户端 [sqlxx]、代理类型 [SQL Server]、子客户端 [系统数据库]、备份级别 …
我们刚刚遭遇了一场大灾难:有人对生产数据库进行了不受控制的更新,很明显,备份过程很长时间没有工作,所以我们丢失了重大数据。一个 4000 万行的表现在充满了垃圾。
有人有恢复数据的想法吗?例如,使用文件系统恢复的工具?
事实:
老实说,这不是我们公司的第一次重大灾难,但这很容易成为最后一次。我们通常会想出一些主意来挽救这一天,但这一次,我真的没有主意了。Clusterf*ck...
编辑:问题发生在没有 where 的更新语句之后。问题是,这个问题发生在星期一下午和星期二早上(法国时间)之间,今天才发现,因为各种原因(应用程序提供了一个同步工具,所以新数据插入了现在丢失的数据,但在另一张桌子现在完全坏了)。所以实际上,表中几乎所有行(新插入的除外)都包含相同的数据(id 列除外)。
关于 ibdata* 和 ib_logfile*,我停止了复制的服务器,所以它们保持现在的状态。我无法停止主服务器上的数据库来复制文件。
我有我的 SQL Server 2005 数据库的备份,我想把它放在我的开发机器上(开发速度比通过远程桌面编写查询快得多。)
我能够在工作中的一台机器上恢复它,所以我知道备份是好的(好吧,我假设它是 - 我确实必须将它复制到外部硬盘驱动器,然后再将它复制到我当前的机器上) .
我得到的错误是这样的:
标题:Microsoft SQL Server 管理工作室
服务器“XPS17200911\SQL2005”的还原失败。(Microsoft.SqlServer.SmoExtended)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1447.4+((KJ_RTM).100213-0103+)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates .FailedOperationExceptionText&EvtID=Restore+Server&LinkId=20476
附加信息:
System.Data.SqlClient.SqlError: 文件 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf' 被 'BankA_Tables02'(4) 和 'BankA_Tables01'(3 )。WITH MOVE 子句可用于重新定位一个或多个文件。(Microsoft.SqlServer.Smo)
如需帮助,请单击:http : //go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=10.50.1447.4+((KJ_RTM).100213-0103+)&LinkId=20476
生成的 SQL 脚本(你知道我的意思)是这样的:
RESTORE DATABASE [TDC] FROM DISK = N'C:\Users\Matt\Desktop\banka.bak' WITH FILE = 1,
MOVE N'BankA' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.mdf',
MOVE N'BankA_Tables01' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables02' TO N'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.2\MSSQL\DATA\TDC.ndf',
MOVE N'BankA_Tables03' TO …Run Code Online (Sandbox Code Playgroud) 有没有办法知道数据库备份来自哪个版本的 Microsoft SQL Server 而无需恢复它?
我有一个处于 SIMPLE 恢复模式的 MSSQL 2008R2 DB,它定期备份
BACKUP DATABASE MyDB to DISK = 'Z:\MyDB.cbak' WITH COMPRESSION
Run Code Online (Sandbox Code Playgroud)
这会定期运行,在文件中创建多个备份集。我想恢复所做的最新备份。
手动执行此操作我可以运行RESTORE HEADERONLY from Disk='Z:\DougHub.cbak',然后找到要运行的最新位置RESTORE DATABASE MyDB from Disk='Z:\MyDB.cbak' with FILE = <some number> 但我想自动执行此步骤,以便它始终恢复最新的备份。
如何创建一个 TSQL 命令来从备份文件中恢复最近的备份?
我需要检查一些旧数据。我需要将昨晚的数据与今天的数据进行比较。
我将使用 SQL Data Compare 来执行此操作,但我需要设置一个新的数据库来恢复备份,以便我可以将其与现有数据库进行比较。
我的问题是,如果我有 4-5 天前的完整备份,以及此后直到今天的每一天的 .dif,我是否需要直到我想要恢复的时间点为止的所有 .dif,或者是否需要 .dif那天就够了吗?我想我需要最新的 .bak 作为新数据库的基础?
我是 PostgreSQL 的新手。我必须恢复在 widows XP 机器上运行的数据库。
我有 postgres 的 zip 文件夹。
我已经在另一台 PC 中提取了 postgres 安装并开始使用 initDB 并创建了一个新数据库,我能够登录,但我看不到任何旧表。
请您发布您在另一台Windows XP机器上启动服务器的步骤以及如何恢复旧数据文件夹中的表和数据?
我在 PhpMyAdmin 中不小心丢失了我的 MySQL 数据库,是否有可能恢复我的数据库?
几个月前,我在我的一台客户端机器上安装了 sql server 2005。我给了他一个备份选项,让他及时备份,但他从来没有做任何备份。
今天他打电话给我说“我看不到我的任何记录”。我访问了我的客户系统,发现表上没有任何记录。在任何表中甚至没有一行。然后我检查了他是否有任何我发现不存在的备份文件。
我问他原因可能是什么原因。他说可能是因为病毒。
在此之后,我检查了 mdf 和 ldf 文件的大小,发现它应该是这样的。当我创建他的服务器 mdf ldf 文件时,它有 2MB 的数据库,现在分别是 83 MB 和 193Mb mdf/ldf。
这表明数据仍然存在于其中,但未显示。
可能的原因是什么,我如何将所有数据恢复到我的表中?
当您不小心从数据库中删除了不应该删除的内容时,最好的办法是从备份中恢复?
我的托管服务提供商告诉我,我目前使用的服务器硬盘已崩溃,他们无法恢复大部分数据,他们只能通过使用取证从崩溃的硬盘中恢复一些文件或文件夹(少于 1%)恢复工具包。
他们声称他们已经尝试了多种方法,例如 ext3grep、linux 救援、fsck 和多种恢复工具,但都没有成功。
我在这 6 年中的所有数据都消失了,他们只会将托管过期日期再延长 90 天。
有没有其他方法可以从崩溃的硬盘中检索数据?
我是一名网络开发人员,对 IT 方面的知识有限。基本上,我使用 slax live CD 将所有重要文件从崩溃窗口复制到拇指驱动器或通过网络的另一台 PC。
据我所知,mysql 存储在“/var/lib/mysql”下,如果我们设法复制所有“table.frm”并粘贴到另一台服务器中,这会解决吗?
需要你的帮助。谢谢你。
问候, cw
我有一个包含许多表的 mysql 数据库。我正在开始一个新的农场,它应该包含相同数据库表的空版本。
如何基于现有数据库有效地创建空数据库?
mysql database database-administration database-restore database-backup
database-restore ×13
sql-server ×6
mysql ×5
database ×4
backup ×3
hard-drive ×1
innodb ×1
linux ×1
postgresql ×1
restore ×1
tsql ×1
windows ×1