




已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章事务 锁定 自动化和服务 10 1事务 10 2锁定 10 3SQLServer2008自动化管理 10 4SQLServer2008服务 10 1事务 10 1 1事务与ACID属性在形式上 事务是由ACID属性标识的 术语 ACID 是一个简称 每个事务的处理必须满足ACID原则 即 1 原子性 原子性意味着每个事务都必须被认为是一个不可分割的单元 2 一致性 不管事务是完全成功完成还是中途失败 当事务使系统中的所有数据处于一致的状态时存在一致性 3 隔离性 隔离性是指 每个事务在它自己的空间发生 和其他发生在系统中的事务隔离 而且事务的结果只有在它完全被执行时才能看到 4 持久性 持久性意味着 一旦事务执行成功 在系统中产生的所有变化将是永久的 10 1 2多用户使用的问题 丢失更新 lostupdate 指 当两个或多个事务选择同一行 然后基于最初选定的值更新该行时 由于每个事务都不知道其他事务的存在 因此最后的更新将重写由其他事务所做的更新 这将导致数据丢失 脏读 dirtyread 指 一个事务正在访问数据 而其他事务正在更新该数据 但尚未提交 此时就会发生脏读问题 即第一个事务所读取的数据是 脏 不正确 数据 它可能会引起错误 当一个事务多次访问同一行而且每次读取不同的数据时 会发生不可重复读 unrepeatableread 问题 当一个事务对某行执行插入或删除操作 而该行属于某个事务正在读取的行的范围时 会发生幻读 phantomread 问题 10 1 3事务处理 1 开始事务在SQLServer中 显式地开始一个事务可以使用BEGINTRANSACTION语句 语法格式 BEGIN TRAN TRANSACTION transaction name tran name variable WITHMARK dEscription 10 1 3事务处理 2 结束事务COMMITTRANSCATION语句是提交语句 它将事务开始以来所执行的所有数据都修改成为数据库的永久部分 也标志一个事务的结束 其语法格式为COMMIT TRAN TRANSACTION transaction name tran name variable 标志一个事务的结束也可以使用COMMITWORK语句 语法格式为COMMIT WORK 10 1 3事务处理 3 撤销事务若要结束一个事务 可以使用ROLLBACKTRANSACTION语句 它使得事务回滚到起点 撤销自最近一条BEGINTRANSACTION语句以后对数据库的所有更改 同时也标志了一个事务的结束 语法格式 ROLLBACK TRAN TRANSACTION transaction name tran name variable 另外 一条ROLLBACKWORK语句也能撤销一个事务 功能与ROLLBACKTRANSACTION语句一样 但ROLLBACKTRANSACTION语句接受用户定义的事务名称 语法格式 ROLLBACK WORK 10 1 3事务处理 4 回滚事务ROLLBACKTRANSACTION语句除了能够撤销整个事务 还可以使事务回滚到某个点 不过在这之前需要使用SAVETRANSACTION语句来设置一个保存点 SAVETRANSACTION的语法格式 SAVE TRAN TRANSACTION savepoint name savepoint variable SAVETRANSACTION语句会向已命名的保存点回滚一个事务 如果在保存点被设置后 当前事务对数据进行了更改 则这些更改会在回滚中被撤销 语法格式为ROLLBACK TRAN TRANSACTION savepoint name savepoint variable 10 1 3事务处理 例10 1 定义一个事务 向PXSCJ数据库的XSB表添加一行数据 然后删除该行数据 但执行后 新插入的数据行并没有删除 因为事务中使用了ROLLBACK语句将操作回滚到保存点My sav 即删除前的状态 BEGINTRANSACTIONMy tranUSEPXSCJINSERTINTOXSBVALUES 081115 胡新华 1 1991 06 27 计算机 50 NULL SAVETRANSACTIONMy savDELETEFROMXSBWHERE学号 081115 ROLLBACKTRANMy savCOMMITWORKGO 10 1 3事务处理 执行完上述语句后使用SELECT语句查询XSB表中的记录 SELECT FROMXSBWHERE学号 081115 执行结果如下 10 1 4事务隔离级 在SQLServer2008中 可以使用SETTRANSACTIONISOLATIONLEVEL语句来设置事务的隔离级别 语法格式 SETTRANSACTIONISOLATIONLEVEL READUNCOMMITTED READCOMMITTED REPEATABLEREAD SNAPSHOT SERIALIZABLE 10 2锁定 10 2 1锁定粒度在SQLServer中 可被锁定的资源从小到大分别是行 页 扩展盘区 表和数据库 被锁定的资源单位称为锁定粒度 可见 上述5种资源单位其锁定粒度是由小到大排列的 10 2 2锁定模式 SQLServer使用不同的锁模式锁定资源 这些锁模式确定了并发事务访问资源的方式 共有6种锁模式 分别是 1 排他锁 排他锁可以防止并发事务对资源进行访问 2 共享锁 共享锁允许并发事务读取一个资源 3 更新锁 更新锁可以防止通常形式的死锁 4 意向锁 意向锁表示SQLServer需要在层次结构中的某些底层资源 如表中的页或行 上获取共享锁或排他锁 例如 放置在表级的共享意向锁表示事务打算在表中的页或行上放置共享锁 5 键范围锁 键范围锁用于序列化的事务隔离级别 可以保护由T SQL语句读取的记录集合中隐含的行范围 6 架构锁 执行表的数据定义语言操作 如增加列或删除表 时使用架构修改锁 7 大容量更新锁 当将数据大容量复制到表 且指定了TABLOCK提示或者使用sp tableoption设置了tablelockonbulk表选项时 将使用大容量更新锁 10 3SQLServer2008自动化管理 10 3 1SQLServer代理如果需要验证账户是否已经设置了所需的Windows权限 可以通过以下步骤进行 1 单击 开始 菜单 选择 程序 管理工具 本地安全策略 2 在弹出的 本地安全设置 窗口中 选择 本地策略 用户权利指派 3 在右侧的权限列表中右击一个权限选项 如 作为服务器登录 选择 属性 菜单项 如图10 1所示 在打开的 属性 窗口中 从列表中查看要设置的SQLServer代理的账户是否存在 如图10 2所示 10 3 1SQLServer代理 4 如果账户不在列表中 单击 添加用户或组 按钮 在打开的 选择用户或组 对话框中添加SQLServer代理服务账户 再单击 确定 按钮返回 5 重复上述操作 对权限列表中的其他选项进行相同的设置 10 3 2操作员 每一个操作员都必须具有一个唯一的名称 操作员的联系信息决定了通知操作员的方式 通知方式有以下3种 1 电子邮件通知 电子邮件通知是向操作员发送电子邮件 2 寻呼通知 寻呼是通过电子邮件实现的 3 netsend通知 此方式通过netsend命令向操作员发送消息 10 3 2操作员 创建操作员的步骤如下 第1步 使用系统管理员身份连接SQLServer 启动SQLServerManagementStudio 查看SQLServer代理服务是否运行 如果未运行 则右击 SQLServer代理 选择 启动 菜单项启动SQLServer代理服务 第2步 进入 新建操作员 窗口 在 姓名 文本框中输入操作员名称 如tao 在 电子邮件名称 文本框中输入通知操作员的电子邮件 如tao 第3步 在 寻呼值班计划 栏中 可以选择操作员接收通知的时间 例如 选择 星期一 复选框 并设置 工作日开始时间 和 工作日结束时间 如图10 3所示 则操作员将在每个星期一的这个时间段接到通知 10 3 2操作员 10 3 3作业 创建作业的操作步骤如下 第1步 启动SQLServerManagementStudio 在 对象资源管理器 窗口中展开 SQLServer代理 右击 作业 选择 新建作业 菜单项 打开 新建作业 窗口 第2步 选择 常规 选项卡 在 名称 文本框中输入要定义的作业名称 如 创建并备份数据库 所有者 使用默认值 在 类别 下拉框中选择当前作业的类别 如 数据库维护 如图10 4所示 默认是 未分类 本地 说明 框中可以输入对作业的描述信息 10 3 3作业 10 3 3作业 第3步 选择 步骤 选项卡 在右侧单击 新建 按钮 弹出 新建作业步骤 窗口 在窗口中的 步骤名称 文本框中定义一个作业步骤的名称 如 新建数据库 在 类型 下拉框中选择作业步骤的类型 这里选择 Transact SQL脚本 T SQL 如果作业步骤是对数据库直接操作 则可以在 数据库 下拉框中选择目标数据库 这里使用默认值 在 命令 文本框中输入创建新数据库的T SQL语句 如图10 5所示 10 3 3作业 10 3 3作业 第4步 在 新建作业步骤 窗口中可以单击 分析 按钮分析SQL命令的正确性 如果语句正确则选择 高级 选项卡 可以设置 成功时要执行的操作 和 失败时要执行的操作 这里使用默认值 单击 确定 按钮返回 第5步 返回 新建作业 窗口后 窗口中的 作业步骤列表 中将显示刚刚新建的作业步骤 这时可以再单击 新建 按钮 添加备份数据库的作业步骤 过程略 新建后的作业步骤如图10 6所示 10 3 3作业 10 3 3作业 第6步 选择 计划 选项卡 单击 新建 按钮 弹出 新建作业计划 窗口 如图10 7所示 10 3 3作业 第7步 选择 通知 选项卡 选择作业完成时要执行的操作 例如 可以选择 电子邮件 复选框 在后面的第一个下拉框中选择要通知的操作员 如tao 在第二个下拉框中选择通知操作员的时机 如果选择了 当作业完成时 选项则包括 当作业成功时 和 当作业失败时 如图10 8所示 10 3 4警报 可以使用下列参数来指定触发警报的SQLServer事件 1 错误号 SQLServer代理在发生特定错误时发出警报 2 严重级别 SQLServer代理在发生特定级别的严重错误时发出警报 表10 1中列出了常见的错误严重级别及说明 10 3 4警报 3 数据库 SQLServer代理仅在特定数据库中发生事件时才发出警报 4 事件文本 SQLServer代理在指定事件的事件消息中包含特定文本字符串时发出警报 创建事件警报的具体步骤如下 第1步 启动SQLServerManagementStudio 以Windows系统管理员身份连接SQLServer2008 在 对象资源管理器 窗口中 展开 SQLServer代理 右击 警报 选择 新建警报 菜单项 打开 新建警报 窗口 第2步 在 新建警报 窗口的 常规 选项卡的 名称 文本框中输入要定义的警报名称 如 警报 PXSCJ 如果要禁用该警报 则将 启用 复选框中的勾去掉 这里保持默认值 在 类型 下拉框中选择警报的类型为 SQLServer事件警报 在 数据库名称 下拉框中选择警报作用于的数据库 这里选择 PXSCJ 启用 错误号 单选按钮可以指定触发警报的错误号 如208 如图10 9所示 10 3 4警报 10 3 4警报 第3步 选择 响应 选项卡 启用 通知操作员 复选框 在操作员列表中选择警报激活后要通知的操作员 如tao 在其之后的复选框中选择通知方式 如图10 10所示 10 3 4警报 2 性能警报创建性能警报的具体步骤如下 第1步 打开 新建警报 窗口 步骤略 在 常规 选项卡的 名称 文本框输入警报名称 如 性能警报 tempdb 在 类型 下拉框中选择 SQLServer性能条件警报 选项 之后窗口中会出现性能条件警报要定义的选项 第2步 在 对象 要监视的性能区域 下拉框中选择 MSSQL SQL2008 Databases 选项 在 计数器 要监视的区域的属性 下拉框中选择 LogFile s UsedSize KB 选项 在 实例 要监视的属性的特定实例 下拉框中选择 PXSCJ 在 计数器满足以下条件时触发警报 选项的第一个下拉框中选择 高于 选项 在 值 文本框中输入5000 如图10 11所示 10 3 4警报 3 WMI警报WindowsManagementInstrumentation Windows管理规范 是一项核心的Windows管理技术 用户可以使用WMI管理本地和远程计算机 WMI是一种规范和基础结构 通过它可以访问 配置 管理和监视几乎所有的Windows资源 比如用户可以在远程计算机上启动一个进程 设定一个在特定日期和时间运行的进程 远程启动计算机 获得本地或远程计算机的已安装程序列表 查询本地或远程计算机的Windows事件日志 等等 10 3 5数据库邮件 在SQLServer2008中使用数据库邮件配置向导配置数据库邮件的具体步骤如下 第1步 启动SQLServerManagementStudio 以系统管理员身份连接SQLServer 在 对象资源管理器 窗口中展开 管理 节点 右击 数据库邮件 选择 配置数据库邮件 选项 弹出 配置数据库邮件向导 窗口 第2步 单击 下一步 按钮进入 选择配置任务 窗口 如图10 12所示 10 3 5数据库邮件 第3步 进入 新建配置文件 窗口 在 配置文件名 文本框中输入要配置的文件名 如 DatabaseMail 在 说明 文本框中可以输入对该配置文件的说明 如图10 13所示 10 3 5数据库邮件 第4步 单击 新建配置文件 窗口的 添加 按钮 弹出 新建数据库邮件账户 窗口 在 账户名 文本框中输入一个账户名 在 电子邮件地址 文本框输入用于发送电子邮件的Email地址 如 david 显示名称 和 答复电子邮件 文本框可以指定显示名称和答复邮件的地址 服务器名称 文本框中指定邮箱服务器地址 如 端口号默认为25 在 SMTP身份验证 栏 可以选择 基本身份验证 选项 在 用户名 和 密码 栏指定邮箱账户和密码 当然也可以根据需要选择其他选项 填写结果如图10 14所示 10 3 5数据库邮件 10 3 5数据库邮件 第5步 单击 确定 按钮返回 新建配置文件 窗口 单击 下一步 按钮进入 管理配置文件安全性 窗口 在 公共配置文件 选项卡中 选中刚新建的配置文件的 公共 复选框 将 默认配置文件 选项设为 是 如图10 15所示 10 3 5数据库邮件 数据库邮件配置完成后创建了一个名为DatabaseMail的配置文件 可以在SQLServer代理中使用该配置文件来发送电子邮件给操作员 具体步骤如下 第1步 在 对象资源管理器 窗口中右击 SQLServer代理 选择 属性 菜单项 在 常规 选项卡中 在 Netsend收件人 文本框中指定NetSend收件人 一般为主机名或IP地址 如0BD7E57C949A420 第2步 在 警报系统 选项卡 启用 启用邮件配置文件 在 邮件系统 下拉框中选择 数据库邮件 选项 在 邮件配置文件 下拉框中选择刚创建的 DatabaseMail 选项 如图10 16所示 第3步 单击 确定 按钮完成设置 重启SQLServer代理服务 10 3 5数据库邮件 10 4SQLServer2008服务 通过选择不同的数据库服务 可以完成不同的数据库操作 SQLServer2008中各个服务的体系结构如图10 17所示 10 4 1集成服务 SQLServer2008中集成服务的具体用途主要体现在以下几个方面 1 整理和标准化数据 集成服务包含了一些内置转换 可将其添加到包中以达到清理数据和将数据标准化 更改数据的大小写 将数据转换成不同类型或格式 或者根据表达式创建新列值等目的 2 为数据仓库提供数据 集成服务作为ETL在SQLServer中的实现渠道 是为数据仓库提供数据的主要来源 集成服务包含了一个可直接将数据从平面文件大容量加载到SQLServer表和视图中的任务 还包含了一个目标组件 该组件可以在数据转换过程的最后一步将
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年城市网络安全设备采购合同
- 2025广东惠州市博罗县工交实业投资有限公司管理岗位遴选2人模拟试卷及答案详解(夺冠系列)
- 2025年新乡延津县选调县外在编在岗教师回乡任教的考前自测高频考点模拟试题及答案详解(名校卷)
- 苏州人文考试题库及答案
- 化妆师升职考试题库及答案
- 监控设备安装合同协议书范本7篇
- 河北历史学考试试题及答案
- 2025年新疆甜菜种植与种植户种植补贴合同
- 2025年贵州省安顺市辅警人员招聘考试题库及答案
- 工业司炉实操考试试题及答案
- GB/T 3131-2001锡铅钎料
- 幼儿园一日生活指南汇总
- GB/T 25775-2010焊接材料供货技术条件产品类型、尺寸、公差和标志
- GB/T 14454.2-2008香料香气评定法
- 阿甘正传全部台词中英对照
- 《干部履历表》(1999版电子版)
- ISO 9001:2015新版质量管理体系详解与案例文件汇编
- 人教版八年级下册英语全册教案完整版教学设计含教学反思
- 航天电子电气产品手工焊接工艺设计技术要求
- 跨文化交际全套课件
- 《剧本与动画分镜头 》课件分镜头
评论
0/150
提交评论