快速,持续,稳定,傻瓜式
支持Mysql,Sqlserver数据同步

集中管理:在多台服务器上管理备份的提示

在线QQ客服:1922638

专业的SQL Server、MySQL数据库同步软件

在少数服务器上管理备份应该是一个相对简单的过程,但是需要自动化以保持在大量服务器之上的DBA呢?有哪些可用选项,它们如何比较?格兰特·弗里奇(Grant Fritchey)看了看那里的东西。

有很多人在以DBA的身份工作,最多只能管理少量服务器。对于这些人来说,分别管理每台服务器上的备份的任务并不重要。是否找到新的调整措施来使备份更可靠?太好了,去编辑三个脚本,就完成了。但是,如果服务器超过五台呢?还是一样容易吗?如果是五十岁怎么办?现在事情变得越来越困难。如果是两百个,而且它们不是完全相同的服务器,那该怎么办:有些是生产的,有些是开发的,有些是用于测试的,有些是虚拟的;谁知道?现在您面前有一份工作。您可以使用一种很棒的新方法来设置备份,但是必须将其发布到大量服务器上。你是做什么?

您可以查看一些自动化脚本。您可能会创建一个存储所有服务器的数据库,然后编写一些动态TSQL来分别连接每个数据库。也许您将创建一个可以同时连接到所有服务器的PowerShell脚本。只是想一想,让我们首先检查一下Microsoft是否为此提供了一些东西。嗯……看来这里可能有一些选择。我们有一个称为中央管理服务器的选项。这听起来确实很有希望。但是还有另一个主题,即跨企业自动化管理。再次,充满希望。让我们一起尝试一下,看看有什么用。

中央管理服务器

如果您对此进行了仔细的阅读,它将讨论如何设置服务器组,如果您要以不同于生产方式管理质量检查的话,则很有必要。它还具有针对多个服务器的脚本,这是另一件好事。最后,它使您可以针对多个服务器评估策略。凉。听起来不错。让我们来探索。

设置中央管理服务器

创建中央管理服务器(CMS)非常简单,尽管它必须在SQL Server 2008或更高版本上。您也不能使CMS服务器成为托管服务器之一。除此之外,只需选择一台机器,然后单击菜单中的“ 查看->已注册的服务器 ”,即可进入SSMS中的“已注册的服务器 ” 窗口。在左侧已注册服务器树的右侧,有一个名为“ 中央管理服务器 ” 的文件夹(是的,您可以设置多个服务器,或为Management Server设置Management Server,或者…)。右键单击该文件夹,然后选择“ 注册中央管理服务器””从上下文菜单中;然后为它提供要使用的服务器的凭据。现在,就是您的CMS。MSDB中有一些您要配置的内容的条目。现在,您需要添加服务器组。

右键单击您已注册的CMS,然后从上下文菜单中选择“ New Server Group…”。我在本地创建了两个组,一个用于所有常规计算机,另一个用于我的虚拟机。您可以将其细分为开发和生产,或任何您需要的东西。通过对服务器进行分组,它使您能够对它们进行不同的处理,针对它们运行不同的脚本并以不同的方式针对这些不同的服务器组评估不同的策略。这是很大的管理步骤。另外,您仍然可以一次对所有服务器运行脚本。

安装了服务器组后,您只需要将服务器添加到组中即可。右键单击要在其中添加服务器的服务器组,然后从上下文菜单中选择“ New Server Registration… 。输入适当的连接信息,一切顺利。这是我当前的设置:

1410-image001.png

使用服务器

设置很简单,对吧?现在您能做什么?现在,它看上去就像您必须管理的服务器的另一个列表一样,的确如此,但是该列表可供其他人使用。连接到已定义的CMS的任何人都将看到已分配给它进行管理的服务器。而且,如果它们在所管理的所有服务器上都具有正确的特权,则它们可以执行我们将要做的事情。

中央政策管理

