SQL数据库如何自动备份和恢复?

RESTORE DATABASE test_wt

在SQL 2008数据库中。为了防止数据的丢失我们就需要按时的来备份数据库了。要是每天都要备份的话,人工备份会很麻烦的,自动备份的话就不需要那么麻烦了,只要设置好了,数据库就会自动在你设置的时间段里备份。那么自动备份要怎么设置呢。下面为大家讲解。

sql数据库恢复挂起 sql2012数据库恢复挂起sql数据库恢复挂起 sql2012数据库恢复挂起


sql数据库恢复挂起 sql2012数据库恢复挂起


工具/原料

电脑WITH FORMAT,一台

要安装SQL 2008数据库。

方法/步骤

1在电脑开始菜单中选择“SQL Mament Studio”双击。在出现的界面中点击“连接”按钮。

2在出现的“ Microsoft SQL Mament Studio”界面中选择“管理”下的“维护”右击维护,点击“维护向导”,

3在出现的“SQL 维护向导”界面中点击“下一步”

在出现的界面中把名称和说明写上。然后点击“更改”设顶备份

在出现的“作业属性”界面中,更改执行时间,也就是多久备份一次。这里该为每天备份。间隔时间更改为“1”更改执行一次时间为0:00:00也就是在每天的0点自动备份数据。

更改好以后,就可以在下面看到“在每天的 0:00:00 执行。将从 2014-5-16 开始使用。”然后点击“下一步”按钮

在选择维护任务界面中选择要备份的数据库文件。然后点击下一步。

在选择确定后:出现下面情况:维护任务顺序中,可以移动要备份的数据库文件的顺序。然后点击“下一步”

在定义“备份数据库完整”界面中,选择数据库后面下拉菜单中的数据库文件。然后点击“确定”按钮

在定义“备份数据库完整”界面里选择备份路径。然后点击“下一步”

在“选择报告选项”界面中设置好“报告文本文件”的路径。然后点击“下一步”

在出现的“完成该向导”界面中会看到设置备份的详细信息。

SQL 数据库LOG丢失后应当如何恢复

--------二,如果是sqlserver数据库,那么-----------

2.直接拷贝数据库文件mdf和日志文件ldf的方式。 下面我们来讲解一下在只有mdf文件时,应当如何进行恢复:◆1.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Enterprise ManagB 停掉数据库er里面建立。 ◆2.停掉数据库。 ◆3.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。 ◆4.启动数据库。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何作。 ◆5.设置数据库允许直接作系统表。此作可以在SQL Enterprise Mar里面选择数据库,按右键,选择“属性”,在“设置”页面中将“允许对系统目录直接修改”一项选中。 ◆6.设置test为紧急修复模式 update sysdatabases set status=-32768 where dbid=DB_ID('test')此时可以在SQL Enterprise Mar里面看到该数据库处于“只读置疑脱机紧急模式”可以看到数据库里面的表。 ◆7.下面执行真正的恢复作,重建数据库日志文件 dbcc rebuild_log('test','C:Program FilesMicrosoft SQL MSSQLDatatest_log.ldf')执行过程中,如果遇到下列提示信息:: 消息 5030,级别 16,状态 1,行 1未能排它地锁定数据库以执行该作。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQL Enterprise Mar打开了test库的系统表,那么退出SQL Enterprise Mar就可以了。正确执行完成的提示应该类似于:: 数据库 'test' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。 DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统联系。此时打开在SQL Enterprise Mar里面会看到数据库的状态为“只供DBO使用”。 至此,我们就可以访问数据库里面的用户表了。

SQL :无日志恢复数据库

as2. 卸载原来的安装

