4:管理_监控和调整数据库

来源:互联网 发布:霍建华演技怎么样 知乎 编辑:程序博客网 时间:2024/05/22 10:39

 

主动监控数据库

       警报帮助我们主动地监控数据库,大多数警报是在超过特定的度量阀值时发出的通告,可以为每个警报设置临界和警告阀值,这些阀值为边界值,如果超过边界值,者指示系统处于非预期的状态

       创建具有指定阀值的表空间和表

              首先创建 一个20M的数据文件的新的表空间,将本地管理这个表空间,并使用自动段空间管理(ASSM).然后在这个表空间中创建新的表,把表的EnableRow Movement 设置为是,以允许表中的空间回收

              ->进入 表空间 页面 创建 一个表空间 注意:数据文件为20M ->继续

              ->回到 创建表空间 ->选中 阀值 选项卡 使用 自定义阀值 ->确定

              ->表空间 创建完成

             

              ->进入 管理页面 ->方案 ->

              ->进入 表页面  ->创建->表组织:选标准;->继续

              ->进入 创建表 输入表名,方案为 system 选中 表空间 ,编辑列,选择 选项

                     ->添加 约束 ,……….

                     ->启动行移动 设为   ->确定

              ->创建成功

 

 

       触发表空间的使用率警报

              大量添加模拟数据

             

 

       设置度量阀值

              Oracle提供了一组预先定义的度量,其中一些度量一开始就偶拥有为他们定义的阀值.可以预先为表空间的表空间使用率定义一个度量

              ->进入 EM 主目录 下面的 相关链接 管理度量

              ->进入 管理度量 单击 编辑阀值

              ->进入 编辑阀值 选中已用表空间百分比 (%) 点击 指定多个阀值  设置 警告阀值 和严重阀值 ->确定

                   ->返回 编辑阀值 页面 ->确定

        

 

         设置通告

                   当出现需要干预的事件时,可以选择性地提供通告.默认地,临界状态的警报(DataBase Down ,GenericAlert Log Error StatsTablespace Userd )都设置为提供通告

                   ->进入设置页面 ->选择通知方法

                   ->进入 填写 自己的邮件服务器,发件人为dbaalert 发件人邮件为 notify01@oracle.com->应用

                   ->更新成功 进入首选项 页面

                   -> 电子邮件 添加另一行 写入自己的电子邮件地址  ->点击       应用

 

诊断和解决性能问题

         在出现数据库性能问题时,需要进行诊断和纠正,有时候要注意 主页上主机 CPU上的性能尖峰,在默认情况下,自动数据库诊断监控器(ADDM)都将标记这些问题.,他默认每60分钟执行一次至上而下的系统分析,并在OEM主页上报告发现的问题,ADDM60分钟运行一次,和自动工作负载信息库(AWR)采集的快照同步发生.他输出包含了它确认的每个问题的说明和建议操作

         生成性能问题查找结果

                   手工创建一个等待

                            在一个sqlplue delete emp;

                            在另一个sqlplus delete emp 此时他会等待上一个Commit

                   -> 性能 页面的会话:等待和运行 将会看到 等待值非常的高

                   ->单击 下面 其他监视链接 中的    快照

                   ->进入 快照 ->创建

                   ->确认 创建快照 -> 确认

                   ->创建 成功 _回到主页面 将会有一个 警报(Waits by Wait Class)

        

         使用ADDM解决发现的问题

                   ->单击 警报

                   ->进入 等待所用的数据库时间… -> 建议案 选择 其他建议

                   ->进入 自动数据库诊断监视器 页面 单击性能分析 中的 查找结果

                   ->进入 性能查找结果 详细资料      建议案 中点击 查看基本原理

 

                   ->返回 主页面 进入性能 页面 点击其他监视链接 下的阻塞会话

                   ->进入 阻塞会话 页面点击 最高级别的会话 点击中断会话

                   ->进入 确认 中断选择 立即中断 ->点击是 中断会话

 

 

使用SQL调整向导

         数据库管理员或操作员使用以下任务来响应性地监控并诊断数据库性能问题

  查看数据库等待

     检查数据库等待类的顶级SQL

     利用SQL调整顾问工具调整SQL语句

     查看SQL语句的SQL执行细节

查看数据库等待

->进入 管理页面 下面的 工作量 选中 自动工作量资料档案库 查看 快照数量 和最晚采集时间

->返回 性能 页面 查看 会话:等待和运行  这是一个当前工作负载的图表,ADDM采集的数据填充这个图表 在图例中点击 占用最多的一项(如 用户I/O)

