Questions tagged «restore»

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


4
还原数据库向导将无法在SSMS 2014中打开
在运行Windows Server 2012 R2的开发机上,我刚刚将SQL Server从2012升级到2014。 使用SQL Server Management Studio 2014时,当我右键单击数据库时Tasks -> Restore -> Database...没有任何反应。还原数据库向导未按预期显示。 事件查看器中没有错误或崩溃。光标甚至都不会变成沙漏。 使用T-SQL还原可以正常工作,如果我返回并使用SSMS 2012,则可以正常工作。关于如何使向导在SSMS 2014中工作的任何想法? 我在两个版本的SSMS中都连接到相同的SQL Server实例,并且尝试以管理员身份运行SSMS。 它是Service Pack 1: Microsoft SQL Server Management Studio 12.0.4100.1 Microsoft Analysis Services Client Tools 12.0.4100.1 Microsoft Data Access Components (MDAC) 6.3.9600.17415 Microsoft MSXML 3.0 5.0 6.0 Microsoft Internet Explorer 9.11.9600.18125 …

3
“数据库正在转换”错误
今天,我正在尝试通过现有数据库还原数据库,我只是在SSMS中右键单击该数据库->任务->脱机,以便可以还原该数据库。 一个小弹出窗口出现并显示Query Executing.....了一段时间,然后抛出了一个错误说Database is in use cannot take it offline。我从中收集到该数据库的一些活动连接,因此我尝试执行以下查询 USE master GO ALTER DATABASE My_DatabaseName SET OFFLINE WITH ROLLBACK IMMEDIATE GO SSMS此时再次显示Query Executing.....一段时间,然后引发以下错误: Msg 5061, Level 16, State 1, Line 1 ALTER DATABASE failed because a lock could not be placed on database 'My_DatabaseName'. Try again later. Msg 5069, …

4
从RESTORE HEADERONLY中提取字段
我正在尝试使用“ RESTORE HEADERONLY ”来获取进行我要还原的备份的日期。 命令: RESTORE HEADERONLY FROM DISK = '<path to .bak file>' 在查询分析器中可以很好地工作,并提供一个包含50列的结果集。 问题实际上是从代码访问它。 通过声明50:ish列中的每一个,将其插入到temp表中,exec然后从中获取所需的值。 问题是我真的想避免将整个结果集声明为临时表,因为如果将来的版本中向它们添加列,这似乎是一个非常脆弱的解决方案。 有什么方法可以从结果集中只获取一个列而不声明所有列吗?

1
SQL Server错误“缺少序列号2的族”
我正在尝试还原服务器上的本地数据库,但是备份出现问题。我做了一个文件.bak,但是每次尝试将其加载到服务器上时,它都不允许我这样做。 这是我收到的错误消息的屏幕截图: 我读到可以RESTORE LABELONLY用来还原文件,但仍然无法正常工作,每次运行该文件时,我都会得到以下信息: 无法打开备份设备'C:\ Program Files \ Microsoft SQL Server \ MSSQL10_50.JOSEMA \ MSSQL \ Backu \ INNOVA-T.bak'。操作系统错误3(未能为此错误检索文本。原因:15105)。消息3013,级别16,状态1,第1行 RESTORE LABELONLY正在异常终止。 任何帮助都会很棒。谢谢。

6
在没有2005或2008实例的情况下从SQL Server 2000迁移到2012
我遇到了三个旧的数据库,它们都安装在SQL Server 2000上,我需要移至2012年。我认为标准方法是还原到2005或2008实例,更新,重新导出并最终还原到2012年。 很好,除非我们没有2005或2008实例。 是否有任何替代方法或其他方法可能值得尝试? 作为参考,数据库仅包含15-20个表和一些视图,它们看起来非常简单,备份大小仅为100-200MB。