事情的起因 昨天 系统告诉我 我们一个内部应用数据库所在的磁盘空间不足了 我注意到数据库日志文件XXX_Data ldf文件已经增长到了 GB 于是我决意缩小这个日志文件 经过收缩数据库等作未果后 我犯了一个自进入行业以来的最愚蠢的错误:竟然误删除了这个日志文件!后来我看到所有论及数据库恢复的文章上都说道: 无论如何都要保证数据库日志文件存在 它至关重要 甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的 我真是不知道我那时候是怎么想的?!这下子坏了!这个数据库连不上了 企业管理器在它的旁边写着 (置疑) 而且最要命的 这个数据库从来没有备份了 我找得到的是迁移半年前的另外一个数据库 应用倒是能用了 但是少了许多记录 表和存储过程 真希望这只是一场噩梦!数据库日志文件的误删或别的原因引起数据库日志的损坏 方法一 新建一个同名的数据库 再停掉sql server(注意不要分离数据库) 用原数据库的数据文件覆盖掉这个新建的数据库 再重启sql server 此时打开企业管理器时会出现置疑 先不管 执行下面的语句(注意修改其中的数据库名) 完成后一般就可以访问数据库中的数据了 这时 数据库本身一般还要问题 解决办法是 利用数据库的脚本创建一个新的数据库 并将数据导进去就行了 USE MASTERGOSP_CONFIGURE ALLOW UPDATES RECONFIGURE WITH OVERRIDEGOUPDATE SYSDATABASES SET STATUS = WHERE NAME= 置疑的数据库名 Gosp_dboption 置疑的数据库名 single user true GoDBCC CHECKDB( 置疑的数据库名 )Goupdate sysdatabases set status = where name= 置疑的数据库名 Gosp_configure allow updates reconfigure with overrideGosp_dboption 置疑的数据库名 single user false Go 方法二 事情的起因昨天 系统告诉我 我们一个内部应用数据库所在的磁盘空间不足了 我注意到数据库日志文件XXX_Data ldf文件已经增长到了 GB 于是我决意缩小这个日志文件 经过收缩数据库等作未果后 我犯了一个自进入行业以来的最愚蠢的错误:竟然误删除了这个日志文件!后来我看到所有论及数据库恢复的文章上都说道: 无论如何都要保证数据库日志文件存在 它至关重要 甚至微软甚至有一篇KB文章讲如何只靠日志文件恢复数据库的 我真是不知道我那时候是怎么想的?!这下子坏了!这个数据库连不上了 企业管理器在它的旁边写着 (置疑) 而且最要命的 这个数据库从来没有备份了 我找得到的是迁移半年前的另外一个数据库 应用倒是能用了 但是少了许多记录 表和存储过程 真希望这只是一场噩梦!没有效果的恢复步骤附加数据库_Rambo讲过被删除日志文件中不存在活动日志时 可以这么做来恢复: 分离被置疑的数据库 可以使用sp_detach_db 附加数据库 可以使用sp_attach_single_file_db但是 很遗憾 执行之后 SQL 质疑数据文件和日志文件不符 所以无法附加数据库数据文件 DTS数据导出不行 无法读取XXX数据库 DTS Wizard报告说 初始化上下文发生错误 紧急模式怡红公子讲过没有日志用于恢复时 可以这么做: 把数据库设置为emergency mode 重新建立一个log文件 把SQL 重新启动一下 把应用数据库设置成单用户模式 做DBCC CHECKDB 如果没有什么大问题就可以把数据库状态改回去了 记得别忘了把系统表的修改选项关掉我实践了一下 把应用数据库的数据文件移走 重新建立一个同名的数据库XXX 然后停掉SQL服务 把原来的数据文件再覆盖回来 之后 按照怡红公子的步骤走 但是 也很遗憾 除了第 步之外 其他步骤执行非常成功 可惜 重启SQL 之后 这个应用数据库仍然是置疑!不过 让我欣慰的是 这么做之后 倒是能够Select数据了 让我大出一口气 只不过 组件使用数据库时 报告说: 发生错误: 未能在数据库 XXX 中运行 BEGIN TRANSACTION 因为该数据库处于回避恢复模式 最终成功恢复的全部步骤设置数据库为紧急模式停掉SQL 服务;把应用数据库的数据文件XXX_Data mdf移走;重新建立一个同名的数据库XXX;停掉SQL服务;把原来的数据文件再覆盖回来;运行以下语句 把该数据库设置为紧急模式;运行 Use MasterGosp_configure allow updates reconfigure with overrideGo 执行结果:DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统联系 已将配置选项 allow updates 从 改为 请运行 RECONFIGURE 语句以安装 接着运行 update sysdatabases set status = where name = XXX 执行结果:(所影响的行数为 行)重启SQL 服务;运行以下语句 把应用数据库设置为Single User模式;运行 sp_dboption XXX single user true 执行结果:命令已成功完成 ü 做DBCC CHECKDB;运行 DBCC CHECKDB( XXX ) 执行结果: XXX 的 DBCC 结果 sysobjects 的 DBCC 结果 对象 sysobjects 有 行 这些行位于 页中 sysindexes 的 DBCC 结果 对象 sysindexes 有 行 这些行位于 页中 syscolumns 的 DBCC 结果 ………ü 运行以下语句把系统表的修改选项关掉;运行 sp_resetstatus XXX gosp_configure allow updates reconfigure with overrideGo 执行结果:在 sysdatabases 中更新数据库 XXX 的条目之前 模式 = 状态 = (状态 suspect_bit = ) 没有更新 sysdatabases 中的任何行 因为已正确地重置了模式和状态 没有错误 未进行任何更改 DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统联系 已将配置选项 allow updates 从 改为 请运行 RECONFIGURE 语句以安装 重新建立另外一个数据库XXX Lost;DTS导出向导运行DTS导出向导;源选择EmergencyMode的数据库XXX 导入到XXX Lost;选择 在SQL 数据库之间对象和数据 试了多次 好像不行 只是过来了所有表结构 但是没有数据 也没有视图和存储过程 而且DTS向导报告失败;所以选择 从源数据库表和视图 但是后来发现 这样总是只能一部分表记录;于是选择 用一条查询指定要传输的数据 缺哪个表记录 就导哪个;视图和存储过程是执行SQL语句添加的 维护Sql 中表的索引在使用和创建数据库索引中经常会碰到一些问题 在这里可以采用一些另类的方法解决… 步:查看是否需要维护 查看扫描密度/Scan Density是否为 %declare @table_id intset @table_id=object_id( 表名 )dbcc showcontig(@table_id) 第二步:重构表索引dbcc dbreindex( 表名 pk_索引名 ) 重做步 如发现扫描密度/Scan Density还是小于 %则重构表的所有索引 并不一定能达 % dbcc dbreindex( 表名 ) lishixinzhi/Article/program/SQL/201311/22169

