网亚机房管理软件博客

新实用主义典范

其他高可用性机房管理解决方案

如果在数据库上部署了高可用性机房管理解决方案,如AlwaysOn、故障转移群集、日志传送或数据镜像,在备份时就需要额外考虑一些因素:

如果使用SQL Server2012中新增的AlwaysOn技术,就可以修改备份计划。例如创建辅助副本的一个原因可能是将来来自于备份的IO负载从主副本转移到辅助副本。在此模式中,你不会从主副本或其他辅助副本中获得备份,而是从专用的辅助副本中获得备份。可以使用BACKUP PRIORITY配置设置为可用性组制定专门用于从中获取设备的辅助副本。

CPU处理器考虑事项

构件大型对称多出了系统面临的挑战是,由于处理器通过技术成绩和使用更大的缓存来提升新呢过,这些缓存使性能得到了显著提升;因此,需要尽量缓存相关数据,让处理器能够在缓存中找到所需的相关数据。芯片和硬件供应商师徒通过扩展处理器和系统缓存来利用这一点。

因此,在市场上出现了一些新的系统体系结构,如蜂窝多出了好NUMA(非缓存一致性)。虽然这些技术很成功,但也产生了两种挑战:需要管理数据本地化和缓存一致性。

在Windows Server2008和SQL Server2012中,SQL Server支持添加CPU,因此可以在服务器联机时动态添加CPU。支持热添加CPU的系统必须满足如下要求:

SQL Server I/O进程模型

Windows Server2008以及SQL Server2012存储引擎一起运行,以避免磁盘I/O请求的高成本。Windows Server I/O Manager处理所有I/O操作,通过分散-聚集或异步方法来完成所有I/O请求。分散-聚集指的是从磁盘缓冲区收集数据以及将数据分散到磁盘或缓存区的过程。有关分散-聚集或异步方法的示例。

SQL Server存储引擎管理何时、如何执行磁盘I/O操作以及执行该操作的次数。然而,Windows操作系统(I/O管理子系统)执行底层I/O操作并提供到物理媒介的接口。只有Windows Server2008R2及以上版本支持SQL Server2012。关于Windows  Server2008的更多细节。

中央管理服务器和服务器组

SQL Server 2008引入了一个新功能来简化DBA的工作:中央管理服务器和服务器组。这个功能允许同时对一组服务器运行T-SQL脚本和应用基于策略的管理。

你可以在一组服务器上执行T-SQL,然后把结果聚合到单个结果集或保持每个结果集独立。在聚合服务器后,可以包含额外的一列,用于表示每一行是从哪个数据库返回的。你狂热以使用这个工具来进行多服务器管理,以及完成其他一些工作。如果每个服务器上有公共的错误表,可以在单条语句中查询它们。

这些功能是SQL Server Management Studio的一部分,但是在开始使用它们之前,首先必须注册中央管理服务器。在SSMS的“已注册的服务器”对话框中,右击“中央管理服务器”并选择“注册中央管理服务器”。然后,从打开的对话框中可以选择一个配置服务器。这个服务器会保留元数据,并完成一些后台工作。

处理机房软件的旧代码

构件软件时,我们编写新代码。如果编写的时可用的、整洁的代码,那么我们就有足够的理由为之自豪。虽然如此,处理旧代码仍然是开发人员的最重要的工作之一。

修复漏洞、开发新功能、扩展现有代码,这在一定程度上就是重构。如果认为这是一种重构,就难免要与他人不再需要的代码打交道。下面的内容解释了相关原因:

机房软件的旧代码因为新代码的诞生而过时。

某些去求被遗弃,也就不再需要相应的代码了。

代码在用户提出需要之前被开发。

由于前两个原因而废弃的代码在开发新机房软件的代码的过程中或当需求改变时就应该被处理。通常来说,第三个原因决定死代码的出现,即编写了冗余的代码。在我们的项目中,我们通过分析代码并立即删除无用的代码成功地解决了该类问题。如果删除了某个函数,应运行全局检索以检查代码的其他部分是否使用了该函数。如果情况属实,必须首先重构现有代码,使它在没有我们想删除的函数的情况下正常工作。如果解决了依赖性问题,就可以安全地删除代码(当前失败得单元测试刚好覆盖该代码)。每次测试我们都要确保失败在意料制作工。对所有直接测试被删除的代码的测试而言,同样如此,删除这些测试是安全的。

机房管理软件的可见性

创建合适的对象是为了能让开发人员方便地使用它们。例如,从内部看,TV对象知道调谐器所需要的频率是非常重要的,但使用TV的人并不关心这一点。更重要的是,我们是否希望开发人员直接改变频率?我们希望的是使对象变得更“抽象”。