1
恢复差异备份会创建DEFUNCT日志文件吗?
这是我的问题。我正在尝试通过完全还原将数据库移动到新服务器,然后使用快速差异备份/还原进行切换。我可以完全还原,但是还原差异备份时会收到以下警告: 消息3127,级别16,状态1,行1还原的数据库'DatabaseName'的文件'Database_Log2'处于关闭状态,因为该数据库正在使用简单恢复模型,并且该文件被标记为可读写访问。因此,只能通过逐段还原来恢复只读文件。 数据库已还原并被视为联机,但是由于此DEFUNCT文件而导致的任何备份操作失败,并出现以下错误: 消息3636,级别16,状态2,行1处理数据库ID 10文件ID 6的“ BackupMetadata”元数据时发生错误。消息3046,级别16,状态2,行1元数据不一致。唯一可能的备份操作是使用WITH CONTINUE_AFTER_ERROR或NO_TRUNCATE选项进行尾日志备份。消息3013,级别16,状态1,第1行BACKUP DATABASE异常终止。 如果我对完整文件和差异文件执行RESTORE FILELISTONLY,则两者都给我相同的输出,这与我从源数据库上的sys.database_files中看到的输出匹配。服务器为Developer Edition上的SQL2012 SP1。 我可以进行完整备份,然后立即进行差异处理,然后将这些文件还原到同一服务器上的其他数据库中,并看到完全相同的问题,因此造成差异的原因与创建差异有关。如果使用“恢复”还原完整备份,则没有问题。我不知道该文件是否曾经存在于该数据库中,但是该文件很可能曾经存在并且很久以前就被删除了。如果我在已还原的数据库上查询sys.database_files,则DEFUNCT文件具有drop_lsn的值,似乎可以确认这一点。当前,源数据库中只有一个文件组(PRIMARY),4个数据文件和一个日志文件。 有任何想法吗?

2
非DBA询问:如何通过备份/还原将SQL Server实例无痛地复制/移动到另一台服务器?
我们只有一台新服务器,因此我需要从旧数据库框中复制现有SQL Server 2008实例。 我通常通过复制.mdf和日志文件并附加它们来执行此操作,但是由于它们使用24/7,因此无法脱机,因此我已经备份了数据库并将其还原到新数据库上机。但是,我最终遇到了一些问题,其中一个与孤立用户有关。因此,我要寻找的是一种故障转移过程,以最小的麻烦/痛苦/头痛使一切顺利进行。我是一个.Net开发人员,我掌握了大量SQL,但是SQL Server的内部工作方式在很大程度上对我还是个谜,我发现拖累MS文档很麻烦。 请帮忙。

5
备份->恢复操作后混乱的用户权限
我不得不将几个SQL Server 2008数据库移动到我们的新数据库服务器,因此我将它们全部备份(到.bak文件),将这些文件复制到新框中并还原它们(所有操作都使用SQL Management Studio完成)。 一切正常,但是现在我发现我无法使用继续在旧RDBMS上运行的SQL Server帐户登录任何数据库。我的Windows身份验证登录仍然可以正常工作。 我有这样的想法,用户和权限都可以无缝地复制到新的数据库服务器上,但是似乎某个地方出了问题。我将不胜感激/建议/建议;-)

3
使用MAXTRANSFERSIZE和CHECKSUM时,无法还原启用TDE的数据库
更新:@AmitBanerjee -Microsoft SQL Server产品组的高级程序经理,确认MS将调查此问题,因为它是缺陷。 有没有人遇到在启用TDE并使用MAXTRANSFERSIZE> 65536的情况下还原在SQL Server 2016上进行的备份的问题(对于我而言,我选择了65537,以便可以压缩TDE数据库)和CHECKSUM? 下面是一个副本: --- create database create database test_restore go -- create table create table test_kin (fname char(10)) go -- Enable TDE use master GO CREATE CERTIFICATE test_restore WITH SUBJECT = 'test_restore_cert' GO SELECT name, pvt_key_encryption_type_desc, * FROM sys.certificates WHERE name = 'test_restore' GO …

