如何使用日志文件恢复数据库,在线等!!急,急,急

marco168 2003-05-19 09:04:20
如何使用日志文件恢复数据库,在线等!!急,急,急
...全文
28 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BBQ 2003-05-19
还原整个数据库
RESTORE DATABASE { database_name | @database_name_var }
[ FROM < backup_device > [ ,...n ] ]
[ WITH
[ RESTRICTED_USER ]
[ [ , ] FILE = { file_number | @file_number } ]
[ [ , ] PASSWORD = { password | @password_variable } ]
[ [ , ] MEDIANAME = { media_name | @media_name_variable } ]
[ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
[ [ , ] MOVE 'logical_file_name' TO 'operating_system_file_name' ]
[ ,...n ]
[ [ , ] KEEP_REPLICATION ]
[ [ , ] { NORECOVERY | RECOVERY | STANDBY = undo_file_name } ]
[ [ , ] { NOREWIND | REWIND } ]
[ [ , ] { NOUNLOAD | UNLOAD } ]
[ [ , ] REPLACE ]
[ [ , ] RESTART ]
[ [ , ] STATS [ = percentage ] ]
]



DATABASE

指定从备份还原整个数据库。如果指定了文件和文件组列表,则只还原那些文件和文件组。

{database_name | @database_name_var}

是将日志或整个数据库还原到的数据库。如果将其作为变量 (@database_name_var) 提供,则可将该名称指定为字符串常量 (@database_name_var = database name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量。

FROM

指定从中还原备份的备份设备。如果没有指定 FROM 子句,则不会发生备份还原,而是恢复数据库。可用省略 FROM 子句的办法尝试恢复通过 NORECOVERY 选项还原的数据库,或切换到一台备用服务器上。如果省略 FROM 子句,则必须指定 NORECOVERY、RECOVERY 或 STANDBY。

< backup_device >

指定还原操作要使用的逻辑或物理备份设备。可以是下列一种或多种形式:

{'logical_backup_device_name' | @logical_backup_device_name_var}
是由 sp_addumpdevice 创建的备份设备(数据库将从该备份设备还原)的逻辑名称,该名称必须符合标识符规则。如果作为变量 (@logical_backup_device_name_var) 提供,则可以指定字符串常量 (@logical_backup_device_name_var = logical_backup_device_name) 或字符串数据类型(ntext 或 text 数据类型除外)的变量作为备份设备名。

{DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var
允许从命名磁盘或磁带设备还原备份。磁盘或磁带的设备类型应该用设备的真实名称(例如:完整的路径和文件名)来指定:DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。如果指定为变量 (@physical_backup_device_name_var),则设备名称可以是字符串常量 (@physical_backup_device_name_var = 'physical_backup_device_name') 或字符串数据类型(ntext 或 text 数据类型除外)的变量。
如果使用的是含有 UNC 名称的网络服务器或已重新定向的驱动器号,则请指定磁盘的设备类型。运行 SQL Server 时所使用的帐户必须具有对远程计算机或网络服务器的 READ 访问权,这样才能执行RESTORE 操作。

n

是表示可以指定多个备份设备和逻辑备份设备的占位符。备份设备或逻辑备份设备最多可以为 64 个。

RESTRICTED_USER

限制只有 db_owner、dbcreator 或 sysadmin 角色的成员才能访问新近还原的数据库。在 SQL Server 2000 中,RESTRICTED_USER 替换了选项 DBO_ONLY。提供 DBO_ONLY 只是为了向后兼容。

该选项可与 RECOVERY 选项一起使用。

有关更多信息,请参见设置数据库选项。

FILE = { file_number | @file_number }

标识要还原的备份集。例如,file_number 为 1 表示备份媒体上的第一个备份集,file_number 为 2 表示第二个备份集。

PASSWORD = { password | @password_variable }

提供备份集的密码。PASSWORD 是一个字符串。如果在创建备份集时提供了密码,则从备份集执行还原操作时必须提供密码。

有关使用密码的更多信息,请参见"权限"。

MEDIANAME = {media_name | @media_name_variable}

指定媒体名称。如果提供媒体名称,该名称必须与备份卷上的媒体名称相匹配,否则还原操作将终止。如果 RESTORE 语句没有给出媒体名称,将不对备份卷执行媒体名称匹配检查。

回复
BBQ 2003-05-19
如何还原到某个即时点 (Transact-SQL)
还原到某个即时点

执行使用 NORECOVERY 子句的 RESTORE DATABASE 语句。


执行 RESTORE LOG 语句以应用每个事务日志备份,同时指定:
事务日志将应用到的数据库的名称。


要从其中还原事务日志备份的备份设备。


RECOVERY 和 STOPAT 子句。如果事务日志备份不包含要求的时间(例如,如果指定的时间超出了事务日志所包含的时间范围),则会生成警告,并且数据库将保持未恢复的状态。
示例
下例将数据库还原到它在 1998 年 7 月 1 日上午 10:00 点的状态,并且举例说明涉及多个日志以及多个备份设备的还原操作。

-- Restore the database backup.
RESTORE DATABASE MyNwind
FROM MyNwind_1, MyNwind_2
WITH NORECOVERY
GO
RESTORE LOG MyNwind
FROM MyNwind_log1
WITH RECOVERY, STOPAT = 'Jul 1, 1998 10:00 AM'
GO
RESTORE LOG MyNwind
FROM MyNwind_log2
WITH RECOVERY, STOPAT = 'Jul 1, 1998 10:00 AM'

回复
BBQ 2003-05-19
具体情况如何?
仔细说来!
回复
pengdali 2003-05-19
进行恢复最老的完全备份
RESTORE DATABASE test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\
BACKUP\test_1.bak' WITH NORECOVERY

恢复最近的日志
1> RESTORE LOG test FROM DISK='D:\Program Files\Microsoft SQL Server\MSSQL\BACKU
P\test_2.bak' WITH RECOVERY

还原数据日志到时间点
restore log db2 from disk='db_log_backup' with stopat='2003/4/22 9:57'
回复
happydreamer 2003-05-19
log explorer

http://www.fixdown.com/key/3970.htm

http://download.heibai.net/download/show.php?id=3125


解压缩密码 www.heibai.net

注册机产生的是注册码,是两个

用解压缩密码解开后,压缩包里也有一个注册机的


恢复数据示例

 打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....
回复
BBQ 2003-05-19
迟到一步
回复
happydreamer 2003-05-19
用日志文件进行时间点恢复,将会失去此时间点之后的所有数据库改变

example:
首先对数据库进行日志备份

查询分析器里
1.use northwind
insert employees(lastname,firstname) values('aaa','bf')
记下这时的时间

2.过3分钟输入
use northwind
insert employees(lastname,firstname) values('bbb','cd')

3.此时select * from employees 将能看到这两条记录

4.进行日志备份,选中northwind数据库,所有任务,backup database
在对话框中,选择事务日志备份为备份类型,选择已有的备份设备,和追加到媒体
单击ok进行备份.这样生成了两个新纪录的日志备份

5.以下演示恢复
所有任务 restore database
对话框中选择时点还原,输入刚才记录的时间,单击ok恢复

6.执行select * from employees ,此时只能看到第一个新插入的记录
回复
相关推荐
发帖
MS-SQL Server
创建于2007-09-28

3.3w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
帖子事件
创建了帖子
2003-05-19 09:04
社区公告
暂无公告