您正在使用基于策略的管理(PBM),对吗?如果没有,我现在就开始进行设置,因为它是一个很棒的软件。我最喜欢的策略实际上与备份有关(是的,我没有忘记本文的重点是管理备份:我们到了,冷静点)。通过SQL Agent设置备份时,我总是采用会引发错误的方法(直接通过SQL Agent或通过第三方监视解决方案来引发警报)。但是,我注意到它们在某些情况下都可能失败,因此我发现在其他条件之上附加检查是值得的。附加检查通过PBM进行。

我已经设置了一个简单的检查,可以查看最近一次备份是否在最近24小时内完成。它只是验证我要完成的每日备份是否已完成。我可以编写脚本并在每个服务器上运行它,或者我可以只使用CMS。假设我要检查物理箱,该箱位于标有“ Red Court”的文件夹中。如果我右键单击该文件夹,然后从上下文菜单中选择“评估策略”,则会出现一个新窗口,该窗口将评估我决定将其包含在列表中的服务器中的那些策略。

首先,我必须选择要评估的策略,这意味着我可以从系统上的文件中进行选择,也可以从我管理的服务器之一中进行选择。我选择了后者。这是准备好评估我的政策的屏幕:

1410-image002.png

现在,我要做的就是单击“ 评估 ”按钮,此策略将针对当前正在管理的所有服务器运行,并带回完整的结果。这样一来,我可以查看过去24小时内尚未备份多少数据库。让我们看看发生了什么:

1410-image004.png

天啊。服务器GRANT-RED1 \ GFR1上的大多数数据库已在过去24小时内备份,但BOB \ SKULL上的所有数据库似乎都没有备份。您实际上可以检查每个服务器上每个数据库的评估结果。这是BOB \ SKULL的一组结果:

1410-image006.png

哎哟。简而言之,从未在该服务器上的任何数据库上进行备份。有人需要尽快安排备份计划。我想知道我们是否可以使用CMS来实现这一目标。

中央脚本执行

我需要在所有服务器以及这些服务器上的所有数据库上运行备份。CMS提供了实现这一目标的机制。同样,您可以选择服务器,服务器列表或在CMS下注册的所有服务器。右键单击适当的位置,然后选择“ 新建查询”。这将打开一个看起来与另一个查询窗口非常相似的查询窗口。但是,如果您查看窗口底部的信息栏,则会看到您未连接到服务器:

1410-image008.png

我已连接到我的生产服务器组Red Court。我在那里运行的任何查询都将针对列表中的所有服务器在列出的NEVERNEVER \ Grant下运行。因此,例如,如果我想对列表中所有服务器上的所有数据库运行备份,则可以这样做:

执行脚本,结果如​​下所示:

1410-image009.png

结果是混合的,因为查询是同时在两个服务器上运行的,并且随着每个备份过程的完成,结果会返回。

但是,尽管跨多个服务器快速运行这些备份很不错,但我不会每天坐下来手动运行例行备份。这是另一个选择。如果我希望将此脚本作为备份作业在所有服务器上运行,则可以创建一个脚本,在每个服务器上创建一个SQL Agent作业,如下所示:

这样,我可以在整个企业中从单个位置设置备份。这真是个好消息。如果对备份脚本进行了修改,则可以一次将其传输到所有服务器。我刚刚消除了连接到每个服务器来设置备份的需要。

但是有一个问题。我可以在多个服务器上设置和维护脚本,但是无法将所有这些代理执行的结果都返回到CMS服务器,以便我知道它们是否已成功执行。

自动化

除非您引入某些外部代理(例如PowerShell)来工作,否则您将无法自动执行此最终报告任务。对不起,但是有。这是从PowerShell挂接到CMS 的好方法。这样,您可以通过SQL Agent设置作业,然后调出利用CMS列表的PowerShell脚本。但是除此之外,没有内置的东西。

尽管我可以通过CMS对多台服务器进行手动操作,但是除非我开始使用其他语言和工具进行编程,否则我无法自动完成任务。我不能做的是设置一个通过CMS运行的SQL Agent作业,以管理我的服务器,将结果返回到公共位置。或者…可以吗?

多服务器管理

这与CMS完全不同。您无需利用Management Studio所隐藏的功能,而可以利用SQL Agent内置的其他功能。概念是您创建代理作业,并为它们提供针对多个服务器的目标。结果全部返回到通用服务器,因此您可以查看运行和不运行的内容。您甚至可以从该服务器设置警报,以便知道作业何时失败或出现问题。让我们看看它是如何工作的。

