首页系统综合问题如何在SQL Server中执行对象级恢复,网友:损坏有救了

如何在SQL Server中执行对象级恢复,网友:损坏有救了

时间2023-01-14 00:55:25发布分享专员分类系统综合问题浏览234

今天小编给各位分享mdf文件用什么打开的知识,文中也会对其通过如何在SQL Server中执行对象级恢复,网友:损坏有救了和怎样修复已经损坏的SQL数据库呢等多篇文章进行知识讲解,如果文章内容对您有帮助,别忘了关注本站,现在进入正文!

内容导航:

  • 如何在SQL Server中执行对象级恢复,网友:损坏有救了
  • 怎样修复已经损坏的SQL数据库呢
  • sql server 2012怎么进行恢复
  • 怎样修复已经损坏的SQL数据库
  • 一、如何在SQL Server中执行对象级恢复,网友:损坏有救了

    当SQL Server数据库损坏且无法修复时,可以从最近的备份中还原它以恢复对象和数据。但是,当您需要执行对象级恢复而不是执行完整的数据库备份时,就会出现问题。

    换句话说,可能需要从数据库备份而不是整个数据库中还原特定表或任何其他对象。但是,没有直接的方法可以执行对象级恢复。

    本文讨论了一些方法来恢复SQL中的特定表或视图。此外,它还讨论了如何使用SQL修复软件来安全恢复选择性数据库对象。

    在SQL中执行对象级恢复的方法

    在这里,我们将讨论两种手动方法以及一种在SQL Server中恢复对象的自动解决方案。

    手动方法方法1:将备份还原到其他数据库并导入数据

    注意: 仅当您已对SQL Server数据库进行了完整备份时,此方法才有效。

    在SQL Server中,您可以通过执行以下步骤来选择性地恢复单个数据库对象:

    将备份还原到其他数据库。通过使用SQL Server导入和导出向导导入数据。

    让我们详细地完成每个步骤:

    步骤1:将备份还原到其他数据库

    在此步骤中,我们将还原“ DBLogTest”的备份并将其另存为名为“ TestDB”的新数据库。

    在SQL Server Management Studio(SSMS)中,连接到SQL Server的实例。在“对象资源管理器”下,将鼠标悬停在“数据库”上并右键单击它,然后单击“还原数据库”

    图1:还原SQL数据库

    “还原数据库”窗口中,选择设备选项下的数据库,然后单击浏览(...) 按钮。

    图2:选择“从设备”选项

    “指定备份” 对话框中,单击“添加”按钮。

    图3:单击添加以选择数据库备份文件

    “查找备份文件” 对话框中,单击要还原的数据库的备份文件。在我们的示例中,选择DBLogTest.bak文件。单击确定

    图4:选择备份文件

    所选备份文件的位置将添加到“指定备份”框中的“备份位置:”下。单击确定

    所选的备份文件(.bak)详细信息将添加到“还原数据库”向导中。在向导中,在“目标”下的“数据库”文本框中键入新数据库“ TestDB”的名称。

    图6:将数据库备份还原到新数据库

    如果大家在学习中遇到困难,想找一个python学习交流环境,可以加入我们的python裙,关注小编,并私信“01”即可进裙,领取python学习资料,会节约很多时间,减少很多遇到的难题。

    现在,单击“选择页面”下的“选项” ,然后选择“还原前进行日志备份”复选框,然后单击“确定”

    图7:进行尾日志备份

    出现消息“数据库'TestDB'的还原成功完成”时,单击“确定”

    图8:还原数据库完成的消息

    执行这些步骤将使用其他名称将数据库还原到SQL Server。

    步骤2:使用SQL Server导入和导出向导导入数据

    在此步骤中,我们将使用“ SQL Server导入和导出向导”。该向导有助于在流行的数据格式(例如数据库(SQL Server和Access),Excel电子表格和文本文件)之间导入和导出特定对象。

    若要使用SQL Server导入和导出向导导入数据,请按照下列步骤操作:

    右键单击新数据库“ TestDB”,单击“任务”,然后单击“导入数据”

    图9:选择导入数据选项

    点击下一步

    图10:SQL Server导入和导出向导

    “数据源”下拉列表中,选择有助于连接到数据源的数据提供程序,然后单击“下一步”

    图11:选择数据源

    选择服务器名称和您需要从中导入数据的数据库(在我们的示例中为TestDB),然后单击Next

    图12:输入服务器和数据库详细信息

    当提示您选择复制数据的目的地时,请从下拉列表中选择数据源。这将选择您要保存对象(表或视图)的目的地。

    图13:选择将数据保存到的目标位置

    单击“新建” 以创建一个要在其中放置所选数据库对象(表或视图)的数据库,然后选择“下一步”

    图14:指定目标的详细信息

    “指定表复制或查询”对话框中,选择以下任一选项,然后单击“ 下一步”从一个或多个表或视图复制数据:此选项从现有表或视图复制所有数据。编写查询以指定要传输的数据:此选项要求您编写查询以从源数据库导入特定数据。

    注意:使用复制数据库向导复制多个SQL数据库或对象(表和视图除外)。

    图15:从表复制数据或编写查询

    在此示例中,我们选择了'从一个或多个表或视图复制数据'选项。

    列出了包含“ TestDB”数据库的所有表的窗口。选择要从源复制到目标的单个或多个表。另外,双击“目标”下添加的表,然后重命名。例如,我们将“ dbo.Details”表重命名为“ dbo.NewDetails”。

    图16:选择要还原的表

    “保存并运行程序包”窗口中,选择以下任一选项:立即运行保存SSIS包

    图17:“保存并运行包”窗口

    要继续,请点击下一步按钮。 单击“完成”将数据从所选表导入到指定的目标。

    图18:完成导入过程

    所选表及其数据将被复制到目标位置。

    图19:复制到目标的选定表数据

    注意:此方法有一个缺点。使用此方法,您将需要还原完整的数据库备份,而不是直接选择要还原的对象。

    方法2:还原事务日志(T-Log)备份和导入数据

    另一种方法是执行特定对象的时间点恢复。为此,请将该RESTORE LOG命令与一个STOPAT子句一起使用,该子句有助于将T-Log备份还原到对象被删除或数据被删除的特定时间。

    从FILE = 4,NORECOVERY,STOPAT ='2021年3月19日02:00 PM'的DBLogTest恢复日志TestDB;

    警告!此命令会将所有打开的事务回滚到特定时间。

    将事务日志备份还原到某个时间点后,一旦丢失数据,就可以将数据导入到新数据库中。

    方法3:使用SQL恢复工具

    通过使用用于MS SQL软件的Stellar Repair在SQL Server中执行对象级恢复,可以节省大量时间和精力。就是这样:

    启动软件。单击“浏览”“搜索”以选择要修复的损坏的SQL数据库MDF文件。

    图20:选择损坏的SQL数据库文件

    单击修复开始修复文件。

    图21:修复SQL数据库文件

    该软件会预览所有可恢复的数据库对象,包括表,视图,存储过程,触发器等。选择要恢复的对象,然后在“文件”菜单上单击“ 保存” 。

    图22:预览可恢复的数据库对象

    将打开“保存数据库” 窗口,其中包含用于以MDF,CSV,HTML和XLS文件格式保存所选对象的选项。此外,您可以选择将恢复的数据保存在新数据库或现有数据库中。

    图23:文件保存选项

    结论

    当数据库表或其他SQL Server对象损坏或被意外删除时,可以通过执行对象级恢复而不是还原数据库来节省时间和精力。不幸的是,没有直接的方法可以在SQL Server中执行对象级恢复。但是,使用本文中讨论的手动方法可以帮助您恢复特定的表或其他对象。但是,这些方法有一定的局限性。更好的选择是使用3次聚会SQL恢复工具,可以帮助你在选择性还原特定的数据库对象,无需恢复完整或事务日志备份。

    最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。

    一、怎样修复已经损坏的SQL数据库呢

    选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。

    在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点

    右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。

    执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,

    在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

    在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

    在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

    切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

    切换到【文件组】页,在这里可以添加或删除文件组。

    完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

    二、sql server 2012怎么进行恢复

    MS
    SQL数据库从2012转移到2008的方法
    SQL
    Server
    2012
    导出的过程
    1.打开SQL
    Server
    2012
    Management
    Studio,登录到服务器,在数据库中选择要转移的数据库,
    右键--“任务(T)”--“生成脚本(E)...”。
    2.在“生成和发布脚本”窗口中,点击“下一步”,
    3.“选择要编写脚本的数据库对象”,可以不做设置,点击“下一步”,
    4.点击[保存到文件]右边的“高级”按钮,在对话框中,设置“为服务器版本编写脚本”为“SQL
    Server
    2008”,
    设置“要编写脚本的数据的类型”为“架构和数据”。选择保存脚本的位置。
    5.下一步,再下一步。导出完成。
    SQL
    Server
    2008导入的过程
    1.打开Management
    Studio,登录到服务器,
    2.选择菜单“文件”——“打开”——“文件”,选择.sql脚本文件,点击工具栏中的“执行”按钮。
    3.在左侧的“对象资源管理器”中右键“数据库”——“刷新”。完毕。

    三、怎样修复已经损坏的SQL数据库

    1.停止SQL Server的服务,备份SQL Server安装目录下的\data子目录
    下故障数据库的两个文件,一个数据文件hbposv6_branch_data.mdf,
    一个hbposv6_branch_log.ldf(也有可能非此命名),同时查看磁盘
    空间是否有足够的空间;
    2.启动SQL Server服务(如已停止),创建一个新的数据库,命名为
    原来数据库的名字。
    3.停止SQL Server
    4.把老数据库的MDF文件(hbposv6_branch_data.mdf)替换
    新数据库的相应的MDF文件,
    并把LDF文件(hbposv6_branch_log.ldg)删除。
    5.重新启动SQL Server服务,然后运行如下命令:
    Use Master
    go
    sp_configure 'allow updates', 1
    reconfigure with override
    go
    begin tran
    update sysdatabases set status = 32768 where name = 'hbposv6_branch'
    --Verify one row is updated before committing
    commit tran
    go
    6.停止SQL然后重新启动SQL Server服务,然后运行如下命令
    (更换日志文件路径地址):
    use master
    go
    DBCC TRACEON(3604)
    DBCC REBUILD_LOG
    ('hbposv6_branch',
    'c:\Program Files\Microsoft SQL Server\MSSQL\Data\hbposv6_branch_log.ldf')
    --在这里,请输入你的数据库的路径
    go
    7.停止SQL然后重新启动SQL Server服务,然后运行:
    use master
    go
    update sysdatabases set status = 8 where name = 'hbposv6_branch'
    go
    sp_configure 'allow updates', 0
    reconfigure with override
    go
    8.运行dbcc checkdb(db_name) 检查数据库的完整性
    9.修复数库
    --请在查询分析器中执行下列语句.执行前断开其它
    所有数据库连接,最好是断开网线
    --如果不是该数据库名,请将数据库
    --hbposv6_branch
    --改为要修复的数据库
    USE master
    Go
    --单用户模式
    EXEC sp_dboption 'hbposv6_branch', 'single user', 'TRUE'
    go
    --数据库检查
    DBCC CHECKDB ('hbposv6_branch')
    Go
    --如果返回结果出现了红色的提示文字,说明数据库中存在错误,需要修复
    --数据库修复
    DBCC CHECKDB ('hbposv6_branch','repair_rebuild')
    Go
    --再次数据库检查,如果返回结果中没有了红色的提示文字,
    说明修复成功;
    DBCC CHECKDB ('hbposv6_branch')
    Go
    --否则意味着还需要更高级别的修复;尝试将上面修复语句的
    'repair_rebuild'换为'repair_allow_data_loss'再试,
    之后再次检查数据库。
    --如果还有错误未修复,请把这些信息以文字的方式发给我们
    --退出前请一定要执行以下语句返回到多用户模式
    EXEC sp_dboption 'hbposv6_branch', 'single user','FALSE'
    go
    注:都要把 dbname 替换成真实的数据库名字。

    关于mdf文件用什么打开的问题,通过《sql server 2012怎么进行恢复》、《怎样修复已经损坏的SQL数据库》等文章的解答希望已经帮助到您了!如您想了解更多关于mdf文件用什么打开的相关信息,请到本站进行查找!

    爱资源吧版权声明:以上文中内容来自网络,如有侵权请联系删除,谢谢。

    mdf文件用什么打开
    数码小站 篇五:彻底关闭电视开机广告,路由器屏蔽广告教程 电脑资料删了还能恢复吗?