sql server高可用性解决方案都有哪些
SQL Server 提供了几个为服务器或数据库打造高可用性的可选方案。 高可用性可选方案包括:
AlwaysOn 故障转移群集实例
作为 SQL Server AlwaysOn 产品/服务的一部分,AlwaysOn 故障转移群集实例利用 Windows Server 故障转移群集 (WSFC) 功能通过冗余在实例级别(故障转移群集实例 (FCI))提供了本地高可用性。 FCI 是在 Windows Server 故障转移群集 (WSFC) 节点上和(可能)多个子网中安装的单个 SQL Server 实例。 在网络中,FCI 显示为在单台计算机上运行的 SQL Server 实例,不过它提供了从一个 WSFC 节点到另一个 WSFC 节点的故障转移(如果当前节点不可用)。
有关详细信息,请参阅 AlwaysOn 故障转移群集实例 (SQL Server)。
AlwaysOn 可用性组
AlwaysOn 可用性组 是 SQL Server 2012 中引入的企业级高可用性和灾难恢复解决方案,可使一个或多个用户数据库的可用性达到最高。 AlwaysOn 可用性组要求 SQL Server 实例驻留在 Windows Server 故障转移群集 (WSFC) 节点上。 有关详细信息,请参阅 AlwaysOn 可用性组 (SQL Server)。
注意 注意
FCI 可利用 AlwaysOn 可用性组提供数据库级别的远程灾难恢复。 有关详细信息,请参阅故障转移群集和 AlwaysOn 可用性组 (SQL Server)。
数据库镜像
注意 注意
后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。建议改用 AlwaysOn 可用性组。
数据库镜像是一种解决方案,可提供几乎是瞬时的故障转移,以提高数据库的可用性。 数据库镜像可以用来维护相应生产数据库(称为“主体数据库”)的单个备用数据库(或“镜像数据库”)。 有关详细信息,请参阅数据库镜像 (SQL Server)。
日志传送
与 AlwaysOn 可用性组 和数据库镜像一样,日志传送是数据库级操作。 可以使用日志传送来维护单个生产数据库(称为“主数据库”)的一个或多个热备用数据库(称为“辅助数据库”)。 有关日志传送的详细信息,请参阅关于日志传送 (SQL Server)。
.服务器管理
在这项管理工作中,主要是配置和管理服务器属性,安装和设置TCP/IP协议和远程访问服务协议,安装、配置和管理域控制器、文件服务器、DNS、WINS、DHCP、Web、FTP 服务器和各种远程访问服务器。
对服务器的关键点工作状态(如温度、电源、风扇和UPS的运行等)进行必要的监控,以确保服务器正常工作。如果网络中存在多个域控制器,则还需对各服务器的配置信息进行实时更新;更新Web服务器页面信息、向数据库服务器注入新的数据、管理邮件服务器的用户信箱等。
最后还有一点非常重要,就是要及时地更新服务器系统的版本或补丁程序,这不仅关系到服务器的性能发挥,而且还关系到整个网络系统的安全性,因为现在的操作系统不断有新的安全漏洞被发现,及时安装补丁可以有效地阻止填补这些安全漏洞。
2.用户管理
网络管理员在保证网络安全可靠运行的前提条件下,根据单位人员的工作职权和人员变动情况,为每个用户设置账户、密码和分配不同的网络访问权限;设置Web服务器、*** 等远程访问服务器中用户的访问权限等;限制Web服务器可登录的账号数量,及时注销过期用户和己挂断的拨号用户,关闭不用的网络服务等。既要保证各用户的正常工作不受影响,同时又要避免分配过高权限而给网络安全和管理带来不必要的安全隐患。
在本书中,针对用户管理方面在第2章、第5章、第6章做了较为详细的介绍。
3.文件和文件夹的管理
网络中的文件和文件夹管理是整个网络管理中最重要的部件之一,它不仅涉及到各用√ 的正常工作和网络应用,同时还关系到整个网络系统的安全性能。对于网络管理员来说,j 文件和文件夹管理中我们所做的工作主要有以下几个方面:
证每一台工作站的一致性。如果要在工作站上安装新软件,应该先做一个安装测试,并记录下每一个步骤。测试新的安装在典型的工作站上是否会出现问题。如果认为满意,就在每一个用户的计算机上都重复安装过程,保证一致性。如果在每一台工作站上都使用相同的硬件和操作系统,一致性的安装应用程序非常简单。如果网络上用户过多,可以考虑使用某些特殊的工具来生成软件自动安装过程。如Windows系统的“无人值守安装"和“远程安装"功能就可大大减轻网络管理员软件安装的负担。
软件永远不可能完美,总会有这样或那样的问题,所以无论是操作系统还是设备的驱动程序,都应该至少每个季度检查一次有无升级的提示,在服务器和工作站上都要进行这一工作。有时,补丁程序本身比要解决的问题更加可怕,操作系统的补丁导致的严重事故比比皆是。比如2003年1月25日爆发的Slammer病毒就是利用了SQL Server 2000早就发现的一个漏洞进行攻击的蠕虫病毒。早在2002年7月,微软就针对SQL Server 2000中l 434端口的漏洞,公布了安全补丁程序,对于微软服务器软件的用户来说,只要下载了补丁程序,就可以避免这次灾难。但遗憾的是,太多用户忽视了微软的建议。从上面的例子不难看出,安全意识的树立在某种意义上比安全技术本身更重要。
另外,在软件管理方面还应对服务器中专门存放源程序的文件夹的访问权限进行严格限制,通常只允许系统管理员有权限访问和使用,否则一些不自觉的用户会在他们的计算机上安装一些本来他们不需要的软件。
8.硬件资源的维护与管理
在企业网络中,网络管理员通常需要负担起管理服务器和全部共享网络资源的责任,包括打印机、处理器、内存、硬盘等。在这种条件下,网络管理员的责任是相当直接的。保持所有资源连接、运转正常。在对这些网络硬件资源的管理中,其中一项重要任务就是实施常规检查。虽然现在复杂的网络操作系统可以承受一定程度的问题而不至于停工,但是网络管理员在这些非关键性的错误堆积起来并变得严重之前,需要周期性地检测服务器并纠正这些错误。计算机系统也带有诊断的工具,但是可能需要使用比它们更复杂的专业工具,比方说 Intel公司的LANDesk Management Suite或者Novell的ManageWise,可以进行更细致的测试,并有更好的联机帮助。网络就是网络管理员的阵地,网络管理员还应对网络内的各台微机或各个工作站进行定期巡检,了解每台计算机的状态,并定期保养。
在出现了硬件故障后,网络管理员还必须承担起故障排除和基本硬件维修的责任。这是最体现网络管理员的技术水平、冷静心态和逻辑思考能力的时候。随着经验的增长,解决问题的能力也会逐步提高。网络管理员要了解各处可能发生的问题:时刻不忘在笔记本电脑中记下调查结果和建议;利用书籍、期刊和自学培训等方式尽可能地积累常见问题的解决方法;当然还应该采取措施预防网络故障的发生。网络管理员应尽可能多地搜集信息,并记录在网络文档中。你会惊奇地发现以前的积累常常可以帮助查明某个事件的原因。
通俗地讲,资料库是储存具有某些特性的资料的数据库。通常,我们把使用资料库系统的用户划分为四类,资料库设计者、资料库管理者、应用程序设计者及一般使用者。其中资料库管理者负责账号的管理与维护,决定所有资料库使用者的使用权限。资料库安全管理可说是资料库管理者最重要的工作。SQL Server是Microsoft的企业级资料库,它是个功能强大、易于使用的资料库,可直接与Windows NT/2000的使用者账号做安全机制整合。
那么,到底什么是安全管理呢?简而言之,安全管理是指对需要登入服务器的人员进行管理。在应用程序中,我们会对资料库的各类使用者设置资料操作权限,通常是直接在应用程序中做账号与密码的管理,但这种做法需要撰写程序控制。而SQL Server具有亲切、易操作的图形使用界面,可以方便地管理使用者对SQL Server的存取权限。
SQL Server 安全管理可分为3个层次,即登入账户、资料库的管理与连接特定资料库的权限和使用者对所连接资料库部分的操作权限。下面,我们将针对这3个层次做详细说明。
一、登入账户
任何需要存取 SQL Server的使用者皆需要有一组服务器认可的账户和密码。SQL Server支持2种登入方式,一种为Windows验证,另一种为SQL Server验证。前者只要在SQL Server中建立与Windwos NT/2000对应的登入账户,让使用者登入Windows NT/2000时所用的账户能与在SQL Server中的账户相互对应,即可顺利连上SQL Server,由此,我们完成了对Windows NT/2000安全管理机制的整合。
接下来,资料库管理者在Windows NT上登入账号,可直接将Windows NT中的群组加到SQL Server中,从而成为一个登入账户。
通过上述操作,Windows NT登入群组中的成员皆可连接SQL Server。如果该群组中某一成员不允许其登入SQL Server,可在SQL Server中将该成员的个人账户设为拒绝存取。如果把SQL Server安装在 Windows 95、windows 98或Windows Me中,则无法使用Windows验证方式。
如果使用SQL Server验证,必须在SQL Server中为要连接SQL Server的使用者建立登入的账号名称和密码,这些账号和密码与Windows NT/2000的账户无关。
二、管理与连接特定资料库的权限
在建立登入账户后,使用者便能进入SQL Server中,但并不代表使用者有连接SQL Server特定资料库的权限,必须对使用者或群组设置对SQL Server的操作权限。SQL Server中对资料库的操作权限可分为服务器自身的操作权限与资料库的存取权限。对SQL Server的操作权限可由服务器角色来设置,资料库的存取权限则可由角色与使用者对个别表格的存取权限来设置。那么,服务器角色与角色之间有什么不同呢?
1 服务器角色
SQL Server系统内建8种服务器角色(可把角色想像成Windows NT账号中的群组),它不能更改或新增。当对某一使用者或群组设置好服务器角色后,其便拥有该服务器角色所拥有的权限。服务器角色是将SQL Server的各项管理工作加以分类,如建立账号和资料库备份等,它与资料库角色不一样,后者为对个别资料库的操作权限。
我们简单列出8种服务器角色所拥有的权限。
system administrators 表示系统管理员可执行任何动作。
security administrators 表示管理登入账户。
server administrators 表示设置SQL Server的各项参数。
setup administrators 表示有关replication(复制)的设置与管理扩充预存程序。
process administrators 表示管理SQL Server所有执行中的程序。
disk administrators 表示管理资料库文件。
database administrators 表示建立和更改资料库属性。
bulk insert administrators 表示对可执行bulk insert操作的管理。
2 角色
SQL Server内建10种资料库角色,它不能更改或删除,但可对个别资料库增加角色。若给予使用者有内建角色中的资料库拥有者权限,它便拥有该资料库的完整操作权。其余各角色的详细权限说明可参考SQL Server的bol(即SQL Server books online),通过查询关键字roles,进入标题为roles的项目,其中有包含内建服务器角色与资料库角色的完整说明,在此不多赘述。需要注意的是,在对使用者分别设置了各种角色(每一使用者或群组可具有多种角色)后,它便拥有所有角色联集的权限,但若其中有某一角色对某一操作权(如对某一表格的select权)设置了拒绝,它将失去了该项权限,换句话说,拒绝权限优于授予权限。
三、资料库中部件的存取权限
对于SQL Server的管理与可连接特定资料库的权限,由SQL Server所提供的服务器角色与资料库角色基本上可以符合我们大部份需求。另外,可直接对使用者或群组设置对资料库中部件的个别存取权限,这些个别的存取权限有select、insert、update、delete、exec和dri,其中exec与dri分别表示对预存程序的执行权限和对表格有效性的验证权限。在做直接的权限设置时,我们也可针对特殊的使用者(如内建资料库角色不能满足时),当然,如果使用相同权限方式的用户比较多时,可以增加一个符合需求的资料库角色,或将这些使用者在Windows NT/2000上先归于某群组,再对该群组设置权限,这样做比较方便于管理与维护。
除上述内容之外,在实际运行时,笔者对于资料库安全的把关总结出以下几点建议。
1 除非必要,否则尽量以Windows验证来管理可连接SQL Server的使用者,以整合Windows NT/2000的安全机制。
2 善用SQL Server的服务器角色与资料库角色功能。
3 善用SQL Server的加密功能。
SQL Server提供了登入账号、网络传输、虚拟表和预存程序的加密功能。其中账号的密码加密是预设的,而网络间传输资料则可用SSL方式进行加密,要启动此功能必须启动net-library的加密功能,同时要配合windows 2000的CA功能,并在服务器端与用户端设置完成,从而双方在传输资料前,便会在SSL加密后再进行传输。由于虚拟表和预存程序的定义是以明码保存在系统资料表中,若要将虚拟表和预存程序加密,可在其建立时在eNTerprise manager中设置加密选项或以 alter 叙述来设置加密。
4 系统安装完毕后,务必更改预设的sa密码,免得有其他使用者"义务"管理您的SQL Server。
问题一:如何做好一个服务器管理员?有哪些管理技巧 总体来说,服务器系统的管理是整个网络管理工作中的重中之重,特别是在小型单位网络中,单位的网络规模比较小,网络设备比较简单,基本上是属于傻瓜式的。
这里的服务器系统包括网络服务器和应用服务器系统两个方面。服务器系统的管理是整个网络管理工作中最重要的部分,因为它是整个网络的核心所在,无论是网络操作系统本身,还是各种网络服务器和应用服务器。
具体来说,服务器系统管理主要是安装、配置和管理网络操作系统、文件服务器、DNS、WINS、DHCP等网络服务器,以及像Web、FTP、E-mail、RAS、NAT等应用服务器。服务器系统管理的最终目标,就是要确保服务器各种协议和服务工作正常,确保服务器的各项性能指标正常发挥。另外,还需要及时地更新服务器系统的版本或补丁程序,这不仅关系到服务器的性能发挥,而且还关系到整个网络系统的安全性,因为现在的操作系统不断有新的安全漏洞被发现,及时安装补丁可以有效地阻止、填补这些安全漏洞。
目前在服务器系统管理方面的重点与难点当然是各种网络操作系统的管理了。在这其中又包括各种不同版本的主流Windows、Linux和UNIX网络操作系统的管理了。而每个系统中所包括的具体管理工作又非常多,非常复杂,但这些又是网络管理员所必须掌握的。至少,在大多数中小型企业中,网络管理员应该掌握主流的Windows和Linux网络操作系统的管理了。在一些较大企业,或者一些特殊行业(如金融、证券和保险等)中,UNIX、Linux系统又是最普遍采用的,所以UNIX和Linux系统管理对于专业网络管理员来说,又是必须要掌握的。当然,像其他应用服务器的管理也是非常重要,而且必须掌握。
2.关键设备的维护与管理
这也是整个网络管理中的重点之一,同时也是非常重要的工作,特别是在网络规模比较大,网络设备比较高档的单位网络中。因为单位网络系统更依赖这些关键设备的正常工作。
计算机网络的关键设备一般包括网络的核心交换机、核心路由器和服务器,它们是网络中的“节点”。对这些节点的维护和管理,除了需要经验积累外,还可以通过一些专门的网络管理系统来监视其工作状态,以便及时发现问题,及时进行维护和故障排除。
另外,为了提高网络的可用性,对一些关键设备进行冗余配置也是必不可少的。冗余包括两层含义,一是从端口角度进行,如对关键设备(如服务器、核心交换机)采取冗余链路连接,这样当其中一个端口出现故障时,另一个冗余链路就可以接替故障链路继续保持正常工作状态;另一层含义是对配置双份的设备或部件,如服务器中的电源、风扇、网卡,甚至内存等,核心交换机和路由器也可以配置两个。在正常工作时,这些冗余设备或部件起到负载均衡的作用,而在某部分出现故障时,则又起备份的作用。
在关键设备维护与管理中,服务器和网络总体性能的监控与管理是个技术重点和难点。要用到各种监控和管理工具,如流量监控工具MRTG、网络性能和通信监控的Sniffer类工具,带宽性能监控的Qcheck和IxChariot工具等。服务器性能方面的监控与管理还可利用操作系统自带的性能和监控管理工具进行。
当然,网络设备的配置与管理是整个关键设备维护与管理的重点与难点,这一点几乎是所有从事网络管理,甚至网络工程技术人员的共识。目前在关键设备方面,主要是以Cisco、华为3等品牌为主,掌握这两个主要品牌设备的配置与管理方法是网络管理员所必需的。
3 用户管理
用户管理是网络管理中的一个重点和难点,所涉及到的方面非常多,如用户账户、密码、文件和网络访问权限、用户权利、用户配置文件及用户安全策略等。既要保证各用户的正常工作不受影响,同时又>>
问题二:win7服务器管理器怎么下载 如果之前在 控制面板 - 程序 - 打开或关闭Windows功能 里没有这个选项勾栏
到官网去下载一下AD的补丁
microsoft/d=7887
然后你再去看 控制面板 - 程序 - 打开或关闭Windows功能 就有如图的东西
希望能帮助你
问题三:如何打开服务管理器 这两个完全可以去掉一个,并不会影响你的计算机安全的,
打开控制面板---管理工具--服务
问题四:什么是服务器的管理ip?有什么作用?怎么配置? 有的服务器限制不同地区的IP登录,因为不同地区的IP不同。也就是限制不同地区的IP段。
问题五:新手站长如何轻松管理服务器安全? 在服务器上安装安全狗软件,并把服务器加入服云。
这样不仅可以为服务器提供防护功能,而且可以登陆服云管理服务器。
服云客户端有web版、pc版、手机端的,可以随时随地了解服务器实时情况并进行调整服务器安全策略来应对攻击。让服务器更安全。
请采纳,谢谢
问题六:如何控制服务器 你的电脑登陆的时候是要登陆到域服务器上吗 如果是的话 那就没办法了 除非你的电脑脱离了域控制器的管理了 也就是说你不登陆到域控制器上 而是登陆本地的账号 比如administrator 你如果登陆到域上 那就只能遵循域管理员设定的规则 除非域管理员给你解除了那些限制 否则你是无法摆脱的 要解除 让管理员给你更高的权限 或者破解你的局域网里的域服务器 给你的登陆账号提权 只有这几种办法 其他的都不行
问题七:系统服务管理器怎么打开 1XP 在 开始---->运行------>输入servicesmsc而win 7 直接在开始,然后--->输入 servicesmsc
如图所示:
2然后就可以打开服务管理器了。
可以点击名称,按照字母进行排序
3选择一个服务后,可以右击,进行开启/关闭 等操作。
问题八:电脑的系统服务管理怎么进入 一、打开电脑的系统服务界面方法:
1、点击开始菜单点击运行(或在键盘上按WIN+R快捷键),打开运行界面,输入servicesmsc指令,按确定。
2、直接在我的电脑图标上右键在弹出的菜单中选择管理,弹出的计算机管理界面,点击服务和应用程序,就能看到服务选项,双击即可打开服务界面。
3、点击开始菜单,选择控制面板,在管理工具界面,找到服务并双击,即可打开服务界面。
二、启动系统服务
第1步:使用本文中的任何一种方法打开系统服务程序。
第2步:在系统服务窗口中找盯自己需要启动的系统服务,并双击此服务。如打开(DHCP Client)系统服务。
第3步:在打开的系统服务窗口中,单击“启动”按扭即可启动相关的系统服务了。
问题九:如何快速打开服务器管理器 常用方法 服务器管理器,右键,发送到桌面,建立快捷方式
问题十:如何管理服务器上的多个数据库 虽然这将减少托管所有这些数据库的成本,但是,这增加了管理这些系统的复杂性,因为你现在要处理多个服务级协议和维护窗口。当你决定在同一台服务器上托管多个数据库的时候,你要考虑的第一件事是这些系统是否有互补的维护窗口。如果一个系统不能在夜间放慢速度或者离线,另一个系统不能在白天放慢速度或者离线,这些系统就不适合共享一个服务器,因为你在需要为系统使用补丁或者处于其它原因要让系统离线的时候,你没有有效的维护时间窗。 你需要考察的下一个决定因素是这些系统的服务级协议。需要99%的开机时间的系统能够安排在一起,因为你可能会为这些系统(也许是集群解决方案)建立一个比非重要任务系统更强大的环境。这可以为你节省额外的成本,因为你现在不需要采购任何高端系统。具有更高的服务级协议的系统也可能会有同样的维护时间窗。因此,这些系统在一开始就是互补的。 承担工作量 对托管多个数据库的SQL服务器进行维护的最大难题是时机。 当然,当把多个数据库集中在一个SQL服务器的时候需要考虑的最重要的问题是,是否有足够的CPU和内存资源处理这些客户程序添加到这个数据库服务器的工作量。如果单个服务器不能提供需要的CPU和内存资源,那么,把这些数据库都集中在那台服务器上就不是一个好的选择。 当你经过这个整个决策过程并且把这些数据库都放在同一台服务器上之后,你如何保持这些系统的健康和在高峰期仍能运行与其它任何数据库解决方案一样,你仍需要处理自己的备份、索引碎片整理和重建、以及为操作系统和SQL服务器使用补丁。 处理托管多个数据库的SQL服务器的维护的最大难题是时机。你需要保证你的维护任务能够在这个SQL服务器托管的全部数据库计划的维护时间窗内完成。在任何数据库的维护时间窗之外进行维护工作都将引起数据库运行缓慢,因为硬盘和CPU资源现在被维护活动占用了,而不是处理正常的数据库查询。 重新索引工作 已经证明是有用的一个技术是比正常运行重新索引指令更频繁地对你的索引进行碎片整理。整理碎片的指令比重新索引指令有更多的好处。第一,索引碎片整理指令是一种在线操作,而重建索引是一种离线工作(除非你运行SQL服务器2005企业版或者更新的版本)。第二,如果你频繁地运行索引碎片整理指令,每一次运行这个指令的时候工作量都比较少。 例如,你每个星期检查一次索引碎片,它显示碎片是70%。这样,你就可以运行一个索引重建指令清除这些索引。 然而,你在第二天再检查索引碎片的时候会发生什么情况呢它可能是大约8%至10%的碎片。因此,如果你每天运行一个索引碎片整理指令而不是每个星期运行一次索引碎片整理指令,每一天要做的工作就很少,这个工作就能够更快地完成,可能在每天的维护时间窗内完成。 即使你在时间窗内不能让这个系统离线,由于碎片整理操作是一种在线操作,这个系统在整理碎片操作的时间将继续发挥作用,只是反应速度比正常情况下稍微慢一点。 数据库备份 备份是在一台服务器上托管多个数据库的时候需要解决的另一个关键问题。 每一个数据库都有自己的备份要求。备份数据库也许是能够在SQL服务器运行时执行的最繁重的任务。并不是因为这种备份需要占用大量的CPU和内存资源(这个任务占用的资源一般是很低的,除非你在备份的时候对数据库进行压缩),而是因为备份一个大型数据库需要占用大量的硬盘资源。 当进行全面备份的时候,整个数据库必须从硬盘读取。如果你的硬盘系统非常繁忙,这个备份会引起性能严重下降。这种备份的最佳解决方案是选择合适的时机。你还可以寻找能够在备份的同时允许对数据库备份进行压缩的第三方工具。由于这将增加SQL服务器上的CPU的工作量,它通>>
#说明:由csdn下载,原版为doc格式,有对应的xml表,不过还是应该对每个服务的数据库单独考虑需要的检查表格。
DB2维护手册
目录
DB2维护手册 1
一、 DB2日常维护日操作 3
1、 检查管理服务器是否启动 3
2、 检查DB2实例是否已经启动 3
3、 查看表空间状态是否正常 3
4、 查看表的状态 4
5、 查看磁盘空间 4
6、 检查存储管理软件是否正常 4
7、 检查数据库备份是否正常 5
8、 检查归档日志是否正确归档了 5
9、 查看缓冲池的命中率 5
10、 查看当前运行最频繁的SQL,其命中率是否正常 5
11、 查看当前连接的应用程序,有没有非法连接 5
12、 检查有没有死锁 6
13、 对表和索引进行RUNSTATS 6
14、 检查表是否需要重组 6
15、 对需要重组的表进行重组 7
二、 DB2日常维护月操作 7
1、 查看DB2日志 7
2、 检查备份和日志是否都保存好了 7
三、 DB2日常维护季度操作 7
1、 通过快照监控器,查看系统性能如何 7
2、 数据库补丁级别 8
四、 注意事项 8
1、 不要删除活动日志文件 8
2、 注意交易日志存储空间 8
3、 按照系统的实际工作量配置日志空间 8
4、 设置正确数据库代码页 9
5、 检查许可证(LICENSE)安装情况 9
6、 创建数据库前调整好系统时间 9
7、 不要随便执行 CHOWN (CHMOD) –R (UNIX/LINUX) 9
8、 在归档日志模式下使用LOAD记得加NONRECOVERABLE参数 9
五、 附:以脱机方式重组表 9
六、 附:索引重组 10
七、 附:收集和更新统计信息的准则 11
八、 附:使用 CLP 捕获数据库运行状况快照 13
一、 DB2日常维护日操作
1、 检查管理服务器是否启动
用ps命令查看是否有dasusr1后台进程
#ps -ef | dasusr1
请确保管理服务器已经启动,如果没有启动,则按以下步骤启动管理服务器:
以管理服务器用户(UNIX默认是DASUSR1)登录
发出db2admin start命令
如果是HA环境,则要保证在脚本中正确配置了启动命令
2、 检查DB2实例是否已经启动
用ps命令查看是否有db2sysc后台进程
#ps -ef | db2sysc
也可以以DB2实例所有者登录,通过发出db2start命令来确保启动了实例(如果实例已经启动,则会告知SQL1026N 数据库管理器已激活;否则,将把实例启动起来)
3、 查看表空间状态是否正常
以db2实例所有者登录
#db2 list tablespaces show detail //在单分区上查看表空间的状态,正常返回0x0000
# db2_all list tablespaces show detail //在所有分区上查看表空间的状态
可以使用LIST TABLESPACES 命令确定连接数据库中表空间的当前状态,可以使用SHOW DETAIL选项查看表空间的详细信息。比如,我们连上SAMPLE数据库,执行list tablespaces show detail ,可以看到状态返回值是0x0000,此时,使用db2tbst可以查看状态编号对于的状态含义,具体语法如下:
db2tbst <tablespace state> 可以查看编号所代表的状态
db2tbst 命令接收十六进制的状态值,并返回相应的表空间状态。例如,命令 db2tbst 0x0008 返回 State = Load Pending 。而该十六进制的状态值反过来又是 LIST TABLESPACES 命令输出的组成部分。表空间的外部可见状态是由单个状态值的十六进制总和构成的。例如,如果表空间的状态是 Backup Pending和 Load in Progress,那么所返回的十六进制值就是 0x20020(0x00020 + 0x20000)
4、 查看表的状态
查询系统目录视图以获得关于数据库的有用信息。例如,下面的语句使用 NOT LIKE 断言,返回在 SYSCATTABLES 中有项的所有用户定义的表的名称,以及每个表的列数和表的状态(N = 正常;C = 待审核(check pending))
#db2 select tabname, colcount, status FROM syscattables WHERE tabschema NOT LIKE 'SYS%' ORDER BY tabname
也可以使用load query命令查看单个表的状态,比如对表TEST1,我们可以发出如下命令:
#db2 load query table test1
5、 查看磁盘空间
查看数据库活动日志目录是否已满,活动日志目录可以使用get db cfg查看,注意一定不要手工删除活动日志
#df -k
查看SMS表空间对应的容器目录空间是否满了
#df -k
查看DMS表空间中是否还有可用页
#db2 list tablespaces show detail //在单分区上查看表空间的是否还有可用页
# db2_all list tablespaces show detail //在所有分区上查看表空间是否还有可用页
6、 检查存储管理软件是否正常
请检查TSM或其他存储管理软件是否正常,以及磁带机是否运行正常。
7、 检查数据库备份是否正常
请查看TSM或第三方存储管理软件,看备份映像文件是否完整的保存到了磁带机上了,想在DB2上查看备份情况,可以使用LIST命令
# db2 list history backup all for 数据库名
8、 检查归档日志是否正确归档了
请确保活动日志目录下没有的日志文件都已经正确归档到了带机上(查看TSM或第三方存储管理软件)。
查看活动目录里的日志文件:
#ls -l
9、 查看缓冲池的命中率
# db2 get snapshot for bufferpools on 数据库名
查看缓冲池的命中率,看其是否低于95%(命中率越高越好)
10、 查看当前运行最频繁的SQL,其命中率是否正常
# db2 get snapshot for bufferpools on 数据库名 > logtxt
用grep命令查看" Number of executions"执行次数最频繁的语句,看其命中率是否正常。
比如:
grep -n " Number of executions" snapout | grep -v "= 0" | sort -k 5,5rn | more
11、 查看当前连接的应用程序,有没有非法连接
#db2 list applications show detail
看这些连接的情况,看有没有不合适的IP连上来,或者不被允许的第三方工具连上来,比如一些第三方工具连上来会对表进行锁定,影响业务系统正常运行,这个时候可以用FORCE APPLICATIONS (应用程序句柄)停下来。
12、 检查有没有死锁
# db2 get snapshot for all on 数据库名 > logtxt
用grep命令查看输出的文件中是否有死锁的记录,比如
grep -n "Deadlocks detected" logtxt | grep -v "= 0" | more
13、 对表和索引进行runstats
#db2 runstats on table 表名 and index all
对系统表以及变化比较频繁的表运行统计信息,建议写成shell脚本自动运行。
14、 检查表是否需要重组
使用REORGCHK命令,通过统计数据检查表是否需要重组,语法如下:
REORGCHK [UPDATE | CURRENT ]STATISTICS ON [TABLE SYSTEM| TABLE USER | TABLE ALL | TABLE table_name | SCHEMA schema_name]
UPDATE STATISTICS: 更新表的统计数据,根据该统计数据判断是否需要重组表
CURRENT STATISTICS:根据当前表统计数据判断是否需要重组表
TABLE table_name : 对单个表进行分析
TABLE ALL: 对数据库所有的表进行分析
TABLE SYSTEM: 对系统表进行分析
TABLE USER : 对当前用户模式下的所有表进行分析
#db2 reorgchk update statistics on table all
15、 对需要重组的表进行重组
#db2 reorg table 表名 //通过重构行来消除“碎片”数据
#db2 reorg indexes all for table 表名 //只重组索引
比如:
reorg table db2inst1org index by_id
将根据索引by_id,如果不加INDEX选项将重组表和所有的索引
reorg table db2inst1org index by_id use tempspace1
使用指定的临时表空间重组表
表重组完成后需要进行RUNSTATS。另外,记住在分区数据库环境中,如果想在所有节点运行命令,需要使用db2_all命令。
二、 DB2日常维护月操作
1、 查看DB2日志
请至少每月查看一次db2diaglog文件,看其中是否有异常。
2、 检查备份和日志是否都保存好了
通过TSM或第三方存储管理软件,查看备份和归档日志是否都保存好了,在数据库级别查看备份,可以使用:
# db2 list history backup all for 数据库名
三、 DB2日常维护季度操作
1、 通过快照监控器,查看系统性能如何
通过快照监控器,抓取数据库的信息,分析数据库性能是否合理:
# db2 get snapshot for all on 数据库名 > logtxt
2、 数据库补丁级别
# db2level
四、 注意事项
1、 不要删除活动日志文件
DB2 的活动日志文件不能被删除。一旦 DB2 的活动日志文件被删除,或者所在的存储设备出现问题,则不可避免地造成 DB2 数据库系统宕机。
2、 注意交易日志存储空间
在归档日志模式下,如果没有使用自动归档方式,则存储的日志文件会不断增多,有可能造成日志所在的文件系统空间满。 当这种情况发生时,会根据参数 BLK_LOG_DSK_FUL 的配置而有不同的现象:
1)如果该参数启用,则 DB2 数据库可继续读操作,但是写操作会挂起
2)如果该参数没有启用,则 DB2 数据库会停止工作
两种情况下,都需要到日志所在的文件系统添加了空间才恢复正常。
3、 按照系统的实际工作量配置日志空间
DB2数据库通过日志文件维护数据的完整性和一致性。DB2 数据库的日志空间可通过如下公式计算:
日志空间 = (主日志文件 + 二级日志文件) 日志文件尺寸
其中:
1) 主日志文件由参数 LOGPRIMARY 控制,
2) 二级日志文件由参数 LOGSECOND 控制
3) 日志文件尺寸由参数 LOGFILSIZ 控制
4) LOGPRIMARY + LOGSECOND < 256 (不同的 DB2 版本略有不同,请参看相同版本的 DB2 手册确认)
4、 设置正确数据库代码页
由于数据库的代码页在数据库创建之后是无法修改的,所以在创建数据库时一定要选择正确的代码页。
错误的数据库代码页会造成 JDBC/ODBC 访问时中文字段被截断(包括控制中心),这种情况需要重建数据库以修改数据库代码页。
从全局规划来说,如果应用需要访问多个数据库,那么这多个数据库的代码页应该是一致的。
5、 检查许可证(License)安装情况
许可证过期会造成不必要的服务中断,所以在 DB2 安装完毕后,建议检察许可的安装情况
6、 创建数据库前调整好系统时间
在数据库创建好之后,调整系统时间会造成数据库内部时间戳的异常。数据库中一些对象和时间相关,一旦时间不准确要调整需要很小心。错误的时间调整可能会造成很多问题,如:
1)某些对象失效,例如 :
SQL0440N,找不到具有兼容自变量的类型为 “<例程类型>” 的名为 “<例程名>” 的已授权例程
2)数据库日志逻辑错误 -> 宕机
3)常见错误 – 只调整时间,未调整时区
7、 不要随便执行 chown (chmod) –R (UNIX/Linux)
在实例目录下chown (chmod) -R 会造成
1) 在数据库服务器上 db2 connect to <dbname> 能连接上数据库
2) db2 connect to <dbname> user using 连接不上
8、 在归档日志模式下使用LOAD记得加NONRECOVERABLE参数
五、 附:以脱机方式重组表
以脱机方式重组表是整理表碎片的最快方法。重组可减少表所需的空间量并提高数据访问和查询性能。
必须具有 SYSADM、SYSCTRL、SYSMAINT 或 DBADM 权限,或者必须具有对表的 CONTROL 权限才能重组表。必须具有数据库连接才能重组表。
标识需要重组的表之后,可以对这些表运行 REORG 实用程序,并且可以选择对在这些表上定义的任何索引运行该实用程序。
1 要使用 CLP 重组表,请发出 REORG TABLE 命令:
db2 reorg table testemployee
要使用临时表空间 mytemp 重组表,请输入:
db2 reorg table testemployee use mytemp
要重组表并根据索引 myindex 对行进行重新排序,请输入:
db2 reorg table testemployee index myindex
2 要使用 SQL 调用语句重组表,请使用 ADMIN_CMD 过程发出 REORG TABLE 命令:
call sysprocadmin_cmd ('reorg table employee index myindex')
3 要使用 DB2 管理 API 重组表,请使用 db2REORG API。
在重组表之后,应收集有关表的统计信息,以便优化器具有最准确的数据来评估查询访问方案。
六、 附:索引重组
通过删除和插入操作对表进行更新后,索引的性能会降低,其表现方式如下:
• 叶子页分段
叶子页被分段之后,由于必须读取更多的叶子页才能访存表页,因此 I/O 操作成本会增加。
• 物理索引页的顺序不再与这些页上的键顺序相匹配(此称为不良集群索引)。
叶子页出现不良集群情况后,顺序预取操作的效率将降低,因此会导致更多的 I/O 等待。
• 形成的索引大于其最有效的级别数。
在此情况下应重组索引。
如果在创建索引时设置了 MINPCTUSED 参数,则在删除某个键且可用空间小于指定的百分比时,数据库服务器会自动合并索引叶子页。此过程称为联机索引整理碎片。但是,要复原索引集群和可用空间以及降低叶级别,请使用下列其中一种方法:
• 删除并重新创建索引。
• 使用 REORG INDEXES 命令联机重组索引。
因为此方法允许用户在重建表索引期间对表进行读写操作,所以在生产环境中可能需要选择此方法。
• 使用允许脱机重组表及其索引的选项运行 REORG TABLE 命令。
联机索引重组
在使用 ALLOW WRITE ACCESS 选项运行 REORG INDEXES 命令时,如果同时允许对指定的表进行读写访问,则会重建该表的所有索引。进行重组时,对基础表所作的任何将会影响到索引的更改都将记录在 DB2® 日志中。另外,如果有任何内部内存缓冲区空间可供使用,则还将这些更改放在这样的内存空间中。重组将处理所记录的更改以便在重建索引时与当前写活动保持同步更新。内部内存缓冲区空间是根据需要从实用程序堆中分配的指定内存区域,它用来存储对正在创建或重组的索引所作的更改。使用内存缓冲区空间使索引重组操作能够通过这样的方式来处理更改,即先直接从内存读取,然后读取日志(如有必要),但读取日志的时间要晚得多。在重组操作完成后,将释放所分配的内存。重组完成后,重建的索引可能不是最佳集群的索引。如果为索引指定 PCTFREE,则在重组期间,每页上均会保留相应百分比的空间。
对于分区表,支持对各个索引进行联机索引重组和清除。要对各个索引进行重组,指定索引名:REORG INDEX index_name for TABLE table_name
对于空间索引或多维集群(MDC)表,不支持采用 ALLOW WRITE 方式的联机索引重组。
注: REORG INDEXES 命令的 CLEANUP ONLY 选项不能完全重组索引。CLEANUP ONLY ALL 选项将除去那些标记为“删除”且被认为要落实的键。此外,它还将释放所有标记为“删除”且被认为要落实的键所在的页。在释放页后,相邻的叶子页将会合并,前提是这样做可以在合并页上至少留出 PCTFREE 可用空间。PCTFREE 是指在创建索引时为其定义的可用空间百分比。CLEANUP ONLY PAGES 选项仅删除那些标记为“删除”且被认为要落实的所有键所在的页。
使用 CLEANUP ONLY 选项对分区表的索引进行重组时,支持任何访问级别。如果未指定 CLEANUP ONLY 选项,则缺省访问级别 ALLOW NO ACCESS 是唯一支持的访问级别。
REORG INDEXES 具有下列要求:
• 对索引和表具有 SYSADM、SYSMAINT、SYSCTRL 或 DBADM 权限,或者具有 CONTROL 特权。
• 用于存储索引的表空间的可用空间数量等于索引的当前大小
在发出 CREATE TABLE 语句时,考虑在大型表空间中重组索引。
• 其他日志空间
REORG INDEXES 需要记录其活动。因此,重组可能会失败,尤其是在系统繁忙和记录其他并发活动时。
注: 如果具有 ALLOW NO ACCESS 选项的 REORG INDEXES ALL 命令运行失败,则会标记索引无效并且此项操作不可撤销。但是,如果具有 ALLOW READ ACCESS 选项的 REORG 命令或具有 ALLOW WRITE ACCESS 选项的 REORG 命令运行失败,则可以复原原来的索引对象。
七、 附:收集和更新统计信息的准则
RUNSTATS 命令收集表、索引和统计信息视图的统计信息,以为优化器提供准确信息进行访问方案选择。
在下列情况下,使用 RUNSTATS 实用程序来收集统计信息:
• 当数据已装入表中且已创建适当的索引时。
• 当在表中创建新的索引时。如果自从上次在表中运行 RUNSTATS 以来尚未修改表,则只需要对新的索引执行 RUNSTATS。
• 当一个表已用 REORG 实用程序重组时。
• 当通过数据修改、删除和插入已大量更新表及其索引时。(此处所指的“大量”可能表示有 10% 到 20% 的表和索引数据受影响。)
• 在绑定性能非常重要的应用程序之前
• 当您想要比较当前和先前统计信息时。如果定期更新统计信息,则可以及早发现性能问题。
• 当预取量更改时。
• 当使用了 REDISTRIBUTE DATABASE PARTITION GROUP 实用程序时。
注:
在先前版本的 DB2® 中,此命令使用了 NODEGROUP 关键字,而不是 DATABASE PARTITION GROUP 关键字。
• 使用 RUNSTATS 实用程序来收集关于 XML 列的统计信息。 使用 RUNSTATS 仅收集 XML 列的统计信息时,将保留 LOAD 或上一次执行 RUNSTATS 实用程序已收集的非 XML 列的现有统计信息。如果先前已收集关于一些 XML 列的统计信息,则在当前命令未收集关于该 XML 列的统计信息时,将删除先前收集的 XML 列的统计信息;在当前命令收集了关于该 XML 列的统计信息时,将替换先前收集的 XML 列的统计信息。
要提高 RUNSTATS 性能并保存用来存储统计信息的磁盘空间,考虑仅指定应该收集其数据分布统计信息的列。
理论上,您应在运行统计信息之后重新绑定应用程序。如果查询优化器具有新的统计信息,则它可以选择不同的访问方案。
如果您没有足够的时间一次收集全部的统计信息,则可以运行 RUNSTATS 来每次仅更新几个表、索引或统计信息视图的统计信息,并轮流完成该组对象。如果对选择性部分更新运行 RUNSTATS 期间由于表上的活动而产生了不一致性,则在查询优化期间将发出警告消息(SQL0437W,原因码 6)。例如,如果执行 RUNSTATS 来收集表分布统计信息,以及在某个表活动后,再次执行 RUNSTATS 来收集该表的索引统计信息,则可能发生这种情况。如果由于表上的活动产生了不一致并且在查询优化期间检测到这些不一致,则发出该警告消息。当发生这种情况时,应再次运行 RUNSTATS 来更新分布统计信息。
要确保索引统计信息和表同步,执行 RUNSTATS 来同时收集表和索引统计信息。索引统计信息保留自上次运行 RUNSTATS 以来收集的大部分表和列的统计信息。如果自上次收集该表的统计信息以来已对该表做了大量修改,则只收集该表的索引统计信息将使两组统计信息不能在所有节点上都同步。
对生产系统调用 RUNSTATS 可能会对生产工作负载的性能产生负面影响。RUNSTATS 实用程序现在支持调速选项,在执行较高级别的数据库活动期间,可以使用调速选项来限制执行 RUNSTATS 的性能影响。
在分区数据库环境中收集表的统计信息时,RUNSTATS 仅收集执行该命令的数据库分区上的表的统计信息。将此数据库分区的 RUNSTATS 结果推广到其他数据库分区。如果执行 RUNSTATS 的数据库分区不包含特定表的一部分,则将请求发送到数据库分区组中包含该表一部分的第一个数据库分区。
收集统计信息视图的统计信息时,将收集所有包含该视图引用的基本表的数据库分区的统计信息。
考虑以下技巧来提高 RUNSTATS 的效率和已收集的统计信息的有效性:
• 仅对用来连接表的列或 WHERE、GROUP BY 以及查询的类似子句中的列收集统计信息。如果对这些列建立了索引,则可以用 RUNSTATS 命令的 ONLY ON KEY COLUMNS 子句指定列。
• 为特定表和表中特定列定制 num_freqvalues 和 num_quantiles 的值。
• 使用 SAMPLE DETAILED 子句收集 DETAILED 索引统计信息,以减少对详细的索引统计信息执行的后台计算量。SAMPLE DETAILED 子句减少收集统计信息所需要的时间,并在大多数情况下产生足够的精度。
• 当创建已填写的表的索引时,添加 COLLECT STATISTICS 子句来在创建索引时创建统计信息。
• 当添加或除去了大量表行时,或如果更新了收集其统计信息的列中的数据,则再次执行 RUNSTATS 来更新统计信息。
• 因为 RUNSTATS 仅收集单个数据库分区的统计信息,所以,如果数据不是在所有数据库分区中一致分发的,则统计信息将不太准确。如果您怀疑存在变形数据分发,则您可能想要在执行 RUNSTATS 之前使用 REDISTRIBUTE DATABASE PARTITION GROUP 命令来在各数据库分区之间再分发数据。
八、 附:使用 CLP 捕获数据库运行状况快照
可从 CLP 使用 GET HEALTH SNAPSHOT 命令来捕获运行状况快照。该命令语法支持检索运行状况监视器监视的不同对象类型的运行状况快照信息。
先决条件
必须具有实例连接才能捕获运行状况快照。如果没有实例连接,则创建缺省实例连接。要获取远程实例的快照,必须先连接至该实例。
过程
要使用 CLP 捕获数据库运行状况快照
1 从 CLP 发出带有期望参数的 GET HEALTH SNAPSHOT 命令。
在以下示例中,将在启动数据库管理器之后立即捕获数据库管理器级别运行状况快照。
db2 get health snapshot for dbm
2 对于分区数据库系统,可为特定分区捕获专门的数据库快照,或者为所有分区捕获全局的数据库快照。要对特定分区(如分区号 2)上的数据库捕获运行状况快照,请发出以下命令:
db2 get health snapshot for db on sample at dbpartitionnum 2
要对所有分区上的所有应用程序捕获数据库快照,请发出以下命令:
db2 get health snapshot for db on sample global
以下命令捕获的运行状况快照带有附加详细信息,包括公式、附加信息和运行状况指示器历史记录:
db2 get health snapshot for db on sample show detail
3 对于基于集合状态的运行状况指示器,可对所有集合对象捕获数据库快照,而不考虑这些对象的状态。常规 GET HEALTH SNAPSHOT FOR DB 命令返回所有集合对象,这些对象需要针对所有基于集合状态的运行状况指示器的警报。
要对列示了所有集合对象的数据库捕获运行状况快照,请发出以下命令:
db2 get health snapshot for db on sample with full collection
作用如下:
一、系统表存储SQL所有的系统信息。
存储有关数据库服务中的元数据所谓元数据即(比如数据服务器有哪些用户数据库、数据库服务器有哪些登陆账号,数据库中都有哪些表,每个表都有哪些字段 每个数据库有哪些存储过程、视图等等的数据),系统表一般sys开头。
二、了解数据库中系统表,可以编写sql语句或编程的时候用到。
在创建数据库的时候选判断数据库是否存在;创建数据库中对象(表、视图、存储过程、索引等)是否存在,存在返回,不存在则执行创建语句。批量删除数据库中对象,比如一次性删除某个具体数据库中的所有用户创建的表、视图、索引等对象。
三、重要的几个系统表
Sysxlogins:存在与Master数据库中,(所有数据库中用户和角色),记录着所有能登陆到Sql server 的帐号。要重启服务或reconfigure with override,sysdatabases:记录着当前系统所有的数据库。只有Master数据中有此系统表。
扩展资料:
一、数据库优点:
1、易于维护:都是使用表结构,格式一致;
2、使用方便:SQL语言通用,可用于复杂查询;
3、复杂操作:支持SQL,可用于一个表以及多个表之间非常复杂的查询。
二、数据库缺点:
1、读写性能比较差,尤其是海量数据的高效率读写;
2、固定的表结构,灵活度稍欠;
3、高并发读写需求,传统关系型数据库来说,硬盘I/O是一个很大的瓶颈。
0条评论