NCPERF使用说明_第1页
NCPERF使用说明_第2页
NCPERF使用说明_第3页
NCPERF使用说明_第4页
NCPERF使用说明_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

NCPERF 使用说明使用说明 1 安装说明安装说明 1 2 设置数据库默认优化参数设置数据库默认优化参数 3 3 更新统计信息更新统计信息 8 4 清理垃圾数据清理垃圾数据 12 5 重建表和索引重建表和索引 15 6 授予用户授予用户 NC 最小使用权限最小使用权限 16 7 数据增长情况分析数据增长情况分析 17 8 系统指标增量分析系统指标增量分析 18 9 锁阻塞链分析锁阻塞链分析 24 10 卸载表数据卸载表数据 25 11 NC60 索引检查索引检查 30 12 附录一 获取附录一 获取 NCPERF 版本信息版本信息 32 1 安装说明安装说明 1 在 SQLPLUS 环境下执行 install sql 注意 用哪个用户登录 则 ncperf 安装成功后 可以在与该用户同名的模式下找到该包定 义和包体 2 输入登录用户所属的 sys 密码 例如 sys 3 输入数据库所在服务器的 ip 地址 注意 这里要输入的 ip 地址是数据库服务器的 ip 地址 如果在本地数据库服务器上安装 则可以直接写 127 0 0 1 4 输入数据库实例名 注意 如果 3 中填写错的数据库监听的 ip 地址 这里输入实例名回车后 会报错 如 5 输入安装 ncperf 包的用户名 即登录的用户名 这里登录用户名是 test 6 输入安装 NCPERF 包的用户密码 即登录用户的密码 这里用户名 test 的密码为 test 7 结束安装 下面是安装成功的最后几行显示 如果您安装结束后除了数据库版本不一致外 其他都应该跟上面截图一样 否则请联系开发 者解决 8 验证是否安装成功 由上面 1 说明 如果成功安装 会在与安装用户名同名的模式下找到该包定义和包体 如下 面截图是以 test 用户登录 PL SQL Developer 后查看结果 如果包定义或包体上有红色标记 也说明没有成功安装 请联系开发者解决 2 设置数据库设置数据库默认默认优化参数优化参数 2 1 介绍介绍 新客户往往需要对 Oracle 数据库设置初始参数 这一工作对于很多顾问有相当难度 我们将其纳入到预制方法中 只需要执行一下存储过程就可以快速完成 2 2 使用场景使用场景 当新项目需要部署 Oracle 数据库初始参数或者部署 NC 试验环境时 通过本方法可以 快速为 Oracle 环境设置正确的初始参数 省却了查找部署文档及学习如何设置 Oracle 初始 参数等繁琐的技术细节 2 3 主要方法主要方法 2 3 1 初始参数优化检查初始参数优化检查 方法说明 实现方式实现方式 名称名称 说明说明 function tcheck 配置值检查 对初始参数给出建议值 仅 给出建议 不执行优化 8GB 包括 8GB 以下的预配置参数都已经 记录在表 NCPERF PARAMETER 中 8GB 以 上的内存配置按照如下比例执行 1 sga pga osmem 85 如果 pga 最大值 为 6GB 超出部分给 sga 2 share pool sga 15 3 v others代 表sga中 不 包 括 share pool 和 db cache 的其它内存 v others v sga max size 15 最大值 2GB 4 db cache sga share pool v others 这里只是给出一个通用的建议值 有经验 的配置者可以根据项目的使用情况自行 调节 SGA 和 PGA 等参数 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v memmb integer 否 0 内存量 单位 MB 如果使用默认值将认为数据库服务器所有 物理内存都可以被本 Oracle 实例使用 分 配标准将根据数据库服务器所有物理内 存 如果不希望将服务器所有内存都用于 Oracle 可以输入希望分配给 Oracle 使用 的内存量 注意 单位是 MB 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 mem gb integer ncperf 内部使用 name varchar2 参数名 currentvalue varchar2 当前数据库设置的参数值 tuningvalue varchar2 ncperf 建议设置的参数值 setsql varchar2 设置参数值的 SQL 语句 如果不想接受 ncperf 对所有参数的 建议值 可以挑选自己需要的配置 SQL 单独执行 注意事项 该方法仅给出检查后的建议设置 并不会改变当前数据库设置 如果想将建议设置应用 到当前数据库中 需要使用 ncperf texe 32位Oracle最多能识别4G内存 即使数据库服务器内存远大于4G 如果为32位Oracle 的 SGA 分配超过 4G 依然会报 ORA 27102 out of memory 内存溢出错误 因此 该 方法限制 对 32 位 Oracle 输入参数最大为 3000 3000MB 否则将报 安装的数据库 版本是 32 位 最多只能分配 3000M 内存 请确认后重新输入 的错误 64 位 Oracle 最多能识别 128G 内存 请根输入希望分配给 Oracle 的内存值作为输入参数 2 3 1 1 实例实例 例 1 为一台物理内存 4GB 的 Oracle 数据库服务器检查初始参数设置 select from table ncperf tcheck 4000 例 2 一台物理内存 100GB 的服务器 希望分出 32GB 用于 Oracle select from table ncperf tcheck 32000 2 3 2 初始参数优化检查 初始参数优化检查 忽略操作系统配置忽略操作系统配置 方法说明 实现方式实现方式 名称名称 说明说明 function tcheck ignore os 配置值检查 对初始参数给出建议值 仅 给出建议 不执行优化 8GB 包括 8GB 以下的预配置参数都已经 记录在表 NCPERF PARAMETER 中 8GB 以 上的内存配置按照如下比例执行 1 sga pga osmem 85 如果 pga 最大值 为 6GB 超出部分给 sga 2 share pool sga 15 3 v others代 表sga中 不 包 括 share pool 和 db cache 的其它内存 v others v sga max size 15 最大值 2GB 4 db cache sga share pool v others 这里只是给出一个通用的建议值 有经验 的配置者可以根据项目的使用情况自行 调节 SGA 和 PGA 等参数 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v memmb integer 否 0 内存量 单位 MB 如果使用默认值将认为数据库服务器所有 物理内存都可以被本 Oracle 实例使用 分 配标准将根据数据库服务器所有物理内 存 如果不希望将服务器所有内存都用于 Oracle 可以输入希望分配给 Oracle 使用 的内存量 注意 单位是 MB 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 mem gb integer ncperf 内部使用 name varchar2 参数名 currentvalue varchar2 当前数据库设置的参数值 tuningvalue varchar2 ncperf 建议设置的参数值 setsql varchar2 设置参数值的 SQL 语句 如果不想接受 ncperf 对所有参数的 建议值 可以挑选自己需要的配置 SQL 单独执行 注意事项 该方法仅给出检查后的建议设置 并不会改变当前数据库设置 该方法不考虑安装数据库位数 只要输入值不小于 2000 2000MB 即按输入值给出 初始化参数建议 该方法与 2 3 1 介绍的 tcheck 方法的不同之处在于 1 tcheck 方法会判断操作系统内存信息 如果输入参数超过值该内存值 则报错返回 2 tcheck ignore os 方法不会判断操作系统内存信息 输入参数值为多少 即按该值生 成初始化参数建议配置 3 以上两个方法 同样限制输入参数值不能小于 2000 即为 2000MB 否则均会报 错返回 2 3 2 1 实例实例 例 1 在一台物理内存为 6G 的数据库服务器上检测 8G 内存的建议配置 select from table ncperf tcheck ignore os 8000 2 3 3 执行参数优化建议执行参数优化建议 方法说明 实现方式实现方式 名称名称 说明说明 procedure texe 将数据库优化建议在当前数据库中执行 参数检查使 用 ncperf tcheck 数据库初始参数设置规则同 ncperf tcheck 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v memmb integer 否 0 内存量 单位 MB 如果使用默认值将认为数据库服务器所有 物理内存都可以被本 Oracle 实例使用 分 配标准将根据数据库服务器所有物理内 存 如果不希望将服务器所有内存都用于 Oracle 可以输入希望分配给 Oracle 使用 的内存量 注意 单位是 MB 输出参数 无 注意事项 执行 ncperf texe 前请备份 spfile 例如 create pfile from spfile 需要 sysdba 权限 执行完 ncperf texe 重启数据库服务后参数设置才能生效 运行日志存放在 ncperf log 中 type tuningexecute 32位Oracle最多能识别4G内存 即使数据库服务器内存远大于4G 如果为32位Oracle 的 SGA 分配超过 4G 依然会报 ORA 27102 out of memory 内存溢出错误 为此 该 方法限制对 32 位 Oracle 输入参数最大为 3000 3000MB 否则将报 安装的数据库版 本是 32 位 最多只能分配 3000M 内存 请确认后重新输入 错误 64 位 Oracle 最多能识别 128G 内存 请输入希望分配给 Oracle 的内存值作为输入参数 特别特别提醒提醒 该存储过程运行期间会对输入内存值做一些判断 例如 是否大于操作系统 内存 是否满足最小设置内存 2000M 32 位操作系统最多设置 2G 等等的异常处理 过程会将可能出现的异常信息通过 raise application error 输出 用下面两种 不同工具执行的时候 异常信息通过不同方式输出 1 如果用 sqlplus 执行 请确保打开 set serveroutput on 选项 2 如果用 pl sql developer 执行 请确保执行完修改后查看下下面示例部分的 output 选项是否有报错信息 这也是有同事反馈 执行没有报错 为什么参数却没有修改的原因之一 按这种方法试 试 如果确实没有报错 还是没有修改参数 需要联系解决下 2 3 3 1 实例实例 例 1 为一台物理内存 4GB 的 Oracle 数据库服务器执行初始参数设置 begin ncperf texe 4000 end 3 更新更新统计信息统计信息 3 1 介绍介绍 如果更新统计信息不及时很容易使 SQL 执行计划走错 我们在 NCPERF 中提供了更易 操作的更新统计信息的方法 可以将待分析的表自由分组 分别对组进行分析 3 2 使用场景使用场景 系统上线后应该由实施顾问根据业务表记录的变动情况分门别类的进行总结 例如 将基础数据很少变化的表归纳到基础表模块中一个月收集一次统计信息 供应链 业务表归纳到供应链模块一周收集一次 财务业务表归纳到财务模块每天收集一次等 3 3 主要方法主要方法 3 3 1 根据组粒度更新统计信息根据组粒度更新统计信息 方法说明 实现方式实现方式 名称名称 说明说明 procedure analyzegroup 更新指定组或全部组中表的统计信息 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v groupname varchar2 否 all 组名 更新指定组中表的统计信息 如果不输入 组名将对 ncperf analyzetbgroup 中所 有组的表更新统计信息 v degree integer 否 1 执行更新统计信息使用的并行度 v degree 1 时将使用数据库服务器中一 半的 cpu core 执行更新统计信息操作 输出参数 无 注意事项 需要预先将待更新的组名 表名信息插入 ncperf analyzetbgroup 中 该表数据需要使 用者维护 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type analyzegroup 3 3 1 1 实例实例 例 1 创建组名为 PO 的分组信息 insert into ncperf analyzetbgroup groupname tablename select PO as groupname table name as tablename from user tables where table name like PO 例 2 更新组名为 PO 中所有表的统计信息 begin ncperf analyzegroup v groupname PO end 例 3 更新所有组的表的统计信息 begin ncperf analyzegroup end 例 4 在 job 中调度 每天 23 点执行更新 PO 中所有表的统计信息 declare job1 integer v sql varchar2 4000 begin v sql ncperf analyzegroup v groupname PO dbms output put line v sql dbms job submit job job1 what v sql next date to date 2011 11 10 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 3 3 2 根据表粒度更新统计信息根据表粒度更新统计信息 方法说明 实现方式实现方式 名称名称 说明说明 procedure analyzetable 更新指定表或当前用户下所有表的统计 信息 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v tablename varchar2 否 all 表名 更新指定表的统计信息 如果不输入表名 将对当前用户下所有表更新统计信息 v degree integer 否 1 执行更新统计信息使用的并行度 v degree 1 时将使用数据库服务器中一 半的 cpu core 执行更新统计信息操作 输出参数 无 注意事项 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type analyzetable 如果执行更新所有表的统计信息后 将会执行存储过程 top50 收集记录数前 50 的表 信息 3 3 2 1 实例实例 例 1 更新表 PO ORDER 的统计信息 begin ncperf analyzetable v tablename PO ORDER end 例 2 更新当前用户下所有表的统计信息 begin ncperf analyzetable end 例 3 在 job 中调度 每天 23 点执行更新当前用户所有表的统计信息 declare job1 integer v sql varchar2 4000 begin v sql ncperf analyzetable dbms job submit job job1 what v sql next date to date 2011 11 10 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 3 3 3 根据根据 schema 粒度更新统计信息粒度更新统计信息 方法说明 实现方式实现方式 名称名称 说明说明 procedure analyzeschema 更新指定 schema 下所有表的统计信息 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v schemaname varchar2 否 all schema 名 更新指定 schema 的统计信息 如果不输 入将更新当前 schema 的统计信息 v degree integer 否 1 执行更新统计信息使用的并行度 v degree 1 时将使用数据库服务器中 一半的 cpu core 执行更新统计信息操 作 输出参数 无 注意事项 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type analyzeschema 3 3 3 1 实例实例 例 1 更新 schema NC60 1131 的统计信息 begin ncperf analyzeschema v schemaname NC60 1131 end 例 2 更新当前 schema 的统计信息 begin ncperf analyzeschema end 例 3 在 job 中调度 每天 23 点执行更新当前 schema 的统计信息 declare job1 integer v sql varchar2 4000 begin v sql ncperf analyzeschema dbms job submit job job1 what v sql next date to date 2011 11 10 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 4 清理垃圾数据清理垃圾数据 4 1 介绍介绍 NC 运行过程中会产生大量的垃圾数据 出于性能考虑需要定期对这些数据进行清理 垃圾数据分两种 一种是调度执行的历史记录或一次性使用的临时表 另一种是各个业务表 中 dr 1 的逻辑删除数据 4 2 使用场景使用场景 NC 系统运行期间会产生一些临时数据 这些临时数据在使用后有些不会被自动清理 成为数据库中的垃圾数据 当系统上线后 这些垃圾数据会随着时间的增长不断增加 积攒 到一定程度会对系统性能造成影响 因此实施人员应该在系统上线后定期调度执行清理垃圾 数据的方法 ncperf gc 和 ncperf gcbydr 避免数据库中垃圾数据不断增加 4 3 主要方法主要方法 4 3 1 删除调度记录和临时表删除调度记录和临时表 方法说明 实现方式实现方式 名称名称 说明说明 procedure gc 删除调度记录和临时表 1 删除 pub async 超过 7 天的数据 2 删除 pub async result 中超过 30 天的数据 3 删除建立时间超过 3 天的临时表 输入参数 无 输出参数 无 注意事项 在系统空闲时执行 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type gc 4 3 1 1 实例实例 例 1 执行清理调度信息和临时表的操作 begin ncperf gc end 例 2 在 job 中调度 每天 23 点清理调度信息和临时表的操作 declare job1 integer v sql varchar2 4000 begin v sql ncperf gc dbms job submit job job1 what v sql next date to date 2011 11 11 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 4 3 2 删除业务表中删除业务表中 dr 1 的数据的数据 方法说明 实现方式实现方式 名称名称 说明说明 procedure gcbydr 删除业务表中 dr 1 的数据 逻辑删除的数据 输入参数 无 输出参数 无 注意事项 执行时间会较长 应该在系统空闲时执行 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type gcbydr 4 3 2 1 实例实例 例 1 清理业务表中 dr 1 的数据 begin ncperf gcbydr end 例 2 在 job 中调度 每天 23 点清理业务表中 dr 1 的数据 declare job1 integer v sql varchar2 4000 begin v sql ncperf gcbydr dbms job submit job job1 what v sql next date to date 2011 11 11 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 5 重建表和索引重建表和索引 5 1 介绍介绍 当业务表记录规模变化非常大时 需要进行表和索引的重建 重建可以有效消除高水位 线和行迁移带来的性能影响 5 2 使用场景使用场景 例如一些业务表进行数据转储后 记录数发生非常大的变动 表的水位线处于较高的位 置 这个时候重建该表 可以有效降低表的高水位线 避免高水位线和行迁移带来的性能影 响 5 3 主要方法主要方法 5 3 1 重建表及其索引重建表及其索引 方法说明 实现方式实现方式 名称名称 说明说明 procedure rebuildobj 重建表主要使用的方法是 alter table move 重 建 索 引 主 要 使 用 的 方 法 是 alter index rebuild 执行完重建后要对重建的表和索引重新 收集统计信息 建议仅对个别转储表进行重建 切忌作 为日常操作频繁运行 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v tablename varchar2 否 all 表名 需要重建的表名 如果不输入表名将重建 当前用户下的所有表 v islogging boolean 否 true 是否保留表的 log 信息 输出参数 无 注意事项 执行完重建后要对重建的表和索引重新收集统计信息 建议仅对个别转储表进行重建 切忌作为日常操作频繁运行 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type rebuildobj 5 3 1 1 实例实例 例 1 重建表 PO ORDER 及其表上索引 begin ncperf rebuildobj v tablename PO ORDER end 6 授授予用户予用户 NC 最小使用权限最小使用权限 6 1 介绍介绍 一些企业对权限管理较严格 要求为 NC 用户只授予满足其运行的必要权限 该方法将 为 NC 用户提供这一功能 该功能可在安装或升级完 NC 后 对用户授予 NC 最小使用权限 但是该过程不会自动回 收用户已有的 DBA 权限 如果需要回收 请登录 SYS 用户进行回收 6 2 使用场景使用场景 一些军工或信息敏感企业对数据库使用权限要求较高 无法获取如 DBA 等高权限用户 使用本方法可以快速为一个用户授予使用 NC 的最小权限 可以以此用户所拥有的权限作为 运行 NC 系统的最小权限依据 要求企业提供相关数据库权限 6 3 主要方法主要方法 6 3 1 授予最小权限授予最小权限 方法说明 实现方式实现方式 名称名称 说明说明 procedure grantnc 为某个用户授予使用 NC 系统的最小权限 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v username varchar2 是是 无 待授权用户名 输出参数 无 注意事项 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type grantnc 6 3 1 1 实例实例 例 1 为用户 user1 授予使用 NC 需要的最小权限 begin ncperf grantnc v username user1 end 如果授予权限后 想回收用户已有的 DBA 权限 请以 SYS 用户登录数据库并执行下列 SQL 进行权限回收 revoke dba from user1 其中 user1 是授予 NC 需要最小权限的用户 7 数据增长情况分析数据增长情况分析 7 1 介绍介绍 定期收集数据库中表记录的变动情况 有助于掌握日常业务是否正常 并为问题诊断提 供一定的参考作用 7 2 使用场景使用场景 在一些项目中因为程序 bug 或错误的业务规划 会导致一些业务表的数据急剧膨胀 导 致的结果就是某些功能会因为数据量太大运行的越来越慢 当作为问题反馈给研发部门时已 经对客户使用造成了一定的影响 为了及早发现此类问题 在 ncperf 中提供了 top50 这个方法 该方法可以收集记录数排 名前 50 的业务表信息 建议调度执行在收集统计信息之后 以确保数据的准确性 通过该 方法收集的信息 我们很容易获取到业务表的变动情况 如果巡检时发现一些业务表数据增 长规模发生较大的变化 应该分析导致问题的原因 7 3 主要方法主要方法 7 3 1 收集记录数前收集记录数前 50 的表信息的表信息 方法说明 实现实现方式方式 名称名称 说明说明 procedure top50 收集记录数前 50 的表信息 收集的信息会存放在表 ncperf top50 中 输入参数 无 输出参数 无 注意事项 为了保证统计信息的准确 应该在收集完统计信息后运行 该存储过程运行期间信息将通过 dbms output 输出 请注意开启 serveroutput 选项 运行日志存放在 ncperf log 中 type top50 7 3 1 1 实例实例 例 1 执行清理调度信息和临时表的操作 begin ncperf top50 end 例 2 在 job 中调度 每天 23 点清理调度信息和临时表的操作 declare job1 integer v sql varchar2 4000 begin v sql ncperf top50 dbms job submit job job1 what v sql next date to date 2011 11 11 23 00 00 yyyy mm dd hh24 mi ss interval sysdate 1 commit end 8 系统指标增量分析系统指标增量分析 8 1 介绍介绍 实际调优中 经常碰到如下类似的问题 数据库产生了大量的日志 要定位哪个会话贡 献的最大 类似的还包括物理读 打开游标数等等 所以需要一种简洁的方法能对比数据库 会话的统计指标的在某个时间段内的增量 以及引起增量的原因 我们使用如下方式获取性能指标增量变化 在不同时间点创建快照 列出两个指定快照 在该时间间隔内 v sysstat 和 v sesstat 中指标的差异 使用思路类似 Oracle AWR 8 2 使用场景使用场景 当系统某些资源发生严重瓶颈时 必须快速定位是哪些操作占用了该资源 通过指标增 量分析可以快速定位是哪些数据库连接占用资源较多 进而通过 client identifier 可以在 NMC 中定位这些数据库连接正在做哪些操作 8 3 主要方法主要方法 8 3 1 创建快照创建快照 方法说明 实现方式实现方式 名称名称 说明说明 procedure createsnapshot 创建新的快照 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v flag varchar2 否 null 快照标识 如果快照数目较多时 可以根据其快速定 位 默认为 null 输出参数 无 8 3 1 1 实例实例 例 1 创建快照 begin ncperf createsnapshot end 例 2 创建标识为 user1 的快照 begin ncperf createsnapshot user1 end 8 3 2 列出已存在快照列出已存在快照 方法说明 实现方式实现方式 名称名称 说明说明 function listsnapshot 列出已存在的快照 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v flag varchar2 否 null 快照标识 如果不输入将返回所有快照列表 否则将 只显示输入标识的快照列表 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 snapshotid number 快照 ID snaptime date 快照创建时间 instancenumber number 生成快照所属的实例编号 RAC 群集环境中会存在大于 1 的实例 编号 flag varchar2 快照标识 8 3 2 1 实例实例 例 1 列出所有快照 select from table ncperf listsnapshot 例 2 只列出标识为 user1 的快照 select from table ncperf listsnapshot user1 8 3 3 比较快照间指标差异比较快照间指标差异 方法说明 实现方式实现方式 名称名称 说明说明 function getdiff 比较快照间发生的指标变化 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v beginsnapid number 是是 无 开始快照号 v endsnapid number 是是 无 结束快照号 v statistic varchar2 否 all 指标号 对 应 于v sesstat statistic 或 v sysstat statistic 如果不输入 将返 回所有指标 v sid number 否 0 数据库连接号 返回指定数据库连接 号的 v sesstat 信息 v sid 0 时 将返回所 有连接的 v sesstat 信息 v sid 1 时 将 返 回 v sysstat 信息 v username varchar2 否 当前用户 数据库用户名 返回指定用户名的数 据 库 连 接 信 息 当 v sid 1 时 该参数 将失效 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 statistic number 指标号 对应于 v sesstat statistic 或 v sysstat statistic name varchar2 指标名称 diffvalue number 两个快照期间指标的差值 difftime number 两个快照的时间间隔 单位 秒 value div time number diffvalue difftime sid number 数据库连接号 如果返回的是 v sysstat 该值将为 null client identifier varchar2 线程标识 可以根据其在 nmc 中定位当前数据 库连接正在执行的业务动作 如果返回的是 v sysstat 该值将为 null username varchar2 数据库用户名 如果返回的是 v sysstat 该值将为 null killsql varchar2 杀掉当前数据库连接的语句 如果返回的是 v sysstat 该值将为 null 8 3 3 1 实例实例 例 1 列出快照 ID 1 和快照 ID 12 期间 全部数据库连接所有性能指标变化情况 select from table ncperf getdiff 1 12 例 2 列出快照 ID 1 和快照 ID 12 期间 全部数据库连接 session logical reads 指标 变化情况 select from table ncperf getdiff 1 12 where name like session logical reads 例 3 列出快照 ID 1 和快照 ID 12 期间 v sysstat 指标变化情况 ora11g select from table ncperf getdiff v beginsnapid 1 v endsnapid 12 v sid 1 ora10g select from table ncperf getdiff 1 2 all 1 8 3 4 清除过期快照清除过期快照 方法说明 实现方式实现方式 名称名称 说明说明 procedure clearsnapshot 删除过期快照 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v isall boolean 否 false 是否删除全部快照 v isall false 时只删除实例重启之前的 snapshot 信息 v isall true 时清除所有 snapshot 信息 输出参数 无 8 3 4 1 实例实例 例 1 删除实例重启之前的 snapshot 信息 begin ncperf clearsnapshot end 例 2 清除所有 snapshot 信息 begin ncperf clearsnapshot true end 9 锁阻塞链分析锁阻塞链分析 9 1 介绍介绍 高并发环境中经常会出现多个数据库连接发生连锁阻塞最后形成阻塞链的情况 分析这 种阻塞链时需要快速定位阻塞源头 但是使用传统方法逐级分析阻塞关系费时费力 无法迅 速准确的定位阻塞源 本方法提供了快速定位阻塞源的方法 9 2 使用场景使用场景 使用 NMC Oracle v 视图或其它工具发现存在数据库锁阻塞时 可以首先获取被阻塞 业务的 Seesion ID 数据库连接 ID 将 Seesion ID 作为本方法的输入参数将可以获取阻塞 其的完整阻塞链 BlockedBySid 为 NULL 的数据库连接就是本阻塞链的阻塞源头 根据阻 塞源头的 Client Identifier 我们在 NMC 中可以很容易定位阻塞源头正在执行的操作 9 3 主要方法主要方法 9 3 1 列出阻塞链列出阻塞链 方法说明 实现方式实现方式 名称名称 说明说明 function blockerlist 列出数据库连接阻塞链 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v sid Integer 是是 无 被阻塞数据库连接标识 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 client identifier varchar2 被阻塞数据库连接的客户端标识 同 v session 中的 client identifier sid number 被阻塞数据库连接标识 同 v session 中的 sid serial number 被阻塞数据库连接的serial number 同 v session 中的 serial sql id number 被阻塞数据库连接正在执行的SQL语句标识 同 v session 中的 sql id event varchar2 被阻塞数据库连接正在等待的事件 同 v session 中的 event machine varchar2 被阻塞数据库连接的机器名 同 v session 中的 machine blockedbysid number 阻塞者数据库连接标识 同 v session 中的 blocking session 当其为 null 并且 blocklevel 大于 1 时 sid 标 识的数据库连接是本阻塞链的阻塞源头 blocking instance number 阻塞者所在的数据库实例标识 同 v session 中的 blocking instance blocking session status varchar2 阻塞者状态 同 v session 中的 blocking session status blocklevel number 阻塞级次 killsql varchar2 杀掉本数据库连接的语句 输出参数 无 9 3 1 1 实例实例 例 1 列出阻塞数据库连接 61 的阻塞链 注 数据库连接 75 是本阻塞链的阻塞源头 select from table ncperf blockerlist 61 10 卸载表数据卸载表数据 10 1 介绍介绍 该功能由两个方法组成 卸载条件检查 函数 和执行卸载 存储过程 条件检查方法会从 5 个方面检查待卸载表是否符合执行卸载的要求 外键引用关系 表 空间可用空间 对象名长度 对象改名后是否重名和保留数据 SQL 条件是否合法 当上述 条件不满足时将无法执行卸载 执行卸载会将目前的表备份到 表名 V1 的新表中 卸载后的表仅保存保留数据 SQL 条件中包括的数据 卸载会保留表上的主键 索引 缺省值 非空约束 触发器等对象 但 是外键 引用其它表或被其它表引用 字段注释和表注释需要重新建立 10 2 使用场景使用场景 系统运行一段时间后 一些单据或明细表的数据会非常大 对性能影响非常大 但是这 类表一般在业务上只是使用一些近期或未完结的数据 其它历史或已完结的数据已经不再查 询 为了提升性能我们可以使用卸载表数据的功能将表中的历史数据卸载到备份表中 表中 仅保留目前还在使用的数据 记录减少后会极大提升执行效率 10 3 主要方法主要方法 10 3 1 检查卸载条件是否满足检查卸载条件是否满足 方法说明 实现方式实现方式 名称名称 说明说明 function unloadcheck 条件检查方法会从 5 个方 面检查待卸载表是否符合 执行卸载的要求 外键引 用关系 表空间可用空间 对象名长度 对象改名后 是否重名和保留数据 SQL 条件是否合法 当上述条件不满足时将无 法执行卸载 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v tablename varchar2 是 无 待卸载表名 v where varchar2 是 无 保留数据 SQL 条件 该条件是 where 谓词后的条件 如果不希 望保留任何数据可以使用类似 1 2 这 种条件 输出参数 table 集合 table 集合说明 字段名字段名 数据类型数据类型 说明说明 rule varchar2 检查项 checkresult varchar2 检查结果 Tip varchar2 说明 10 3 1 1 实例实例 例 1 检查卸载表 table1 的条件是否满足 卸载后保留数据的条件是 id 20120112 select from table ncperf unloadcheck table1 id 20120112 TIP 中提示的不通过原因 表 U3 UNLOADTABLE 的列 ID 被表 U3 UNLOADTABLEFK 的列 SID 外键引用 必须首先清除上述外键引用后才能卸载表 卸载完成后请自行恢复外键引用 请注意 卸载 后由于数据将大量减少 原来的外键关系可能会无法创建 10 3 2 执行卸载执行卸载 方法说明 实现方式实现方式 名称名称 说明说明 procedure unloadtable 卸载表数据 执行卸载会将目前的表备份到 表名 V1 的新表中 卸载后的表仅保存保留 数据 SQL 条件中包括的数据 卸载会保 留表上的主键 索引 缺省值 非空约 束 触发器等对象 但是外键 引用其 它表或被其它表引用 字段注释和表注 释需要重新建立 输入参数说明 参数参数名名 类型类型 是否必输是否必输 缺省值缺省值 说明说明 v tablename varchar2 是 无 待卸载表名 v where varchar2 是 无 保留数据 SQL 条件 该条件是 where 谓词后的条件 如果不希 望保留任何数据可以使用类似 1 2 这 种条件 输出参数 无 注意事项 执行卸载前请备份待卸载表或整个数据库 待卸载表在卸载期间不被使用 请在业务上确定卸载的数据不会被后续操作引用 10 3 2 1 实例实例 例 1 卸载表 table1 卸载后保留数据的条件是 id 20120112 begin ncperf unloadtable table1 id PO ORDER v where forderstatus in 3 5 dbms job submit job job1 what v sql next date to date 2011 12 12 23 00 00 yyyy mm dd hh24 mi ss interval null commit end 10 4 卸载失败处理方法卸载失败处理方法 在卸载过程中如果出现异常导致卸载不成功 请查看 NCPERF LOG 中的日志以确定发 生错误的操作 查看 NCPERF LOG 语句 select from ncperf log where type unloadtable order by ts 在字段 DESCRIPTION 中将会记录日志 如下是一个成功卸载表后的日志 红字说明了 各部分日志含义及应对策略 2011 12 08 09 26 42 开始卸载表 BVI 拷回数据的条件 id 100100023 NCPERF UNLOAD 中时间戳 2011 12 08 09 26 42 与 ncperf unloadcheck 相同的条件检查 这部分出错不需要处理 可以在解决错误提示 的问题后再次执行卸载 2011 12 08 09 26 42 开始合法性检查 2011 12 08 09 26 43 合法性检查完毕 在 ncperf unload 中记录待执行 DDL 这部分出错不需要处理 可以在解决错误提示的问 题后再次执行卸载 2011 12 08 09 26 43 开始 1 记录待卸载表及其索引 包括唯一约束 触发器的 DDL 脚 本 flag 0 2011 12 08 09 26 43 记录待卸载表及其索引 包括唯一约束 触发器的 DDL 脚本 flag 0 完毕 根据根据 ncperf unloadncperf unload 中中的的记录记录 修改待卸载表及其对象的名称修改待卸载表及其对象的名称 在对象名后加后缀 在对象名后加后缀 V1 V1 改名对象 表 主键 触发器 索引改名对象 表 主键 触发器 索引 如

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论