事务锁定自动化和服务课件

上传人:大米 文档编号:574523190 上传时间:2024-08-16 格式:PPT 页数:43 大小:737.50KB
返回 下载 相关 举报
事务锁定自动化和服务课件_第1页
第1页 / 共43页
事务锁定自动化和服务课件_第2页
第2页 / 共43页
事务锁定自动化和服务课件_第3页
第3页 / 共43页
事务锁定自动化和服务课件_第4页
第4页 / 共43页
事务锁定自动化和服务课件_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《事务锁定自动化和服务课件》由会员分享,可在线阅读,更多相关《事务锁定自动化和服务课件(43页珍藏版)》请在金锄头文库上搜索。

1、第第10章章 事务、锁定、自动化和服务事务、锁定、自动化和服务10.1 事务事务10.2 锁定锁定10.3 SQL Server 2008自动化管理自动化管理10.4 SQL Server 2008服务服务10.1 事务事务10.1.1 事务与事务与ACID属性属性在形式上,事务是由ACID属性标识的。术语“ACID”是一个简称,每个事务的处理必须满足ACID原则,即:(1)原子性。原子性意味着每个事务都必须被认为是一个不可分割的单元。(2)一致性。不管事务是完全成功完成还是中途失败,当事务使系统中的所有数据处于一致的状态时存在一致性。(3)隔离性。隔离性是指,每个事务在它自己的空间发生,和其

2、他发生在系统中的事务隔离,而且事务的结果只有在它完全被执行时才能看到。(4)持久性。持久性意味着,一旦事务执行成功,在系统中产生的所有变化将是永久的。10.1.2 多用户使用的问题多用户使用的问题丢失更新(lostupdate)指,当两个或多个事务选择同一行,然后基于最初选定的值更新该行时,由于每个事务都不知道其他事务的存在,因此最后的更新将重写由其他事务所做的更新,这将导致数据丢失。脏读(dirtyread)指,一个事务正在访问数据,而其他事务正在更新该数据,但尚未提交,此时就会发生脏读问题,即第一个事务所读取的数据是“脏”(不正确)数据,它可能会引起错误。当一个事务多次访问同一行而且每次读

3、取不同的数据时,会发生不可重复读(unrepeatableread)问题。当一个事务对某行执行插入或删除操作,而该行属于某个事务正在读取的行的范围时,会发生幻读(phantomread)问题。10.1.3 事务处理事务处理1开始事务开始事务在SQLServer中,显式地开始一个事务可以使用BEGINTRANSACTION语句。语法格式:BEGINTRAN|TRANSACTIONtransaction_name|tran_name_variableWITHMARKdEscription;10.1.3 事务处理事务处理2结束事务结束事务COMMITTRANSCATION语句是提交语句,它将事务开始

4、以来所执行的所有数据都修改成为数据库的永久部分,也标志一个事务的结束,其语法格式为COMMITTRAN|TRANSACTIONtransaction_name|tran_name_variable;标志一个事务的结束也可以使用COMMITWORK语句。语法格式为COMMITWORK10.1.3 事务处理事务处理3撤销事务撤销事务若要结束一个事务,可以使用ROLLBACKTRANSACTION语句。它使得事务回滚到起点,撤销自最近一条BEGINTRANSACTION语句以后对数据库的所有更改,同时也标志了一个事务的结束。语法格式:ROLLBACKTRAN|TRANSACTIONtransacti

5、on_name|tran_name_variable;另外,一条ROLLBACKWORK语句也能撤销一个事务,功能与ROLLBACKTRANSACTION语句一样,但ROLLBACKTRANSACTION语句接受用户定义的事务名称。语法格式:ROLLBACKWORK;10.1.3 事务处理事务处理4回滚事务回滚事务ROLLBACKTRANSACTION语句除了能够撤销整个事务,还可以使事务回滚到某个点,不过在这之前需要使用SAVETRANSACTION语句来设置一个保存点。SAVETRANSACTION的语法格式:SAVETRAN|TRANSACTIONsavepoint_name|savep

