还原数据库
什么数据库?备份文件切个图?
我来看看
B. 如何还原sql数据库
1、要进行还原数据库操作我们先需要有一个数据库,这里直接打开SQL Server Management Studio,然后打开实例,在左侧按照下图中红色箭头指示右键点击数据库,然后点击 新建数据库,如下图:
C. 数据库如何还原和备份
选择需要备份的数据库,右键--任务--还原。
如何备份与还原数据库
如图点击添加,选择我们需要备份到哪里。
如何备份与还原数据库
如下图选择好路径后,给备份文件命名。
如何备份与还原数据库
如何备份与还原数据库
依次点击确定,完成以后会提示还原成功。
如何备份与还原数据库
可以把刚刚那边备份文件还原到原来的数据库,也可以还原给一个新的空的数据库。假设我们还原一个新的数据库。如图依次展开
如何备份与还原数据库
勾上选择源设备--选择路径。
如何备份与还原数据库
通过添加--找到刚刚我们备份的那个文件。
如何备份与还原数据库
如何备份与还原数据库
依次点击确定后,回到还原数据库界面,勾上还原文件。
如何备份与还原数据库
在还原数据库选项中点击选项,找到我们这个新建的数据的文件和日志存放路径。(如果不知道,可以选中该数据库--属性--文件里面找到默认路径),勾上覆盖原有数据库。确定就OK了。
如何备份与还原数据库
D. 。数据库附加和还原有什么区别在线等!
还原数据库是指在原数据库的备份情况下去还原,还原到之前的一个备份点,备份时间后的数据将不再存在
附加是指在一个数据库的基础上附加一个(其他硬盘或者服务器上的)数据库,建议不会用时先备份好,这个还原是两个概念
简单地解释就是 不如sql在这个这个电脑,数据库文件在另一台上,就可以用附加,这样sql程序和数据文件是分开的,平时都是在同一台电脑上,最多不同分区,附加可以是不同硬盘或者服务器,还可以是 这个数据是id 表 另一个sql是内容,,或者不同时期的内容,比如今年要增加一台新的服务器所sql,把新的数据放在新的sql 旧的sql数据 就可以用附加的方式
E. 如何恢复数据库
可是提交到服务器之后,一切显地都无比陌生。因为不熟悉SQL,准确来说就只会点Select,Update,Delete,Insert而已。昨天不小心误删了一张数据不多但是不在人工处理范围内的一张表内的数据。因为知道SQL Server是有日志这种东西的,事后我表现地无比淡定,在事发一个小时以内。一个小时之后,我发现我无法掌控这一事件了。上网查找了恢复数据的办法。有必要啰嗦一下。 问题1:无论是远程端还是服务器端,都无法对数据库(假设数据库叫Test)进行除‘增删查改’的其它操作,譬如分离,脱机,还原...错误提示是e.g.1 “无法分离 Test 数据库 因为它当前正在使用。”e.g.2 “因为数据库正在使用,未获得对数据的排他访问权,操作异常终止”反正嘛,就是说你丫不能阻止别人的访问。可我们就是要这样做的...只好跟它说拜拜了。 说拜拜的方法就是关掉所有访问数据库Test的进程。createproc killspid (@dbnamevarchar(20)) asbegindeclare@sqlnvarchar(500) declare@spidintset@sql='declare getspid cursor for select spid from sysprocesses where dbid=db_id('''+@dbname+''')'exec(@sql) open getspid fetchnextfrom getspid into@spidwhile@@fetch_status<>-1beginexec('kill '+@spid) fetchnextfrom getspid into@spidendclose getspid deallocate getspid end--用法use master exec killspid '数据库名'PS:代码我是这样理解的,定义一段杀死访问数据库进程的存储过程。写一段获取进程ID的代码,循环杀死每一个进程。最后调用存储过程。虽然不了解存储过程,但是意思就是这样的吧。 问题2:没有备份数据库,那该如何恢复数据呢有个软件叫做Log Explorer 这个东西可以根据数据库的日志回到过去的任何一个时刻。View Code Log Explorer for SQL Server 是个好东西,但是这根本无法解决我的问题。数据库在服务器端,学校根本不会让我安装一个软件在服务器上面。而且我证实过,这个软件必须要在服务器端装服务器端软件的。所以,这个对于我来说,是泡汤的。但是不代表这不是一个利器。 最后我用了一个很蛋疼的方法解决了。1.分离数据库,备份一个Test;2.将数据库附加回去,用自带的恢复方式恢复到一个很久以前的状态;3.将需要的那张表复制到备份的那个数据库;4.将备份的那个数据库挂回去,原数据库删了。 这是一个很蛋疼而且碰巧那张表没被改的方法。头一次知道DBA的重要性。我的方法是一个很偶然的东西,希望大家分享一下真正能解决恢复问题的办法。当然,每隔一段时间备份是绝对没有错的。 方法 另外发现一个比较有技术性的可行的方法 1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进进行一次日志备份 (如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)backuplog dbName todisk='fileName'----注意:是日志备份! 2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复 restoredatabase dbName fromdisk='fileName'with norecovery 3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻 restorelog dbName fromdisk='fileName'with stopat='date_time' 完整代码View Code 经过验证,这才叫有技术性!我那纯属“邓艾的屯‘田’”小孩子过家家。。。
F. SQL数据库如何还原
把数据库的备份文件放到服务器的任意目录下先, 然后按下面的步骤做。
如何从备份设备还原备份(企业管理器) ,从备份设备还原备份 。
展开服务器组,然后展开服务器。
展开"数据库"文件夹,右击数据库,指向"所有任务"子菜单,然后单击"还原数据库"命令。
在"还原为数据库"框中,如果要还原的数据库名称与显示的默认数据库名称不同,请在其中进行输入或选择。
若要用新名称还原数据库,请输入新的数据库名称。
说明 为数据库指定新名称将自动为从数据库备份中还原的数据库文件指定新名称。
单击"从设备",然后单击"选择设备"。
在"还原自"下,单击"磁带"或"磁盘",然后选择还原设备。
如果没有出现设备,则单击"添加"以添加现有的备份设备或创建新的备份设备。
在"还原数据库"对话框内,单击"查看内容"并选择要还原的备份集。
说明 此选项将扫描备份集以获得备份内容信息,该操作可能需要花费较长时间,特别是在使用磁带设备时。
如果已经知道要还原的备份集,则在"备份号"中输入备份集编号。
在"还原备份集"下执行下列操作之一: 单击"数据库 — 完全"还原数据库备份。
单击"数据库 — 差异"还原差异数据库备份。
单击"事务日志"应用事务日志备份。
G. sql server 怎么还原数据库
一、SQL 还原数据库
1、选择您要还原的数据库“Dsideal_school_db”,点击鼠标右键 → 任务 → 还原 → 数据库
2、在出现的“还原数据库 — school_web_db”对话框中选择“源设备”,然后点击后面的“…”按钮
3、在出现的“指定备份”对话框中,点击“添加”按钮
4、找到数据库备份的路径,选择您所要还原的数据库“Dsideal_school_db”(注意:文件类型选择所有文件),然后连续“两次”点击“确定”按钮
5、在出现的“还原数据库 — Dsideal_school_db”对话框中,勾选上“选择用户还原的备份集”下的数据库前的复选框
6、然后选择“选项”,勾选上“覆盖现有数据库”
二、还原数据库问题解决方案
在还原数据库“Dsideal_school_db”时,有时会遇见的问题“因为数据库正在使用,所以无法获得对数据库的独占访问权”,此时可以按照以下步骤解决此问题
1、右键数据库“Dsideal_school_db”,然后选择“属性”
2、在出现的“数据库属性 — Dsideal_school_db ”对话框中,选择“选项”,在“其他选项”下的“状态”中找到“限制访问”。选择“SINGLE_USER”,点击“确定”按钮
3、按照正常还原数据库的步骤,还原数据库。
H. 还原SQL数据库部分表
可以先新建数据库实例,建立相同名称数据库,再恢复到新实例,然后使用跨数据库复制:
sql 跨服务器复制分类:默认栏目
为了安全,经常要使用上双服务器,在双地区进行备份,以防止数据出错。有时我们要恢复部分表的数据,这时就需要利用sql的跨数据库的复制(当然可以利用程序转换)如何跨数据库复制一下例子可供参考。
select * from OPENDATASOURCE('SQLOLEDB','Data Source=10.0.128.106;User ID=sa;Password=as').backservers.dbo.[usys-hotel]
create table #temptable (Id varchar(50),Status varchar(50),num numeric(18,0) identity not null)
insert into #temptable select Id,Status from OPENDATASOURCE('SQLOLEDB','Data Source=10.0.128.106;User ID=sa;Password=as').backservers.dbo.[usys-hotel]
select * from #temptable
delete from #temptable
declare @i int
declare @Status varchar(50)
declare @Id varchar(50)
set @i=106
while @i<210
begin
select @i=@i 1
select @status=status from #temptable where num=@i
select @id=id from #temptable where num=@i
update [usys-hotel-info] set status=@status where id=@id
end
另外还有些方法没有用过:
先使用联结服务器:
EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
exec sp_addlinkedsrvlogin @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
GO
然后你就可以如下:
select * from 别名.库名.dbo.表名
insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
go