关于mirror DB以及备份还原DB的问题

einspei 2011-01-03 08:12:25
主DB:[172.26.0.11].EMS Mirror DB:[172.26.0.12].EMS

各位大侠以我说的为例:
如何建立的Mirror DB我已经不记得了。我只知道中间没有见证服务器,如果0.11挂了,那就要手动切换到0.12.

1. 0.11 挂了,如何手动切换到0.12
2.如何在Mirror上建立snapshot,命令语句是什么?
3.建立了snapshot,如果需要,如何还原snapshot,语句是什么?
4.假如误删了[172.26.0.11].EMS.dbo.table1,(这里就是连表都没了),如何从0.12 上还原,或者用什么办法还原?语句是什么?
5.假如我误删了[172.26.0.11].EMS.dbo.table1里面的数据,表还在,如何从0.12 上还原?


暂时想到这些问题,理论的就不要说了。直接上语句,要切合我的实际情况的。多谢了。

...全文
209 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
唐诗三百首 2011-01-03
  • 打赏
  • 举报
回复
这个..已超出本帖的问题范围啦,只能介绍一下原理,具体的语法请楼主找参考书.

日志备份,例如删除某表的数据,相关的变更记录(Log)会被记录到日志文件中,当需要恢复时,
依据日志的内容进行反操作,从而达到恢复的目的.

事务控制,打开事务(begin tran)进行处理,在未提交(commit)前,遇到问题可进行撤销(rollback)处理.

数据库快照,同照相原理,记录数据库的当前状态,供后继查询或恢复时使用.例子在4楼的回复中.
einspei 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ap0405140 的回复:]

补充一下,数据库镜像都是实时同步的,用在于确保对外服务的连续性(高可用).
但楼主想用来做误操作的恢复,这个还是用其他方法较好.如日志备份,事物控制,数据库快照等.
[/Quote]

可以解释并举例这三种方法吗?---日志备份,事物控制,数据库快照
einspei 2011-01-03
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ap0405140 的回复:]

补充一下,数据库镜像都是实时同步的,用在于确保对外服务的连续性(高可用).
但楼主想用来做误操作的恢复,这个还是用其他方法较好.如日志备份,事物控制,数据库快照等.
[/Quote]

请继续:问题4,5如果用日志恢复,如何恢复?
唐诗三百首 2011-01-03
  • 打赏
  • 举报
回复
补充一下,数据库镜像都是实时同步的,用在于确保对外服务的连续性(高可用).
但楼主想用来做误操作的恢复,这个还是用其他方法较好.如日志备份,事物控制,数据库快照等.

唐诗三百首 2011-01-03
  • 打赏
  • 举报
回复
回复如下供参考.
1. 0.11 挂了,如何手动切换到0.12
A: 0.11挂了的话,0.12可强制接管.
在0.12上执行 ALTER DATABASE EMS SET PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS

2.如何在Mirror上建立snapshot,命令语句是什么?
A: CREATE DATABASE [快照名] ON
(NAME = DBAP, FILENAME = '[路径+数据文件名]')
AS SNAPSHOT OF EMS

3.建立了snapshot,如果需要,如何还原snapshot,语句是什么?
A: RESTORE DATABASE EMS from DATABASE_SNAPSHOT='[快照名]' with replace,recovery

4.假如误删了[172.26.0.11].EMS.dbo.table1,(这里就是连表都没了),如何从0.12 上还原,或者用什么办法还原?语句是什么?
A: 0.11的所有操作,都会实时同步到0.12上,所以没得恢复.

5.假如我误删了[172.26.0.11].EMS.dbo.table1里面的数据,表还在,如何从0.12 上还原?
A: 同问题4回复.
飘零一叶 2011-01-03
  • 打赏
  • 举报
回复
路过 帮顶
einspei 2011-01-03
  • 打赏
  • 举报
回复
大哥,怎么看不懂呢?就是语句怎么写嘛。

比如我要给EMS做个备份,是不是backup database EMS from disk......

就这个意思啦,语句怎么写。
dawugui 2011-01-03
  • 打赏
  • 举报
回复
看不懂,帮顶.

提供一个资料:

