Mysql 如何还原数据库

Mysql 如何还原数据库,第1张

本文将详细阐述如何还MysqlWorkbench上还原mysql数据库

首先,打开MysqlWorkbench

点击LocalinstanceMySql57进行登录,输入root密码

登录进去后,点击左边栏的administrationt选项卡

在里面找到“dataimport/restore”,点击进入。

这个地方需要选择importfromself-containedfile,从文件夹中选择备份的文件,然后在defaulttargetschema选项里选择要还原的数据库名称。右下角选择“dumpstructureanddata”

一切准备就绪后,点击右下角的“startimport”,开始还原数据库,最后进度条完成后,表示数据库还原完成。

SQL2000数据库的备份概念

SQL

SERVER

2000有四种类型是:数据库、事务日志、差异、文件和文件组

数据库备份是创建完事数据库的复本。它并非将所有的页都复制到备份集,而只将实际包含数据的页复制到备份集。数据页和事务日志页均复制到备份集。

数据库备份用于重新创建数据库,使其恢复到BACKUP语句完成时的状态。如果数据库只存在数据库备份,那么数据库只能恢复到服务器或数据库发生故障前最后一次数据库备份时的状态。

事务日志备份仅制作日志文件的复本。日志文件备份本身不能用于还原数据库。日志文件用于在数据库还原后将数据库恢复到原始故障点。

例如,某站点在星期天晚上执行数据库备份,而在其它每个晚上执行日志备份。如果数据库的某个数据磁盘在星期二2:30丢失,则该站点可以:

1备份当前事务日志

2还原从星期天晚上开始的数据库备份

3还原从星期一晚上开始的日志备份,以将数据库前滚。

4还原故障之后的日志备份。这将使数据库前滚到故障发生的那一刻。

事务日志恢复需要从数据库备份的那一刻到磁盘丢失那一刻之间所进行的一边串不间断的事务日志备份。

差异备份只追寻数据库中自上一次数据库备份之后修改过的所有页的复本。差异日志主要用于使用频繁的系统,一旦这类系统中的数据库发生故障,必须尽快使其重新联机。差异备份比完事数据库备份小,因此对正在运行的系统影响较小。

例如,某个站点在星期天晚上执行完事数据库备份。在白天每隔4小时制作一个事务日志备份集,并用当天的备份重写头一天的备份。每晚则进行差异备份。如果数据库的某个数据磁盘在星期四上午9:12出现故障,则该站点可以:

1备份当前事务日志。

2还原从星期天晚上开始的数据库备份。

3还原从星期三晚上开始的差异备份,将数据库前滚到这一时刻。

4还原从早上4点到8点的事务日志备份,以将数据库前滚到早上8点。

5还原故障之后的日志备份,这将使数据库前滚到故障发生的那一刻。

SQL2000支持备份或还原数据库中的个别文件或文件组。这是一种相对较完善的备份和还原过程,通常用在具有较高可用性要求的超大型数据库中。如果可用的备份时间不足以支持完事数据库备份,则可以在不同的时间备份数据库的子集。

例如,某站点需要花三小时备份数据库,并且每天只能用两个小时执行备份。该站点可在一个晚上备份一半文件或文件级,并在第二个晚上备份另一半。如果包含数据库文件或文件组的磁盘出现故障,那么该站点可以只还原丢失的文件或文件组。

该站点还必须进行事务日志备份,并且在备份文件或文件组之后必须还原所胡事务日志备份。还可以从完事数据库备份集中还原文件和文件组。这将回忆恢复速度,因为在第一步只还原已损坏的文件或文件组,而不是整个数据库。

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

案例描述:

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

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

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

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

两个用户数据库在上周日晚做过完全备份(user01bak和user02bak)

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

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

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

2 卸载原来的安装

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

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

5 重新安装SQL Server,所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致

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

7 恢复其他系统数据库

8 恢复用户数据库

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

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

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

a 停止MSSQL服务

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

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

d 启动MSSQL服务

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

注意事项:

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

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

a 停止MSSQL服务

b 用备份的文件还原被覆盖的文件

c 尝试用附加的方式恢复用户数据库

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

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

在SQL Server数据库中,系统信息存储在系统数据库中,主要的系统数据库包括:

master-从整体上控制用户数据库和SQL Server *** 作,在创建了任何用户定义的对象后,都要备份它

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

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

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

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

(1)重建系统数据库 运行c:\mssql7\binn\rebuildmexe,按照提示进行即可,

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

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

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

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

进入单用户模式的方法:

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

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

-f 用最小配置启动SQL Server

-m 单用户模式启动SQL Server

b 可以在控制面板-服务-MSSQLServer的启动参数中输入-c -f -m或者输入-m,点击开始

(3)进行master数据库的恢复

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

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

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

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

使用"windows身份验证"的,输入:isql /E

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

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

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

2>GO

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

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

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

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

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

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

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

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

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

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

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

RESTORE DATABASE 数据库名

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

WITH NORECOVERY

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

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

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

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

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

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

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

--确定

--或用SQL语句:

--或用SQL语句:

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, '密码'

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

以上就是关于Mysql 如何还原数据库全部的内容,包括:Mysql 如何还原数据库、数据库的备份与恢复、SQLServer2000数据库崩溃后的补救措施等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9754160.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存