ITPub博客

【OCP|OCM】Oracle培训考证系列

原创 Oracle 作者:lhrbest 时间:2017-11-30 17:59:23 2 删除 编辑


 

【OCP、OCM、高可用等】小麦苗课堂网络班招生简章(从入门到专家)--课程大纲

 


    1. 我的个人信息

  • 小麦苗的微信二维码如下所示,加我时请备注相关信息:

 

  1. 现有课程

 

课程名称

课时

上课时间(可根据情况调整)

价格

OCP(从入门到专家)

每年1期,35课时左右/

每周一、周三、周四、周六

2000-2200

1588

OCM认证

每年N期,9课时/

每周二、周五

2000-2200

22888

高可用课程(rac+dg+ogg

每年1期,20课时左右/

每周一、周三、周四、周六

2000-2200

1888

Oracle初级入门

每年1期,15课时左右/

每周一、周三、周四、周六

2000-2200

800

Oracle健康检查脚本

可微信或微店购买。

88

Oracle数据库技能直通车

包含如下3个课程:

①《11g OCP网络课程培训》(面向零基础)价值1600

②《11g OCM网络班课程培训》(Oracle技能合集)价值10000+

③《RAC + DG + OGG 高可用网络班课程》价值2000

以上3个课程全部打包只要5888,只要5888所有课程带回家,终身指导!所有课程都是在线讲课,不是播放视频,课件全部赠送!

注意:以上OCPOCM课程只包括培训课程,不包括考试费用。

5888

注意:

  1. 每次上课前30分钟答疑。
  2. OCM实时答疑,提供和考试一样的练习模拟环境,只要按照老师讲的方式来练习,可以保证100%通过。
  3. 授课方式:YY语音网络直播讲课(非视频) + QQ互动答疑 + 视频复习。其中,OCM在上海开设现场班。
  4. OCP课时可以根据大家学习情况进行增加或缩减。
  5. 以上所有课程均可循环听课。
  6. 12c OCM课程私聊。
  7. Oracle初级入门课程,只教大家最实用+最常用的Oracle操作维护知识。

     

    1. 网络连接说明

      培训项目

      连接地址

      DB笔试面试历史连接

      http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

      OCP培训说明连接

      https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

      OCM培训说明连接

      https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

      高可用(RAC+DG+OGG)培训说明连接

      https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw

      OCP最新题库解析历史连接(052

      http://mp.weixin.qq.com/s/bUgn4-uciSndji_pUbLZfA

      微店地址

      https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

      我的信息

      QQ:646634621 微信号:lhrbestxh

       

     

     

     

    1. Oracle健康检查脚本

      1. 小麦苗健康检查脚本特点

    小麦苗健康检查脚本有如下的特点:

    1. 绿色版、免安装、纯SQL文本
    2. 跨平台,只要有SQL*Plus环境即可运行
    3. 兼容Oracle 10g、11g及12c版本
    4. 一次购买,终身免费升级
    5. 检查内容非常全面
    6. 脚本可视化,可以看到脚本内容,因此可供学习使用
    7. 只有1个SQL脚本,不存在嵌套调用脚本等其它问题
    8. 生成html文件的健康检查结果
    9. 对结果进行过滤,列出了数据库有问题的内容

     

    1. 健康检查部分结果展现

    列出部分结果,其它的内容可以参考:http://blog.itpub.net/26736162/viewspace-2129512/

    (一)巡检服务概要

    数据库总体概况

    数据库基本信息

    数据库大小

    资源使用情况

    组件和特性

    参数文件

    所有的初始化参数

    关键的初始化参数

    隐含参数

    spfile文件内容

    Statistics Level

    表空间情况

    表空间状况信息

    闪回空间使用情况

    临时表空间使用情况

    Undo表空间使用情况

    表空间扩展状况

    数据文件状况

    控制文件

         

    ASM磁盘监控

    ASM磁盘使用情况

    ASM磁盘组使用情况

    ASM磁盘组参数配置情况

    ASM实例

     

    JOB情况

    作业运行状况

    数据库job报错信息

         

    (二)巡检服务明细

    RMAN信息

    RMAN备份状况

    RMAN配置情况

    RMAN所有备份

    RMAN所有备份详情

    控制文件备份

    spfile文件备份

    RMAN归档文件备份

    数据库闪回

       

    归档信息

    归档日志设置

    归档日志生成情况

    归档日志占用率

    近7天日志切换频率分析

    每天日志切换的量

    日志组大小

           

    SGA信息

    SGA使用情况

    SGA配置信息

    SGA建议配置

    SGA动态组件

    PGA TARGET 建议配置

    文件IO信息

    文件IO分析

    文件IO时间分析

    全表扫描情况

    排序情况

     

    SQL监控

    逻辑读TOP10的SQL

    物理读TOP10的SQL

    执行时间TOP10的SQL

    执行次数TOP10的SQL

    解析次数TOP10的SQL

    版本TOP10的SQL语句

    内存TOP10的SQL语句

    DISK_SORT严重的SQL

    从ASH视图查询SQL

    垃圾SQL之RUNNING_11G

    垃圾SQL之RUNNING_10G

    LAST快照中SQL情况

    LAST快照中执行时间最长SQL

    执行时间最长SQL

    执行时间最长的SQL报告

    闪回归档

    闪回归档配置

    开启了闪回归档的表

    闪回归档空间

       

    DG库

    DG库配置情况

    DG库运行情况

    主库DG进程

    主库standby日志

    备库日志应用情况

    (三)数据库安全

    数据库用户

    数据库用户一览

    拥有DBA角色的用户

    拥有SYS角色的用户

    角色概况

    密码为系统默认值的用户

    整个用户有多大

    近一周登录错误的用户

    用户PROFILE

       

    系统表空间用户

    SYSTEM为缺省表空间的用户

    SYSTEM为临时表空间的用户

    系统表空间上的对象

       

    数据库审计

    审计参数配置

    审计表情况

    DB中所有审计记录

       

    (四)数据库对象

    段情况

    对象汇总

    段的汇总

    体积最大的10个段

    扩展最多的10个段

    LOB段

    不能扩展的对象

    扩展超过1/2最大扩展度的对象

    Undo 段

    表空间所有者

     

    表情况

    行链接或行迁移的表

    超过10W行无主键的表

    无数据有高水位的表

       

    分区表情况

    表大小超过10GB未建分区

    分区最多的前10个对象

    分区个数超过100个的表

       

    无效对象

    无效的对象

    无效的普通索引

    无效的分区索引

    无效的触发器

     

    索引情况

    索引个数超过5个的表

    大表未建索引

    组合索引与单列索引存在交叉

    位图索引和函数索引

    外键未建索引

    大索引从未使用

    索引列个数大于3

    索引高度大于3

    索引的统计信息过旧

     

    并行度

    表带有并行度

    索引带有并行度

         

    其他对象

    告警日志

    数据库目录

    回收站情况

    数据库链路(db_link)

    外部表

    所有的触发器

    序列cache小于20

    物化视图

    type

    数据泵

    (五)数据库性能分析

    AWR

    AWR统计

    AWR参数配置状况

    数据库服务器主机的情况

    AWR视图中的load profile

    热块

    最新的一次AWR报告

           

    ASH

    ASH快照状况

    最新的一次ASH报告

         

    ADDM

    最新的一次ADDM

           

    统计信息

    统计信息是否自动收集

    需收集统计信息的表

    被收集统计信息的临时表

    统计信息被锁的表或索引

     

    会话

    会话概况

    会话状态一览(当前)

    历史ACTIVE会话数

    登录时间最长的10个会话

    超过10小时无响应的会话

    提交次数最多的会话

    CPU或等待最长的会话

         

    查看LOCK锁情况

    查看谁锁住了谁

    游标使用情况

    并行进程完成情况

     

    内存占用

    查询共享内存占有率

    PGA占用最多的进程

    命中率

       

    其它

    等待事件

    OLAP

    Networking

    Replication

     

    (六)健康检查结果

    健康检查结果

    健康检查结果

    健康检查过程中脚本产生的错误

         

     

    1. 对指标有相应的解释

    鼠标经过时有相应的解释,如下图所示:

     

    1. 健康检查结果

    该脚本检查的内容较多,所以我对结果进行了过滤,如下:

    点击链接即可查看结果:

    1. 数据库基本信息

    数据库基本信息一目了然:

     

    1. 运行过程

    执行过程如下:

    [oracle@redhat4 ~]$ locale -a | grep zh_CN

    zh_CN

    zh_CN.gb18030

    zh_CN.gb2312

    zh_CN.gbk

    zh_CN.utf8

    [oracle@redhat4 ~]$ export LANG=zh_CN.gbk

    [oracle@redhat4 ~]$ echo $LANG

    zh_CN.gbk

    [oracle@redhat4 ~]$ NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

    [oracle@redhat4 ~]$ sqlplus / as sysdba @DB_healthcheck_lhr_11g_v4.9.sql

     

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 1月 20 18:52:59 2016

     

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

     

     

    连接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production

    With the Partitioning, OLAP and Data Mining options

     

     

    数据库巡检脚本编写者::小麦苗 [版权所有侵权必究] QQ: 646634621

    说明:

    用于检查Oracle 10g、11g数据库各项指标,包括数据库主要参数、主要对象情况、存储空间配置、数据库性能(AWR、ASH、ADDM)、RMAN备份情况等。

     

    注意事项:

    ① 若使用非sys用户执行脚本,则需要用sys用户赋予检查用户对x$bh的查询权限,否则热块不能查询 create or replace view bh as select * from sys.x$bh; create or replace public synonym x$bh for bh

    ② 若有乱码可以设置下环境变量:NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK" NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"

    ③ 执行脚本的用户至少应该赋予DBA角色,且赋予可以查询任何数据字典的权限 grant select any dictionary to XXX

     

    +----------------------------------------------------------------------------+

    巡检脚本执行过程将持续数分钟,随库的大小不同而变化。

    开始执行......

    +----------------------------------------------------------------------------+

     

    -----Oracle Database Check STRAT,Starting Collect Data Dictionary Information----

     

    请等待......

    start.....设置环境变量、配置html表头....

     

     

    。。。。。。省略。。。。。。

     

     

     

    1. OCM

    【OCM】想考11g和12c OCM的小伙伴可以加我微信(lhrbestxh)私聊,非诚勿扰。11g OCM可以保证最低学费、最快训练速度和100%的通过率,非诚勿扰。

     

    1. 11g OCM考试内容思维导图

     

    1. 第一场

     

    1. 第二场

     

    1. 第三场

     

    1. 第四场

     

    1. 第五场

     

    1. 第六场

     

     

    1. 第七场

     

     

    1. 第八场

     

    1. 第九场

     

     

    1. 12c OCM

     

    若要考12C OCM请加小麦苗的微信私聊。

     

    1. OCM培训说明连接

    OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

     

     

     

     

     

    1. OCP

      1. OCP培训说明网络连接

    OCP培训说明连接:https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

     

    1. 讲课资料及视频下载地址

  1. OCP讲课文档

 

这里只列举部分:

 

  1. OCP第1期相关视频说明

 

  1. 小麦苗OCP 11g课程第1节--RHEL5.5的安装和基本配置(使用逻辑卷):https://v.qq.com/x/page/u0534y1g6u3.html
  2. 小麦苗OCP 11g课程第2节--数据库软件的图形化安装和静默安装,MD5,配置YUM源,安装rlwrap软件:https://v.qq.com/x/page/m05348z2s4v.html
  3. 小麦苗OCP 11g课程第3节--图形化建库、静默建库、静默删库、干净地卸载数据库软件、配置数据库资源开机启动、pmap、判断数据库位数等:https://v.qq.com/x/page/x0535r1ucah.html
  4. 【已加密】小麦苗OCP 11g课程第4节--SQL语句的分类,如何查看在线和离线文档、sqlplus的使用和设置(导出csv和html文件)、ERRORLOGGING的作用
  5. 【已加密】小麦苗OCP 11g课程第5节--基本SELECT语句的写法,NULL的注意事项,Quote (q)语法、模糊查询、WHERE子句和排序
  6. 小麦苗OCP 11g课程第6节--IS NULL走索引,LIKE模糊查询走索引,DUAL表详解(包括恢复),Oracle中的函数、隐式类型转换:https://v.qq.com/x/page/s0540b5ih94.html
  7. 小麦苗OCP 11g课程第7节--函数的高级应用,组函数,COUNT的用法和区别,MAX和MIN优化写法:http://v.qq.com/x/page/l0540f9nhgh.html
  8. 【已加密】小麦苗OCP 11g课程第8节--多表连接、笛卡儿积、层次查询(树形查询)、WITH语法、子查询、合并查询(集合查询)、connect by和笛卡儿积快速构造大表
  9. 【已加密】小麦苗OCP 11g课程第9节--创建和管理表、数据字典、数据类型介绍、操作数据(INSERT、UPDATE、DELETE、MERGE)、DML语句优化的方法
  10. 【已加密】小麦苗OCP 11g课程第10节--约束、视图、外键约束必须创建索引(死锁)、Top-N 分析、物化视图简介
  11. 【已加密】小麦苗OCP 11g课程第11节--序列、索引、同义词、DBLINK、为什么索引没有被使用、哪些操作会导致索引失效、监控索引的使用、预估索引的大小、索引的选择性
  12. 【已加密】小麦苗OCP 11g课程第12节--匿名块、存储过程、函数、包的开发、异常处理、自治事务、分批提交DML、利用触发器完成一些监控功能、存储过程和函数返回集合类型
  13. 小麦苗OCP 11g课程第13节--ASM的安装和配置、磁盘组的简单维护、创建ASM磁盘的几种常见方式(asmlib)、静默安装GRID软件、EM的创建和使用、如何查看磁盘是否包含数据、如何让crs_stat命令显示完整、kfod命令等:http://v.qq.com/x/page/s0560te3pju.html
  14. 【已加密】小麦苗OCP 11g课程第14节--体系结构(内存结构、进程结构、存储结构)--内存组件(SGA+PGA)、数据库和实例的区别、ASMM和AMM、归档模式的切换、多路复用控制文件等
  15. 小麦苗OCP 11g课程第15节--EM的维护、参数文件(spfile和pfile)、启动和关闭、告警日志、Oracle Restart(重点)等:http://v.qq.com/x/page/j06000r2u4a.html
  16. 【已加密】小麦苗OCP 11g课程第16节--ASM相关维护(磁盘组、OS和ASM文件格式转换)等
  17. 【已加密】小麦苗OCP 11g课程第17节--Oracle网络管理(动态注册和静态注册、限定IP访问、sqlnet.ora、listener.ora、tnsnames.ora文件的作用、TWO_TASK、SYS登录报权限不足、ORA-12547等)
  18. 【已加密】小麦苗OCP 11g课程第18节--表空间和数据文件管理(bigfile、OMF、表空间大小查询、表空间扩展、表空间配额、移动数据文件、如何删除表空间数据文件)
  19. 【已加密】小麦苗OCP 11g课程第19节--数据库用户管理、权限和角色、密码文件(Oracle的两种认证方式等等)
  20. 【已加密】小麦苗OCP 11g课程第20节--锁和会话(视图之间的关联关系、如何彻底杀掉会话等)、Undo(作用,存储内容、快清除、ORA-01555)、审计(分类,FGA审计、sysdba审计、AUD$表迁移等)
  21. 【已加密】小麦苗OCP 11g课程第21节--AWR(如何获取和阅读)、ASH(如何诊断系统问题)、ADDM、统计信息(学好SQL优化必修的一节课)等
  22. 【已加密】小麦苗OCP 11g课程第22节--exp、imp(从dmp文件获取相关信息,例如查看字符集,延迟段创建等)、数据泵expdp和impdp(彻底停止expdp,exclude、include,TTS,network_link,expdp卡死等)等
  23. 【已加密】小麦苗OCP 11g课程第23节--sqlldr(各种错误处理、酒店开房数据导入)、外部表(字符集设置)、补丁集更新(PSU、one-off补丁、热补丁)
  24. 【已加密】小麦苗OCP 11g课程第24节--故障类别、SCN(系统检查点SCN、文件检查点SCN、开始SCN和结束SCN)、实例恢复(前滚和回滚)、闪回体系(包括7种闪回技术及其原理)、DBA_SOURCE的使用
  25. 【已加密】小麦苗OCP 11g课程第25节--延迟段创建导致不能导出空表(只在11.2.0.1中存在)、RMAN简介及其常用命令(show all的配置、list、report、delete等)、备份恢复的类型
  26. 【已加密】小麦苗OCP 11g课程第26节--catalog库、RMAN备份(累积和差异增量备份)、块改变跟踪、备份脚本分享、定时任务(crontab + windows下的任务计划)
  27. 【已加密】小麦苗OCP 11g课程第27节--密码文件恢复、spfile恢复、控制文件恢复、在线redo和归档文件的恢复、v$archived_log的清理
  28. 【已加密】小麦苗OCP 11g课程第28节--数据文件恢复、表空间恢复(Undo表空间的恢复)、DRA(数据恢复顾问)、rm -rf误操作的恢复过程、TRUNCATE恢复方法、在丢失归档的情况下如何进行数据文件的恢复
  29. 【已加密】小麦苗OCP 11g课程第29节--日志挖掘logminer、bbed简介、坏块的检测(dbv、rman等)和恢复(BMR、bbed等)、如何确定坏块的对象名、OS备份(冷备和热备及其恢复)、非归档模式备份和恢复、RESETLOGS和NORESETLOGS区别、跨版本恢复、只存在备份片的恢复、恢复流程图
  30. 【已加密】小麦苗OCP 11g课程第30节--实验课(数据泵之NETWORK_LINK、duplicate from active复制数据库ASM到FS、TSPITR(表空间基于时间点恢复)、TTS(传输表空间))、测试库搭建等
  31. 【已加密】小麦苗OCP 11g课程第31节--JOB(DBMS_JOB、DBMS_SCHEDULER、创建删除JOB、是否正在运行、运行日志、故障处理)、分区表(分区类型、分区表查询优化、索引失效、普通表转换为分区表有哪些办法、压缩分区、分区表收集统计信息)

 

 

  1. OCP培训课程大纲

注:

  • 1学时=1小时
  • 1课时=1次课=2学时=2小时
  • 培训大纲是培训文档的缩减版,只列举出了最重要的一部分内容,最终讲课内容以讲课文档为准,大家可以参考后边的目录部分,目录部分是最全的部分。

 

  1. 安装与卸载

    课程模块

    培训要点

    学时

    VMware Workstation虚拟机的相关知识

    • 安装和卸载
    • 版本介绍(32位和64位)
    • 网络配置(配置固定IP地址并且可以上外网)
    • 快照的介绍
    • VMware Tools
    • 主机和虚拟机资源共享
    • 主机和虚拟机时间同步
    • 虚拟机的配置文件

    0.5

    Linux的安装(RHEL 5.5

    • 逻辑卷的管理方式
    • 用户的环境变量配置
    • PS1环境变量的作用
    • su - oraclesu oracle的区别
    • 网络环境的简单配置(配置固定IP地址并且可以上外网)、防火墙的配置
    • 学会修改主机名
    • MD5值的简介和计算
    • 其它OS知识

    1.5

    Oracle软件单机安装

    • Oracle DB、监听和oem开机启动(dbstart)
    • 配置sudo
    • 图形界面和静默方式安装单机软件

    1

    Oracle ASM的安装

    • GI的基本安装和配置(图形界面+静默安装)
    • 创建ASM磁盘的几种方式演示
      • Faking方式
      • /etc/sysconfig/rawdevices配置raw
      • Udev方式
      • ASMLIB方式
    • 如何查看磁盘是否包含数据(lquerypvhexdump
    • 添加loop设备的方法
    • 如何让crs_stat命令显示完整
    • 静默创建ASM实例和grid用户的监听
    • 命令创建OEMemca -config dbcontrol db -repos recreate

    2

    Oracle监听和TNS的简单配置

    • 学会使用netmgr
    • 静默创建监听

    0.1

    删除数据库的几种方式

    • dbca -silent
    • DROP DATABASE;

    0.2

    创建数据库

    • DBCA图形创建
    • 静默创建
      • 如何设置静默创建数据库为归档模式
      • 静默建库常见问题的处理
    • 手动创建数据库

    0.5

    管理工具介绍

    • PLSQL Developer软件使用
    • 学会安装WindowsLinux下的绿色版的Oracle客户端软件
    • 绿色版SecureCRTSecureFX
    • Xshell调用图形界面

    0.5

    Oracle软件的卸载

    • Windows平台(主要是清理注册表)
    • Linux平台

    0.5

    其它内容

    • 如何判断Oracle32位还是64位?
    • 在多个不同版本的数据库情况下,如何确定实例的ORACLE_HOME地址?

    0.5

    Windows下环境变量的配置

    • 代码页(Code Page)
    • 环境变量的分类
      • 系统环境变量
      • 用户环境变量
    • 环境变量的设置方法
      • 批处理注册表
      • 界面配置
      • SETX命令直接配置

    0.5

     

  2. SQL基础部分

    课程模块

    培训要点

    学时

    SQL简介及分类

    • SQL语句的分类
    • COMMIT的类型
    • 教会如何查看在线和离线官方文档

    0.5

    SQL*Plus

    • 如何导出csvxls文件
    • 如何导出漂亮的html文件
    • 如何使用上下左右方向键
    • 执行脚本时的搜寻路径
    • @@@&&&的区别
    • glogin.sql文件的作用,如何修改命令提示符?
    • ERRORLOGGING的作用
    • sqlplus调用SQL脚本
    • shellbat调用sqlplus命令执行SQL命令
    • sqlplus执行结果传递给shell
    • shell程序参数传递给sqlplus
    • 为了安全要求每次执行shell都手工输入密码
    • 为了安全从文件读取密码
    • sqlplus中将行转为列输出
    • 登录SQL*Plus的几种方式EZCONNECT方式
    • 安装SQL*Plus的帮助脚本

    0.5

    基本SELECT语句

    • 语法
    • 别名
    • 运算符
    • 去重
    • 空值
      • NULL的注意事项,例如如果子查询结果中包含NULL值,那么NOT IN (NULLAABBCC)返回为空。
      • IS NULL 走索引
    • Quote (q)语法
    • Oracle特殊字符的处理

    0.5

    WHERE条件和排序

    • 条件
      • 条件中使用字符串和日期
      • 比较条件
        • 模糊查询
          • 1.LIKE模糊查询如何使用索引
          • 2.如何搜索包括%_符号的行
        • INORIN中最多支持1000个列举项
        • BETWEENbetween包括边界值
        • 使用NULL/NOT NULL条件
        • 逻辑条件(ANDOR NOT--注意添加括号,防止形成笛卡儿积
    • 排序
      • 升序(ASC
      • 降序(DESC
      • 列别名排序
      • 多列排序

    0.5

    连接类型

    • 交叉连接(笛卡儿积)
    • 内连接(简单连接)
      • 等值连接
        • 自然连接
        • 自连接
      • 非等值连接
    • 外连接
      • 左外连接
      • 右外连接
      • 全外连接

    0.2

    查询分类

    • 子查询
      • 主查询和子查询的关系
        • 标量子查询---性能问题
        • 关联子查询(标准子查询)
          • 相关子查询
          • 非相关子查询(独立子查询)
      • 返回的行数
        • 单行子查询
        • 多行子查询
      • 返回的列数
        • 单列子查询
        • 多列子查询
      •     子查询中的INEXISTS
    • 主查询

    0.2

    合并查询(集合查询)

    • UNION
    • UNION ALL
    • INTERSECT
    • MINUS
    • 应用

    0.2

    函数

    • 单行函数
      • 字符函数
      • 数字函数
      • 日期函数
      • 转换函数隐式类型转换(字符列的值应该加上单引号)
      • 通用函数
      • 条件表达式有 CASE表达式、DECODE 函数
    • 多行函数(组函数)
      • 组函数的概念及应用
      • AVGSUMMAXMINMAXMIN的优化写法
      • COUNT
      • DISTINCT
      • GROUP BYHAVING
      • 嵌套组函数
    • 扩展内容
      • 如何将一个数字转换为字符串并且按照指定格式显示?
      • ORA-00904: "wm_concat":invalid identifier错误解决
      • 如何判断一个字符串是否含有中文汉字?
      • 如何让日期显示为"--::"的格式?
      • NLS_LANGUAGE的使用
      • 如何判断当天是否月份最后一天?
      • COUNT(1)COUNT(*)COUNT(常量)COUNT(主键)COUNT(ROWID)COUNT(非空列)COUNT(允许为空列)COUNT(DISTINCT 列名) 的区别(结果和效率)

    2

    dual

    • 基本使用
    • 删除后的恢复(若被删除则数据库不能启动,需要设置REPLICATION_DEPENDENCY_TRACKING=FALSE
    • 扩展

    0.2

    操作数据

    • INSERT
      • 插入特殊值
      • 插入指定日期
      • 插入可输入变量
      • 从另外一个表复制
      • INSERT语句中使用子查询
    • DELETE
      • 一道OCM考题
      • 记得加WHERE条件
      • 查找和删除重复的记录
    • UPDATE
      • 关联更新一定要加WHERE条件
      • 优化写法
    • MERGE(数据合并)
      • 语法、概念
      • MERGE语句在优化中的巨大作用
    • 提高DML语句性能的写法

    0.5

    存储过程、函数、包的开发

    • PL/SQL
      • 分支
      • 循环游标FOR循环
      • 控制
    • 存储过程
      • 编写
      • 存过中捕获异常的行号
      • 存储过程和函数的区别是什么?
      • 存过中的动态执行语句(动态sql)
      • 存过返回集合
    • 函数
      • 函数返回集合
      • 函数返回系统游标
      • 函数返回索引表
      • 一个项目一个包,或一个系统一个包
    • 异常处理
      • 分类
        • 预定义异常
        • 非预定义异常
        • 自定义异常
      • 抛出异常
        • 通过PL/SQL运行时引擎
        • 使用RAISE语句
        • 调用RAISE_APPLICATION_ERROR存储过程
        • SQLCODESQLERRM
      • 如何捕获错误并记录到表中?
      • 存过中捕获异常的行号(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
    • Oracle分批提交DML
      • 分批 update
      • 分批 delete
      • 分批 insert

    2

     

  3. 基本对象的管理

    课程模块

    培训要点

    学时

    DBLINK

    • 概念、分类、创建语法(2种方式)、删除
    • 相关权限、数据字典
    • 讲解一道OCM的考题

    0.2

    约束

    • 约束的概念和原则
    • 定义约束
    • 几种常见的约束
      • NOT NULL约束
      • UNIQUE约束
      • PRIMARY KEY约束非空且唯一
      • FOREIGN KEY约束
        • 1.外键列需创建索引,否则易引起锁问题,导致死锁的产生
        • 2.找出没有建立索引的外键
      • CHECK约束
    • 管理约束
      • 添加约束
      • 删除约束
      • 级联约束
      • 查看约束
      • 禁用、启用约束

    0.5

    视图

    • 视图的概念和优势
    • 分类
    • 视图中的规则
    • 管理视图
    • TOP-N分析
    • 物化视图简介
      • 对比"有无物化视图"前后执行计划的区别
    • 扩展
      • DBA_UPDATABLE_COLUMNS的作用
      • 在什么情况下可以对视图执行增、删、改操作?

    0.3

    其它数据库对象

    • 序列
      • 讲解一道OCPOCM的考题
      • 概念、语法、修改、删除
      • 性能问题
    • 索引
      • 概念、作用、创建、删除
      • 分类
        • 复合索引
        • 函数索引
        • 位图索引
        • 分区索引
        • 全文索引
        • 虚拟索引
        • 不可见索引
      • 重点:不能使用索引的情况
      • 扩展
        • 哪几种情况不能使用索引
        • 如何预估即将创建索引的大小?
        • 如何监控索引的使用状况?
        • 哪些操作会导致索引失效?
        • 什么是索引的选择性(Index Selectivity)?
        • IS NULL如何用到索引?
    • 同义词
      • 概念、创建、删除
      • 扩展
      • PLAN_TABLE表的真谛

    0.5

    创建和管理表

    • 表的分类
      • 普通堆表(heap table---最多包含1000
      • 全局临时表
        • 会话级
        • 事务级
      • 分区表
        • 范围分区
        • 列表分区
        • HASH分区
        • 组合分区
      • 索引组织表(IOT
      • 簇表    
      • 外部表
    • 数据字典dicttab
    • 创建表
      • CTAS及其优化
      • default选项
      • 数据类型
    • 删除表
    • 引用表
    • 修改表alter
      • 重命名(rename)表或字段的名称
      • 添加、修改、删除列
      • SET UNUSED及其恢复
      • 移动表所在的表空间
      • 修改表的存储特征
    • truncate
      • DELETEDROPTRUNCATE的区别
    • 给表和列添加注释(COMMENT语句)
      • 提供一个SQL生成开发语句

    0.5

     

  4. 数据库管理

    1. 体系结构和Oracle Restart

      课程模块

      培训要点

      学时

      DB 服务器体系结构

      • 内存结构
        • SGA
          • 共享池(Shared Pool
            • 库缓存(Library Cache
              • 共享SQL区(Shared SQL Area
              • 私有SQL区(Private SQL Area
              • 共享PL/SQL区(Shared PL/SQL Area
              • 控制结构区(Control Structure Area
            • 数据字典缓存(Data Dictionary Cache
            • 保留池(Reserved Pool
            • 结果缓存(Result Cache
          • 数据缓冲区(Database Buffer Cache
            • 回收池(Recycle Pool
            • 保留池(Keep Pool
            • 默认池(Default Pool
          • Redo日志缓冲区(Redo Log Buffer
          • 大池(Large Pool
          • Java池(Java Pool
          • 流池(Streams Pool
        • PGA
          • Private SQL Area(私有SQL区)
          • Cursor and SQL Areas(游标和SQL区)
          • Session Memory(会话内存)
          • Work Area(工作区)
      •     AMMASMM
      • 进程结构
        • USER PROCESS(用户进程)
        • SERVER PROCESS(服务器进程)
          • LOCAL=NO
          • LOCAL=YES
        • BACKGROUND PROCESSES(后台进程)
        • 守护程序/应用程序进程
      • 存储结构(物理结构)
        • 数据文件
        • 控制文件---新增控制文件
        • 联机Redo日志文件
        • 参数文件
        • 归档日志文件
          • 归档和非归档的区别
          • 归档和非归档模式互相切换
        • 密码文件
        • 备份文件
        • 告警日志和跟踪文件

      2

      体系结构部分扩展

      • AMMASMM
        • 区别
        • 互换
      • 自动PGA内存管理
      • UGA介绍
      • SHOW SGAV$SGA的结果区别

      0.5

      Oracle Restart

      • 简介
      • Oracle Restart进程启动顺序
      • 控制Oracle Restart
      • 选择正确的SRVCTL实用程序
      • Oracle Restart配置
      • 使用SRVCTL实用程序
      • 获取有关SRVCTL实用程序的帮助
      • 使用SRVCTL实用程序启动和关闭组件
      • 查看组件状态
      • 显示组件的Oracle Restart配置
      • 手动向Oracle Restart配置添加组件

      1

      Oracle DB 系统

      • Oracle DB
        • 物理结构
          • 数据文件(Data files
          • 控制文件(Control files
          • 联机Redo日志文件(Online Redo log files
          • 参数文件(Parameter file
          • 归档日志文件(Archive log files
          • 密码文件(Password file
        • 逻辑结构
          • 表空间(Tablespace
          • 段(Segment
            • 数据段
            • 索引段
            • 还原段
            • 临时段
          • 区(Extent
          • 块(Block
            • 数据块dump文件详解
      • 数据库实例
        • OS分配的一块内存
          • SGA
          • PGA
        • 一些后台进程(PMONSMONLGWRCKPTDBWn等)
      • 实例和数据库的区别

      2

    2. 管理数据库实例

      课程模块

      培训要点

      学时

      管理数据库实例

      • OEM
        • 简介和分类
          • Database Control(数据库控制)
          • Grid ControlGC,网格控制)
        • 维护
          • 卸载:emca -deconfig dbcontrol db -repos drop
          • 单机重建:emca -config dbcontrol db -repos recreate
          • 集群重建:emca -config dbcontrol db -repos recreate -cluster
          • OEM的运行日志路径:$ORACLE_HOME/$HOSTNAME_$ORACLE_SID/sysman/log
          • OEM的安装日志路径:$ORACLE_HOME/cfgtoollogs/emca/
          • 启动:emctl start dbconsole
          • 关闭:emctl stop dbconsole
          • 运行状态:emctl status dbconsole
          • OEM的界面地址:https://192.168.59.128:1158/em/
        • 端口的配置文件$ORACLE_HOME/install/portlist.ini
      • 初始化参数文件
        • 初始化参数值的类型
          • 系统使用情况
            • 普通参数
            • 非凡参数
              • 过时参数
              • 强调参数
              • 隐含参数--隐含参数的设置方法
              • 推导参数
          • 生效时间
            • 动态参数
              • 立即生效
              • 延迟生效
            • 静态参数----SPFILE
        • 简化初始化参数
        • 初始化参数:示例
        • 使用SQL*Plus查看参数
        • 更改初始化参数值
        • PFILESPFILE的区别是什么?
      • 数据库启动和关闭
        • 启动Oracle DB实例
          • 启动Oracle DB实例:NOMOUNT
          • 启动Oracle DB实例:MOUNT
          • 启动Oracle DB实例:OPEN
        • 关闭Oracle DB实例
          • SHUTDOWN NORMAL
          • SHUTDOWN TRANSACTIONAL
          • SHUTDOWN IMMEDIATE
          • SHUTDOWN ABORT
        • 数据库处于RESTRICTQUIESCESUSPEND状态的区别是什么?
        • 数据库的启动经历几个过程
      • 告警日志
        • Oracle 10g11g告警日志文件的位置在哪里?
        • 告警日志的包含内容
        • 管理告警日志
          • V$DIAG_ALERT_EXT
          • 使用外部表方式
          • 视图V$DIAG_ALERT_EXT
          • 利用SHELL脚本
      • 使用跟踪文件

      2

    3. ASM

      课程模块

      培训要点

      学时

      ASM

      • 简介
      • ASM对于管理员的好处
        • ASM是什么?它有哪些优点?
      • ASM实例
        • 主要进程
        • ASM实例初始化参数
      • 数据库实例与ASM之间的交互
      • ASM相关动态性能视图
      • 系统权限
        • SYSASMSYSDBASYSOPER
      • 使用OEM管理ASM用户
      • 启动和停止ASM实例
        • SQL*Plus
        • srvctl
        • asmcmd
      • ASM磁盘
        • 创建ASM磁盘的几种方法
        • ASM文件和FS文件转换的几种方法
        • 分配单元(AU)
        • ASM磁盘有几种冗余方式?
        • ASM 磁盘的相关视图
      • ASM磁盘组
        • ASM故障组
        • 管理磁盘组
          • 创建和删除磁盘组
          • 向磁盘组添加磁盘
          • 从磁盘组删除磁盘
          • 再平衡(Rebalance
        • ASM磁盘组兼容性
        • ASM磁盘组属性
        • 检索ASM元数据
          • 视图
          • asmcmd
      • ASM相关的有哪些进程?
      • ASMLIB是什么?常用命令有哪些?其运行日志路径在哪里?
      • 在采用asmlib时,确认物理磁盘的方法
      • udev是什么?如何配置udev
      • 多路径(multipath)是什么?如何配置多路径?
      • asmcmd工具详细介绍
      • asm相关的OCP题目讲解
      • ASM管理命令行三工具:KFODKFEDAMDU

      2

    4. 网络管理

      课程模块

      培训要点

      学时

      网络管理

      • 监听
        • 配置
        • 管理
        • 静态监听和动态监听
        • listener.ora
      • 服务名
        • tnsnames.ora
        • 简便连接(EZCONNECT方式)
      • 测试Oracle Net连接
        • tnsping
      • 其它实用内容
        • 动态注册和静态注册有什么区别?
        • Oracle中,如何限定特定IP访问数据库?
        • 如何跟踪tnsping过程?
        • 如何启动Oracle数据库的监听日志?
        • 解释GLOBAL_NAMES设为TRUE的用途。
        • tnsnames.ora文件的作用是什么?
        • sqlnet.ora文件的作用是什么?
        • TWO_TASK环境变量的作用是什么?
        • Windows环境下,错误"ORA-12560: TNS: 协议适配器错误"的常见原因有哪些?
        • OracleSYS用户登录报权限不足(ORA-01031: Insufficient Privileges)的常见原因有哪些?
        • 在没有配置ORACLE_HOME环境变量的情况下,如何快速获取数据库软件的ORACLE_HOME目录?
        • 造成错误"ORA-12547: TNS:lost contact"的常见原因有哪些?

      2

       

    5. 管理数据库存储结构(表空间和数据文件)

      课程模块

      培训要点

      学时

      管理数据库存储结构(表空间和数据文件)

      • 表空间和数据文件
      • 表数据的存储方式
      • 浏览存储结构
      • 表空间的存储
      • 预配置的数据库中的表空间
        • SYSTEMSYSAUX表空间
        • SYSTEMSYSAUX表空间占用过大的处理
          • 一、SYSTEM表空间的清理--AUD$的清理
          • 二、SYSAUX表空间的清理--AWR的信息清理
      • 变更表空间
      • 表空间操作
      • Oracle管理的文件(OMF)
        • 数据文件的OMF管理
        • 日志文件的OMF管理
        • 使用OMF管理控制文件
        • 使用OMF 创建ASM文件涉及的一些参数
      • 扩大数据库
      • 改变数据文件的名称和位置、移动数据文件
      • 什么是用户的表空间配额(User tablespace Quota
      • 如何正确的删除表空间数据文件?
      • 表空间管理
        • 表空间大小查询
        • 创建新的表空间
        • 表空间大小为空的原因
        • 扩展表空间
        • 表空间收缩
        • 修改表空间名称
        • 表空间的管理方式
      • 数据文件管理
        • DBA_DATA_FILES
        • 数据文件大小查询
        • 设置数据文件为自动增长
        • 改变数据文件的大小
        • 数据文件的大小为空
      • 什么是大文件表空间(Bigfile Tablespace)?

      1.5

       

    6. 用户、密码文件、权限及角色

      课程模块

      培训要点

      学时

      数据库事务处理

      • 数据库事务的开始与结束
      • COMMITROLLBACK语句
      • 事务控制
      • 事务的控制示例
      • 隐式事务处理
       

      用户及其密码文件

      • 创建、密码
        • 如何重建SCOTT用户
      • 使用工具来创建用户
      • 修改密码
        • Oracle用户密码含特殊字符时的登陆问题
      • 密码文件
        • 创建、作用
        • Oracle的两种认证方式
          • OS验证
          • 密码文件验证
      • PROFILE管理密码
        • 账户锁定
        • 给账户(用户)解锁
        • 终止密码
        • 密码历史
        • 修改密码为永不过期
        • Oracle用户被锁原因及办法
        • 用户的状态(ACCOUNT_STATUS的九种状态)
          • 基本状态
            • 正常(OPEN
            • 锁定状态
              • LOCKED
              • LOCKED(TIMED)
            • 过期状态
              • EXPIRED
              • EXPIRED(GRACE)
          • 组合状态
            • EXPIRED & LOCKED(TIMED)
            • EXPIRED(GRACE) & LOCKED(TIMED)
            • EXPIRED & LOCKED
            • EXPIRED(GRACE) & LOCKED
        • 在不知道用户密码的情况下如何更改密码
          • 用原密码的密文来更改密码
          • 直接更新USER$基表
        • user$.lCOUNT列记录了失败的登陆次数
        • 11g密码区分大小写--sec_case_sensitive_logon
        • 密码延迟验证
        • 哪些用户密码没有被修改过
        • 密码复杂性校验
      • 删除用户
      • 扩展
        • SCHEMAUSER的区别
        • 重建scott用户
        • 使用工具来创建用户
        • 使用profile管理口令
        • 什么是用户的表空间配额(User tablespace Quota
        • 回收DBA角色时需要注意什么问题
       

      权限

      • 概念、视图、基本权限
      • Oracle权限分类
        • 系统权限(System Privilege--DBA_SYS_PRIVS
        • 对象权限(Object Privilege--DBA_TAB_PRIVS
        • 角色权限(Role Privilege--DBA_ROLE_PRIVS
        • 列权限--DBA_COL_PRIVS
      • 如何获取用户的权限
        • DBMS_METADATA.GET_GRANTED_DDL
        • 通过数据字典来获取
        • 通过expexpdp来获取
      • 扩展
        • 如何让普通用户可以TRUNCATE其他用户的表?
        • 关于UNDER ANY TABLE/VIEW权限的解释
      • 用户的权限分为哪几类?如何导出用户的权限?
       

      角色

      • DBASYSDBASYSOPER的区别
      • 概念、创建、删除
      • 分类
        • 预定义角色
          • DBA
          • CONNECT
          • RESOURCE
          • Oracle有哪些预定义角色?
        • 自定义角色
      • 角色生效和失效
       
    7. 锁和会话

      课程模块

      培训要点

      学时

      • 锁的概念、作用
      • 并发和并行
      • 锁的分类
        • 操作/保护对象不同
          • DML
            • 行锁(TX,事务锁)
            • 表锁(TM

            0NONE

            1NULL

            2SSRow-S

            3SXRow-X

            4SShare

            5SSXS/Row-X

            6XExclusive

            • 死锁
          • 行级死锁

            1、主键、唯一索引的死锁

            2、外键未加索引

            3、位图索引遭到并发更新

            4、常见事务引发的死锁

            5、自治事务引发的死锁

          • 块级死锁
          • ITL死锁
          • DDL锁(字典锁)
            • 排它DDL锁(XDDL
            • 共享DDL锁(SDDL
            • 分析锁、可中断解析锁
          • 系统锁
            • 闩锁(Latches
            • 互斥体(Mutexes
            • 内部锁(Internal Locks
      • 用户与系统
        • 自动锁(隐式锁)
        • 显式锁
        • 锁的兼容性
        • 锁的数据字典---字段之间的关联关系
        • 新建或重建索引过程中的锁信息的变化
        • SELECT ... FOR UPDATE
        • DML_LOCKSDDL_LOCK_TIMEOUT参数
        • 在编译存储过程、函数等对象时无响应-
        • 新建或重建索引的锁信息
        • 对于错误"ORA-08104: this index object 68111 is being online built or rebuilt",应该如何处理?

      1

      会话

      • V$SESSION视图
      • 如何查看某一个会话是否被其它会话阻塞?
      • 如何查到会话正在执行的SQL语句?
      • 如何彻底杀掉会话?V$SESSIONSTATUSKILLED的情况下如何找到相关的后台OS进程?
      • 如何让普通用户可以杀掉自己用户的会话?
      • SESSIONSPROCESSES的关系
      • 如何根据OS进程快速获得DB进程信息与正在执行的语句?
      • 怎么杀掉特定的数据库会话?
      • 如何快速的清理Oracle的进程?

      1

       

    8. 审计和Undo

      课程模块

      培训要点

      学时

      审计

      • 责任分离
      • 数据库安全性
      • 监视合规性
      • 标准数据库审计
      • 配置审计线索
      • 统一审计线索
      • 默认审计
      • 什么是审计(Audit)?
      • 审计如何分类
      • 迁移SYS.AUD$表到其它表空间
      • 审计中BY ACCESSBY SESSION的区别是什么?
      • 如何对SYSDBASYSOPER进行审计?
      • 什么是细粒度审计?
      • FGA审计和标准审计有什么区别?

      1

      Undo

      • 还原数据
      • 事务处理和还原数据
      • 存储还原信息
      • 还原数据与重做数据
      • 管理还原
        • 配置还原保留时间
      • 保证还原保留时间
      • 将还原表空间改为固定大小
      • 一般还原信息
      • 使用还原指导

      0.5

      UndoRedo

      • Undo的作用
      • Undo段存储的内容
      • 块清除
        • 快速块清除(Fast Commit Cleanout
        • 延时块清除(Delayed Block Cleanout
      • Undo表空间
      • 系统回滚段(System Rollback Segment)与延迟回滚段(Deferred Rollback Segment
      • ORA-01555
      • Redo日志文件(Redo Log Files)的作用是什么?
      • 如何管理联机Redo日志组与成员?
      • Oracle中,如果联机Redo日志文件损坏,那么如何恢复?

      1

    9. AWR、ASH、ADDM和统计信息

      课程模块

      培训要点

      学时

      AWRASHADDM和统计信息

      • 统计信息(学习SQL优化的必修课)
        • 统计信息的简介和分类
        • 索引统计信息
        • 表统计信息
        • 列统计信息
        • 系统统计信息
        • 内部对象统计信息
        • 自动收集统计信息
          • 统计信息何时变为陈旧状态(10%的含义)?
          • 修改自动收集统计信息的时间
          • DBA_TAB_MODIFICATIONS
        • 怎样收集表的统计信息?怎样收集分区表的统计信息?
        • 什么是动态采样(Dynamic Sampling)?
        • 如何锁住统计信息?
        • 什么是待定的统计信息(Pending Statistic)?
        • 什么是直方图(Histogram)?
        • 什么是多列统计信息(Extended Statistics)?
        • 基表COL_USAGE$的作用是什么?
        • 新建索引后统计信息是否自动收集?
        • 什么是基数反馈(Cardinality Feedback)?
        • 如何查询表和索引的历史统计信息
        • Oracle如何并发地收集统计信息?
        • 当收集表的统计信息时应该注意哪些问题?
        • 什么是基数(Cardinality)和可选择率(Selectivity)?
        • 使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?
        • 当自动收集任务运行时,哪些对象会被收集?
        • 分区表统计信息的更新机制是怎样的?
        • 如何查询表的DML操作数据变化量?
        • 对表执行TRUNCATE操作会将表的统计信息也清除掉吗?
      • 自动负载信息库(AWR)
        • AWR 基础结构
        • AWR 基线
        • Enterprise Manager AWR
        • 管理 AWR
        • 统计级别
        • 什么是AWR
        • 如何获取AWR报告?
        • 定时生成AWR报告
        • AWR报告中主要关注哪些方面内容?
      • ASH
        • 什么是ASH
        • 如何获取ASH报告?
        • 如何查看过去某一段时间数据库系统的会话是否有问题?
      • 自动数据库诊断监视器 (ADDM)
        • 什么是ADDM
        • 如何获取ADDM报告?
      • 自动维护任务
        • 简介
        • 自动维护任务配置
      • 服务器生成的预警
        • 设置阈值
        • 创建和测试预警
        • 预警通知
        • 对预警作出响应

      2

       

    10. JOB和分区

      课程模块

      培训要点

      学时

      JOB

      • DBMS_JOB
        • 创建、删除
        • 后台进程
        • dbms_job package 用法介绍
        • JOB
          • 删除其它用户下的job sys.dbms_ijob.remove()
          • 杀会话+杀后台进程
        • what的写法
          • 存储过程
          • 匿名块
        • 数据字典
          • 所有jobdba_jobs
          • 正在运行dba_jobs_running
        • RAC中指定dbms_job运行在指定实例instance
        • 权限
        • PL/SQL工具创建和管理job
      • DBMS_SCHEDULER
        • DBMS_JOBDBMS_SCHEDULER之间的区别
        • 创建、删除
          • 带参数
          • 不带参数
        • 通过dbms_scheduler去执行shell脚本
        • 权限
        • 轻量级jobLightweight Jobs
        • PL/SQL工具创建和管理job
        • RAC中如何指定JOB的运行实例
        • 如何判断SCHEDULER JOB是否正在运行?
          • DBA_SCHEDULER_JOBS视图的STATE
          • DBA_SCHEDULER_RUNNING_JOBS
        • 如何查询SCHEDULER JOB的运行日志?
          • DBA_SCHEDULER_JOB_LOGDBA_SCHEDULER_JOB_RUN_DETAILS
        • 通过DBMS_SCHEDULER如何调用SHELL脚本?-
        • 如何批量删除JOB
        • 数据字典

      1

      分区

      • 分区表简介
      • 何时考虑分区?
      • 分区表有什么优点
      • 有哪些类型的分区?如何选择用哪种类型的分区表?
        • 范围分区(RANGE PARTITION
        • 哈希分区(HASH PARTITION
        • 列表分区(LIST PARTITION
        • 引用分区(REFERENCE PARTITION
        • 复合分区(组合分区)
        • INTERVAL分区(间隔分区)
          • 月分区
          • 天分区
        • 系统分区
      • 分区模板
      • 分区表的维护
        • 添加分区(add partition)
        • 收缩表分区(coalesce partitions)
        • 删除分区和删除子分区(drop partition)
        • 添加子分区
        • 截断表分区(Truncate Partition)--截断一个分区表中的一个分区的数据
          • 截断分区表的子分区
          • 截断带有约束的分区表
          • 注意事项
        •     移动表分区(Move Partition)
          • 将一个表的分区从一个表空间移动到另一个表空间
          • 压缩表Move--compress
        • 合并分区(Merge Partitions)
        • 重命名某一个分区(Rename Partition)
        • 交换表分区(Exchange Partitions)
        • 修改 list 表分区
          • 修改 list 表分区--Add Values
          • 修改list 表分区--Drop Values
        • 拆分表分区(Split Partition)--分区切割
        • 修改分区表属性
          • 修改表分区默认属性(Modify Default Attributes)
          • 修改表分区当前属性(Modify Partition)
          • 修改分区表的logging属性
          • 并行度
        • 修改表子分区模板(Set Subpartition Template)
      • 分区表的查询优化
        • 单分区查询
        • 跨分区查询
      • 分区表常用数据字典视图有哪些?
      • OracleINTERVAL分区的STORE IN属性存储在哪张表中?
      • 如何查询某个分区是否是INTERVAL分区表?
      • 分区表的压缩
        • 分区表压缩
        • 含有子分区的分区表压缩
        • 分区表哪些分区被压缩了
        • 解压缩
      • 分区表单个分区分析(分区表收集统计信息)
        • 指定partnameGRANULARITY
      • 普通表转换为分区表有哪些办法?
        • 1)导出/导入方法(Export/Import Method
        • 2)子查询插入方法(Insert With a Subquery Method
        • 3)分区交换方法(Partition Exchange Method
        • 4)在线重定义方法(DBMS_REDEFINITION Method
      • 分区表中lob类型的字段
      • 分区表性能注意事项
      • 索引失效的情况
        • 分区表
        • 非分区表

      1

       

    11. 备份和恢复(包括闪回)

      课程模块

      培训要点

      学时

      备份和恢复的概念

      • 故障类别
        • 语句失败
        • 用户进程失败
        • 网络故障
        • 用户错误
        • 介质故障
      • 实例恢复
        • 实例故障
        • 了解实例恢复:检查点 (CKPT) 进程
        • 实例恢复的阶段
        • 优化实例恢复
        • 使用 MTTR 指导
      • 实例恢复和介质恢复的区别
      • 配置可恢复性
      • 配置快速恢复区

      0.5

      SCN

      • SCN的组成
      • SCN的分类
        • 系统检查点SCNSystem Checkpoint SCN
        • 文件检查点SCNDatafile Checkpoint SCN
        • 开始SCNStart SCN
        • 结束SCNStop SCN
      • 如何查看系统当前SCN
      • SCN与时间的相互转换

      0.3

      备份

      • rman 连接数据库
      • RMAN数据字典
      • rman命令
        • 列出备份信息(list)
        • 删除备份(delete)
        • 报告命令(report)
          • 可以报告哪些文件需要备份
          • 报告不可恢复的备份集
          • 报告数据库的信息
        • 交叉检查(crosscheck)
        • VALIDATE DATABASE
      • RMAN的配置
        • CONFIGURE RETENTION POLICY 配置备份保留策略
        • CONFIGURE BACKUP OPTIMIZATION 配置备份优化
        • CONFIGURE DEFAULT DEVICE TYPE 配置 IO 设备类型
        • CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份
        • CONFIGURE DEVICE TYPE 设置并行备份
        • CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
        • CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
        • CONFIGURE ARCHIVELOG DELETION POLICY
      • RMAN中关于备份或归档文件状态OBSOLETEEXPIRED的区别是什么?
      • 物理备份和逻辑备份分别是什么?
      • 差异增量备份和累积增量备份的区别是什么?
      • 什么是块改变跟踪?
      • 完全备份
        • 全库备份脚本分享
      • 增量备份
      • 文件备份
        • 数据文件备份
        • 控制文件
        • spfile
      • 表空间备份

      1

      恢复

      • TRUNCATE恢复方法
      • TSPITR(表空间基于时间点恢复)
      • rm -rf误操作的恢复过程
      • 在丢失归档的情况下如何进行数据文件的恢复
      • 数据文件OFFLINE之后必须要做的一件事是什么?
      • 什么是DRAData Recovery Advisor数据恢复指导)?
        • list failure:列出DRA记录的故障
        • advise failure:显示建议修复的选项
        • repair failure:使用RMAN的建议和关闭故障
      • rm -rf 误操作的恢复过程
      • 丢失了控制文件(多种恢复方法演示)
      • 丢失了在线重做日志文件
      • 数据文件恢复
        • NOARCHIVELOG模式下丢失了数据文件
        • ARCHIVELOG模式下丢失了非关键数据文件
        • ARCHIVELOG模式下丢失了系统关键数据文件
      • 数据故障
      • 只存在备份片如何恢复数据库
      • spfile恢复(多种恢复方法演示)
      • 表空间恢复
        • Undo表空间
        • SYSTEM表空间
        • 其它表空间
      • 归档日志的恢复
        • restore archivelog 的各种选项
        • 怎样清除v$archived_log视图中的过期信息

      1

      闪回

      • 闪回的分类
        • 闪回删除(Flashback DROP--10g基于回收站(Recycle Bin)特性实现
        • 闪回数据库(Flashback Database--基于闪回恢复区(Flash Recovery Area)中的闪回日志10g开始引入,后台进程为:RVWRRecovery Writer
        • 闪回数据归档(Flashback Data Archive--基于闪回归档区(Flashback Archive)中的数据11g开始引入,进程fbdaFlashback Data Archiver Process
        • 闪回版本查询(Flashback Version Query10g
        • 闪回查询(Flashback Query9i
        • 闪回事务查询(Flashback Transaction Query10g
        • 闪回表(Flashback TABLE10g
      • 其它内容
        • 什么是闪回?闪回有哪些分类?
        • Oracle的回收站是什么?
        • 什么是闪回数据归档(Flashback Data Archive?
        • 什么是闪回数据库?
        • 如何让普通用户可以对DBA_SOURCE视图进行闪回查询?
        • 存储过程被覆盖了,如何恢复?

      1

      RMAN 高级应用 Duplicate 复制数据库

      • Duplicating an Active Database
      • Cloning A Database On The Same Server Using Rman Duplicate From Active Database
      • Duplicating a Database with a Target Connection
      • Duplicating a Database with Recovery Catalog Without Target Connection
      • Duplicating a Database Without Recovery Catalog or Target Connection

      1

      bbed简介

      • bbed简介

      0.1

      rman之块介质恢复

      • 坏块的简介
      • 坏块的检测方法
      • BMR恢复坏块
      • 如何确定坏块的对象名
      • 如果发现有坏块,那么如何检索其它未坏的数据?
      • 模拟坏块
        • blockrecover恢复坏块
          • 创建演示环境
          • 单块数据块损坏的恢复处理
          • 多块数据块损坏的恢复处理
          • 坏块的对象定位与影响
        •     bbed模拟
          • bbed修复坏块示例

      0.5

      非归档模式备份恢复

      • 非归档的备份方法
      • 非归档模式下的恢复
      • 非归档模式的备份与恢复示例

      0.2

      OPEN RESETLOGS

      • 使用alter database open resetlogs的场合
      • 为什么使用RESETLOGS
      • RESETLOGS会执行什么操作?

      0.1

      4RECOVER DATABASE命令的区别是什么?

      • 1 RECOVER DATABASE USING BACKUP CONTROLFILE
      • 2 RECOVER DATABASE UNTIL CANCEL
      • 3 RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
      • 4 RECOVER DATABASE UNTIL CANCEL USING BACKUP CONTROLFILE;

      0.1

      日志挖掘logminer

      • 日志挖掘logminer

      0.1

      利用增量数据库备份进行恢复

      • 利用增量数据库备份进行恢复

      0.1

      跨版本恢复

      • RMAN可以跨版本或跨平台执行还原或复制命令吗?
      • 跨大版本恢复
      • 跨小版本恢复

      1

      OS备份(物理备份)和恢复

      • 冷备份(一致性备份、脱机备份) --cool backup
        • 冷备份的优缺点
        • 冷备份一般步骤
        • 冷备脚本的写法
        • 存在冷备下的还原(非归档模式)
        • 丢失数据文件
          • 丢失system表空间
          • 丢失sysaux
          • undo丢失
          • 自己建立的表空间(如usersts_test
          • temp表空间
        • 日志文件丢失
        • 控制文件丢失
        • 参数文件丢失
        • 密码文件丢失
      • 热备份(非一致性备份、联机备份) --只能用于归档模式
        • 简介
        • 热备的过程
          • 基于数据库的热备
          • 基于表空间的热备
          • 控制文件的热备
          • 参数文件的热备
          • 临时表空间的数据文件、日志文件不需要备份
        •     热备份的相关视图
        •     存在热备下的还原
          • 还原控制文件
          • 还原数据文件
            • 可以脱机的表空间文件
            • 不可以脱机的表空间文件

      0.5

      12CRMAN恢复的新特性

      • 新的备份用户特权(SYSBACKUP
      • 可以直接在RMAN中执行SQL语句
      • RMAN中提供了表级别恢复(RECOVER TABLE
      • RMAN自动恢复到REDO终点的步骤简化(UNTIL AVALIABLE REDO
      • 通过网络远程恢复数据库(Restore/Recover from Service

      0.5

       

 

  1. 移动数据(exp、expdp、sqlldr、外部表)

    课程模块

    培训要点

    学时

    expimp

    • EXP导出数据
      • 导出表
      • 导出方案
      • 导出数据库
    • IMP导入数据
      • 导入表
      • 导入方案
      • 导入数据库
      • imp导入常见问题处理
    • 其它实用内容
      • 可以从dmp文件获取哪些信息?
        • 一、获取基本信息:导出的版本、时间、导出的用户
        • 二、获取dmp文件中的表信息
        • 三、解析dmp文件生成parfile文件
        • 四、如何查看dmp文件的字符集
        • 五、如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中?
      • expquery参数
      • 什么是延迟段创建(Deferred Segment Creation)?
      • Oracle 11g不能导出空表的三种解决方法
      • exp导出ASH数据
        • 方法1ctas建表导出,有的客户不让建表
        • 方法2:导出基表的数据
      • 常见错误
        • XP-00091: Exporting questionable statistics 问题处理方法
        • EXP-00026: conflicting modes specified
        • IMP-00013: only a DBA can import a file exported by another DBA
        • IMP-00031: 必须指定 FULL=Y 或提供 FROMUSER/TOUSER TABLES 参数
        • IMP-00002: 无法打开要读取的imp D:/admin.dmp
        • EXP-00008: 遇到 ORACLE 错误 904
        • imp导入报错:IMP-00037: Character set marker unknown
        • IMP-00010: not a valid export file, header failed verification
        • imp-00051,imp-00008
        • IMP-00132: first file in the multi-file export is 32

    0.5

    数据泵(expdpimpdp

    • Oracle 数据泵:概览
    • Oracle 数据泵:优点
    • Oracle Database 11g 中的数据泵增强功能
    • 数据泵的目录对象
    • 创建目录对象
    • 数据泵导出与导入客户机:概览
    • 数据泵实用程序:界面与模式
    • 使用 Database Control 进行数据泵导出
    • 数据泵导出示例
      • 数据泵导出示例:基本选项
      • 数据泵导出示例:高级选项
      • 数据泵导出示例:文件
      • 数据泵导出示例:调度
      • 数据泵导出示例:复查
      • 数据泵导入示例:impdp
    • 其它实用内容
      • 数据泵的一些常用语法命令
      • 如何彻底停止expdp进程?
      • Oracle用户密码含特殊字符时如何登陆?
      • 如何获取数据库DDL的创建语句
        • imp示例
        • impindexfile选项(indexfile导出表和索引的ddl语句)
        • impdp示例
      • expdp时显示时间 metrics
      • NETWORK_LINK 选项
      • 只导出元数据
        • IMPDP】使用 TRANSFORM选项去掉表空间和存储子句
      • 如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?
      • 12c中关于数据泵的新特性
        • expdp VIEWS_AS_TABLES选项导出视图
        • 关闭redo日志的生成(TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
    • 过滤对象(excludeinclude)
      • 导出数据库连接
      • 导出JOB
      • dba_export_objects
    • 重定义表的Schema或表空间
    • 优化导入/导出效率
    • impdp传输表空间(OCM考题)
    • expdp 导出sys用户下的表报错ORA-39165 ORA-39166
    • 数据泵导出导入卡死
    • 使用隐含Trace参数诊断Oracle Data Pump故障
    • 全库导出和导入演示

    0.5

    SQL*Loader

    • 使用 SQL*Loader 加载数据
    • SQL*Loader 控制文件
    • 直接路径加载与常规路径加载的比较
    • 如何将文本文件或Excel中的数据导入数据库?
    • 4G大文件导入示例。

    0.2

    外部表

    • 外部表的优点
    • 使用ORACLE_LOADER定义外部表
    • 使用ORACLE_DATAPUMP填充外部表
    • 使用外部表
      • 基础
      • 只有1
      • 外部表的parallel
      • 利用外部表查看告警日志
        • 先来个最简单的使用方法
        • 再来个稍微复杂点的

    0.2

     

  2. 管理补丁程序

    课程模块

    培训要点

    学时

    管理补丁程序

    • PSUSPU(CPU)BPone-off patch等概念简介
    • 什么是MetalinkMOS
    • UpgradeUpdate
    • 如何查找最新的PSU
    • 如何确认当前数据库已经安装了什么PSU
    • 如何安装PSU
    • PSU安装演示
      • 11.2.0.3.0升级到11.2.0.3.1
    • 热补丁安装演示( One-off Patch
      • 一道OCM考题

    0.5

     

  3. 实验课

    课程模块

    培训要点

    学时

    实验课

    • 数据泵之NETWORK_LINK
    • Duplicating an Active Databaseduplicate复制数据库)
    • Duplicating a Database Without Recovery Catalog or Target Connection
    • Duplicating a Database Without Recovery Catalog or Target Connection
    • TSPITR(表空间基于时间点恢复)
    • 直接复制数据文件实现linux平台数据库复制到windows平台数据库
    • 利用rman来实现linux平台数据库复制到windows平台数据库
    • 热备下的测试库搭建
    • 传输表空间(TTS)一例(linux asm -> win 文件系统)
    • 传输表空间(TTS)一例(win文件系统 -> linux asm )
    • 传输表空间(TTS)一例(AIX asm -> linux asm )
    • 传输表空间(TTS)一例(linux asm -> AIX asm)
    • 传输表空间(TTS)一例(linux asm -> AIX asm)--基于RMAN备份
    • 传输表空间(TTS)一例(AIX asm -> linux asm )--基于RMAN
    • AIX平台数据库迁移到Linux--基于RMAN(真实环境)

    2

     

 

 

  1. OCP讲课内容思维导图

    1. 安装与卸载

  1. SQL基础部分

  1. 基本对象的管理

  1. 数据库管理部分

    1. 体系结构和Oracle Restart

 

  1. 管理数据库实例

 

  1. ASM

  1. 网络管理

  1. 表空间及数据文件

  1. 事务处理及用户

 

  1. 用户权限及角色

  1. 锁和会话

  1. 审计和Undo

  1. AWR、ASH、ADDM、统计信息

  1. JOB和分区

  1. 备份和恢复(包括闪回)

  1. 移动数据

 

  1. 管理补丁程序

 

  1. 实验课

 

  1. OCP讲课文档目录

    1. 数据库安装部分的目录

 

第1章 安装Oracle软件    - 6 -

1.1 Oracle DB 管理员的任务    - 6 -

1.2 用于管理 Oracle DB 的工具    - 7 -

1.3 制定安装计划    - 8 -

1.4 Oracle Grid Infrastructure 和Oracle DB 安装:系统要求    - 9 -

1.5 准备操作系统    - 10 -

1.5.1 设置环境变量    - 11 -

1.5.2 检查系统要求    - 12 -

1.5.3 OUI    - 13 -

1.5.4 GI安装    - 15 -

1.5.4.1 Installation Option(安装选项)    - 15 -

1.5.4.2 选择产品语言    - 16 -

1.5.4.3 创建 ASM 磁盘组    - 17 -

1.5.4.4 定义 ASM 口令    - 17 -

1.5.4.5 定义已授权的操作系统组    - 19 -

1.5.4.6 指定安装位置    - 20 -

1.5.4.7 创建清单    - 21 -

1.5.4.8 执行先决条件检查    - 22 -

1.5.4.9 验证安装概要数据    - 23 -

1.5.4.10 监视安装进度    - 24 -

1.5.4.11 执行root配置脚本    - 25 -

1.5.4.12 执行 Configuration Assistant    - 25 -

1.5.4.13 完成安装    - 27 -

1.5.4.14 配置 FRA 磁盘组    - 27 -

1.5.5 安装 Oracle DB 软件    - 30 -

1.5.5.1 选择安装类型    - 30 -

1.5.5.2 选择网格安装选项    - 31 -

1.5.5.3 选择语言设置    - 32 -

1.5.5.4 选择数据库版本    - 33 -

1.5.5.5 指定安装位置    - 34 -

1.5.5.6 选择操作系统组    - 35 -

1.5.5.7 执行先决条件检查    - 36 -

1.5.5.8 安装概要页    - 37 -

1.5.5.9 安装产品页    - 38 -

1.5.5.10 安装完成    - 39 -

1.5.5.11 安装选项:无提示模式    - 41 -

1.5.5.12 小测验    - 41 -

1.5.5.13 小结    - 42 -

1.5.6 使用DBCA创建Oracle DB    - 42 -

1.5.6.1 计划数据库    - 42 -

1.5.6.2 选择适当的字符集    - 44 -

1.5.6.3 Database Configuration Assistant (DBCA)    - 48 -

1.5.6.4 Database Templates(数据库模板)    - 49 -

1.5.6.5 Database Identification(数据库标识)    - 49 -

1.5.6.6 Management Options(管理选项)    - 50 -

1.5.6.7 Database Credentials(数据库身份证明)    - 50 -

1.5.6.8 Database File Locations(数据库文件位置)    - 51 -

1.5.6.9 Recovery Configuration(恢复配置)    - 52 -

1.5.6.10 Database Content(数据库内容)    - 52 -

1.5.6.11 Initialization Parameters(初始化参数)    - 53 -

1.5.6.12 Database Storage(数据库存储)    - 54 -

1.5.6.13 Create Options(创建选项)    - 54 -

1.5.7 创建数据库设计模板    - 57 -

1.5.8 使用 DBCA 删除数据库    - 58 -

1.5.9 小测验    - 60 -

1.5.10 小结    - 60 -

第2章 RHEL 5.5的OS版本    - 60 -

2.1 安装VMware Workstation 12 Pro    - 60 -

2.1.1 校验MD5值    - 61 -

2.2 安装RHEL 5.5的OS版本    - 63 -

2.2.1 简易安装    - 63 -

2.2.2 一般安装过程    - 68 -

2.2.2.1 开始安装    - 83 -

2.2.2.2 建立自定义的分区结构    - 87 -

2.2.2.3 继续    - 92 -

2.3 其它软件安装    - 99 -

2.3.1 安装VMware Tools    - 99 -

2.3.1.1 安装完成后设置共享文件    - 104 -

2.3.1.2 设置桌面背景和桌面的大小    - 105 -

2.3.2 设置主机IP地址    - 106 -

2.3.3 中文环境切换成英文环境    - 107 -

2.3.4 配置本地yum源(rhel 5.5)    - 107 -

2.3.5 安装rlwrap    - 108 -

2.4 对/dev/sdb进行分区    - 109 -

2.4.1 逻辑卷管理的命令    - 116 -

第3章 安装11.2.0.3 64位单机数据库软件    - 117 -

3.1 安装前的准备工作    - 117 -

3.1.1 软件准备    - 117 -

3.1.2 检查硬件    - 117 -

3.1.3 修改hosts文件、修改主机名    - 118 -

3.1.4 安装软件包检查    - 118 -

3.1.5 内核参数--shell限制    - 120 -

3.1.5.1 /etc/security/limits.conf    - 120 -

3.1.5.2 /etc/pam.d/login    - 121 -

3.1.5.3 /etc/profile    - 121 -

3.1.5.4 /etc/sysctl.conf    - 121 -

3.1.6 关闭防火墙    - 122 -

3.1.7 关闭耗费资源的服务    - 123 -

3.1.8 禁用selinux    - 123 -

3.2 新建用户和组    - 124 -

3.2.1 配置用户的环境变量    - 124 -

3.3 新建安装目录    - 125 -

3.4 将oracle使用者加入到sudo群组中    - 125 -

3.5 准备oracle安装文件    - 125 -

3.5.1 拷贝安装文件    - 125 -

3.5.1.1 计算MD5值    - 128 -

3.5.2 解压安装文件    - 129 -

3.6 开始安装    - 130 -

3.6.1 安装前的检查    - 141 -

3.6.2 执行root.sh脚本    - 144 -

3.7 扩展(静默安装软件)    - 145 -

第4章 创建数据库    - 148 -

4.1 DBCA图形创建    - 148 -

4.1.1 启动监听    - 159 -

4.2 DBCA静默方式建库(必会)    - 161 -

4.2.1.1 什么是静默建库?    - 161 -

4.3 CREATE DATABASE手动建库(OCM)    - 163 -

4.4 删除数据库的几种方式    - 164 -

4.5 在多个不同版本的数据库情况下,如何确定实例的ORACLE_HOME地址?    - 164 -

第5章 配置监听和TNS    - 165 -

5.1 静默创建监听    - 167 -

第6章 其它    - 167 -

6.1 让Oracle DB、监听和oem开机启动(dbstart)    - 167 -

6.1.1 方法1:配置Linux的service服务    - 168 -

6.1.2 方法2:配置/etc/rc.d/rc.local文件    - 170 -

6.1.3 总结    - 172 -

6.2 PLSQL Developer软件使用和Windows 下绿色版Oracle客户端的安装和使用    - 172 -

6.2.1 Linux下绿色版Oracle客户端的安装    - 172 -

6.3 配置glogin.sql    - 173 -

6.4 如何判断Oracle是32位还是64位?    - 173 -

第7章 数据库软件的卸载    - 176 -

第8章 安装grid软件    - 177 -

8.1 OS修改    - 177 -

8.1.1 编辑 /etc/security/limits.conf 文件,在文件尾部添加如下内容:    - 177 -

8.1.2 添加grid用户    - 177 -

8.1.3 配置grid用户的环境变量    - 178 -

8.1.4 扩展磁盘空间    - 179 -

8.2 ASM磁盘准备(创建asm磁盘)    - 179 -

8.2.1 创建ASM磁盘的方法1--Faking方式    - 179 -

8.2.2 创建ASM磁盘的方法2--直接修改/etc/sysconfig/rawdevices配置raw(rhel6之后不支持)    - 182 -

8.2.3 创建ASM磁盘的方法3--Udev方式    - 184 -

一、 uuid方式    - 184 -

2、 配置 udev 绑定的 scsi_id    - 187 -

3、 创建并配置udev rules文件    - 188 -

4、 udevadm进行测试    - 189 -

5、 添加完成后,重启 udev,不同 Linux 发行版本重启方式不一样。    - 189 -

6、 查看绑定的 asm,如果此时还是看不到 asm disk,请重启操作系统后再查看。    - 189 -

二、 raw方式    - 190 -

8.2.4 创建ASM磁盘的方法4--ASMLIB方式    - 191 -

一、 系统版本号    - 191 -

二、 Oracle asmlib下载    - 191 -

三、 上传并安装上述的三个rpm软件包    - 193 -

四、 配置ASM    - 193 -

五、 系统添加磁盘    - 194 -

六、 grid软件安装完毕后配置asm_diskstring 路径    - 195 -

七、 测试    - 197 -

8.3 安装grid软件    - 198 -

8.3.1 解压软件    - 198 -

8.3.2 开始安装grid软件(图形界面)    - 199 -

8.3.2.1 创建ASM磁盘组    - 203 -

8.3.2.2 执行root脚本    - 209 -

8.3.2.3 继续安装    - 210 -

8.3.2.4 测试ASM实例    - 211 -

8.3.3 静默安装grid软件(可选)    - 212 -

8.3.3.1 安装grid软件    - 212 -

8.3.3.2 静默创建ASM实例    - 215 -

8.3.3.3 静默创建grid用户的监听    - 216 -

8.4 创建DATA和FRA的ASM磁盘组    - 218 -

8.5 创建asm管理的数据库    - 221 -

8.6 创建EM    - 223 -

8.7 其它扩展    - 225 -

8.7.1 在AIX或Linux下,如何查看磁盘是否包含数据?    - 225 -

8.7.2 如何让crs_stat命令显示完整    - 227 -

8.7.3 kfod命令    - 227 -

8.7.3.1 在采用asmlib时,确认物理磁盘的方法    - 228 -

 

 

 

 

  1. Oracle基本SQL部分及其基本管理

 

目录    - 1 -

序言    - 12 -

第1章 SQL简介    - 12 -

1.1 SQL的起源和分类    - 13 -

1.1.1 SQL的起源    - 13 -

1.1.2 SQL的分类    - 13 -

1.2 提交(COMMIT)类型    - 15 -

1.3 如何查询在线和离线的官方文档    - 19 -

第2章 SQL*Plus工具    - 20 -

2.1 SQL 与 SQL*Plus    - 20 -

2.2 SQL 语句与SQL*Plus    - 20 -

2.2.1 关系对比    - 20 -

2.2.2 关系图    - 21 -

2.3 登录 SQL*Plus    - 21 -

2.3.1 EZCONNECT方式    - 22 -

2.3.2 使用 SQL*Plus    - 24 -

2.4 SQL*Plus和SQL Developer    - 24 -

2.4.1 从Shell脚本调用SQL*Plus    - 25 -

2.4.1.1 shell调用    - 25 -

一、 最简单的shell里调用sqlplus    - 25 -

二、 把sqlplus执行结果传递给shell方法一    - 26 -

三、 把sqlplus执行结果传递给shell方法二    - 26 -

四、 把shell程序参数传递给sqlplus    - 27 -

五、 为了安全要求每次执行shell都手工输入密码    - 27 -

六、 为了安全从文件读取密码    - 28 -

2.4.1.2 bat调用    - 28 -

2.4.2 从SQL*Plus调用SQL脚本    - 29 -

2.4.3 sqlplus中将行转为列输出    - 31 -

2.5 SQL*Plus的设置    - 34 -

2.5.1 显示表结构    - 35 -

2.5.2 SET TIMING ON; 和 SET TIME ON    - 35 -

2.5.3 SQL*Plus编辑命令    - 35 -

2.5.4 使用 LIST, n, 和 APPEND    - 36 -

2.5.5 SQL*Plus 文件命令    - 36 -

2.5.5.1 导出csv、和html文件    - 37 -

一、 导出csv文件格式    - 37 -

二、 导出html文件格式    - 38 -

2.5.6 如何使用上下左右方向键    - 40 -

2.5.7 设置执行脚本时的搜寻路径    - 41 -

2.5.8 SQL*Plus中@和@@的区别是什么?    - 41 -

2.5.9 SQL*Plus中&与&&的区别是什么?    - 41 -

2.5.10 glogin.sql脚本的作用是什么?如何修改命令的提示符?    - 42 -

2.5.11 SQL*Plus的ERRORLOGGING的作用是什么?    - 42 -

2.5.12 如何给SQL*Plus安装帮助?    - 43 -

2.6 iSQL*Plus 简介    - 44 -

2.6.1 iSQL*Plus概览    - 46 -

2.6.2 SQL 和iSQL*Plus 交互作用    - 46 -

第3章 基本SELECT语句    - 46 -

3.1 SELECT语句的功能    - 47 -

3.2 选择所有列    - 48 -

3.3 选择指定的列    - 48 -

3.4 SQL语句的编辑    - 49 -

3.5 列标题默认属性    - 49 -

3.6 算术表达式    - 51 -

3.7 定义空值    - 52 -

3.7.1 NULL的注意事项    - 54 -

3.7.2 IS NULL 走索引    - 55 -

3.7.3 多表查询中的空值问题    - 56 -

3.7.3.1 情形一:    - 57 -

3.7.3.2 情形二:    - 58 -

3.8 定义列别名    - 59 -

3.9 连字运算符    - 61 -

3.9.1 文字字符串    - 62 -

3.10 相同的行--去重(distinct)    - 62 -

3.11 Quote (q)--11g新增    - 64 -

3.12 Oracle特殊字符的处理    - 67 -

3.13 本章学习目的    - 68 -

第4章 条件和排序    - 69 -

4.1 用选择限定行    - 69 -

4.1.1 限定语法    - 70 -

4.1.2 使用WHERE子句    - 71 -

4.1.3 条件中使用字符串和日期    - 71 -

4.1.4 比较条件    - 72 -

4.1.4.1 使用比较条件    - 72 -

4.1.4.2 使用BETWEEN条件    - 73 -

4.1.4.3 使用IN条件    - 73 -

4.1.4.4 使用LIKE条件    - 75 -

一、 LIKE模糊查询如何使用索引    - 77 -

4.1.4.5 使用NULL/NOT NULL条件    - 79 -

4.1.5 逻辑条件(AND、OR 、NOT)    - 81 -

4.1.5.1 注意问题    - 83 -

4.1.6 优先规则    - 84 -

4.2 排序    - 85 -

4.2.1 降序排序    - 86 -

4.2.2 用列别名排序    - 87 -

4.2.3 多列排序    - 88 -

4.3 总结    - 89 -

第5章 Oracle SQL 单行函数    - 89 -

5.1 学习目的    - 89 -

5.2 SQL函数介绍    - 89 -

5.3 SQL函数分类    - 90 -

5.3.1 单行函数    - 90 -

5.4 DUAL表介绍    - 91 -

5.4.1 扩展    - 92 -

5.5 字符函数    - 93 -

5.5.1 大小写处理函数    - 93 -

5.5.2 字符处理函数    - 94 -

5.6 数字函数    - 96 -

5.7 日期函数    - 97 -

5.7.1 系统日期    - 97 -

5.7.2 用日期计算    - 98 -

5.7.3 日期函数    - 99 -

5.7.4 转换函数    - 100 -

5.7.5 隐式数据类型转换    - 101 -

5.7.5.1 扩展    - 101 -

5.7.6 显式数据类型转换    - 103 -

5.7.6.1 日期格式模板    - 103 -

5.7.6.2 时间格式模板    - 104 -

5.7.6.3 数字格式模板    - 104 -

5.8 嵌套函数    - 104 -

5.9 通用函数    - 104 -

5.10 条件表达式    - 106 -

5.10.1 CASE表达式    - 106 -

5.10.2 DECODE函数    - 107 -

5.11 总结    - 108 -

5.12 扩展    - 109 -

5.12.1 如何将一个数字转换为字符串并且按照指定格式显示?    - 109 -

5.12.2 ORA-00904: "wm_concat":invalid identifier错误解决    - 110 -

5.12.3 如何判断一个字符串是否含有中文汉字?    - 115 -

5.12.4 在Oracle中,如何判断一个字符串是否为数字?    - 117 -

5.12.5 在Oracle中,如何让日期显示为"年-月-日 时:分:秒"的格式?    - 118 -

5.12.6 如何判断当天是否月份最后一天?    - 119 -

第6章 用组函数合计数据    - 120 -

6.1 学习目的    - 120 -

6.2 组函数的概念    - 121 -

6.3 组函数使用    - 121 -

6.3.1 使用AVG、SUM、MAX、MIN    - 122 -

6.3.1.1 MAX和MIN优化写法    - 122 -

6.4 使用COUNT    - 124 -

6.4.1 使用COUNT(DISTINCT 列)    - 125 -

6.4.2 COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT 列名)    - 125 -

6.5 组函数与空值    - 126 -

6.6 GROUP BY 子句    - 127 -

6.7 HAVING 子句    - 128 -

6.8 嵌套组函数    - 128 -

6.9 总结    - 129 -

第7章 从多表中查询数据    - 129 -

7.1 从多表中查询数据    - 129 -

7.2 有效连接条件与笛卡儿积    - 130 -

7.2.1 笛卡尔积是什么?    - 130 -

第8章 连接的类型    - 131 -

8.1 等值连接    - 132 -

8.1.1 等值连接中的列别名、表别名    - 134 -

8.1.2 多于两个表的等值连接    - 135 -

8.2 外连接    - 136 -

8.2.1 外连接(扩展)    - 140 -

8.3 自连接    - 143 -

8.3.1 自连接(Self Join)    - 144 -

8.4 SQL 1999 连接语法介绍    - 145 -

8.4.1 交叉连接    - 145 -

8.4.2 自然连接    - 145 -

8.4.3 ON子句    - 146 -

8.5 关于SQL Join 中 where和and的区别    - 147 -

8.6 层次查询 分层查询 树形查询    - 150 -

8.6.1 层次查询语法结构    - 151 -

8.6.2 分析    - 153 -

8.6.3 SYS_CONNECT_BY_PATH 用于 行列转换    - 166 -

8.6.4 层次查询进阶    - 167 -

8.6.5 综合案例    - 170 -

8.6.6 快速构造大表    - 173 -

8.7 WITH语法    - 174 -

8.8 总结    - 175 -

第9章 子查询    - 175 -

9.1 学习目的    - 176 -

9.2 子查询介绍    - 176 -

9.3 子查询分类    - 178 -

9.3.1 单行子查询    - 178 -

? ?单行子查询:子查询只返回一行    - 178 -

? ?针对单行子查询的条件和普通条件一样    - 178 -

? ?单行子查询中使用HAVING    - 178 -

? ?可以把单行子查询想像作一个可变的值。它和一个单一值没什么区别    - 178 -

9.3.2 单行子查询错误    - 181 -

9.3.3 多行子查询    - 182 -

9.3.4 总结    - 184 -

9.3.5 子查询扩展    - 184 -

9.3.5.1 标量子查询和关联子查询    - 185 -

9.3.5.2 子查询中的IN和EXISTS    - 186 -

9.3.5.3 多行子查询    - 187 -

9.4 一个案例    - 188 -

第10章 合并查询(集合查询)    - 190 -

10.1 UNION    - 190 -

10.2 UNION ALL    - 191 -

10.3 INTERSECT(相交)    - 191 -

10.4 MINUS(相减)    - 192 -

第11章 数据字典    - 192 -

11.1 动态性能视图    - 193 -

11.1.1 动态性能视图:注意事项    - 195 -

11.2 数据字典    - 196 -

11.2.1 数据字典视图    - 197 -

11.3 扩展    - 199 -

第12章 创建和管理表    - 201 -

12.1 数据库对象及表介绍    - 201 -

12.2 有关表的最大列数    - 202 -

12.3 表的分类    - 203 -

12.3.1 Oracle的表可以分为哪几类?    - 203 -

12.4 表和列的命名规则    - 204 -

12.5 CREATE TABLE语句创建表    - 205 -

12.5.1 用子查询语法创建表(CTAS)    - 206 -

12.5.1.1 CTAS及其优化    - 207 -

12.6 DEFAULT选项    - 207 -

12.7 引用表    - 208 -

12.8 数据类型介绍    - 209 -

12.8.1 时间数据类型    - 210 -

12.8.1.1 TIMESTAMP类型    - 210 -

12.8.1.2 INTERVAL YEAR TO MONTH数据类型    - 212 -

12.8.1.3 INTERVAL DAY TO SECOND数据类型    - 213 -

12.9 ALTER TABLE语句    - 214 -

12.9.1 添加列    - 214 -

12.9.2 修改列    - 215 -

12.9.2.1 修改字段的类型、大小和默认值(不能有数据)    - 215 -

12.9.3 删除列(删除一个字段或清空某一列的数据)    - 215 -

12.9.3.1 SET UNUSED选项    - 216 -

12.9.4 修改表的存储特征    - 217 -

12.9.5 修改表的名字    - 217 -

12.9.6 修改字段的名字    - 217 -

12.9.7 移动表所在的表空间    - 218 -

12.10 删除表    - 218 -

12.11 改变对象名称    - 218 -

12.12 截断表(TRUNCATE)    - 219 -

12.13 给表和列添加注释    - 219 -

12.13.1 利用SQL生成需要的SQL语句    - 220 -

12.14 总结    - 222 -

第13章 操作数据    - 222 -

13.1 学习目的    - 222 -

13.2 数据操纵语言    - 223 -

13.3 INSERT插入数据的语法    - 223 -

13.3.1 INSERT插入值的变化    - 225 -

13.3.1.1 插入特殊值    - 225 -

13.3.1.2 插入指定日期    - 226 -

13.3.1.3 插入可输入变量    - 226 -

13.3.1.4 从另外一个表复制    - 226 -

13.3.1.5 在INSERT语句中使用子查询    - 227 -

13.4 UPDATE更新数据的语法    - 227 -

13.4.1 UPDATE更新的例子和问题    - 228 -

13.4.2 用子查询更新两列    - 228 -

13.4.3 更新基于另一个表的行(多表关联更新--使用子查询更新数据)    - 229 -

13.4.3.1 例子    - 230 -

13.4.4 更新导致完整性约束报错    - 232 -

13.5 DELETE删除数据的语法    - 233 -

13.5.1 TRUNCATE语句    - 234 -

13.5.2 DELETE更新的例子和问题    - 235 -

13.5.3 从表中删除行    - 235 -

13.5.4 删除基于另一个表的行    - 235 -

13.5.4.1 一道OCM题    - 236 -

13.5.5 删除数据导致的完整性约束    - 237 -

13.5.6 查找和删除重复的记录    - 237 -

13.6 显示默认值    - 238 -

13.7 MERGE合并语句语法    - 238 -

13.7.1 MERGE语句在优化中的巨大作用    - 242 -

13.7.2 DML语句优化的方法    - 243 -

13.8 DELETE、DROP和TRUNCATE的区别是什么?    - 244 -

13.9 本章总结    - 245 -

第14章 约束    - 245 -

14.1 约束的概念和原则    - 245 -

14.1.1 约束的概念    - 246 -

14.1.2 约束的原则    - 246 -

14.2 定义约束    - 246 -

14.2.1 定义约束的语法    - 246 -

14.2.2 定义约束分类    - 247 -

14.3 几种常见的约束    - 248 -

14.3.1 NOT NULL约束    - 249 -

14.3.2 UNIQUE约束    - 249 -

14.3.3 PRIMARY KEY约束    - 251 -

14.3.4 FOREIGN KEY约束    - 251 -

14.3.4.1 外键列的索引    - 255 -

14.3.4.2 外键的死锁(外键未加索引)    - 258 -

一、 脚本    - 263 -

二、 找出没有建立索引的外键    - 265 -

14.3.5 CHECK约束    - 266 -

14.4 管理约束    - 268 -

14.4.1 添加约束    - 268 -

14.4.2 删除约束    - 270 -

14.4.3 禁用、启用约束    - 271 -

14.4.4 级联约束    - 271 -

14.4.5 查看约束    - 272 -

14.5 ocp    - 273 -

14.6 总结    - 274 -

第15章 视图    - 274 -

15.1 视图的概念和优势    - 274 -

15.2 视图的概念    - 275 -

15.2.1 使用视图的优势    - 275 -

15.3 创建简单视图    - 276 -

15.3.1 视图中查询数据    - 277 -

15.4 创建复杂视图    - 277 -

15.5 视图中DML操作的执行规则    - 277 -

15.5.1 With Check OPTION子句    - 278 -

15.5.2 With READ ONLY子句    - 278 -

15.6 管理视图    - 278 -

15.6.1 修改视图    - 279 -

15.6.2 删除视图    - 279 -

15.6.3 内建视图    - 279 -

15.7 视图扩展    - 280 -

15.7.1 Oracle中的视图    - 280 -

15.7.2 在什么情况下可以对视图执行增、删、改操作?    - 281 -

15.8 Top-N 分析    - 282 -

15.8.1 扩展    - 283 -

15.9 物化视图简介    - 285 -

15.9.1 扩展    - 286 -

查询重写(QueryRewrite):    - 287 -

15.10 总结    - 290 -

第16章 其他数据库对象    - 290 -

16.1 其他数据库对象的作用    - 291 -

16.2 序列    - 291 -

16.2.1 序列的语法    - 292 -

16.2.2 定义及查询序列    - 292 -

16.2.3 NEXTVAL和CURRVAL伪列    - 293 -

16.2.4 使用序列    - 293 -

16.2.5 修改序列    - 294 -

16.2.6 删除序列    - 295 -

16.2.7 麦苗扩展    - 295 -

16.2.7.1 注意内容    - 295 -

16.2.7.2 性能问题    - 296 -

16.2.7.3 OCP和OCM题举例    - 296 -

16.3 索引    - 297 -

16.3.1 索引的优缺点    - 297 -

16.3.2 索引的使用原则    - 298 -

16.3.3 创建索引    - 299 -

16.3.4 查询索引    - 300 -

16.3.5 基于函数的索引    - 300 -

16.3.6 删除索引    - 301 -

16.3.7 麦苗扩展    - 301 -

16.3.7.1 如何预估即将创建索引的大小?    - 301 -

16.3.7.2 如何监控索引的使用状况?    - 302 -

16.3.7.3 哪些操作会导致索引失效?    - 305 -

16.3.7.4 什么是索引的选择性(Index Selectivity)?    - 306 -

16.3.7.5 为什么索引没有被使用?    - 307 -

16.3.7.6 IS NULL如何用到索引?    - 310 -

16.3.7.7 LIKE模糊匹配如何选择索引?    - 310 -

16.4 同义词    - 311 -

16.4.1 概念语法    - 311 -

16.4.2 创建和删除同义词    - 311 -

16.4.3 扩展    - 312 -

16.4.3.1 PLAN_TABLE表的真谛    - 312 -

16.5 数据库链接(dblink)    - 313 -

16.5.1 dblink扩展    - 314 -

16.5.2 一道OCM考题    - 317 -

===================================================    - 317 -

存储过程、函数、包的开发    - 318 -

第17章 PL/SQL 块    - 318 -

17.1 PL/SQL 简介    - 318 -

17.2 程序形式    - 318 -

17.3 编写规范    - 318 -

17.3.1 注释    - 318 -

17.3.2 标志符号的命名规范    - 319 -

17.4 PL/SQL 块(匿名块)结构    - 319 -

17.4.1 声明部分    - 320 -

17.4.2 可执行部分    - 322 -

第18章 控制结构(分支,循环,控制)    - 323 -

18.1 简介    - 323 -

18.2 条件分支语句 --if    - 323 -

18.3 循环    - 326 -

18.3.1 loop    - 326 -

18.3.2 while循环    - 328 -

18.3.3 for 循环    - 330 -

18.3.3.1 游标for循环    - 332 -

18.4 顺序控制 –goto,null    - 333 -

18.4.1 goto 语句    - 333 -

18.4.2 null    - 335 -

第19章 异常处理    - 337 -

19.1 概述    - 337 -

19.2 异常处理    - 337 -

19.2.1 预定义异常 ( Predefined )    - 337 -

19.2.2 非预定义异常(Non Predefined )    - 343 -

19.2.3 自定义异常(User_define)    - 345 -

19.3 抛出异常    - 348 -

19.3.1 raise    - 348 -

19.3.2 RAISE_APPLICATION_ERROR    - 349 -

19.4 存过中捕获异常的行号    - 350 -

19.5 如何捕获错误并记录到表中?    - 354 -

第20章 存储过程(Stored Procedure)    - 359 -

20.1 存储过程和函数的区别是什么?    - 359 -

20.2 示例    - 359 -

20.2.1 执行和调用存储过程    - 360 -

20.2.1.1 执行存过    - 360 -

20.2.1.2 存过调用存过    - 362 -

第21章 Oracle中的触发器    - 362 -

21.1 一些常用的监控    - 369 -

21.2 Oracle的自治事务是什么?    - 374 -

第22章 Oracle中过程/函数返回集合    - 376 -

22.1.1 函数返回系统游标    - 376 -

第23章 Oracle分批提交DML    - 377 -

23.1 分批update    - 377 -

23.2 分批delete    - 378 -

23.3 分批insert    - 379 -

 

 

 

 

  1. Oracle 备份恢复(rman、闪回、数据泵、exp、数据迁移等)

 

目录    - 1 -

第1章 备份和恢复的概念    - 15 -

1.1 故障类别    - 17 -

1.1.1 语句失败    - 17 -

1.1.2 用户进程失败    - 18 -

1.1.3 网络故障    - 19 -

1.1.4 用户错误    - 19 -

1.1.5 介质故障    - 20 -

1.2 Oracle的SCN是什么?    - 20 -

1.2.1 SCN的组成    - 20 -

1.2.2 SCN的分类    - 21 -

1.2.3 如何查看系统当前SCN    - 22 -

1.2.4 SCN与时间的相互转换    - 22 -

1.2.5 SYS.SMON_SCN_TIME字典基表    - 24 -

1.3 实例恢复(实例故障)    - 25 -

1.3.1 实例故障    - 25 -

1.3.2 了解实例恢复:检查点 (CKPT) 进程    - 26 -

1.3.3 实例恢复的阶段    - 28 -

1.3.4 优化实例恢复    - 30 -

1.3.4.1 使用 MTTR 指导    - 31 -

1.3.5 麦苗扩展    - 32 -

1.3.5.1 实例恢复(前滚和回滚)    - 32 -

1.4 配置可恢复性    - 35 -

1.5 配置快速恢复区    - 36 -

1.6 测验    - 37 -

1.7 小结    - 37 -

第2章 闪回体系    - 38 -

2.1 什么是闪回?闪回有哪些分类?    - 39 -

2.1.1 闪回查询(Flashback Query)    - 42 -

2.1.2 闪回版本查询(Flashback Version Query)    - 44 -

2.1.3 闪回事务查询(Flashback Transaction Query)    - 46 -

2.1.4 闪回表(Flashback TABLE)    - 47 -

2.1.5 闪回删除(Flashback DROP)    - 51 -

2.1.6 闪回数据库(Flashback Database)    - 52 -

2.1.7 闪回数据归档(Flashback Data Archive)    - 52 -

2.1.8 相关OCP题目    - 52 -

2.2 Oracle的回收站是什么?    - 54 -

2.2.1 相关OCP题目    - 56 -

2.3 什么是闪回数据归档(Flashback Data Archive)?    - 58 -

2.3.1 相关OCP题目    - 60 -

2.4 什么是闪回数据库?    - 63 -

2.4.1 相关OCP题目    - 65 -

2.5 其它扩展    - 67 -

2.5.1 如何让普通用户可以对DBA_SOURCE视图进行闪回查询?    - 67 -

第3章 执行数据库备份    - 68 -

3.1 课程目标    - 68 -

3.2 Oracle Secure Backup    - 70 -

3.3 用户管理的备份    - 71 -

3.4 术语    - 72 -

3.5 Recovery Manager (RMAN)    - 74 -

3.5.1 rman 连接数据库    - 75 -

3.5.2 RMAN数据字典    - 75 -

3.5.3 rman命令    - 76 -

3.6 RMAN简介    - 76 -

3.7 RMAN的配置    - 79 -

3.7.1 定义RMAN配置    - 79 -

3.7.2 显示RMAN默认配置    - 80 -

3.7.2.1 CONFIGURE RETENTION POLICY 配置备份保留策略    - 81 -

一、 设置 RMAN 备份的保存策略    - 84 -

3.7.2.2 CONFIGURE BACKUP OPTIMIZATION 配置备份优化    - 86 -

3.7.2.3 CONFIGURE DEFAULT DEVICE TYPE 配置 IO 设备类型    - 89 -

3.7.2.4 CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份    - 89 -

一、 控制文件快照自动备份    - 90 -

二、 11G新特性-控制文件延迟自动备份    - 90 -

3.7.2.5 CONFIGURE DEVICE TYPE 设置并行备份    - 96 -

3.7.2.6 CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度    - 97 -

3.7.2.7 CONFIGURE MAXSETSIZE 配置备份集的最大尺寸    - 98 -

3.7.2.8 CONFIGURE ARCHIVELOG DELETION POLICY    - 98 -

3.7.3 FORMAT参数    - 102 -

3.7.4 配置备份设置    - 102 -

3.7.4.1 调度备份:策略    - 104 -

3.7.4.2 调度备份:选项    - 105 -

3.7.5 OCP    - 110 -

3.8 rman 其它命令    - 113 -

3.8.1 列出备份信息(list)    - 113 -

3.8.2 删除备份(delete)    - 115 -

3.8.2.1 RMAN中关于备份或归档文件状态OBSOLETE和EXPIRED的区别是什么?    - 118 -

3.8.3 报告命令(report)    - 119 -

3.8.3.1 可以报告哪些文件需要备份    - 119 -

3.8.3.2 报告不可恢复的备份集    - 119 -

3.8.3.3 报告数据库的信息    - 120 -

3.8.4 交叉检查(crosscheck)    - 125 -

3.8.5 show    - 126 -

3.8.6 VALIDATE DATABASE    - 126 -

3.9 批处理命令RUN    - 126 -

3.10 物理备份和逻辑备份分别是什么?    - 127 -

3.11 catalog库    - 128 -

3.11.1 恢复目录(Recovery Catalog)的概念    - 128 -

3.11.2 如何创建恢复目录(Recovery Catalog)    - 129 -

3.11.2.1 例子    - 129 -

3.11.2.2 官网    - 131 -

一、 Prerequisites    - 131 -

二、 基本恢复目录    - 133 -

三、 虚拟私有目录--RVPC(RMAN virtual private catalog)    - 133 -

3.11.3 Recovery catalog resyncing 恢复目录同步    - 138 -

3.11.4 IMPORT CATALOG    - 138 -

3.11.4.1 例子    - 141 -

3.11.5 Managing a Recovery Catalog    - 142 -

3.11.6 OCP    - 142 -

3.12 BACKUP命令---RMAN备份    - 151 -

3.12.1.1 whole backup    - 153 -

3.12.1.2 full backup    - 154 -

一、 完全备份示例    - 156 -

3.12.2 备份表空间    - 157 -

3.12.2.1 temp表空间    - 158 -

3.12.3 备份指定数据文件    - 158 -

3.12.3.1 system    - 159 -

3.12.4 备份控制文件    - 159 -

3.12.4.1 在线镜像备份    - 162 -

3.12.4.2 自动备份    - 162 -

一、 显式自动备份    - 162 -

二、 隐式自动备份    - 163 -

3.12.4.3 手动备份    - 163 -

一、 备份集备份    - 163 -

二、 镜像复制备份    - 163 -

三、 重建脚本    - 164 -

3.12.4.4 控制文件快照    - 165 -

3.12.5 备份spfile    - 172 -

3.12.6 备份归档日志文件    - 172 -

3.12.6.1 归档重做日志的备份与恢复    - 173 -

3.12.6.2 联机日志的备份    - 174 -

3.13 管理备份    - 175 -

3.13.1 查看备份报告    - 177 -

3.13.2 监视快速恢复区    - 178 -

3.13.3 使用 RMAN 命令行    - 179 -

3.14 麦苗扩展    - 180 -

3.14.1 差异增量备份和累积增量备份的区别是什么?    - 180 -

3.14.2 什么是块改变跟踪(Block Change Tracking)?    - 185 -

3.14.2.1 OCP    - 186 -

3.15 我的备份脚本    - 188 -

3.15.1 linux    - 189 -

3.15.1.1 nocatalog全备    - 189 -

一、 简易版-归档    - 191 -

二、 简易版-非归档mount全备    - 192 -

3.15.1.2 catalog增量备份脚本    - 193 -

一、 我自己的    - 195 -

3.15.1.3 Nocatalog增量备份脚本    - 198 -

一、 我自己的    - 211 -

3.15.2 windows    - 213 -

3.15.2.1 全备--我自己的    - 215 -

3.15.2.2 增量备份    - 216 -

3.15.2.3 设置windows定时任务    - 219 -

一、 XP下设置    - 222 -

3.16 OCP    - 224 -

3.17 小测验    - 234 -

3.18 小结    - 234 -

第4章 执行数据库恢复    - 234 -

4.1 课程目标    - 234 -

4.2 打开数据库    - 235 -

4.2.1 使数据库保持在打开状态    - 237 -

4.3 数据库归档恢复    - 238 -

4.4 对数据库进行完全介质恢复    - 238 -

4.5 物理文件恢复    - 239 -

4.5.1 口令文件(密码文件)    - 239 -

4.5.2 spfile 丢失    - 239 -

4.5.2.1 数据库没有挂掉    - 239 -

4.5.2.2 数据库已经挂掉    - 240 -

一、 从rman的自动备份中找回    - 240 -

二、 手动创建    - 246 -

4.5.3 controlfile丢失    - 246 -

4.5.3.1 控制文件恢复前的准备    - 248 -

4.5.3.2 有备份情况下的恢复    - 251 -

一、 控制文件之一丢失(单个控制文件丢失或损坏)    - 251 -

二、 各种情况下的丢失    - 252 -

三、 使用控制文件快照    - 275 -

4.5.3.3 重建控制文件---无备份情况下的恢复    - 278 -

一、 重建控制文件resetlogs和noresetlogs的区别    - 280 -

二、 在线日志无损情况下的重建    - 300 -

三、 在线日志损坏情况下的重建    - 301 -

四、 具有只读数据文件情况下的重建    - 303 -

4.5.3.4 控制文件不一致    - 307 -

4.5.3.5 OCP    - 308 -

4.5.4 Redo文件丢失(online+archive)    - 310 -

4.5.4.1 在线Redo日志    - 310 -

一、 查看日志文件的状态    - 312 -

二、 日志文件的恢复方法    - 313 -

三、 数据库归档/非归档模式下inactive redo异常ORA-00316 ORA-00327    - 315 -

四、 正常关闭数据库current redo异常ORA-00316 ORA-01623    - 318 -

五、 数据库异常关闭current/active redo异常ORA-00316 ORA-01624 ORA-01194    - 321 -

六、 Loss of a Redo Log File    - 332 -

七、 Loss of a Redo Log Group    - 337 -

八、 loss all online redo logs    - 339 -

九、 数据库未挂掉的情况下的恢复    - 340 -

4.5.4.2 恢复归档日志archivelog    - 341 -

一、 restore archivelog 的各种选项    - 341 -

二、 我的例子    - 351 -

三、 怎样清除v$archived_log视图中的过期信息    - 356 -

4.5.4.3 OCP    - 358 -

4.5.5 datafile丢失    - 362 -

4.5.5.1 在NOARCHIVELOG模式下丢失了数据文件    - 364 -

4.5.5.2 在ARCHIVELOG模式下丢失了非关键数据文件    - 365 -

一、 在ARCHIVELOG模式下丢失了系统关键数据文件    - 366 -

4.5.5.3 open状态下可以脱机的文件(sysaux,user等等)    - 367 -

一、 修改数据文件名称    - 368 -

4.5.5.4 open状态下不能脱机的文件(system,undo,temp)    - 368 -

一、 undo文件丢失    - 373 -

4.5.5.5 Loss of a Noncritical Data File in ARCHIVELOG Mode    - 374 -

4.5.5.6 Loss of a System-Critical Data File in ARCHIVELOG Mode    - 374 -

一、 system数据文件丢失    - 375 -

二、 【RMAN】SYSTEM表空间数据文件丢失恢复模拟    - 380 -

三、 system    - 395 -

4.5.5.7 非归档模式    - 397 -

4.5.5.8 如果删除表空间之前删除了表空间文件,解决办法:    - 398 -

4.5.5.9 OCP    - 398 -

4.5.5.10 数据文件没有备份的情况    - 399 -

4.5.6 表空间丢失    - 406 -

4.5.6.1 临时表空间数据文件(tempfile)丢失    - 408 -

4.5.6.2 Recovering from a Lost Index Tablespace    - 411 -

4.5.6.3 Recovering a Read-Only Tablespace    - 412 -

4.5.6.4 undo表空间    - 412 -

一、 有备份    - 426 -

二、 无备份    - 429 -

三、 使用bbed恢复    - 454 -

四、 数据库还没有挂掉的情况下    - 454 -

4.5.7 ORACLE丢失各种文件导致数据库不能OPEN恢复    - 455 -

4.6 麦苗扩展    - 458 -

4.6.1 恢复的分类    - 458 -

4.6.2 介质恢复(MEDIA RECOVERY)    - 459 -

4.6.2.1 数据库还原(RESTORE)与数据库恢复(RECOVER)    - 459 -

4.6.2.2 完全恢复和不完全恢复    - 462 -

4.6.2.3 完全恢复(Complete Recovery)    - 463 -

一、 完全恢复的几种场景    - 465 -

4.6.2.4 不完全恢复的几种类型    - 475 -

4.6.2.5 实例恢复和介质恢复的区别    - 476 -

4.6.3 rm -rf误操作的恢复过程----数据库在无备份且open情况下的恢复    - 477 -

4.6.3.1 实验    - 479 -

4.6.3.2 登录SQLPLUS查看基本信息    - 479 -

4.6.3.3 模拟rm -rf误操作    - 481 -

4.6.3.4 开始恢复    - 483 -

一、 判断句柄位置    - 483 -

二、 恢复数据文件、控制文件、tmp文件和online log文件    - 485 -

三、 如果数据库还没有关掉则关闭数据库    - 489 -

4.6.3.5 总结    - 491 -

4.6.4 TRUNCATE恢复方法    - 491 -

4.6.5 TSPITR(表空间基于时间点恢复)    - 492 -

4.6.6 在丢失归档的情况下如何进行数据文件的恢复    - 495 -

4.6.7 数据文件OFFLINE之后必须要做的一件事是什么?    - 495 -

4.6.8 什么是DRA(Data Recovery Advisor)?    - 498 -

4.6.8.1 Data Recovery Advisor(数据恢复指导)    - 499 -

4.6.8.2 数据恢复指导    - 501 -

4.6.8.3 数据故障    - 503 -

一、 列出数据故障    - 504 -

二、 提供修复建议    - 505 -

4.7 基于用户管理恢复的方法    - 508 -

4.8 基于用户管理的完全恢复    - 508 -

4.9 小测验    - 510 -

第5章 日志挖掘logminer    - 511 -

5.1 演示    - 515 -

第6章 利用增量数据库备份进行恢复    - 516 -

6.1 自己的脚本    - 516 -

第7章 RMAN高级应用之Duplicate复制数据库    - 519 -

7.1 简介    - 519 -

7.2 duplicate体系结构    - 520 -

7.2.1 Duplicating an Active Database    - 521 -

7.2.1.1 Prerequisites Specific to Active Database Duplication    - 525 -

7.2.1.2 自己的例子    - 525 -

7.2.2 Cloning A Database On The Same Server Using Rman Duplicate From Active Database    - 526 -

7.2.2.1 Configure The Network    - 527 -

7.2.2.2 Create A Password File For The New Database    - 528 -

7.2.2.3 Create An Init.Ora For The New Database    - 528 -

7.2.2.4 Create The Admin Directory For The New Database    - 528 -

7.2.2.5 Shutdown And Startup Mount The Source Database    - 528 -

7.2.2.6 Startup Nomount The New Database    - 529 -

7.2.2.7 Connect To The Target (Source) And Auxiliary (New Clone)Databases Using Rman    - 529 -

7.2.2.8 Execute The Duplicate Command    - 529 -

7.2.2.9 Remove The Old Pfile    - 535 -

7.2.2.10 Check The New Database    - 535 -

7.2.3 Duplicating a Database with a Target Connection    - 536 -

7.2.4 Duplicating a Database with Recovery Catalog Without Target Connection    - 537 -

7.2.5 Duplicating a Database Without Recovery Catalog or Target Connection    - 538 -

7.2.5.1 老师例子    - 539 -

7.3 Creating a Backup-Based Duplicate Database    - 556 -

7.3.1 Creating an Initialization Parameter File for the Auxiliary Instance    - 557 -

7.3.2 Specifying New Names for Your Destination    - 558 -

7.3.2.1 SET NEWNAME    - 559 -

7.3.3 Specifying Parameters for File Naming    - 562 -

7.3.3.1 DB_FILE_NAME_CONVERT    - 563 -

7.4 OCP    - 563 -

第8章 BBED简介    - 567 -

第9章 rman之块介质恢复    - 568 -

9.1 坏块的简介    - 568 -

9.2 坏块的检测方法    - 569 -

9.3 BMR恢复坏块    - 571 -

9.4 如何确定坏块的对象名    - 571 -

9.5 如果发现有坏块,那么如何检索其它未坏的数据?    - 572 -

9.6 模拟坏块    - 573 -

9.6.1 blockrecover恢复坏块    - 573 -

9.6.1.1 创建演示环境    - 573 -

9.6.1.2 单块数据块损坏的恢复处理    - 574 -

9.6.1.3 多块数据块损坏的恢复处理    - 575 -

9.6.1.4 坏块的对象定位与影响    - 577 -

9.6.2 bbed模拟    - 579 -

9.6.2.1 bbed修复坏块示例    - 580 -

9.7 坏块模拟脚本    - 584 -

9.8 OCP    - 585 -

第10章 OS备份(物理备份)和恢复    - 587 -

10.1 操作系统备份(物理备份)    - 587 -

10.1.1 冷备份(一致性备份、脱机备份) --cool backup    - 587 -

10.1.1.1 冷备份的优缺点    - 588 -

10.1.1.2 冷备份一般步骤    - 588 -

10.1.1.3 冷备脚本的写法    - 589 -

一、 冷备脚本    - 592 -

10.1.1.4 存在冷备下的还原(非归档模式)    - 592 -

一、 丢失数据文件    - 592 -

二、 日志文件丢失    - 608 -

三、 控制文件丢失    - 612 -

四、 参数文件丢失    - 616 -

五、 密码文件丢失    - 616 -

10.1.1.5 OCP    - 617 -

10.1.2 热备份(非一致性备份、联机备份) --只能用于归档模式    - 617 -

10.1.2.1 简介    - 617 -

10.1.2.2 具体操作    - 618 -

一、 热备的过程    - 618 -

二、 基于数据库的热备    - 619 -

三、 基于表空间的热备    - 620 -

四、 控制文件的热备    - 621 -

五、 参数文件的热备    - 622 -

六、 临时表空间的数据文件、日志文件不需要备份    - 622 -

10.1.2.3 热备份的相关视图    - 622 -

10.1.2.4 热备ocp    - 625 -

10.1.2.5 存在热备下的还原    - 629 -

一、 还原控制文件    - 629 -

二、 还原数据文件    - 632 -

第11章 非归档模式备份恢复    - 637 -

11.1 非归档的备份方法    - 640 -

11.1.1 非归档全备份    - 641 -

11.2 非归档模式下的恢复    - 643 -

11.3 非归档模式的备份与恢复示例(使用冷备)    - 646 -

第12章 OPEN RESETLOGS    - 650 -

12.1 使用alter database open resetlogs的场合    - 650 -

12.2 为什么使用RESETLOGS?    - 650 -

12.3 RESETLOGS会执行什么操作?    - 650 -

12.4 ocp    - 651 -

第13章 其它    - 651 -

13.1 下列4条RECOVER DATABASE命令的区别是什么    - 651 -

13.2 RESETLOGS和NORESETLOGS的区别是什么?    - 652 -

第14章 跨版本恢复    - 653 -

14.1 RMAN可以跨版本或跨平台执行还原或复制命令吗?    - 653 -

14.2 跨小版本    - 655 -

14.3 跨大版本    - 656 -

第15章 只存在备份片的数据库恢复过程    - 656 -

15.1.1 总结    - 656 -

第16章 Oracle恢复流程图    - 656 -

第17章 移动数据    - 658 -

17.1 移动数据:一般体系结构    - 659 -

17.2 exp和imp    - 660 -

17.2.1 EXP导出数据    - 661 -

17.2.1.1 导出表    - 664 -

17.2.1.2 导出方案    - 665 -

17.2.1.3 导出数据库    - 665 -

17.2.2 IMP导入数据    - 665 -

17.2.2.1 导入表    - 667 -

17.2.2.2 导入方案    - 668 -

17.2.2.3 导入数据库    - 668 -

17.2.2.4 imp导入常见问题处理    - 670 -

17.2.3 exp和imp的一些其它用法    - 671 -

17.2.4 其它实用内容    - 672 -

17.2.4.1 可以从dmp文件获取哪些信息?    - 672 -

一、 获取基本信息:导出的版本、时间、导出的用户    - 672 -

二、 获取dmp文件中的表信息    - 672 -

三、 解析dmp文件生成parfile文件    - 673 -

四、 如何查看dmp文件的字符集    - 673 -

五、 如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中?    - 674 -

17.2.4.2 exp的query参数和parfile的使用    - 675 -

一、 query和parfile示例    - 676 -

17.2.4.3 什么是延迟段创建(Deferred Segment Creation)?    - 677 -

一、 Oracle 11g不能导出空表的三种解决方法    - 679 -

17.2.4.4 exp导出ASH数据    - 680 -

一、 方法1:ctas建表导出,有的客户不让建表    - 680 -

二、 方法2:导出基表的数据    - 682 -

17.2.5 常见错误    - 684 -

17.2.5.1 EXP-00091: Exporting questionable statistics 问题处理方法    - 684 -

17.2.5.2 EXP-00026: conflicting modes specified    - 687 -

17.2.5.3 IMP-00013: only a DBA can import a file exported by another DBA    - 689 -

17.2.5.4 IMP-00031: 必须指定 FULL=Y 或提供 FROMUSER/TOUSER 或 TABLES 参数    - 690 -

17.2.5.5 IMP-00002: 无法打开要读取的imp D:/admin.dmp    - 692 -

17.2.5.6 EXP-00008: 遇到 ORACLE 错误 904    - 692 -

17.2.5.7 imp导入报错:IMP-00037: Character set marker unknown    - 693 -

17.2.5.8 IMP-00010: not a valid export file, header failed verification    - 696 -

17.2.5.9 imp-00051,imp-00008    - 698 -

17.2.5.10 IMP-00132: first file in the multi-file export is 32    - 699 -

17.2.6 注意事项    - 699 -

17.3 数据泵(expdp和impdp)    - 699 -

17.3.1 Oracle 数据泵:概览    - 701 -

17.3.2 Oracle 数据泵:优点    - 702 -

17.3.3 Oracle Database 11g 中的数据泵增强功能    - 703 -

17.3.4 数据泵的目录对象    - 704 -

17.3.4.1 创建目录对象    - 705 -

17.3.5 数据泵导出与导入客户机:概览    - 706 -

17.3.6 数据泵实用程序:界面与模式    - 707 -

17.3.7 使用 Database Control 进行数据泵导出    - 708 -

17.3.8 数据泵导出示例    - 709 -

17.3.8.1 数据泵导出示例:基本选项    - 710 -

17.3.8.2 数据泵导出示例:高级选项    - 710 -

17.3.8.3 数据泵导出示例:文件    - 711 -

17.3.8.4 数据泵导出示例:调度    - 713 -

17.3.8.5 数据泵导出示例:复查    - 714 -

17.3.8.6 数据泵导入示例:impdp    - 714 -

17.3.9 使用 Oracle Enterprise Manager 监视数据泵作业    - 715 -

17.3.10 以数据泵旧模式提供移植支持    - 716 -

17.3.11 数据泵旧模式    - 717 -

17.3.12 管理文件位置    - 719 -

17.3.13 麦苗扩展    - 720 -

17.3.13.1 数据泵的一些常用语法命令    - 720 -

17.3.13.2 如何彻底停止expdp进程?    - 725 -

17.3.13.3 如何跟踪expdp和SQL*Plus命令?    - 727 -

17.3.13.4 如何退出exp、imp、telnet等等交互窗口?    - 727 -

17.3.13.5 Oracle用户密码含特殊字符时如何登陆?    - 728 -

17.3.13.6 如何获取数据库DDL的创建语句    - 729 -

一、 imp示例(SHOW=Y)    - 729 -

二、 imp的indexfile选项(indexfile导出表和索引的ddl语句)    - 732 -

三、 impdp示例    - 734 -

四、 只导出元数据完整示例    - 737 -

五、 【IMPDP】使用 TRANSFORM选项去掉表空间和存储子句    - 737 -

17.3.13.7 过滤数据(exclude、include)    - 738 -

一、 Exclude 反规则    - 739 -

二、 Include 正规则    - 740 -

三、 高级过滤CONTENT参数    - 741 -

四、 过滤已经存在的数据TABLE_EXISTS_ACTION参数    - 742 -

五、 导出job    - 742 -

六、 导出dblink    - 743 -

七、 导出公共同义词    - 743 -

17.3.13.8 重定义表的Schema或表空间    - 743 -

17.3.13.9 优化导入/导出效率(expdp/impdp)    - 744 -

17.3.13.10 impdp传输表空间(OCM考题)    - 748 -

17.3.13.11 注意事项    - 750 -

一、 expdp 导出sys用户下的表报错ORA-39165 和ORA-39166    - 750 -

17.3.13.12 impdp的一些选项    - 752 -

一、 NETWORK_LINK 选项    - 752 -

二、 oracle expdp时显示时间 metrics    - 752 -

17.3.13.13 如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?    - 753 -

17.3.13.14 12c expdp VIEWS_AS_TABLES选项    - 766 -

17.3.13.15 其它错误    - 768 -

一、 数据泵导出出现ORA-31617错误    - 768 -

17.3.13.16 数据泵导出导入卡死    - 771 -

一、 AIX环境下EXPDP卡住问题处理    - 773 -

17.3.13.17 使用隐含Trace参数诊断Oracle Data Pump故障    - 775 -

17.4 SQL*Loader    - 785 -

17.4.1 使用 SQL*Loader 加载数据    - 787 -

17.4.2 SQL*Loader 控制文件    - 787 -

17.4.3 直接路径加载与常规路径加载的比较    - 790 -

17.4.4 麦苗扩展    - 791 -

17.4.4.1 如何将文本文件或Excel中的数据导入数据库?    - 791 -

一、 sqlldr高级用法    - 793 -

二、 sqlldr报错处理    - 795 -

17.4.4.2 简单示例    - 797 -

17.4.4.3 2000W酒店开房数据导入    - 798 -

17.5 外部表    - 803 -

17.5.1 外部表的优点    - 804 -

17.5.2 使用ORACLE_LOADER定义外部表    - 805 -

17.5.3 使用ORACLE_DATAPUMP填充外部表    - 806 -

17.5.4 使用外部表    - 807 -

17.5.5 麦苗扩展    - 807 -

17.5.5.1 基础    - 807 -

17.5.5.2 外部表示例    - 809 -

17.5.5.3 只有1列    - 809 -

17.5.5.4 外部表的parallel    - 810 -

17.5.5.5 利用外部表查看告警日志    - 810 -

一、 先来个最简单的使用方法    - 810 -

二、 再来个稍微复杂点的    - 812 -

17.5.5.6 2000W酒店开房数据导入    - 814 -

17.6 有关sqlldr和外部表的一道OCM考题    - 815 -

17.7 小测验    - 820 -

17.8 小结    - 820 -

 

 

 

  1. Oracle 管理部分(包括体系结构等内容)

目录    - 1 -

第1章 管理数据并发处理(锁和会话)    - 14 -

1.1 课程目标    - 14 -

1.2 锁    - 15 -

1.2.1 显式锁定    - 17 -

1.2.2 隐式锁定    - 17 -

1.2.3 按照对象分类锁定    - 17 -

1.3 锁定机制    - 18 -

1.4 数据并发处理    - 19 -

1.5 DML 锁    - 21 -

1.6 入队机制    - 22 -

1.7 锁冲突    - 23 -

1.8 锁冲突的可能原因    - 24 -

1.9 检测锁冲突    - 25 -

1.10 解决锁冲突    - 26 -

1.10.1 使用 SQL 解决锁冲突    - 27 -

1.11 死锁    - 28 -

1.12 锁的扩展    - 28 -

1.12.1 分类    - 29 -

1.12.2 锁的兼容性    - 32 -

1.12.3 锁的数据字典视图    - 33 -

1.12.4 SELECT ... FOR UPDATE    - 36 -

1.12.5 DML_LOCKS和DDL_LOCK_TIMEOUT参数    - 36 -

1.12.6 在编译存储过程、函数等对象时无响应    - 36 -

1.12.7 新建或重建索引的锁信息    - 36 -

1.12.8 对于错误"ORA-08104: this index object 68111 is being online built or rebuilt",应该如何处理?    - 38 -

1.12.9 会话    - 39 -

1.12.9.1 V$SESSION视图    - 39 -

1.12.9.2 如何查看某一个会话是否被其它会话阻塞?    - 42 -

1.12.9.3 如何查到会话正在执行的SQL语句?    - 43 -

1.12.9.4 如何彻底杀掉会话?V$SESSION的STATUS为KILLED的情况下如何找到相关的后台OS进程?    - 43 -

1.12.9.5 如何让普通用户可以杀掉自己用户的会话?    - 44 -

1.12.9.6 SESSIONS和PROCESSES的关系    - 46 -

1.12.9.7 如何根据OS进程快速获得DB进程信息与正在执行的语句?    - 47 -

1.12.9.8 怎么杀掉特定的数据库会话?    - 48 -

1.12.9.9 如何快速的清理Oracle的进程?    - 48 -

1.13 小测试    - 48 -

1.14 小结    - 49 -

第2章 管理还原数据    - 49 -

2.1 还原数据    - 50 -

2.2 事务处理和还原数据    - 52 -

2.3 存储还原信息    - 53 -

2.4 还原数据与重做数据    - 54 -

2.5 管理还原    - 55 -

2.5.1 配置还原保留时间    - 56 -

2.6 保证还原保留时间    - 57 -

2.7 将还原表空间改为固定大小    - 58 -

2.8 一般还原信息    - 59 -

2.9 使用还原指导    - 60 -

2.10 查看系统活动    - 61 -

2.11 扩展    - 62 -

2.11.1 Undo的作用    - 62 -

2.11.2 Undo段存储的内容    - 63 -

2.11.3 块清除    - 64 -

2.11.4 Undo表空间    - 65 -

2.11.5 系统回滚段(System Rollback Segment)与延迟回滚段(Deferred Rollback Segment)    - 67 -

2.11.6 ORA-01555    - 67 -

2.11.7 Redo日志文件(Redo Log Files)的作用是什么?    - 68 -

2.11.8 如何管理联机Redo日志组与成员?    - 69 -

2.11.9 在Oracle中,如果联机Redo日志文件损坏,那么如何恢复?    - 70 -

2.12 小测验    - 70 -

2.13 小结    - 71 -

第3章 实施Oracle DB审计    - 72 -

3.1 责任分离    - 73 -

3.2 数据库安全性    - 74 -

3.3 监视合规性    - 75 -

3.4 标准数据库审计    - 76 -

3.5 配置审计线索    - 78 -

3.6 统一审计线索    - 79 -

3.6.1 指定审计选项    - 80 -

3.7 默认审计    - 81 -

3.7.1 Enterprise Manager 审计页    - 82 -

3.7.2 使用和维护审计信息    - 83 -

3.7.3 基于值的审计    - 84 -

3.8 细粒度审计    - 86 -

3.8.1 FGA 策略    - 87 -

3.8.2 审计的 DML 语句:    - 89 -

3.8.3 FGA 准则    - 90 -

3.9 SYSDBA审计    - 91 -

3.10 维护审计线索    - 92 -

3.11 Oracle Audit Vault    - 93 -

3.12 麦苗扩展    - 94 -

3.12.1.1 什么是审计(Audit)?    - 94 -

3.12.1.2 迁移SYS.AUD$表到其它表空间    - 95 -

3.12.1.3 审计如何分类    - 97 -

3.12.1.4 审计中BY ACCESS和BY SESSION的区别是什么?    - 97 -

3.12.1.5 如何对SYSDBA和SYSOPER进行审计?    - 97 -

3.12.1.6 什么是细粒度审计(精细化审计)?    - 98 -

3.12.1.7 如何禁用或删除某个用户下的所有细粒度审计?    - 100 -

3.12.1.8 FGA审计和标准审计有什么区别?    - 100 -

3.13 小测验    - 101 -

3.14 小结    - 101 -

第4章 数据库维护(AWR、ASH、ADDM)    - 102 -

4.1 数据库维护    - 103 -

4.2 查看预警历史记录    - 104 -

4.2.1 术语    - 105 -

4.3 Oracle 优化程序:概览    - 106 -

4.4 统计信息    - 107 -

4.4.1 优化程序统计信息    - 107 -

4.4.2 使用"管理优化程序统计信息"页    - 108 -

4.4.3 手动搜集优化程序统计信息    - 109 -

4.4.4 用于搜集统计信息的首选项    - 111 -

4.4.5 麦苗扩展    - 112 -

4.4.5.1 统计信息的简介和分类    - 112 -

4.4.5.2 索引统计信息    - 115 -

4.4.5.3 列的统计信息    - 115 -

4.4.5.4 系统统计信息    - 118 -

4.4.5.5 内部对象统计信息    - 120 -

4.4.5.6 自动收集统计信息    - 120 -

一、 统计信息何时变为陈旧状态(10%的含义)?    - 122 -

二、 修改自动收集统计信息的时间    - 123 -

三、 DBA_TAB_MODIFICATIONS    - 125 -

4.4.5.7 怎样收集表的统计信息?怎样收集分区表的统计信息?    - 126 -

4.4.5.8 什么是动态采样(Dynamic Sampling)?    - 126 -

4.4.5.9 如何锁住统计信息?    - 130 -

4.4.5.10 什么是待定的统计信息(Pending Statistic)?    - 132 -

4.4.5.11 什么是直方图(Histogram)?    - 137 -

4.4.5.12 什么是多列统计信息(Extended Statistics)?    - 151 -

4.4.5.13 基表COL_USAGE$的作用是什么?    - 160 -

4.4.5.14 新建索引后统计信息是否自动收集?    - 160 -

4.4.5.15 什么是基数反馈(Cardinality Feedback)?    - 160 -

4.4.5.16 如何查询表和索引的历史统计信息    - 165 -

4.4.5.17 Oracle如何并发地收集统计信息?    - 167 -

4.4.5.18 当收集表的统计信息时应该注意哪些问题?    - 168 -

4.4.5.19 什么是基数(Cardinality)和可选择率(Selectivity)?    - 170 -

4.4.5.20 使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?    - 177 -

4.4.5.21 当自动收集任务运行时,哪些对象会被收集?    - 178 -

4.4.5.22 分区表统计信息的更新机制是怎样的?    - 178 -

4.4.5.23 如何查询表的DML操作数据变化量?    - 179 -

4.4.5.24 对表执行TRUNCATE操作会将表的统计信息也清除掉吗?    - 181 -

4.5 自动工作量资料档案库 (AWR)    - 182 -

4.5.1 AWR 基础结构    - 183 -

4.5.2 AWR 基线    - 184 -

4.5.3 Enterprise Manager 和 AWR    - 185 -

4.5.4 管理 AWR    - 186 -

4.5.5 统计级别    - 187 -

4.5.6 麦苗扩展    - 188 -

4.5.6.1 什么是AWR?    - 188 -

4.5.6.2 如何获取AWR报告?    - 189 -

一、 定时生成AWR报告    - 190 -

4.5.6.3 AWR报告中主要关注哪些方面内容?    - 194 -

4.5.6.4 如何在AWR中查看每秒执行事务的个数?    - 199 -

4.6 自动数据库诊断监视器 (ADDM)    - 200 -

4.6.1 ADDM 查找结果    - 202 -

4.6.2 ADDM 建议    - 203 -

4.6.3 麦苗扩展    - 204 -

4.6.3.1 什么是ADDM?    - 204 -

4.6.3.2 如何获取ADDM报告?    - 205 -

4.7 ASH    - 206 -

4.7.1 什么是ASH?    - 206 -

4.7.2 如何获取ASH报告?    - 207 -

4.7.3 如何查看过去某一段时间数据库系统的会话是否有问题?    - 208 -

4.8 ASH、AWR、ADDM、AWRDDRPT、AWRSQRPT的比对    - 210 -

4.9 指导框架    - 212 -

4.9.1 Enterprise Manager 和指导    - 214 -

4.9.2 DBMS_ADVISOR程序包    - 215 -

4.10 小测验    - 215 -

4.11 自动维护任务    - 216 -

4.11.1 自动维护任务    - 216 -

4.11.2 自动维护任务配置    - 218 -

4.12 服务器生成的预警    - 219 -

4.12.1 设置阈值    - 220 -

4.12.2 创建和测试预警    - 221 -

4.12.3 预警通知    - 222 -

4.12.4 对预警作出响应    - 224 -

4.12.5 预警类型和清空预警    - 225 -

4.13 性能监视    - 226 -

4.13.1 Enterprise Manager 的性能页    - 227 -

4.13.2 细化到特定的等待类别    - 228 -

4.13.3 性能页:吞吐量    - 229 -

4.13.4 性能监视:顶级会话    - 230 -

4.13.5 性能监视:顶级服务    - 231 -

4.14 动态性能统计信息    - 232 -

4.15 故障排除和优化视图    - 233 -

4.16 无效和不可用对象    - 234 -

4.17 小测验    - 235 -

4.18 小结    - 236 -

第5章 JOB    - 237 -

5.1 DBMS_JOB    - 237 -

5.1.1 dbms_job package 用法介绍    - 241 -

5.1.1.1 DBMS_JOB包权限    - 242 -

5.1.1.2 DBMS_JOB后台进程    - 242 -

5.1.1.3 broken    - 243 -

5.1.1.4 change    - 244 -

5.1.1.5 interval    - 244 -

5.1.1.6 isubmit    - 244 -

5.1.1.7 next_date    - 245 -

5.1.1.8 remove    - 246 -

一、 杀job    - 246 -

二、 删除其它用户下的job用 sys.dbms_ijob.remove()    - 246 -

5.1.1.9 run    - 251 -

5.1.1.10 submit    - 252 -

5.1.1.11 user_export    - 254 -

5.1.1.12 what    - 254 -

一、 例子    - 255 -

5.1.2 RAC中指定dbms_job运行在指定实例    - 257 -

5.1.3 数据字典    - 259 -

5.1.4 OCP课堂    - 261 -

5.2 DBMS_SCHEDULER    - 263 -

5.2.1 DBMS_JOB和DBMS_SCHEDULER之间的区别    - 264 -

5.2.2 各个组件(components)    - 264 -

5.2.2.1 作业(job):    - 264 -

5.2.2.2 时间表(schedule):--默认非禁用    - 264 -

5.2.2.3 程序(program):    - 266 -

5.2.2.4 作业类(job_class):    - 266 -

一、 管理JobClasses    - 270 -

5.2.2.5 窗口(window):    - 270 -

5.2.2.6 窗口组(window_group):    - 272 -

5.2.3 参数设置    - 274 -

5.2.4 管理job    - 278 -

5.2.4.1 启用Jobs    - 278 -

5.2.4.2 禁用Jobs    - 279 -

5.2.4.3 修改Jobs    - 280 -

5.2.4.4 执行Jobs    - 282 -

一、 dbms_scheduler.run_job报错    - 284 -

5.2.4.5 停止Jobs    - 285 -

5.2.4.6 删除Jobs    - 286 -

一、 批量删除job    - 287 -

5.2.4.7 指定job的执行频率    - 288 -

5.2.5 创建job    - 290 -

5.2.5.1 需要的权限    - 290 -

5.2.5.2 例子    - 291 -

5.2.5.3 通过dbms_scheduler去执行shell脚本    - 292 -

5.2.5.4 例子一 --- 不带参数    - 293 -

5.2.5.5 例子二 --- 带参数    - 295 -

5.2.5.6 含有参数    - 302 -

5.2.5.7 时间段内的job    - 304 -

5.2.5.8 指定时间的一次性job    - 305 -

5.2.5.9 批量创建job    - 305 -

一、 创建job主进程    - 305 -

二、 创建job子进程    - 310 -

5.2.6 判断job是否正在运行    - 312 -

5.2.7 数据字典    - 312 -

5.2.8 Lightweight Jobs    - 314 -

5.2.8.1 Persistent Lightweight Jobs    - 320 -

5.2.9 OCP课堂    - 321 -

5.3 PL/SQL工具创建和管理job    - 323 -

5.3.1 DBMS_JOB    - 323 -

5.3.2 DBMS_SCHEDULER    - 325 -

5.4 其它实用内容    - 325 -

5.4.1 RAC中如何指定JOB的运行实例?    - 325 -

5.4.2 如何判断SCHEDULER JOB是否正在运行?    - 328 -

5.4.3 如何查询SCHEDULER JOB的运行日志?    - 329 -

5.4.4 通过DBMS_SCHEDULER如何调用SHELL脚本?    - 330 -

5.4.5 如何批量删除JOB?    - 330 -

5.4.6 已通知停止作业, 但是无法立即停止    - 331 -

5.5 OCP    - 332 -

第6章 分区    - 333 -

6.1 分区表简介    - 334 -

6.2 分区表的一些限制条件    - 334 -

6.3 何时考虑分区?    - 334 -

6.4 分区表有什么优点?    - 334 -

6.5 有哪些类型的分区?如何选择用哪种类型的分区表?    - 335 -

6.5.1 RANGE(范围)分区    - 335 -

6.5.2 HASH(哈希)分区    - 336 -

6.5.3 列表分区    - 338 -

6.5.4 复合分区    - 339 -

6.5.4.1 分区模板的应用    - 340 -

一、 分区模板数据字典    - 341 -

6.5.5 Interval分区    - 341 -

6.5.5.1 以月为间隔    - 342 -

6.5.5.2 以天为间隔    - 346 -

6.5.5.3 总结    - 350 -

6.5.5.4 interval分区重命名    - 353 -

一、 注意    - 357 -

6.5.6 System_partitioning    - 357 -

6.5.6.1 Restrictions on System Partitioning    - 358 -

6.5.6.2 Advantages of System Partitioned Tables    - 359 -

6.5.6.3 Supporting Operations with System-Partitioned Tables    - 361 -

6.6 分区表的维护    - 363 -

6.6.1 添加分区(add partition)    - 364 -

6.6.2 收缩表分区(coalesce partitions)    - 366 -

6.6.3 删除分区和删除子分区(drop partition)    - 366 -

6.6.4 添加子分区    - 367 -

6.6.5 截断表分区(Truncate Partition)--截断一个分区表中的一个分区的数据    - 367 -

6.6.5.1 截断分区表的子分区    - 368 -

6.6.5.2 截断带有约束的分区表    - 368 -

6.6.5.3 注意事项    - 368 -

6.6.6 移动表分区(Move Partition)    - 369 -

6.6.6.1 将一个表的分区从一个表空间移动到另一个表空间    - 370 -

6.6.6.2 压缩表Move--compress    - 370 -

6.6.7 合并分区(Merge Partitions)    - 371 -

6.6.8 重命名某一个分区(Rename Partition)    - 374 -

6.6.9 交换表分区(Exchange Partitions)    - 374 -

6.6.10 修改 list 表分区    - 378 -

6.6.10.1 修改 list 表分区--Add Values    - 378 -

6.6.10.2 修改 list 表分区--Drop Values    - 379 -

6.6.11 拆分表分区(Split Partition)--分区切割    - 380 -

6.6.12 修改分区表属性    - 382 -

6.6.12.1 修改表分区默认属性(Modify Default Attributes)    - 382 -

6.6.12.2 修改表分区当前属性(Modify Partition)    - 382 -

6.6.12.3 修改分区表的logging属性    - 383 -

6.6.12.4 并行度    - 383 -

6.6.13 修改表子分区模板(Set Subpartition Template)    - 383 -

6.6.14 其它    - 385 -

6.7 分区表的查询优化    - 392 -

6.8 分区表常用数据字典视图有哪些?    - 394 -

6.8.1 Oracle之INTERVAL分区的STORE IN属性存储在哪张表中?    - 401 -

6.8.2 如何查询某个分区是否是INTERVAL分区表?    - 402 -

6.9 分区表的压缩    - 402 -

6.9.1 分区表压缩    - 402 -

6.9.2 含有子分区的分区表压缩    - 403 -

6.9.3 分区表哪些分区被压缩了    - 403 -

6.9.4 总结    - 404 -

6.9.5 另一种办法:先置于compress状态后move    - 404 -

6.9.6 解压缩    - 405 -

6.10 分区表单个分区分析(分区表收集统计信息)    - 405 -

6.11 普通表转换为分区表有哪些办法?    - 405 -

6.12 分区表查询    - 410 -

6.12.1 单分区查询    - 410 -

6.12.2 跨分区查询    - 411 -

6.13 分区表中lob类型的字段    - 412 -

6.14 分区表性能注意事项    - 412 -

6.15 索引失效的情况    - 420 -

6.16 OCP讲课    - 421 -

第7章 管理补丁程序    - 422 -

7.1 应用补丁程序版本    - 424 -

7.2 使用补丁程序指导    - 425 -

7.3 使用补丁程序向导    - 426 -

7.4 应用补丁程序    - 427 -

7.5 存放补丁程序    - 428 -

7.6 联机打补丁:概览    - 429 -

7.7 安装联机补丁程序    - 429 -

7.8 联机打补丁的优点    - 431 -

7.8.1 常规打补丁和联机打补丁    - 431 -

7.9 联机打补丁注意事项    - 432 -

7.10 麦苗扩展    - 433 -

7.10.1 PSU升级的过程    - 434 -

7.10.2 PSU(Patch Set Update)、CPU(Critical Patch Update)、BP(Bundle Patch)等概念    - 434 -

7.10.3 如何查找最新的PSU?    - 435 -

7.10.4 如何确认当前数据库已经安装了什么PSU?    - 435 -

7.10.5 如何安装PSU?    - 436 -

7.10.6 Upgrade与Update    - 437 -

7.10.7 注意问题    - 437 -

7.10.8 什么是Metalink或MOS?    - 437 -

7.10.9 11.2.0.3.0升级到11.2.0.3.1    - 438 -

7.10.10 one-off patch    - 439 -

7.10.11 一道OCM题    - 441 -

7.11 小测验    - 442 -

7.12 小结    - 442 -

第8章 使用技术支持(学员自行阅读)    - 443 -

8.1 课程目标    - 443 -

8.2 使用支持工作台