--确定,回到数据库还原的界面

sql数据库提示正在恢复怎么处理

-m 单用户模式启动SQL

重新恢复一下,并加上参数: restore database 数据库名 from disk='c:/a.bak' with RECOVERY 当前的提示“正在装载”是因为你使用"windows身份验证"的,输入:isql /E恢复的时候使用了 wNORECOVERYith NORECOVERY 选项。

SQL2000数据库崩溃后的补救措施

此外,我们还可以尝试用下面的方法:

案例描述:

SQL 2000数据库崩溃后,重装数据库前的准备:

1.三个系统库(,msdb,model)的完全备份:

2.两个用户数据库(user01,user02)的备份(周日的完全备份+除周日外每天的异备份):

三个系统数据库是早期备份的,之间没有更新过帐号信息,没有增减过饕档鹊取?

需求:一次性恢复到用户数据库一个备份前的状态。

下文中,我们将介绍一下常规的恢复过程:

1. 备份可用的数据, 包含所有系统数据库和用户数据库的数据文件和日志文件(.mdf/ldf/ndf)

3. 系统表查找和删除所有的MSSQL项

4. 磁盘上删除安装SQL SErver产生的所有文件

6. 单用户模式下恢复数据库

8. 恢复用户数据库

如你的时间比较充裕,而且想尽量恢复数据到最近的时间点, 可以在上述步骤中做以下的尝试:

1. 首先,将第6,7两个步骤改为:

a. 停止MSSQL服务

b. 用步骤1备份的系统数据库的数据文件和日志文件替换安装后生成的系统数据库的对应文件

c. 建立与SQL 系统崩溃之前一样的用户数据库的存放目录, 并且把用户数据库文件按原来的位置存放

e. 如果MSSQL服务成功, 在企业管理看看用户数据库有没有置疑, 如果没有置疑, 则其他作都不用做了, 数据已经恢复

在具体作以上的步骤b之前, 先备份准备覆盖的文件。

2. 如果步骤1的尝试不成功, 则再做下面的尝试, 把步骤8修改为下面的:

a. 停止MSSQL服务

c. 尝试用附加的方式恢-从整体上控制5. 重新安装SQL ,所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致用户数据库和SQL 作,在创建了任何用户定义的对象后,都要备份它复用户数据库

d. 如果成功, 则修复各用户数据库中的孤立用户

恢复过程会涉及到的一些具体处理 1. 恢复系统数据库:

model-为新数据库提供模版和原型

msdb-包含了有关作业、报警及作员等信息

如包含系统数据库的介质已经改变,则必须重建系统数据库,如果你目前仍然可以启动SQL 服务,则可以通过RESTORE语句从系统数据库的备份中恢复数据库。

如果坏了,不能启动系统,可以按照下面步骤进行恢复

(1)重建系统数据库 运行c:mssql7binnrebuildm.exe,按照提示进行即可,

过程中需要系统数据库样本的路径,可在安装光盘中找到;

(2)重建系统数据库后,启动SQL 服务,用系统数据库的备份恢复数据库

就行了通常恢复顺序为->msdb->model

在恢复的备份时要注意:必须在单用户(single user)模式下进行

进入单用户模式的方法:

a. 在命令行模式下输入:sqlservr -c -f -m或者输入sqlservr -m

其中:-c 可以缩短启动时间,SQL 不作为Windows NT的服务启动

-f 用最小配置启动SQL

(3)进行数据库的恢复

a. 直接进入查询分析器,有个提示不要理会它

输入恢复语句进行数据库恢复:

RESTORE DATABASE from disk='c:具体的备份文件名'

b. 或者用这个,在命令提示符下输入,注意大小写

然后在出现的提示符下输入(注意1>,2>是提示符):

2>GO

2. 还原数据库的具体步骤:

(1) 恢复最近一次的完整备份

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中输入还原后的数据库名,设为:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--"还原备份集",选择"数据库--完全"

--选项--将"移至物理文件名"中的物理文件名修改为你的数据文件要存放的文件名

--如果要还原的数据库已经存在,选择"在现有数据库上强制还原"

--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"

--确定 --或用SQL语句:

RESTORE DATABASE 数据库名

FROM DISK = 'c:你的完全备份文件名'

WITH NORECOVERY

(2)恢复完全备份后, 最近一次的异备份(如果有的话)

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中选择数据库名:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--"还原备份集",选择"数据库--异"

--"恢复完成状态",选择"使数据库不再运行,但能还原其它事务日志"

RESTORE DATABASE 数据库名

FROM DISK = 'c:你的异备份文件名'

WITH NORECOVERY

(3)按时间先后, 恢复异备份后(如果没有异备份,则是完全备份)的所有日志备份

企业管理器--右键"数据库"--所有任务--还原数据库

--"还原为数据库库"中选择数据库名:test

--还原选择"从设备"--选择设备--添加--添加你的备份文件

--"还原备份集",选择"事务日志"

--"恢复完成状态"

如果是恢复一个日志文件,选择"使数据库可以继续运行,但无法还原其它事务日志"

否则选择"使数据库不再运行,但能还原其它事务日志"

--或者使用SQL语句:

RESTORE DATABASE 数据库名

FROM DISK = 'c:你的日志文件名'

WITH RECOVERY

3. 解决孤立用户:

(1) 查看某个数据库的孤立用户:

USE 库名

EXEC sp_change_users_login 'Report'

(2)自动修复某个孤立的用户:

USE 库名

EXEC sp_change_users_login 'Auto_Fix', '孤立用户名', NULL, '密码'

--如密码指示用户对应的登录不存在时, 系统自动建立登录, 为登录分配密码。

sql server中有哪些数据备份和数据恢复功能

WITH

1、SQL数据库恢复模型

pubs

----------------------------------------------------------------------

SQL语句备份和恢复

1)完全恢复模型

(1)备份时要备份数据库的数据文件和日志文件