6、oint_variable;SAVETRANSACTION语句会向已命名的保存点回滚一个事务。如果在保存点被设置后,当前事务对数据进行了更改,则这些更改会在回滚中被撤销。语法格式为ROLLBACKTRAN|TRANSACTIONsavepoint_name|savepoint_variable;10.1.3 事务处理事务处理【例例10.1】 定义一个事务,向PXSCJ数据库的XSB表添加一行数据,然后删除该行数据;但执行后,新插入的数据行并没有删除,因为事务中使用了ROLLBACK语句将操作回滚到保存点My_sav,即删除前的状态。BEGINTRANSACTIONMy_tranUSEPXSCJ

7、INSERTINTOXSBVALUES(081115,胡新华,1,1991-06-27,计算机,50,NULL)SAVETRANSACTIONMy_savDELETEFROMXSBWHERE学号=081115ROLLBACKTRANMy_savCOMMITWORKGO10.1.3 事务处理事务处理执行完上述语句后使用SELECT语句查询XSB表中的记录:SELECT*FROMXSBWHERE学号=081115执行结果如下:10.1.4 事务隔离级事务隔离级在SQLServer2008中,可以使用SETTRANSACTIONISOLATIONLEVEL语句来设置事务的隔离级别。语法格式:SETT

8、RANSACTIONISOLATIONLEVELREADUNCOMMITTED|READCOMMITTED|REPEATABLEREAD|SNAPSHOT|SERIALIZABLE;10.2 锁定锁定10.2.1 锁定粒度锁定粒度在SQLServer中,可被锁定的资源从小到大分别是行、页、扩展盘区、表和数据库,被锁定的资源单位称为锁定粒度。可见,上述5种资源单位其锁定粒度是由小到大排列的。10.2.2 锁定模式锁定模式SQLServer使用不同的锁模式锁定资源,这些锁模式确定了并发事务访问资源的方式。共有6种锁模式,分别是:(1)排他锁。排他锁可以防止并发事务对资源进行访问。(2)共享锁。共享

9、锁允许并发事务读取一个资源。(3)更新锁。更新锁可以防止通常形式的死锁。(4)意向锁。意向锁表示SQLServer需要在层次结构中的某些底层资源(如表中的页或行)上获取共享锁或排他锁,例如,放置在表级的共享意向锁表示事务打算在表中的页或行上放置共享锁。(5)键范围锁。键范围锁用于序列化的事务隔离级别,可以保护由T-SQL语句读取的记录集合中隐含的行范围。(6)架构锁。执行表的数据定义语言操作(如增加列或删除表)时使用架构修改锁。(7)大容量更新锁。当将数据大容量复制到表,且指定了TABLOCK提示或者使用sp_tableoption设置了tablelockonbulk表选项时,将使用大容量更新

10、锁。10.3 SQL Server 2008自动化管理自动化管理10.3.1 SQL Server代理代理如果需要验证账户是否已经设置了所需的Windows权限,可以通过以下步骤进行:(1)单击“开始”菜单,选择“程序管理工具本地安全策略”。(2)在弹出的“本地安全设置”窗口中,选择“本地策略用户权利指派”。(3)在右侧的权限列表中右击一个权限选项,如“作为服务器登录”,选择“属性”菜单项,如图10.1所示。在打开的“属性”窗口中,从列表中查看要设置的SQLServer代理的账户是否存在,如图10.2所示。 10.3.1 SQL Server代理代理(4)如果账户不在列表中,单击“添加用户或组

11、”按钮,在打开的“选择用户或组”对话框中添加SQLServer代理服务账户,再单击“确定”按钮返回。(5)重复上述操作,对权限列表中的其他选项进行相同的设置。10.3.2 操作员操作员每一个操作员都必须具有一个唯一的名称,操作员的联系信息决定了通知操作员的方式。通知方式有以下3种:(1)电子邮件通知。电子邮件通知是向操作员发送电子邮件。(2)寻呼通知。寻呼是通过电子邮件实现的。(3)netsend通知。此方式通过netsend命令向操作员发送消息。10.3.2 操作员操作员创建操作员的步骤如下。第1步:使用系统管理员身份连接SQLServer,启动SQLServerManagementStud