1
将加密的数据库还原到另一台服务器
我正在使用在SQLServer 2008上运行的产品。可以理解的是,提供该产品的公司不提供SQLServer支持。安装产品时,我指定了密码来加密数据库。我想运行该产品的另一个副本,以便在另一台服务器上进行测试。我已将数据库还原到另一台服务器,并将产品安装在另一台服务器上。安装后,我提供了相同的密码,然后从主服务器还原了备份。但是我收到错误消息: System.Data.SqlClient.SqlException: An error occurred during decryption. 从产品。我可以使用SQLServer Management Studio访问表。 我已经试过了: 在第一台服务器上: CREATE CERTIFICATE cert1 WITH SUBJECT = 'Certificate for my stuff' BACKUP CERTIFICATE cert1 TO FILE = 'd:\backup\cert1.dat' WITH PRIVATE KEY ( ENCRYPTION BY PASSWORD = 'mypassword', FILE = 'd:\backup\cert1_privatekey.dat' ) 在第二台服务器上: CREATE MASTER KEY ENCRYPTION BY PASSWORD …

1
如何找到现有数据库的FamilyGUID
执行RESTORE命令时,我了解SQL Server确保现有数据库不会被其他数据库覆盖。可以使用绕过此检查REPLACE。 我了解SQL Server使用备份文件FamilyGUID来确定要还原的数据库是否与被覆盖的数据库相同。它是否正确? 我了解FamilyGUID可以使用以下方法确定备份文件的 RESTORE headeronly FROM DISK = N'Q:\MyBackup.bak' 但是,如何找到被覆盖的数据库的FamilyGUID?

1
无法还原(错误3456)
我的情况不容易弄清楚,以为我会在这个论坛上问其他人是否有建议。 我正在Windows Server 2008R2 Enterprise上运行SQL Server 2008 R2 Standard SP3。 数据库需要一些维护,事实上,我需要在另一台服务器上进行还原。我使用COPY_ONLY进行了完整的数据库备份,再加上一组4个日志备份。 在开始之前,创建tlogbackup1 从转换FULL为BULK_LOGGED恢复模式 添加新文件组 将文件添加到newfilegroup 将newfilegroup设置为默认 选择进入表(在newfilegroup上) 放下原始表 删除原始文件 删除原始文件组 更改新表的名称以匹配原始表 更改newfilegroup的文件名以匹配原始文件组 更改目录中的文件名以匹配原始文件名 在操作系统级别更改文件名以匹配原始文件名 将默认文件组设置为原始文件组 使数据库联机 从转换BULK_LOGGED为FULL恢复模式 完成所有步骤后,创建tlogbackup2 由于还原服务器上驱动器号的更改,所有备份的还原必须使用WITH MOVE。 恢复步骤: RESTORE database SomeDB FROM DISK = 'D:\REPRO\SomeDB.bak' WITH MOVE 'SystemData' TO 'D:\SQLDATA\SomeDB.mdf' ,MOVE 'SystemDataPDS' TO 'D:\SqlData\SomeDB.ndf' ,MOVE 'SystemData_log' TO …

1
进行还原时是否尾日志备份?
通常,在将数据库从生产服务器还原到非生产服务器时,我将使用WITH REPLACE选项,就像我忘记了有关未备份尾日志的错误时一样。 根据MSDN,在恢复之前,我确实应该备份我的尾日志: 如果数据库处于联机状态,并且您打算对数据库执行还原操作,请先备份日志尾部。为避免在线数据库出错,必须使用BACKUP Transact-SQL语句的…WITH NORECOVERY选项。 我这样做的方式有哪些危险或不利之处?为什么备份尾部日志对我来说是最有利的? 我正在使用SQL Server 2008R2,但我假设此查询与SQL Server的大多数较新版本相关,因此最初并未对其进行标记。

1
如何从LDF文件恢复数据?
我们正在使用SQL 2005 Express Edition。我们想从LDF文件中读取数据,以恢复一些已删除的记录。 我们尝试使用ApexSQL的试用版,这对我们有很大帮助。而不是寻求第三方软件,我们试图找出如何自己读取日志文件的方法。 我们如何从LDF文件读取和恢复数据?

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.