对象的某些部分是私有的,而某些部分是公共的。公共接口是由用户使用的,而私有部分是对象本身在内部使用的。对象的逻辑存在于其私有部分,其中包含一些非常重要的方法和属性,但这些方法是属性不能从对象的外部调用。例如,TV对象包含几个方法,如ConnectPower、WarmUp等,这些方法都是私有的,并可以从公共的SwitchOn属性中调用。它还有一个公共属性Channel和一个私有属性Frequency。如果TV不知道它接收的信号频率,就不能工作。

机房管理使用触摸的界面

当我们在构建新的Windows8应用程序时,触摸可能是最重要的设计原则。如今的人们已经习惯于使用各种类型手机和平板电脑设备上的机房管理触摸界面。同时请注意,大多数人已经使用了一种语言与触摸屏进行交互。你可能对触摸界面业非常熟悉,这将帮助你设计自己的触摸界面。羡慕列出了一些在应用程序中可能使用的常见的触摸交互:

Check boxes(复选框):手指并不擅长选择小目标,比如复选框。所以在设计界面时应该避免使用这些小目标。

Tap(点击):允许用户选择或点击某个完整的项目从而导航到另一个新视图、查看详细信息或者通过选择一个项目并单击按钮来执行一个操作。

有关机房软件Windows窗体控件

创建机房软件Windows窗体控件有如下两个原因:

可以在一个或多个应用程序中使用同一个控件,减少编码量(即重用)。

可以在控件的类中编写与该控件相关的代码,从而使代码更简洁、更易于理解。例如,可以编写一个可处理其单击事件的按钮,这样就不需要在窗体的代码中处理时间了。

在应用程序之间重用控件的方式主要两种。第一中方式是把控件的源文件添加到每个需要该控件的项目中。然后,当生成该应用程序时,控件就会编译到可执行文件中。

第二种方式时建立一个控件库。控件库非常类似于之前介绍的类库。实际上,控件库就是类库,只不过包含了UI驱动的类。与其他类库一样,控件库也会编译为可以在应用程序中使用的独立程序集。这种方式非常吸引人,因为采用这种方式,就可以把程序集发布给其他开发人员,而无须带有源代码。也可以修改程序集,这些改变会立即反映到使用它的应用程序中,即使应用程序没有重新编译,也是如此。在应用程序中,无论是使用控件库,还是只使用一个控件,创建控件的技术是相同的。

机房管理系统需要向外扩展内存压力

按照设计,机房管理系统管理处理几乎完全在内存中进行。这样就能够实现更快的数据移动和转换,其设计目的是只对数据进行一次扫描,从而消除费时的暂存以及多次读写相同数据所带来的成本。而该种设计的潜在缺点是对于大量数据以及复杂的转换集,需要使用大量的内存以及正确的内存类型,以获取最佳性能。

在默认情况,32位Windows操作系统的虚拟内存空间被限制为2GB。虽然可以通过在boot.ini文件中使用3GB开关来提高该值,但这样往往仍然低于当前可用的内存总量。此限制将应用与每个进程,即执行过程中的每个包。因此通过跨多个包来划分一个进程,以确保每个更小的包有其自己的进程,从而独立地利用了完整2-3GB虚拟空间。将多个包连接在一起形成一个统一进程的常用方法是使用执行包任务,此时,必须将Child包设置为在进程之外执行。为此,必须将ExecuteOutOfProcess属性设置为True。

将机房管理软件的数据保存到XML文件中

另一种常见的需求是生成某种输出格式的数据。当输出是一种常用格式或者其他数据格式时,可以简单地将数据流下一步是添加Foreach循环容器,以便枚举变量FileList。每次迭代都会在变量FileName中存储文件名。最后,该容器中的FTP任务将使用变量FileName作为原变量来获取相关文件泵入其中一个数据流目标中。如果想将数据保存到XML文件中,由于两者之间结构并不一致,因此需要进行一些逻辑或结构上的调整,否则将基于列的数据流转换为XML结构是非常困难的。而此时也可以使用脚本任务。

将机房管理软件的数据写入XML文件最简单的方法是通过对数据集使用WriteXML方法实现对数据内容的加载和保存。首先在包中添加一个带有指向AdventureWorks的ADO.NET连接的新脚本任务,并添加对System.Xml.dll的引用,然后再添加命名空间System.Data.SqlClient。在该脚本任务中编写下面所示的代码,以便打开连接,获取所有SSIS SETTING行,并保存为XML。如果需要对导出的数据进行更多的控制,或者对数据进行序列化,那么就需要以不同的方式来使用脚本任务。

«131415161718192021222324252627»

Powered By Z-Blog 2.0 Doomsday Build 121221

版权所有©2007-2013 南京网亚计算机有限公司
QQ:502800066(购买咨询) 1074187861(技术支持) 邮件: sales@ji-fang.cn
电话:( 025)84533318 (025)84533319 (025)66671103 13913982176 传真: (025)84533320
地址: 江苏省南京市中山东路198号龙台国际大厦1205室