12、io,查看SQLServer代理服务是否运行,如果未运行,则右击“SQLServer代理”,选择“启动”菜单项启动SQLServer代理服务。第2步:进入“新建操作员”窗口,在“姓名”文本框中输入操作员名称,如tao;在“电子邮件名称”文本框中输入通知操作员的电子邮件,如。第3步:在“寻呼值班计划”栏中,可以选择操作员接收通知的时间。例如,选择“星期一”复选框,并设置“工作日开始时间”和“工作日结束时间”,如图10.3所示,则操作员将在每个星期一的这个时间段接到通知。10.3.2 操作员操作员10.3.3 作业作业创建作业的操作步骤如下。第1步:启动SQLServerManagementStu

13、dio,在“对象资源管理器”窗口中展开“SQLServer代理”,右击“作业”,选择“新建作业”菜单项,打开“新建作业”窗口。第2步:选择“常规”选项卡,在“名称”文本框中输入要定义的作业名称,如“创建并备份数据库”。“所有者”使用默认值。在“类别”下拉框中选择当前作业的类别,如“数据库维护”,如图10.4所示,默认是“未分类(本地)”。“说明”框中可以输入对作业的描述信息。10.3.3 作业作业10.3.3 作业作业第3步:选择“步骤”选项卡,在右侧单击“新建”按钮,弹出“新建作业步骤”窗口。在窗口中的“步骤名称”文本框中定义一个作业步骤的名称,如“新建数据库”。在“类型”下拉框中选择作业步

14、骤的类型,这里选择“Transact-SQL脚本(T-SQL)”。如果作业步骤是对数据库直接操作,则可以在“数据库”下拉框中选择目标数据库,这里使用默认值。在“命令”文本框中输入创建新数据库的T-SQL语句,如图10.5所示。10.3.3 作业作业10.3.3 作业作业第4步:在“新建作业步骤”窗口中可以单击“分析”按钮分析SQL命令的正确性,如果语句正确则选择“高级”选项卡,可以设置“成功时要执行的操作”和“失败时要执行的操作”,这里使用默认值。单击“确定”按钮返回。第5步:返回“新建作业”窗口后,窗口中的“作业步骤列表”中将显示刚刚新建的作业步骤。这时可以再单击“新建”按钮,添加备份数据库

15、的作业步骤(过程略),新建后的作业步骤如图10.6所示。10.3.3 作业作业10.3.3 作业作业第6步:选择“计划”选项卡,单击“新建”按钮,弹出“新建作业计划”窗口,如图10.7所示。10.3.3 作业作业第7步:选择“通知”选项卡,选择作业完成时要执行的操作。例如,可以选择“电子邮件”复选框,在后面的第一个下拉框中选择要通知的操作员,如tao。在第二个下拉框中选择通知操作员的时机,如果选择了“当作业完成时”选项则包括“当作业成功时”和“当作业失败时”。如图10.8所示。10.3.4 警报警报可以使用下列参数来指定触发警报的SQLServer事件:(1)错误号。SQLServer代理在发

16、生特定错误时发出警报。(2)严重级别。SQLServer代理在发生特定级别的严重错误时发出警报。表10.1中列出了常见的错误严重级别及说明。级 别说 明是否写入应用程序日志010消息,不是错误可选1116用户错误,可纠正可选17在服务器资源耗尽时产生的错误可选18非致命的内部错误。语句将完成,并且用户连接将维持可选19非可配置资源错误,产生这个错误的任何语句将被终止是20当前数据库的一个单独进程遇到问题是21当前数据库的所有进程都受到影响是22正在使用的表或索引可能受到损坏是23整个数据库遭到破坏是24硬件发生故障是10.3.4 警报警报(3)数据库。SQLServer代理仅在特定数据库中发生

