1、使用SQL最简单备份,还原数据库。
B. 如何从数据库的完整日志模式还原误删除的数据
从日志回复数据库
:自己一步一步按照说明试着看
--创建测试数据库
create
database
db
go
--对数据库进行备份
backup
database
db
to
disk='c:\db.bak'
with
format
go
--创建测试表
create
table
db.dbo.tb_test(id
int)
--延时1秒钟,再进行后面的操作(这是由于sql
server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
waitfor
delay
'00:00:01'
go
--假设我们现在误操作删除了
db.dbo.tb_test
这个表
drop
table
db.dbo.tb_test
--保存删除表的时间
select
dt=getdate()
into
#
go
--在删除操作后,发现不应该删除表
db.dbo.tb_test
--下面演示了如何恢复这个误删除的表
db.dbo.tb_test
--首先,备份事务日志(使用事务日志才能还原到指定的时间点)
backup
log
db
to
disk='c:\db_log.bak'
with
format
go
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
restore
database
db
from
disk='c:\db.bak'
with
replace,norecovery
go
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
declare
@dt
datetime
select
@dt=dateadd(ms,-20,dt)
from
#
--获取比表被删除的时间略早的时间
restore
log
db
from
disk='c:\db_log.bak'
with
recovery,stopat=@dt
go
--查询一下,看表是否恢复
select
*
from
db.dbo.tb_test
/*--结果:
id
-----------
(所影响的行数为
0
行)
--*/
--测试成功
go
--最后删除我们做的测试环境
drop
database
db
drop
table
#
C. 数据库被怎么通过log日志恢复数据库
从日志回复数据库 :自己一步一步按照说明试着看
--创建测试数据库
CREATE DATABASE Db
GO
--对数据库进行备份
BACKUP DATABASE Db TO DISK='c:\db.bak' WITH FORMAT
GO
--创建测试表
CREATE TABLE Db.dbo.TB_test(ID int)
--延时1秒钟,再进行后面的操作(这是由于SQL Server的时间精度最大为百分之三秒,不延时的话,可能会导致还原到时间点的操作失败)
WAITFOR DELAY '00:00:01'
GO
--假设我们现在误操作删除了 Db.dbo.TB_test 这个表
DROP TABLE Db.dbo.TB_test
--保存删除表的时间
SELECT dt=GETDATE() INTO #
GO
--在删除操作后,发现不应该删除表 Db.dbo.TB_test
--下面演示了如何恢复这个误删除的表 Db.dbo.TB_test
--首先,备份事务日志(使用事务日志才能还原到指定的时间点)
BACKUP LOG Db TO DISK='c:\db_log.bak' WITH FORMAT
GO
--接下来,我们要先还原完全备份(还原日志必须在还原完全备份的基础上进行)
RESTORE DATABASE Db FROM DISK='c:\db.bak' WITH REPLACE,NORECOVERY
GO
--将事务日志还原到删除操作前(这里的时间对应上面的删除时间,并比删除时间略早
DECLARE @dt datetime
SELECT @dt=DATEADD(ms,-20,dt) FROM # --获取比表被删除的时间略早的时间
RESTORE LOG Db FROM DISK='c:\db_log.bak' WITH RECOVERY,STOPAT=@dt
GO
--查询一下,看表是否恢复
SELECT * FROM Db.dbo.TB_test
D. SQL数据库怎么还原 用友SQL SERVER恢复数据库误删除数据方法
SQL Server中误删除数据的恢复本来不是件难事,从事务日志恢复即可。但是,这个恢复需要有两个前提条件:
1. 至少有一个误删除之前的数据库完全备份。
2. 数据库的恢复模式(Recovery mode)是“完整(Full)”。
针对这两个前提条件,会有三种情况:
情况一、如果这两个前提条件都存在,通过SQL语句只需三步就能恢复(参考文章),无需借助第三方工具。
a) 备份当前数据库的事务日志:BACKUP LOG [数据库名] TO disk= N'备份文件名' WITH NORECOVERY
b) 恢复一个误删除之前的完全备份:RESTORE DATABASE [数据库名] FROM DISK = N'完全备份文件名' WITH NORECOVERY, REPLACE
c) 将数据库恢复至误删除之前的时间点:RESTORE LOG [数据库] FROM DISK = N'第一步的日志备份文件名' WITH STOPAT = N'误删除之前的时间点' , RECOVERY
情况二、如果第1个前提条件不存在,第2个前提条件存在,需要借助第三方工具。
情况三、如果第2个前提条件不存在,无法恢复。所以,一定要将数据库恢复模式设置为“完整(Full)”。
我现在面临的是第二种情况,需要找第三方工具。
开始找的是Log Explorer for SQL Server,不支持SQL Server 2008。
后来找的是SQL Log Rescue,也不支持SQL Server 2008。
接着找到的是SysTools SQL Recovery,支持SQL Server 2008,但需要购买,Demo版并没有数据恢复功能。
最终在officerecovery.com上找到Recovery for SQL Server,虽然也是商业软件,需要购买,但Demo版可以恢复数据,只要数据库文件不超过24Gb。幸好朋友的数据库文件不大,用它完成了误删除数据的恢复。
下面分享一下用Recovery for SQL Server进行恢复的操作步骤:
1. 运行Recovery for SQL Server
2. 点击菜单中的 File > Recover,选择要恢复的数据库的数据文件(.mdf)
3. Next > Next,进入 Recovery Configuration 界面,选择Custom(选择了Custom才可以选择从日志中恢复误删除的数据)。
4. Next 进入 Recovery options 窗口,选中 Search for deleted records,并选择要恢复的数据库的日志文件路径(log file path)。
5. Next 并选择目标文件夹(Destination folder),用于存放恢复过程中生成的SQL语句与bat文件。
6. 点击Start,开始恢复操作(在上一步选择的目标文件夹中生成相应的SQL文件与Bat文件),然后,出现 SQL Server Database Creation Utility 窗口。
7. Next,选择被恢复数据存放的目标数据库。
8. Next, 选择 Import availiable data from both database and log files
9. Next, Next, 然后就完成数据的恢复!
E. 如何还原sql数据库
1、要进行还原数据库操作我们先需要有一个数据库,这里直接打开SQL Server Management Studio,然后打开实例,在左侧按照下图中红色箭头指示右键点击数据库,然后点击 新建数据库,如下图:
F. 如何通过mysql的日志恢复数据库 加急求救
1、首先确定my.ini(Win系统)或my.cnf(Linux系统)是否有如下配置
[mysqld]
log-bin=mysql-bin
等号后面是文件名或者路径加文件名。
或者
用命令看是否开启binlog配置:
mysql> show master logs;
mysql> show binlog events g;
2、提供故障时点描述信息
3、如果开启了binglog那就可以按故障还原点或者时间点进行还原操作了
mysqlbinlog --start-position=
mysqlbinlog --start-datetime=
这里语法是进一步查询的线索,不知道你是什么OS、开发还是生产库?不能乱指挥。
【备份:做故障还原及数据恢复前切忌做好备份(数据文件以及日志文件)】
G. excle中怎么将log值变回原来的数据库
通过数据库备份跟binlog日志记录,可能恢复原来的数据
恢复步骤
a)创建新的数据库 create database rollback_db;
b)将数据库备份倒入新创建的rollback_db中
c)找到数据库备份的最后时间点,并将mysqlbinlog中该时间点之后的命令操作记录通过mysqlbinlog工具保存为sql命令文本
d)将sql命令文本倒入数据库,可能rollback_db就是需要恢复的db了
3.mysqlbinlog介绍
binlog基本定义:二进制日志,也成为二进制日志,记录对数据发生或潜在发生更改的SQL语句,并以二进制的形式保存在磁盘中;
作用:MySQL的作用类似于Oracle的归档日志,可以用来查看数据库的变更历史(具体的时间点所有的SQL操作)、数据库增量备份和恢复(增量备份和基于时间点的恢复)、Mysql的复制(主主数据库的复制、主从数据库的复制)
二进制日志的信息:
文件位置:默认存放位置为数据库文件所在目录下
文件的命名方式: 名称为hostname-bin.xxxxx (重启mysql一次将会自动生成一个新的binlog)
状态的查看:mysql> show variables like '%log_bin%';
4.利用bin_log恢复数据
a)最长用的就是回复指定数据端的数据了,可以直接恢复到数据库中: mysqlbinlog --start-date="2012-10-15 16:30:00" --stop-date="2012-10-15 17:00:00" mysql_bin.000001 |mysql -uroot -p123456 亦可导出为sql文件,再导入至数据库中: mysqlbinlog --start-date="2012-10-15 16:30:00" --stop-date="2012-10-15 17:00:00" mysql_bin.000001 >d:1.sql source d:1.sqlb)指定开始结束位置,从上面的查看产生的binary log我们可以知道某个log的开始到结束的位置,可以在恢复的过程中指定回复从A位置到B位置的log.需要用下面两个参数来指定: --start-positon="50" //指定从50位置开始 --stop-postion="100"//指定到100位置结束
H. 整个SQL被删了,我把数据库文件.mdf和.log文件恢复回来了,但不知道如何恢
很简单一个数据库最重要的就是这两个文件你可以有两种方法1
直接覆盖
新建一个数据库
把两个文件覆盖到对应数据库的文件上2
用还原的方法,
其原理是和1一样的
选择设备后
在强制还原下
要在事务日记里选择你新建的数据库文件的路径
一般只有一个数据库时不用选择系统会自动找到。
I. 有什么办法还原sql server中的log文件
在导入前,我们手头上需要有数据库的备份文件。一般情况下有2种,一种是通过企业管理器备份出来的SQL文件,只有一个文件。还有一种就是数据库的源文件,有2个,分别是mdf和ldf文件,也就是数据库的数据文件和日志文件。
2
有的客户只有这2种备份文件的其中一种,针对不同的情况,我们可以采取不同的备份方式。当然我们必须确保数据库备份文件是完整的没有损坏的。
END
步骤/方法
假如你的空间商用的是星外虚拟主机管理系统,这种系统支持第一种备份文件的还原和导入。星外系统的数据库导入分为5个步骤,大家直接到空间商的数据库管理里面就可以看到,这里不再叙述,发个截图给大家看。
如果你只有数据库源文件,也就是有mdf 和ldf文件。可以直接把SQLServer暂停,然后用备份的源文件覆盖现在的初始源文件,然后启动SQLServer。注意这种办法要先开通这个数据库,保持源文件名要一致,这样才能直接覆盖。
还有一种办法就是附加数据库,把mdf和ldf文件直接附加,系统会自动生成一个数据库。下面是截图:如果你的空间商一定要第一种备份文件才能还原,可以先通过这种附加方法把数据库生成,然后在企业管理器中导出备份文件即可。注意上面的附加为:项目要写准备还原的数据库名称。
用SQL网页管理器导入备份文件。这种办法需要先安装一个web界面的SQLServer管理器,类似于管理MySQL的PHPmyadmin,应该网上有下
J. 如何恢复系统数据库
恢复系统数据库:
1、新建一个数据库“kelin”(本数据库为需要还原的数据库)。
2、右键点击需还原的数据库,选择”任务“→”还原“→”数据库“。
3、点击选择“源设备”,然后点击“..”,弹出框中备份媒介选择“文件”,然后点击“添加”按钮,找到可以用于还原的1.bak文件,点击“确定”按钮。如 图所示:
4、在“选择用于还原的备份集”下面勾选设定好的用于还原的备份集
5、点击左侧“选项”,在新界面中勾选“覆盖现有数据库”,要注意修改“还原为”中的途径,下面途径仅供参考:
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin.mdf
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\kelin_log.ldf
然后点击确定按钮。
6、最后弹出”对数据库‘kelin’的还原已成功完成“点击确定,就完成了对整个数据库的还原。