昨天帮一个朋友恢复了sql server 数据库 现在把过程写出来 大家一起分享
我那个哥们是从别人那拷了一个数据库的数据文件 (c:\mssql \data 目录下的文件)
最初我是用的
在一台好的机器上重新安装SQL Server 建立相同的数据库设备(大小) 和数据库
停掉SQL Server 用拷贝出来的数据库文件覆盖刚建立的数据库文件 再重新启动
SQL Server 但一直不可以 我猜关键是无法建立相同的数据库设备(大小)
后来采用了
系统存储过程
sp_attach_db // 附加数据库文件到服务器
或
sp_attach_db_single_file // 附加数据库的单个文件到服务器
具体的sql 语句就是
例如
EXEC sp_attach_single_file_db pubs e:\data\pubs mdf sp_attach_db @dbname= conmis @filename = d:\ \conmis _data mdf @filename = d:\ \conmis _log ldf
如何附加数据库文件到服务器(即 通过 mdf ldf 文件修复数据库)
另外查找资料时看到也可以通过日志恢复以前的数据 不知那位哥们看看是不是可以
用日志恢复
restore log {data_name|@database_name_var}fromwith [norecovery\recovery\standby_undo_file_name][ ][stopat={data_time|@data_time_var}
例如 库名为database 日志为database _log 要求恢复 / / : 前的数据
lishixinzhi/Article/program/SQL/201311/16392
举报违规检举侵权投诉|2013-10-22 08:49 提问者采纳 天天爱答题,20元话费等你拿~这包括实例范围的元数据(例如登录帐户)、 端点、链接服务器和系统配置设置。此外,master数据库还记录了所有其他数据库的 存在、数据库文件的位置以及SQLServer 的初始化信息。因此,如果master数据库 不可用,则SQLServer 无法启动。在SQLServer中,系统对象不再存储在master 数据库中,而是存储在mssqlsystemresource数据库中。 master数据库对系统来说很关键,因此总是要保存它的当前副本。创建另一个数据库, 改变配置值,修改登录账户这样的 *** 作都会修改master数据库,所以总是应该在完成 这些 *** 作之后备份master数据库。master数据库本身不大,做一次备份很快,建议经 常做master数据库的备份。 由于master数据库还记录启动服务器实例所需要的初始化信息,每个其他数据库的主文 件位置。master数据库是SQLServer启动的时候打开的第一个数据库。SQLServer是从 master数据库找到的其他数据库的信息。如果master数据库存在问题,整个SQLServer 都无法正常启动。 如果说是master数据库严重损坏,如果有备份直接还原master数据库即可。如果没有备 份,则需要重建master数据库。重建master数据库将使所有的系统数据库恢复到原始状 态。重建master数据库会删除并重建msdb数据库。这将导致丢失所有计划信息以及备份 和还原历史记录。重建master数据库之后,SQLServer数据库就好比重新安装后一样, 所有用户信息都会丢失,用户数据库需要重新附加,SQLServer任务和计划都要重建。 因此重建master数据库是个万不得已的选择。 在执行任何语句或系统过程来更改master数据库中的信息以后,应备份master数据库 建议不要再master数据库中创建用户对象 导致master数据库更新并要求备份的 *** 作类型包括: 1,创建或删除用户数据库 2,添加或删除文件和文件组 3,添加登陆或其他登陆安全相关 *** 作 4,更改服务器范围的配置选项或者数据库配置选项 5,创建或删除逻辑备份文件 6,配置用于分布式查询和远程调用的服务器,如添加链接服务器或远程登录 恢复master数据库使用的还是RESTORE指令还原master数据库后SQLServer实例将自动停止 关于如何恢复master数据库,在后面将单独写一篇博客 model数据库 用作在SQLServer实例上创建的所有数据库的模板。因为每次启动SQLServer 时都 会创建tempdb,所以model数据库必须始终存在于 SQLServer系统中。 创建数据库是model数据库是SQLSERVER使用的模板model数据库里的全部内容都会被复 制到新的数据库所以这个数据库不建议做任何修改除非是有目的的要建立一些模板 虽然这个数据库的内容一般不会发生改变,但是在SQLServer启动的时候要使用model数 据库某些设置创建新的tempdb。如果没有tempdb,SQLServer无法启动。因此model数据库 必须存在SQLServer系统中。这个数据库也要有备份。 还原model数据库与对用户数据库执行完整的数据库还原相同 tempdb数据库 tempdb系统数据库是一个全局资源,可供连接到SQLServer 实例的所有用户使用,并 可用于保存下列各项: 显式创建的临时用户对象,例如全局或局部临时表、临时存储过程、表变量或游标。 SQLServer数据库引擎创建的内部对象,例如,用于存储假脱机或排序的中间结果的工作表。 由使用已提交读(使用行版本控制隔离或快照隔离事务)的数据库中数据修改事务生成的行版本。 由数据修改事务为实现联机索引 *** 作、多个活动的结果集(MARS)以及AFTER 触发器等功能而生 成的行版本。 tempdb中的 *** 作是最小日志记录 *** 作。这将使事务产生回滚。每次启动SQLServer 时都会重新 创建tempdb,从而在系统启动时总是保持一个干净的数据库副本。在断开联接时会自动删除临时 表和存储过程,并且在系统关闭后没有活动连接。因此tempdb中不会有什么内容从一个SQLServer 会话保存到另一个会话。不允许对tempdb进行备份和还原 *** 作。 资源数据库(mssqlsystemresource) 资源数据库是一个隐藏数据库。可执行系统对象(入系统存储过程和功能)都保存在这里。创建这个数 据库是为了快速安全的升级。如果没有人可以访问到这个数据库,也就没有人可以改变它。简单的用 新的资源数据库替换掉旧的资源数据库,就可以升级到新的,包括新系统对象服务包。不能使用任何 正常方法查看该数据库。但这个数据库任然需要磁盘空间。 mssqlsystemresource数据库从来不做修改,理论上不用备份。 msdb数据库 由SQLServer代理用于计划警报和作业,也可以由其他功能(如ServiceBroker 和数据库邮件)使用 SQLServer将在msdb数据库中自动维护一份完整的在线备份与还原历史记录。这些信息包括执行备份一 方的名称,备份时间和用来存储备份的备份设备。SQLServerManagementStudio利用这些信息提出 计划以还原数据库并应用事务日志备份。 默认情况下msdb使用简单恢复模式。 还原msdb数据库与对用户数据库执行完整的数据库还原相同
1选择源数据库工具会自动显示该数据库之前的一些备份,然后直接选择需要还原的数据库备份集。
2选择源设备点击后面的,添加需要还原的数据库文件。
3点击确认还原数据库
数据库的分离与附加:
1 在启动SSMS并连接到数据库服务器后,在对象资源管理器中展开服务器节点。在数据库对象下找到需要分离的数据库名称,这里以student_Mis数据库为例。右键单击student_Mis数据库,在d出的快捷菜单中选择属性。
2 在“数据库属性”窗口左边“选择页”下面区域中选定“选项”对象,然后右边区域的“其它选项”列表中找到“状态”项,单击“限制访问”文本框,在其下拉列表中选择“SINGLE_USER”。
3 点击“确定”按钮后将出现一个消息框,通知我们此 *** 作将关闭所有与这个数据库的连接,点击“是”按钮后,数据库名称后面增加显示“单个用户”。右键该数据库名称,在快捷菜单中选择“任务”的二级菜单项“分离”。
4分离数据库窗口中列出了我们要分离的数据库名称,参数设置完成后,单击底部的”确定”按钮,就完成了所选数据库的分离 *** 作。
方法:
第一步:选择需要还原的数据库,鼠标右键,选择任务下的还原;
第二步:选择“源设备”,点击后面的文件选择“”;
第三步:添加需要还原的数据库,还原的数据库文件后缀为备份文件(bak);
第四步:选中添加进来的还原文件,找到左上角上的“选择项”,勾选第一项(覆盖现有数据库),点击确定就可以了。
注意事项
1、一定要记得覆盖现有数据库;
2、执行数据库 *** 作的时候,请断开当前数据库的任何使用(例如查询,数据库的连接使用)。
是可以回复的,网站的网页就不用说了,重新部署在机器上就可以。
至于数据库的话,既然你把C:\Program Files\Microsoft SQL Server\MSSQL下面的内容统统的进行了备份,那么会有这样一个目录C:\Program Files\Microsoft SQL Server\MSSQL\Data 这个目录下面存放着SQLServer数据库的数据文件和日志文件,比如对pubs数据库来说就是(pubsmdf和pubs_logldf)这两个就是数据库的关键文件。你需要按照如下方法进行 *** 作:
第一先在SQLServer下新建一个数据库和你以前的数据库同名。
第二将这个新建的数据库“脱机”(在数据库上点右键,选择“所有任务”里面会有“脱机”这个选项)
第三从上面提到的目录下将和你数据库同名的两个文件复制出来。
第四将这两个文件拷贝到你新安装的SQLServer的“Data”文件夹下,覆盖掉现有的同名文件,如果你的安装和以前一样的话那么路径如下“C:\Program Files\Microsoft SQL Server\MSSQL\Data”
第五将刚才被“脱机”的数据库重新启动就可以了。
以上就是关于如何恢复数据库的内容全部的内容,包括:如何恢复数据库的内容、DB数据库文件连接失败怎么修复,救急!!!、数据库分离后,如何还原等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)