17、事件时才发出警报。(4)事件文本。SQLServer代理在指定事件的事件消息中包含特定文本字符串时发出警报。创建事件警报的具体步骤如下。第1步:启动SQLServerManagementStudio,以Windows系统管理员身份连接SQLServer2008。在“对象资源管理器”窗口中,展开“SQLServer代理”,右击“警报”,选择“新建警报”菜单项,打开“新建警报”窗口。第2步:在“新建警报”窗口的“常规”选项卡的“名称”文本框中输入要定义的警报名称,如“警报_PXSCJ”。如果要禁用该警报,则将“启用”复选框中的勾去掉,这里保持默认值。在“类型”下拉框中选择警报的类型为“SQLSer

18、ver事件警报”。在“数据库名称”下拉框中选择警报作用于的数据库,这里选择“PXSCJ”。启用“错误号”单选按钮可以指定触发警报的错误号,如208,如图10.9所示。10.3.4 警报警报10.3.4 警报警报第3步:选择“响应”选项卡,启用“通知操作员”复选框,在操作员列表中选择警报激活后要通知的操作员,如tao,在其之后的复选框中选择通知方式,如图10.10所示。10.3.4 警报警报2性能警报性能警报创建性能警报的具体步骤如下。第1步:打开“新建警报”窗口(步骤略),在“常规”选项卡的“名称”文本框输入警报名称,如“性能警报(tempdb)”。在“类型”下拉框中选择“SQLServer性

19、能条件警报”选项,之后窗口中会出现性能条件警报要定义的选项。第2步:在“对象”(要监视的性能区域)下拉框中选择“MSSQL$SQL2008:Databases”选项,在“计数器”(要监视的区域的属性)下拉框中选择“LogFile(s)UsedSize(KB)”选项,在“实例”(要监视的属性的特定实例)下拉框中选择“PXSCJ”,在“计数器满足以下条件时触发警报”选项的第一个下拉框中选择“高于”选项,在“值”文本框中输入5000,如图10.11所示。10.3.4 警报警报3WMI警报警报WindowsManagementInstrumentation(Windows管理规范)是一项核心的Wind

20、ows管理技术,用户可以使用WMI管理本地和远程计算机。WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源,比如用户可以在远程计算机上启动一个进程,设定一个在特定日期和时间运行的进程,远程启动计算机,获得本地或远程计算机的已安装程序列表,查询本地或远程计算机的Windows事件日志,等等。10.3.5 数据库邮件数据库邮件在SQLServer2008中使用数据库邮件配置向导配置数据库邮件的具体步骤如下。第1步:启动SQLServerManagementStudio,以系统管理员身份连接SQLServer。在“对象资源管理器”窗口中展开“管理”节点,右击“数

21、据库邮件”,选择“配置数据库邮件”选项,弹出“配置数据库邮件向导”窗口。第2步:单击“下一步”按钮进入“选择配置任务”窗口,如图10.12所示。10.3.5 数据库邮件数据库邮件第3步:进入“新建配置文件”窗口,在“配置文件名”文本框中输入要配置的文件名,如“DatabaseMail”,在“说明”文本框中可以输入对该配置文件的说明,如图10.13所示。10.3.5 数据库邮件数据库邮件第4步:单击“新建配置文件”窗口的“添加”按钮,弹出“新建数据库邮件账户”窗口,在“账户名”文本框中输入一个账户名;在“电子邮件地址”文本框输入用于发送电子邮件的Email地址,如“”;“显示名称”和“答复电子邮