SQL Server 2005数据库镜像简介
自从SQL Server 2000以来,你已经能够通过使用复制来创建一个备用的服务器、传输日志,以及备份和重新存储了——但是现在微软又引入了一个内建的工具,它可以实现自动的错误恢复。数据库镜像是SQL Server 2005的一个新特性,它允许你将一个SQL Server中的数据库内容镜像到另一个SQL Server上。它还让你可以在发生错误的时候,通过镜像数据库来进行错误恢复。

Edgewood Solutions 的Greg Robidoux 回答了我们一些SQL Server 2005中有关数据库镜像的常见问题,同时还解释了为什么你现在就应该开始测试这个内建的功能来看看它最终是否会给你的环境带来好处。

什么是数据库镜像?

Robidoux:数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另一个SQL Server数据库中。镜像的拷贝是一个备用的拷贝,不能直接访问;它只用在错误恢复的情况下。

因为是在SQL Server 2005中新引入的特性,这个功能只能用在,这个版本的软件中。在某种程度上说,它是复制和日志传输的混合体:你所有的事物都在事物级别(复制)上移动(日志传输)到你的数据库的一个镜像拷贝上,同时减少了你在实现日志传输或者复制的时候可能会面临的问题。

复制包括大量的移动部分,并且如果你的数据库计划经常改变的话,要保证你的复制运行得流畅也是困难重重。对于日志传输,为了保证同步,同样需要实现很多的处理,例如创建备份、拷贝备份,以及备份重存。如果有一个进程崩溃了,整个处理过程就崩溃了。

数据库镜像的工作方式是什么?

Robidoux :要进行数据库镜像所需的最小需求包括了两个不同的SQL Server运行环境。主服务器被称为“基本的”,第二个服务器被称作“镜像的”。基本数据库就是你实际用着的数据库,镜像数据库就是你的数据库的备用拷贝。当事务写入你的基本服务器的时候,他们也同样被传送到并写入你的镜像数据库中。

除了基本和镜像之外,你还可以引入另一个可选的组件,名为“证人”。证人数据库是第三个SQL Server 2005运行实例,它是在判断什么时候进行错误恢复的时候,用于基本和镜像之间内部交流。只有当你想实现自动错误恢复的时候用到这个选项。它实现了2比1投票的能力,当我的一个组件不可达,并因此需要进行错误恢复的时候。证人服务器只有在你想实现自动错误恢复的时候才需要用到。

实现的方式是什么?

Robidoux :数据库镜像提供了三种实现的方式。根据你想要用什么方式来进行错误恢复处理来进行选择。

高可用性:这个操作模式选项允许你在两台服务器上同步事务写入,并支持自动错误恢复。要使用这个选项,你必须还要使用一个证人服务器。

高保护:这个选项可以让你在两台服务器上同步事物写入,但是错误恢复是手工的。因为自动的错误恢复不是这个选项的一部分,所以也不会用到证人服务器。

高性能:这个选项不关心两台服务器上的写入是否是同步的,因此在性能上有所提高。当使用这个选项的时候,你只能假设镜像服务器上的所有事情都是成功完成。这个选项只允许手工的错误恢复,因此不会用到证人服务器。

时刻记住将你的数据自动恢复到第二个拷贝才是数据库镜像的真正好处。因此,大多数的实现可能都是使用的高可达性方式。其他的选项仍然提供了内建的错误恢复过程,但是前提是你在发生错误的时候对进行自动的错误恢复怀有极大的兴趣。

数据库镜像可以工作在哪几个版本上?

Robidoux :数据库镜像只能在标准版、开发版和企业版的SQL Server 2005中找到。基本服务器和镜像服务器的SQL Server运行实例都需要是这几个版本。证人服务器可以运行在任何版本的SQL Server上。此外,还有其他的一些特性是SQL Server的开发版和企业版上特有的,但是标准版具有最基本的功能。

总结

现如今,SQL Server 2005的数据库镜像已经关掉了,但是所有的功能仍然存在。数据库镜像可以通过使用检索标志来打开——但是微软现在并不支持这个功能了,所以不要在你的产品环境中运行它。数据库镜像将会在本年年末完全实现并被支持。

要打开这个特性并开始你的测试,你可以看看以前的专家知识解答。微软正在寻找额外的反馈,所以你可以看看它是否可以作为你的SQL Server环境的候选。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