->进入 等待的活动会话数   在左边的饼图(顶级等待 SQL)中可以看出单个Sql语句的等待时间 ,右边的饼图(顶级等待会话)显示当期最活跃的几个会话等待的数据  

 

    检查等待类的顶级SQL

        ->在 等待的活动会话数 页面中 选中 顶级SQL 选项卡 在顶级SQL等待事件中 中查看占用活动最多的SQL单击他的SQL ID

        ->进入 SQL详细资料 进入当前统计信息 查看SQL的统计信息   ->进入 执行历史记录选项卡查看这条语句的统计分析图, 单击 CPU时间和占用时间 中的 开始 可以查看这条语句的每次执行使用的时间和资源  ->进入 优化历史记录 查看为这条SQL语句提供的调整建议

 

    使用SQL优化向导调整SQL

        ->在查看 顶级SQL页面中 点击 运行SQL优化向导

        ->进入 调度指导 选中 范围的:综合模式 调度中的:立即  ->确定

        ->进入 优化结果 页面  ->点击 查看建议案

        ->进入 建议案 页面  单击 建议案 后面 新的建议案查看建议的修改

            ->点击 实施 执行调整建议

        ->指示 SQLProfile 创建成功

   

    查看SQL语句的执行细节

        ->进入 会话:等待和运行查看 运行效果

 

 

SQL访问指导

       SQL访问指导提供了许多过程,可以调用这些过程来帮助确定和丢弃那些实体化视图和索引,他利用基于模式的,假定的工作负载,或从实际的工作负载(可能由用户提供,来自OracleTrace或来自SQL高速缓存的内容)中作出决策,还可以根据不同的标准对工作负载进行个过滤(如只使用包含这个表的查询,或在这个范围中有优先权的查询)

       准备环境

              为了看到SQL访问指导的建议,我们可能需要删除存在的实体化视图和索引,为了能够生成建议,还需要设置高速缓存

              清理drop materialized view all_cust_sales_mv,/costs_mv/costs_pm_mv/cust_sales_mv

./some_cust_sales_mv/cust_id_sales_aggr./sales_cube_mv./sales_gby_mv./CUST_TOTAL_SALES_MV./CUST_SALES_TIME_MV

              创建高速缓存

                     Alter system flushshared_pool;

                     Grant advisor to testUser;

                     Connect textUser/

                     Selectc.cust_last_name,sum(s.amount_sold) as dollars,sum(s.quantity_sold) as quantityfrom sales s,customers c ,products p where c.cust_id=s.cust_id  and s.prod_id=p.prod_id and

c.cust_state_provincein (‘Dublin’,’Galway’) group by c.cust_last_name;

                     select c.cust_id,sum(amount_sold)as dollar_sales from sales s,customers c where s.cust_id=c.cust_id group byc.cust_id;

                     select sum(unit_cost) fromsosts group by prod_id;

 

       利用SQL高速缓存获取建议

              ->进入EM(sys身份)->指导中心 ->sql访问指导

              ->进入 sql访问指导:访问量源 选中 当前的和最近的SQL活动 点击 查看高级选项

                     -> 过滤选项中 选择 根据这些选项过滤工作量 并指示仅占用 SQL 语句的顶级资源 和仅由下列用户执行的 SQL 语句 用户 中填写相应的用户 ->下一步

                   ->进入 SQL访问指导:建议案  在建议案类型 中选择 索引和实体化视图  ->下一步

                   ->进入 SQL访问指导:调度  设定 调度名 ,并将调度类型 设为标准 ->下一步

                   ->进入 SQL访问指导:复查  ->提交

 

         查看或执行建议

                   -> 指导中心 页面选中创建的 建议案 点击查看结果

                   ->进入 以下任务的建议案 点击建议案ID 查看细节

                   ->进入 建议案:X 页面 在这个页面 可以自定义对象的名称,模式和表空间  在下面的 创建实体视图 将模式名改写为 testUer(上面创建缓存) ->确定   

                   ->返回 以下任务的建议案 点击查看SQL 查看创建实体化视图的语句

                  

                   ->点击 执行 进度(XXXX)

                   ->进入 执行作业 页面输入 作业名 ->提交

                   ->作业创建完成 进入 调度程序作业 选择运行历史记录              选中刚才的作业 ->查看

                   ->进入 查看作业 页面查看概要

        

                   ->回到 管理页面  点击 数据仓库 点击实体化视图

                   ->进入 实体化视图 在方案中输入testUser(同上) ->开始 可以看见 创建的实体化视图

 

使用内存指导

         内存指导是Oracle数据库内部的 一个智能专家系统,他为各种SGAPGA组件主动确定最优设置,当实现自动化时,Oracle将根据工作负载的需求自动调整各种池和高速缓存的设置

         启用自动共享内存管理

                   ->进入 指导中心 内存指导 ->进入 内存参数

                            >点击 自动共享内存管理 边上的 启用 ->进入启用….. ->确定

 

         修改中SGA大小

                   当处于自动共享模式下时,要修改总的SGA大小 ,确保SGA足够大

                   ->进入 内存参数 页面 修改SGA最大大小 ->应用 ->确定 重启数据库

                   ->重启 数据库 进入 内存参数页面 修改 SGA总大小 SGA最大大小 小一点 ->应用

                  

         使用PGA指导

                   ->进入 内存参数 选择 PGA选项卡 点击 建议

                   ->进入 目标PGA总内存建议 此图显示在高速缓存中找到数据的频率  以及推荐的PGA大小  ->确定

                   ->点击 PGA内存使用情况详细资料 可以查看内存使用详细资料          

 

原创粉丝点击