22、件”文本框可以指定显示名称和答复邮件的地址;“服务器名称”文本框中指定邮箱服务器地址,如“”,端口号默认为25;在“SMTP身份验证”栏,可以选择“基本身份验证”选项,在“用户名”和“密码”栏指定邮箱账户和密码,当然也可以根据需要选择其他选项。填写结果如图10.14所示。10.3.5 数据库邮件数据库邮件10.3.5 数据库邮件数据库邮件第5步:单击“确定”按钮返回“新建配置文件”窗口,单击“下一步”按钮进入“管理配置文件安全性”窗口,在“公共配置文件”选项卡中,选中刚新建的配置文件的“公共”复选框,将“默认配置文件”选项设为“是”,如图10.15所示。10.3.5 数据库邮件数据库邮件数据库

23、邮件配置完成后创建了一个名为DatabaseMail的配置文件,可以在SQLServer代理中使用该配置文件来发送电子邮件给操作员,具体步骤如下。第1步:在“对象资源管理器”窗口中右击“SQLServer代理”,选择“属性”菜单项。在“常规”选项卡中,在“Netsend收件人”文本框中指定NetSend收件人,一般为主机名或IP地址,如0BD7E57C949A420。第2步:在“警报系统”选项卡,启用“启用邮件配置文件”。在“邮件系统”下拉框中选择“数据库邮件”选项,在“邮件配置文件”下拉框中选择刚创建的“DatabaseMail”选项,如图10.16所示。第3步:单击“确定”按钮完成设置,重

24、启SQLServer代理服务。10.3.5 数据库邮件数据库邮件10.4 SQL Server 2008服务服务通过选择不同的数据库服务,可以完成不同的数据库操作。SQLServer2008中各个服务的体系结构如图10.17所示。10.4.1 集成服务集成服务SQLServer2008中集成服务的具体用途主要体现在以下几个方面。(1)整理和标准化数据。集成服务包含了一些内置转换,可将其添加到包中以达到清理数据和将数据标准化、更改数据的大小写、将数据转换成不同类型或格式,或者根据表达式创建新列值等目的。(2)为数据仓库提供数据。集成服务作为ETL在SQLServer中的实现渠道,是为数据仓库提供

25、数据的主要来源,集成服务包含了一个可直接将数据从平面文件大容量加载到SQLServer表和视图中的任务,还包含了一个目标组件,该组件可以在数据转换过程的最后一步将数据大容量加载到SQLServer数据库中。(3)实现数据的跨平台存储。数据通常存储在很多不同的数据存储系统中。(4)在数据转换过程中实现商业智能。集成服务提供了用于将商业智能置入SSIS包的容器、任务和转换的功能。10.4.2 报表服务报表服务通过报表服务可以可视化地完成报表设计过程的交互工作,并且在Web上完成绝大多数的报表管理工作,还可以在运行时对报表的内容进行筛选。SQLServerReportingServices的服务体系

26、结构如图10.18所示。10.4.2 报表服务报表服务SQLServer报表服务支持完整的报表生命周期,包括:(1)报表制作。通过使用Microsoft或其他使用报表定义语言(RDL)的设计工具,报表开发人员可制作发布在报表服务之上的报表。(2)报表管理。报表定义、文件夹和资源被作为一项Web服务来发表和管理。(3)报表提交。报表服务支持随机请求的方式提交,以及基于时间表或事件的方式提交。用户可基于WEB格式或者通过电子邮件阅读报表。(4)报表安全。SQLServer报表服务实施一种灵活的基于角色的安全模式,从而保护了报表与数据源。10.4.3 分析服务分析服务分析服务(SQLServerAnalysisServices,简称SSAS)为商业智能应用程序提供联机分析处理(OnLineAnalyticalProcess,OLAP)和数据挖掘功能。分析服务用于实现商业智能应用和数据挖掘功能,所以要了解分析服务就必须对多维数据、数据挖掘的基本知识有一个初步的了解。多维数据(MutiDimensionalData,MDD)是数据挖掘和商业智能应用的基础概念。传统的关系数据库中存储数据的形式都是二维数据表格,不适合表示复杂的数据关系。而多维数据可以简单地理解为,将数据存放在一个n维的数组中,从而实现复杂的数据关系。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号