数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

如何减少数据库管理


发布日期:2020年01月09日
 
如何减少数据库管理

连接应用程序

每个应用程序都需要识别其所要连接的以便从中检索数据的数据库服务器通过使用连接字符串可以实现应用程序和数据库服务器的连接典型的连接字符串如下

Server=MyServerAddress;

Initial Catalog=MyDatabaseName;

Integrated Security=SSPI;

在这个例子当中数据库服务器可以用机器名IP连接地址OBDC DSN名或DNS服务器别名等来进行识别只要是可以解析为IP地址的名称就可以用名称的解析可以用很多不同的方式进行

如果你的SQL Server机器在一个域里可以创建一个DNS域名注册到域里当机器以DNS注册那么客户端或应用程序就可以使用该机器的注册名连接到该机器而且用DNS注册你可以创建一个DNS别名这是一个代表了你的SQL Server机器的逻辑名在连接字符串中使用DNS别名的话当对数据库服务器进行连接时DNS会将秘密地将该名称解析为IP地址这样的话你进行连接的时候只需要记住这个看起来有意义又比较容易记住的逻辑名而不需要记住那串难记的IP地址数字串或机器名了当你在连接字符串中使用DNS别名的时候你可以创建一个连接策略来隔离来自物理地址或数据库服务器机器名的应用程序

采用DNS识别数据库应用软件位置

当使用DNS来识别数据库应用软件的位置时你可以在连接字符串中使用机器的域名但是这种方法不够灵活想象一下当你想要改变SQL Server物理机器的名称时会发生什么事情这种情况下如果你使用机器名那么你每改变一次机器名就得修改连接字符串以便引用新的机器名如果你只有一个应用程序连接到一个数据库服务器情况可能还不会那么糟但是如果你在一台机器上有很多的应用程序和很多数据库那么这将意味着一旦你重命名你的服务器你就需要修改很多连接字符串因此在连接字符串中使用机器名无法灵活应对环境的变化

更好的做法是使用DNS别名来解析数据库所在位置当你不再用机器名来为所有的应用程序识别数据库机器的地址时你就应当考虑创建一个有实际意思的与别不同的DNS别名这个别名可以解析为数据库服务器的IP地址例如你可以用类似于SQLPRO这样的DNS别名这个在DNS中定义的名字和实际的物理机器的IP地址是一样的使用DNS别名可以赋予名字一定的含义这里SQLPROD这个名字的意思是用于生产的 SQL Server 服务器这样可以将上述的连接字符串改成

Server=SQLPROD;

Initial Catalog=MyDatabaseName;

Integrated Security=SSPI;

那么在连接字符串中用DNS域名又有什么好处呢?有一个描述性的名称无疑是其中一个显而易见的好处但并不是唯一的好处假设你的数据库服务器包含了很多个不同的数据库还要支持个不同的应用程序又假设你的SQL Server机器名为SSEDB而这台机器现在出现了某种未知的硬件错误此外你还有一个名为SSEDB的备份机器而你出于安全的考虑已经将SSEDB的备份传送到了这台SSEDB所以你可以从SSEDB快速恢复所有的数据库来支持这个不同的应用程序另外假设你知道在SSEDB上恢复所有SSEDB的数据库比解决SSEDB本身的硬件问题用时更少在以上的前提条件下如果你在应用程序的连接字符串中用的是机器名那么你将不得不一个一个地修改所有的连接字符串将SSEDB的机器名改为SSEDB让这个应用程序指向新的后备服务器SSEDB以便完成整个恢复过程修改多个连接字符串可能需要相当长一段时间而且很容易出错这种情况下如果你在所有多个连接字符串中使用的连接名是SQLPROD这样的逻辑名那么你只需要进行一个修改就可以将所有的应用程序重新指向新的后备服务器SSEDB也就是对DNS的修改将SQLPROD改为指向SSEDB的IP地址而不是SSEDB的IP地址只要你修改了DNS那么每一个应用程序就自动地连接到SSEDB而不再连接到SSEDB也就不需要花时间修改那多个连接字符串中的任意一个在连接设计的时候只要做这么一个小小的应用方面的修改用逻辑名来代表SQL Server服务器而不用物理服务器名或IP地址那么在出现问题需要将所有应用程序重新指向新SQL Server服务器时工作量就会大大减少

用DNS进行容量管理

在连接字符串中使用DNS别名可以帮助你进行容量管理假设你的环境中又很多不同的SQL Server生产服务器每一台机器都要支持很多应用程序又假设某些应用的数据库基本上呈线性增长但也有相当一部分应用数据库没有表现出一个可预见的增长速率这些数据库的增长速度在不同的时段表现的很不一样有时候一点都不增长有时候呈指数递增或递减由于有一部分这样的增长率波动很大的数据库导致有一些服务器几乎没有什么可用空间甚至经常性出现可用空间用完的情况而同时另外有一部分服务器却还有大量可用空间那么怎样利用DNS来帮助你管理这些磁盘空间解决容量问题呢?

当数据库已经快挤满服务器的硬盘空间时再向往数据库服务器增加更多的磁盘空间并不一定总是一件轻松的事情可能需要花费几个月的时间来获取额外的硬件并为增加服务器的硬盘空间容量磁盘设计一个时间进度计划因此如果你的磁盘空间容量有问题你就需要找到一个方法使你的数据库具有即插即用的能力以便管理这种容量问题即插即用在这里的意思是你需要一种方法让你可以将数据库从一个服务器快速复制到另外一个服务器并能够同时花费最少的精力就可以修改应用程序获取数据所需要的IP地址通过使用DNS你可以将应用程序快速地指向数据库的新地址当然你必须设计好你的应用程序连接策略来处理这种数据库变动问题

假设你有一个数据库服务器里面包含了与订单财会人事和结算这四个系统有关的数据库由以下四个数据库分别负责这四个方面的应用OrderREVHR和Billing在这种情况下你应当为每个不同的应用定义不同的DNS域名可以使用像ORDERREVHR和 BILLING这样的DNS域名让每个数据库应用的连接字符串使用合适的DNS域名以确保应用程序指向各自的数据库所在的当前物理服务器当你因为容量问题而需要将其中某个数据库从当前服务器转移到另外一个服务器时你只需要将该数据库的DNS域名指向新的数据库服务器即可

你可以还利用逻辑DNS命名法来处理其他问题假设对于上述的每一种应用你都分别有一个开发环境一个质量保证环境和一个生产环境在这种情况下你可以给所有的DNS域名附加一个环境后缀例如对于BILLING可以把开发环境下的DNS域名改为BILLINGDV质量保证环境下的为BILLINGQA而生产环境下的为BILLINGDV

假设你有某个数据库服务器的CPU使用率特别高那么通过使用DNS你可以将一个或多个数据库快速地从这个不堪重负的服务器中转移到尚未饱和的服务器然后将其DNS地址重新指向新服务器这给你提供了一个低技术含量的解决方案来平衡数据库服务器的CPU使用情况

上一篇:数据库中备份与恢复问题简介

下一篇:高级扫描提高数据库查询性能