设置多服务器管理

从概念上讲,这非常简单。您只需在SSMS对象浏览器中的“ SQL Server 代理上单击鼠标右键,使用“ 多服务器管理 ”,然后从上下文菜单中选择“ 使它成为主服务器 ”。它将打开一个向导,使您可以选择目标服务器,然后退出。在实践中……嗯,不是很多。

我真倒霉 为了使我的设置正常工作,我不得不在注册表中弄乱了。但是,一旦完成,就非常简单。

如果右键单击“对象资源管理器”窗口中的“ SQL代理”图标,将发现上下文菜单“ 多服务器管理”。选择此选项将打开另一个上下文菜单,该菜单将允许您“ 将其设置为主服务器 …”或“ 将其设置为目标服务器……”对于要管理所​​有其他服务器的中央服务器,您将其设置为主服务器。这将打开一个向导,从您选择要作为目标管理的服务器开始:

1410-image010.png

美丽的是,它似乎可以在CMS中正常工作。好吧,确实如此,事实并非如此。您可以看到CMS,也可以使用它来选择服务器,但是一旦选定,就可以在“多服务器管理”界面中对其进行管理。不再有任何文件夹或服务器组集合可让您轻松地将它们作为一组服务器进行管理。相反,这只是一种快速添加服务器列表的方法,这根本不是一回事。

无论如何,下一步就是设置安全上下文。您在这里有选择。您可以设置普通登录名:

1410-image011.png

如果一台或多台服务器上的SQL代理运行时的安全性设置不足以允许其访问主服务器,则这是必需的。如果是这样,您可以单击以下选项:

1410-image012.png

然后,单击“ ext ”按钮,它会向您显示一个不错的摘要页面,显示您将要执行的操作:

1410-image013.png

当然,您将单击“ Finish ”按钮,并且由于这是一个向导,因此一切正常:

1410-image014.png

… 或不。请参见,注册表中还有另一个设置,您必须更改之后,不同的代理才能相互通信。您可以在Enlist语句的错误中看到它。修复此问题,所有这些终于奏效。

是的,那很痛苦。

创建工作

多服务器管理的这一部分可能不太容易。您将使用SQL Agent。这意味着您已经习惯了使用SQL Agent,作业,计划,警报,运算符的所有内容。我不会通过向您展示如何设置代理工作来侮辱您的智慧。请记住,您在CMS中运行的脚本中遵循的相同类型的“通用”编码实践将在此处应用。当然,除非每台服务器上都有一个X:驱动器,否则最好将UNC用于备份位置。

唯一的麻烦是,您现在有了工作目标。这是它的样子。CMS中的可用分组在这里并不明显:

1410-image015.png

创建作业并设置执行计划后,它将开始在两台服务器上运行。就这么简单。您可以从任何目标服务器监视作业,但不能对其进行编辑。您可以从主服务器监视所有服务器。

在主服务器上打开代理时,您会看到Jobs文件夹现在具有两个子文件夹,一个用于本地,另一个用于多服务器作业。在这里您可以管理和维护作业。如果查看作业的历史记录,则可以看到运行该作业的每台服务器:

1410-image016.png

总体而言,它非常实用。但是,丢失了使您能够定义服务器集的CMS分组的事实肯定会伤害您。虽然可以为不同的服务器组设置不同的作业,但是您必须亲自手动识别这些服务器。您不能只选择一个组并自动选择所有服务器。这是一个缺点。

结论

你有它。您有一些选择可以帮助您轻松生活。他们都不是完整的。您可以使用CMS有选择地将要运行的内容分配到维护良好的组中。而且,您可以计划和控制从多服务器管理中运行的内容。我想做的是从CMS中提取多个组,并将其与多服务器管理的代理自动化结合起来,以实现可以轻松地将特定的一组作业分配给特定的一组服务器并进行管理的功能。这样我的备份。

相关推荐

咨询软件
 
QQ在线咨询
售前咨询热线
QQ1922638