(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。

(3)能还原全部数据,并可以将数据库恢复到任意指定的时刻。

(4)为保证实现即时点恢复,对数据库的所有作都将完整地记入日志,这样,日志占用空间较大,对性能也有所影响。

------------------

(2)大容量日志记录恢复模型

------------------

(1)备份时要备份数据库的数据文件和日志文件

(2)还原时使用数据库的备份的数据文件副本和全部日志信息来恢复数据库。

(3)日志中不记录作细节(如select into、create index等),而只记录作的最终结果,因此占用日志空间小。

(4)只支持将数据库还原到事务日志备份的时刻,而不支持即时点恢复,因此可能产生数据丢失。

(3)简单恢复模型

(3)不适于生产系统和大规模作环境下选用。

alter database d1 set recovery --设置数据库恢复模型

alter database d1 set recovery bulk_logged

sql数据库delete删除后怎么恢复?

SQL 2000数据库崩溃后的补救措施:

通过oracle提供的回闪功能, 如果是刚刚删除,那么有两方法:

USE

首先用show parameter undo;命令查看当时的数据库参数undo_retention设置。

显示create table tableName_bak如下:

undo_mament string AUTO

undo_retention integer 10800

undo_suppress_errors boolean FALSE

undo_tablespace string UNDOTBS1

undo_retention(保持力),10800单位是秒。即3个小时。

修改默认的undo_retention参数设置:

ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH。

如果是删除一段时间了,但你有比较新的数据库备份,就通过备份来恢复。新建一个库,把备份还原上去,导出表数据,再导入到现在用的库中去。

如果删除一段时间了,并且无备份,但是数据在写入表的时候同时会写入其它一些关联表的话,那么就尝试通过写SQL语句从其它表取数据出来insert到被删除的表中。

恢复Delete某些记录的前题为:

SQL SERVER的故障还原模型为完全(注意)

--企业管理器

--右键点击数据库

--属性

--选项

--故障还原模型

不行就用Log Explorer还原!!有备份的话,恢复备份也行啊!

怎样用SQL语句恢复SQLSERVER数据库备份,并覆盖现有(正在使用)数

--确定

restore database xxxx

例2:使用数据库标记将日志恢复到预定义时间点的语句

使用"sql server和windows身份验证"的,输入:isql /U"用户名" /P"密码"from

disk='c:....'

with

Delphi中可以使用存储过程来调用,据库名和备份文件名作为

如何恢复和修复MS SQL数据库的MDF文件[2]

注意事项:

怎么办呢?别着急 下面我们举例说明恢复办法

A 我们使用默认方式建立一个供恢复使用的数据库(如test) 可以在SQL Enterprise Mar里面建立

C 将刚才生成的数据库的日志文件test_log ldf删除 用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data mdf

D 启动数据库 此时会看到数据库test的状态为 置疑 这时候不能对此数据库进行任何作

E 设置数据库允许直接

作系统表 此作可以在SQL Enterprise Mar里面选择数据库 按右键 选择 属性 在 设置 页面中将 允许对系统目录直接修改 一项选中 也可以使用如下语句来实现

以下是引用片段 use go sp_configure allow updates go reconfigure with override go

F 设置test为紧急修复模式

update sysdataba--或用SQL语句:ses set status= where dbid=DB_ID( test )

此时可以在SQL Enterprise Mar里面看到该数据库处于 只读置疑脱机紧急模式 可以看到数据库里面的表 但是仅系统表

G 下面执行真正的恢复作 重建数据库日志文件

dbcc rebuild_log( test C:Program FilesMicrosoft SQL MSSQLDatatest_log ldf )

执行过程中 如果遇到下列提示信此时打开在SQL Enterprise Mar里面会看到数据库的状态为 只供DBO使用 此时可以访问数据库里面的用户表了息

: 消息 级别 状态 行

未能排它地锁定数据库以执行该作

DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统联系

说明您的其他程序正在使用该数据库 如果刚才您在F步骤中使用SQL Enterprise Mar打开了test库的系统表 那么退出SQL Enterprise Mar就可以了

正确执行完成的提示应该类似于

: 数据库 test 的日志已重建 已失去事务的一致性 应运行 DBCC CHECKDB 以验证物理一致性 将必须重置数据库选项 并且可能需要删除多余的日志文件

DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统联系

H 验证数据库一致性(可省略)

dbcc checkdb( test )

一般执行结果如下

CHECKDB 发现了 个分配错误和 个一致性错误(在数据库 test 中)

DBCC 执行完毕 如果 DBCC 输出了错误信息 请与系统联系

I 设置数据库为正常状态

sp_dboption test dbo use only false

如果没有出错 那么恭喜 现在就可以正常的使用恢复后的数据库啦

J 一步 我们要将步骤E中设置的 允许对系统目录直接修改 一项恢复 因为平时直接作系统表是一件比较危险的事情 当然 我们可以在SQL Enterprise Mar里面恢复 也可以使用如下语句完成

以下是引用片段 sp_configure allow updates go reconfigure with override go

lishixinzhi/Article/program/SQL/201311/16354