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

前端之家收集整理的这篇文章主要介绍了【OCP|OCM】Oracle培训考证系列前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。


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





我的个人信息


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

  1. 现有课程

    课程名称

    课时

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

    OCP(从入门到专家)

    每年1-2期,35课时左右/期

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

    20:00-22:00

    OCM认证

    每年N期,9课时/期

    每周二、周五

    高可用课程(rac+dg+ogg)

    未定

    未定

    注意:

  1. 每次上课前30分钟答疑。
  2. OCM实时答疑,提供和考试一样的练习环境。
  3. 授课方式:YY语音直播 + QQ互动答疑 + 视频复习。
  4. OCP课时可以根据大家学习情况进行增加或缩减。
  5. OCP报名可以循环听课,但最多不得超过3期课。
  6. 12c OCM课程私聊

    1. OCM

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

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

      1. 第一场

    1. 第二场

    1. 第三场

    第四场

第五场

第六场

第七场

第八场

第九场

  1. 12c OCM

若要考12C OCM请私聊。

OCM培训说明连接

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

  1. OCP

OCP培训说明网络连接

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

讲课资料及视频下载地址

小麦苗OCP课程讲课资料下载地址:https://share.weiyun.com/a218681375a20d9be37f626fded2d626

小麦苗分享的其它资料: https://share.weiyun.com/5UZtOLs

永久更新地址:http://blog.itpub.net/26736162/viewspace-1624453/

  1. OCP讲课文档

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、是否正在运行、运行日志、故障处理)、分区表(分区类型、分区表查询优化、索引失效、普通表转换为分区表有哪些办法、压缩分区、分区表收集统计信息)

OCP培训课程大纲

注:

  • 1学时=1小时
  • 1课时=1次课=2学时=2小时
  1. 安装与卸载

    课程模块

    培训要点

    学时

    VMware Workstation虚拟机的相关知识

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

    Linux的安装(RHEL 5.5)

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

    Oracle软件单机安装

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

    Oracle ASM的安装

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

    Oracle监听和TNS的简单配置

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

    删除数据库的几种方式

    • dbca -silent
    • DROP DATABASE;
    0.2

    创建数据库

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

    • PLsql Developer软件使用
    • 学会安装Windows和Linux下的绿色版的Oracle客户端软件
    • 绿色版SecureCRT和SecureFX
    • Xshell调用图形界面
    Oracle软件的卸载

    • Windows平台(主要是清理注册表)
    • Linux平台
    其它内容

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

  2. sql基础部分

    sql简介及分类

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

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

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

    • 条件
      • 条件中使用字符串和日期
      • 比较条件
        • 模糊查询
        • IN和OR(IN中最多支持1000个列举项)
        • BETWEEN(between包括边界值)
        • 使用NULL/NOT NULL条件
        • 逻辑条件(AND、OR 、NOT)--注意添加括号,防止形成笛卡儿积
    • 排序
      • 升序(ASC)
      • 降序(DESC)
      • 列别名排序
      • 多列排序
    连接类型

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

    合并查询(集合查询

    • UNION
    • UNION ALL
    • INTERSECT
    • MINUS
    • 应用
    函数

    • 单行函数
    • 多行函数(组函数
      • 函数的概念及应用
      • AVG、SUM、MAX、MIN(MAXMIN的优化写法
      • COUNT
      • DISTINCT
      • GROUP BY和HAVING
      • 嵌套组函数
    • 扩展内容
      • 如何将一个数字转换为字符串并且按照指定格式显示
      • ORA-00904: "wm_concat":invalid identifier错误解决
      • 如何判断一个字符串是否含有中文汉字?
      • 如何让日期显示为"年-月-日时:分:秒"的格式?
      • NLS_LANGUAGE的使用
      • 如何判断当天是否月份最后一天?
      • COUNT(1)COUNT(*)COUNT(常量)主键COUNT(ROWID)非空列允许为空列COUNT(DISTINCT 列名) 的区别(结果和效率)
    dual表

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

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

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

    基本对象的管理

    课程模块

    DBLINK

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

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

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

    其它数据库对象

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

    • 表的分类
      • 普通堆表(heap table)---最多包含1000列
      • 全局临时表
        • 会话级
        • 事务级
      • 分区表
        • 范围分区
        • 列表分区
        • HASH分区
        • 组合分区
      • 索引组织表(IOT)
      • 簇表
      • 外部表
    • 数据字典(dict和tab)
    • 创建表
      • CTAS及其优化
      • default选项
      • 数据类型
    • 删除
    • 引用表
    • 修改表alter
    • truncate
      • DELETE、DROP和TRUNCATE的区别
    • 给表和列添加注释(COMMENT语句)
    数据库管理
    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(工作区)
      • AMM和ASMM
      • 进程结构
        • USER PROCESS(用户进程)
        • SERVER PROCESS(服务器进程)
          • LOCAL=NO
          • LOCAL=YES
        • BACKGROUND PROCESSES(后台进程)
        • 守护程序/应用程序进程
      • 存储结构(物理结构)
      2

      体系结构部分扩展

      • AMM和ASMM
        • 区别
        • 互换
      • 自动PGA内存管理
      • UGA介绍
      • SHOW SGA和V$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)
      • 数据库实例
        • OS分配的一块内存
          • SGA
          • PGA
        • 一些后台进程(PMON、SMON、LGWR、CKPT、DBWn等)
      • 实例和数据库的区别
      2

    2. 管理数据库实例

      管理数据库实例

      • OEM
        • 简介和分类
          • Database Control(数据库控制)
          • Grid Control(GC,网格控制)
        • 维护
          • 卸载:emca -deconfig dbcontrol db -repos drop
          • 单机重建:emca -config dbcontrol db -repos recreate
          • 集群重建:emca -config dbcontrol db -repos recreate -cluster
          • OEM的运行日志路径:ORACLEHOME/ORACLEHOME/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查看参数
        • 更改初始化参数值
        • PFILE和SPFILE的区别是什么?
      • 数据库启动和关闭
        • 启动Oracle DB实例
          • 启动Oracle DB实例:NOMOUNT
          • 启动Oracle DB实例:MOUNT
          • 启动Oracle DB实例:OPEN
        • 关闭Oracle DB实例
          • SHUTDOWN NORMAL
          • SHUTDOWN TRANSACTIONAL
          • SHUTDOWN IMMEDIATE
          • SHUTDOWN ABORT
        • 数据库处于RESTRICT、QUIESCE和SUSPEND状态的区别是什么?
        • 数据库的启动经历几个过程
      • 告警日志
        • Oracle 10g和11g告警日志文件的位置在哪里?
        • 告警日志的包含内容
        • 管理告警日志
          • V$DIAG_ALERT_EXT
          • ①使用外部表方式
          • ②视图V$DIAG_ALERT_EXT
          • ③利用SHELL脚本
      • 使用跟踪文件
      ASM
      ASM

      • 简介
      • ASM对于管理员的好处
        • ASM是什么?它有哪些优点?
      • ASM实例
        • 主要进程
        • ASM实例初始化参数
      • 数据库实例与ASM之间的交互
      • ASM相关动态性能视图
      • 系统权限
        • SYSASM、SYSDBA或SYSOPER
      • 使用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管理命令行三工具:KFOD、KFED和AMDU
      2

    3. 网络管理

      网络管理

      • 监听
        • 配置
        • 管理
        • 静态监听和动态监听
        • 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: 协议适配器错误"的常见原因有哪些?
        • Oracle的SYS用户登录报权限不足(ORA-01031: Insufficient Privileges)的常见原因有哪些?
        • 在没有配置ORACLE_HOME环境变量的情况下,如何快速获取数据库软件的ORACLE_HOME目录?
        • 造成错误"ORA-12547: TNS:lost contact"的常见原因有哪些?
      2

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

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

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

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

      数据库事务处理

      • 数据库事务的开始与结束
      • COMMIT和ROLLBACK语句
      • 事务控制
      • 事务的控制示例
      • 隐式事务处理
      用户及其密码文件

      • 创建、密码
      • 使用工具来创建用户
        • Oracle用户密码含特殊字符时的登陆问题
      • 密码文件
        • 创建、作用
        • Oracle的两种认证方式
      • 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
        • 密码延迟验证
        • 哪些用户密码没有被修改
        • 密码复杂性校验
      • 删除用户
      • 扩展
        • SCHEMA和USER的区别
        • 重建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
        • 通过数据字典来获取
        • 通过exp或expdp来获取
      • 扩展
        • 如何让普通用户可以TRUNCATE其他用户的表?
        • 关于UNDER ANY TABLE/VIEW权限的解释
      • 用户的权限分为哪几类?如何导出用户的权限?
      角色

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

    6. 课程模块

      培训要点

      学时

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

            0:NONE

            1:NULL

            2:SS(Row-S)

            3:SX(Row-X)

            4:S(Share)

            5:SSX(S/Row-X)

            6:X(Exclusive)

            • 死锁
          • 行级死锁

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

            2、外键未加索引

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

            4、常见事务引发的死锁

            5、自治事务引发的死锁

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

      会话

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

      1. 审计和Undo

        审计

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

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

        • 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

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

        AWR、ASH、ADDM和统计信息

        • 统计信息(学习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报告?
        • 自动维护任务
          • 简介
          • 自动维护任务配置
        • 服务器生成的预警
          • 设置阈值
          • 创建和测试预警
          • 预警通知
          • 对预警作出响应

      3. JOB和分区

        JOB

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

        • 分区表简介
        • 何时考虑分区?
        • 分区表有什么优点
        • 有哪些类型的分区?如何选择用哪种类型的分区表?
          • 范围分区(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)--分区切割
          • 修改分区表属性
          • 修改表子分区模板(Set Subpartition Template)
        • 分区表的查询优化
        • 分区表常用数据字典视图有哪些?
        • Oracle之INTERVAL分区的STORE IN属性存储在哪张表中?
        • 如何查询某个分区是否是INTERVAL分区表?
        • 分区表的压缩
          • 分区表压缩
          • 含有子分区的分区表压缩
          • 分区表哪些分区被压缩了
          • 解压缩
        • 分区表单个分区分析(分区表收集统计信息)
          • 指定partname和GRANULARITY
        • 普通表转换为分区表有哪些办法?
          • (1)导出/导入方法(Export/Import Method)
          • (2)子查询插入方法(Insert With a Subquery Method)
          • (3)分区交换方法(Partition Exchange Method)
          • (4)在线重定义方法(DBMS_REDEFINITION Method)
        • 分区表中lob类型的字段
        • 分区表性能注意事项
        • 索引失效的情况
          • 分区表
          • 非分区表
        1

        备份和恢复(包括闪回)

        备份和恢复的概念

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

        • SCN的组成
        • SCN的分类
          • 系统检查点SCN(System Checkpoint SCN)
          • 文件检查点SCN(Datafile Checkpoint SCN)
          • 开始SCN(Start SCN)
          • 结束SCN(Stop SCN)
        • 如何查看系统当前SCN
        • SCN与时间的相互转换
        备份

        • 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中关于备份或归档文件状态OBSOLETE和EXPIRED的区别是什么?
        • 物理备份和逻辑备份分别是什么?
        • 差异增量备份和累积增量备份的区别是什么?
        • 什么是块改变跟踪?
        • 完全备份
        • 增量备份
        • 文件备份
        • 表空间备份
        恢复

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

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

        • bbed简介
        rman之块介质恢复

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

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

        • 使用alter database open resetlogs的场合
        • 为什么使用RESETLOGS?
        • RESETLOGS会执行什么操作?
        4条RECOVER 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;
        日志挖掘logminer

        • 日志挖掘logminer
        利用增量数据库备份进行恢复

        跨版本恢复

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

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

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

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

        exp和imp

        • EXP导出数据
        • IMP导入数据
          • 导入表
          • 导入方案
          • 导入数据库
          • imp导入常见问题处理
        • 其它实用内容
          • 可以从dmp文件获取哪些信息?
          • exp的query参数
          • 什么是延迟段创建(Deferred Segment Creation)?
          • Oracle 11g不能导出空表的三种解决方法
          • exp导出ASH数据
            • 方法1:ctas建表导出,有的客户不让建表
            • 方法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
        数据泵(expdp和impdp)

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

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

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

        管理补丁程序

        管理补丁程序

        • PSU、SPU(cpu)、BP、one-off patch等概念简介
        • 什么是Metalink或MOS
        • Upgrade与Update
        • 如何查找最新的PSU?
        • 如何确认当前数据库已经安装了什么PSU?
        • 如何安装PSU?
        • PSU安装演示
          • 11.2.0.3.0升级到11.2.0.3.1
        • 热补丁安装演示( One-off Patch)
          • 一道OCM考题
        实验课
        实验课

        • 数据泵之NETWORK_LINK
        • Duplicating an Active Database(duplicate复制数据库
        • 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(真实环境)
        OCP讲课内容思维导图
        1. 安装与卸载

        1. sql基础部分

        1. 基本对象的管理

        1. 数据库管理部分

          1. 体系结构和Oracle Restart

        管理数据库实例

        ASM

          网络管理
          表空间及数据文件
          事务处理及用户

        用户权限及角色

          锁和会话
          审计和Undo
          AWR、ASH、ADDM、统计信息
          JOB和分区
          备份和恢复(包括闪回)
          移动数据

        管理补丁程序

        实验课

        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 sqlsql*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 -

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

        第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 -

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

        第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 使用支持工作台- 443 -

        8.3 在 Oracle Enterprise Manager 中查看严重错误预警- 445 -

        8.4 查看问题详细资料- 446 -

        8.4.1 查看意外事件详细资料:转储文件- 447 -

        8.4.2 查看意外事件详细资料:检查器查找结果- 448 -

        8.5 创建服务请求- 449 -

        8.6 将诊断数据打包并上载到 Oracle 技术支持- 450 -

        8.7 跟踪服务请求并实施修复- 451 -

        8.8 关闭意外事件和问题- 453 -

        8.9 意外事件打包配置- 454 -

        8.10 Enterprise Manager 针对 ASM 的支持工作台- 456 -

        8.11 使用 Oracle 技术支持- 457 -

        8.12 My Oracle Support 集成- 458 -

        8.12.1 使用 My Oracle Support- 459 -

        8.13 调查问题- 461 -

        8.14 记录服务请求- 463 -

        8.15 小结- 464 -

        实验课

        实验目录- 11 -

        第1章 数据泵之NETWORK_LINK- 11 -

        1.1 博客地址- 11 -

        1.2 环境介绍- 12 -

        1.3 imp和exp简介- 13 -

        1.4 expdp不使用network_link- 15 -

        1.5 expdp使用network_link- 18 -

        1.5.1 目标数据库创建dblink- 18 -

        1.5.2 client端或目标数据库执行- 19 -

        1.5.3 总结- 21 -

        1.6 impdp使用network_link- 21 -

        1.6.1 目标数据库创建dblink- 21 -

        1.6.2 client或目标端执行- 22 -

        1.6.3 总结- 23 -

        1.7 实验命令- 23 -

        第2章 Duplicating an Active Database(duplicate复制数据库)- 23 -

        2.1 博客地址- 23 -

        1.1 duplicate体系结构- 24 -

        1.2 本次实验简介- 25 -

        1.3 本次实验原理- 26 -

        1.4 环境及搭建要求- 26 -

        1.4.1 对辅助数据库的要求- 27 -

        1.5 正式开始- 28 -

        1.5.1 duplicate database 设置- 28 -

        1.5.1.1 创建pfile 参数文件- 28 -

        1.5.1.2 创建密码文件- 28 -

        1.5.1.3 创建和source database的数据文件相关的目录结构- 29 -

        1.5.1.4 启动Auxiliary 到nomout 状态- 29 -

        1.5.2 在Target 和Auxiliary 都配置Oracle Net(Listener.ora and tnsnames.ora)- 30 -

        1.5.2.1 测试网络是否配置好- 33 -

        1.5.3 开始RMAN duplicate from active database- 35 -

        1.5.4 drop database- 41 -

        2.2 OCP讲课(duplicate ACTIVE + ASM-->FS)- 42 -

        1.5.5 duplicate database设置- 42 -

        1.5.5.1 创建pfile 参数文件- 42 -

        1.5.5.2 创建密码文件- 43 -

        1.5.5.3 创建和source database的数据文件相关的目录结构- 43 -

        1.5.5.4 启动Auxiliary到nomout状态- 43 -

        1.5.6 在Target和Auxiliary都配置Oracle Net(Listener.ora和tnsnames.ora)- 43 -

        1.5.6.1 测试网络是否配置好- 45 -

        2.2.1 准备执行的RUN块- 45 -

        1.5.7 开始RMAN duplicate from active database- 46 -

        2.2.2 测试一下dbid和dbname- 46 -

        第3章 Duplicating a Database Without Recovery Catalog or Target Connection- 48 -

        1.1 本次实验简介- 48 -

        1.2 环境及搭建要求- 48 -

        1.2.1 对辅助数据库的要求- 48 -

        1.3 正式开始- 50 -

        1.3.1 前期准备- 50 -

        1.3.1.1 建表- 50 -

        1.3.1.2 数据库归档模式- 50 -

        1.3.1.3 备份数据库- 51 -

        1.3.1.4 将备份内容拷贝到destination host- 55 -

        1.3.1.5 创建pfile 参数文件- 56 -

        1.3.1.6 创建和source database的数据文件相关的目录结构- 57 -

        1.3.1.7 创建密码文件- 58 -

        1.3.2 实施数据库的复制- 58 -

        1.3.2.1 启动Auxiliary 到nomout 状态- 58 -

        1.3.2.2 连接到auxiliary instance并复制数据库- 59 -

        1.3.2.3 可能的报错- 65 -

        一、 fra满了- 65 -

        二、 备份位置- 66 -

        1.3.2.4 验证- 66 -

        1.3.3 drop database- 67 -

        第4章 Duplicating a Database Without Recovery Catalog or Target Connection- 68 -

        4.1 本次实验简介- 68 -

        4.2 本次实验原理图- 69 -

        4.3 环境及搭建要求- 69 -

        4.3.1 source database环境- 69 -

        4.3.2 对辅助数据库的要求- 70 -

        4.4 正式开始- 71 -

        4.4.1 前期准备- 71 -

        4.4.1.1 建表- 71 -

        4.4.1.2 数据库归档模式- 73 -

        4.4.1.3 备份数据库- 74 -

        4.4.1.4 将备份内容拷贝到destination host- 77 -

        4.4.1.5 创建pfile 参数文件- 77 -

        4.4.1.6 创建和source database的数据文件相关的目录结构- 78 -

        4.4.1.7 创建密码文件- 80 -

        4.4.2 实施数据库的复制- 81 -

        4.4.2.1 启动Auxiliary 到nomout 状态- 81 -

        4.4.2.2 连接到auxiliary instance并复制数据库- 83 -

        一、 告警日志- 93 -

        4.4.2.3 可能的报错- 119 -

        二、 fra满了- 119 -

        三、 备份位置- 120 -

        1.1.1.2 验证- 121 -

        4.4.3 drop database- 122 -

        第5章 TSPITR(表空间基于时间点恢复)- 124 -

        5.1 博客地址- 124 -

        5.2 BLOG文档结构图- 125 -

        5.3 前言部分- 125 -

        5.3.1 导读- 125 -

        5.3.2 实验环境介绍- 126 -

        5.3.3 本文简介- 126 -

        5.4 TSPITR的相关知识点归纳- 127 -

        5.4.1 TSPITR简介- 127 -

        5.4.2 何时使用TSPITR- 127 -

        5.5 实验部分- 128 -

        5.5.1 源库做备份操作- 128 -

        5.5.2 建立测试表并做truncate误操作- 131 -

        5.5.3 采用logminer找回误删除的时间点- 133 -

        5.5.4 执行TSPITR之前的检查- 133 -

        5.5.4.1 检查是否自包含- 133 -

        5.5.4.2 检查哪些对象执行TSPITR后将被删除- 134 -

        5.5.5 执行TSPITR- 135 -

        5.5.6 online表空间并且导入丢失的对象- 140 -

        5.6 与TSPITR有关的OCP试题部分- 142 -

        5.7 总结- 146 -

        5.8 实验脚本- 149 -

        5.9 RMAN系列参考文章- 151 -

        第6章 直接复制数据文件实现linux平台数据库复制到windows平台数据库- 152 -

        6.1 平台环境概述- 152 -

        6.2 查看字节序- 152 -

        6.3 linux 下操作- 154 -

        6.3.1 linux下生成pfile和control file- 154 -

        6.3.2 把linux上/u01/app/oracle/oradata/rman下的数据文件、重做日志文件、归档文件,还有刚才创建的pfile和控制文件及listener.ora、tnsnames.ora文件复制到windows平台上- 155 -

        6.4 windows 下操作- 155 -

        6.4.1 创建一个rman的实例,注意SID要与linux服务器中的相同- 155 -

        6.4.2 修改初始化参数文件,并创建相关目录- 156 -

        6.4.3 创建spfile并启动到nomount状态- 157 -

        6.4.4 将相应的数据文件拷贝到相关的目录然后重建控制文件(也别忘了更改文件路径)- 158 -

        6.4.5 打开数据库添加临时表空间数据文件- 160 -

        6.4.6 由于是64位到32位操作系统,所以需要编译一下内核代码- 160 -

        6.4.7 其它配置工作- 163 -

        6.4.8 测试OK- 163 -

        6.4.9 删除数据库做其它测试- 164 -

        第7章 利用rman来实现linux平台数据库复制到windows平台数据库- 165 -

        7.1 平台环境概述- 165 -

        7.2 本次实验简介- 165 -

        7.3 本次实验原理图- 165 -

        7.4 查看字节序- 165 -

        7.5 source database 归档模式- 167 -

        7.6 linux 下操作- 167 -

        7.6.1 建表- 167 -

        7.6.2 rman备份- 168 -

        7.6.3 linux下生成pfile- 173 -

        7.6.4 把linux上/home/oracle/oracle_bk/rman/下的所有备份文件复制到windows平台上- 174 -

        7.7 windows 下操作- 174 -

        7.7.1 创建一个rman的实例,注意SID要与linux服务器中的相同- 174 -

        7.7.2 修改初始化参数文件,并创建相关目录- 175 -

        7.7.3 创建spfile并启动到nomount状态- 176 -

        7.7.4 rman 进行数据文件的恢复- 177 -

        7.7.5 由于是64位到32位操作系统,所以需要编译一下内核代码- 185 -

        7.7.6 其它配置工作- 188 -

        7.7.7 测试OK- 188 -

        7.7.8 删除数据库做其它测试- 189 -

        第8章 热备下的测试库搭建- 190 -

        8.1 基础知识- 190 -

        8.2 本次实验环境简介- 190 -

        8.3 源库生成热备份文件- 190 -

        8.4 传输备份文件到target库- 194 -

        8.4.1 传输数据文件- 194 -

        8.4.2 传输归档文件- 194 -

        8.5 修改target库的pfile文件生成pfile文件中的路径- 195 -

        8.6 启动target数据库到nomount状态- 196 -

        8.7 开始创建控制文件- 196 -

        8.7.1 第一步,首先移动相应的数据文件到相应的控制文件记录的目录中- 197 -

        8.7.2 第二步,重新创建控制文件,控制文件创建完成后自动mount- 197 -

        8.8 用rman注册一下- 198 -

        8.9 recover到指定的scn- 201 -

        8.10 重建临时表空间并配置密码文件以及 TNS 和密码文件等- 201 -

        第9章 传输表空间(TTS)一例(linux asm -> win 文件系统)- 202 -

        9.1 场景描述- 202 -

        9.2 环境准备- 202 -

        9.2.1 在源库上创建3个用户应用的表空间- 202 -

        9.2.2 在相应的表空间创建表和索引- 203 -

        9.3 判断平台支持并确定字节序- 204 -

        9.3.1 在源平台查询- 204 -

        9.3.2 在目标平台查询- 204 -

        9.4 选择自包含的表空间集(目前要传输app1tbs和idxtbs这2个表空间)- 205 -

        9.4.1 进行检查- 205 -

        9.4.2 查看检查结果- 205 -

        9.5 产生可传输表空间集- 206 -

        9.5.1 使自包含的表空间集中的所有表空间变为只读状态- 206 -

        9.5.2 使用数据泵导出工具,导出要传输的各个表空间的元数据- 206 -

        9.5.2.1 确定导出目录- 206 -

        9.5.2.2 开始导出- 207 -

        9.5.3 生成数据文件- 208 -

        9.6 还原源库中的表空间为读/写模式- 209 -

        9.7 传输文件- 210 -

        9.7.1 传输转储元文件到目标库- 210 -

        9.7.2 查看目标库数据文件位置和目录- 210 -

        9.7.3 拷贝文件到目标库相应位置- 210 -

        9.8 开始导入- 211 -

        9.8.1 生成parfile文件- 211 -

        9.8.2 开始导入- 211 -

        9.8.3 查看目标平台信息- 212 -

        9.9 修改表空间对应的文件名- 214 -

        9.10 结束语- 216 -

        第10章 传输表空间(TTS)一例(win文件系统 -> linux asm )- 216 -

        10.1 场景描述- 216 -

        10.2 环境准备- 217 -

        10.2.1 在源库上创建3个用户应用的表空间- 217 -

        10.2.2 在相应的表空间创建表和索引- 218 -

        10.3 判断平台支持并确定字节序- 219 -

        10.3.1 在源平台查询- 219 -

        10.3.2 在目标平台查询- 219 -

        10.4 选择自包含的表空间集(目前要传输app1tbs和idxtbs这2个表空间)- 220 -

        10.4.1 进行检查- 220 -

        10.4.2 查看检查结果- 220 -

        10.5 产生可传输表空间集- 221 -

        10.5.1 使自包含的表空间集中的所有表空间变为只读状态- 221 -

        10.5.2 使用数据泵导出工具,导出要传输的各个表空间的元数据- 221 -

        10.5.2.1 确定导出目录- 221 -

        10.5.2.2 开始导出- 222 -

        10.5.3 将数据文件拷贝到dpdump目录下- 222 -

        10.6 还原源库中的表空间为读/写模式- 223 -

        10.7 传输文件- 223 -

        10.7.1 利用ftp工具传输转储元文件到目标库- 223 -

        10.7.2 查看目标库数据文件位置和导入目录- 223 -

        10.7.3 拷贝文件到目标库相应位置并修改文件权限- 224 -

        10.8 开始导入- 225 -

        10.8.1 生成parfile文件- 225 -

        10.8.2 开始导入- 225 -

        10.8.3 查看目标平台信息- 226 -

        10.9 修改表空间对应的文件名- 228 -

        第11章 传输表空间(TTS)一例(AIX asm -> linux asm )- 232 -

        11.1 场景描述- 232 -

        11.2 环境准备- 234 -

        11.2.1 在源库上创建3个用户应用的表空间,并在相应的表空间创建表和索引- 234 -

        11.3 判断平台支持并确定字节序- 236 -

        11.4 选择自包含的表空间集- 236 -

        11.4.1 进行检查- 236 -

        11.5 产生可传输表空间集- 237 -

        11.5.1 使自包含的表空间集中的所有表空间变为只读状态- 237 -

        11.5.2 使用数据泵导出工具,导出要传输的各个表空间的元数据- 238 -

        11.5.2.1 确定导出目录- 238 -

        11.5.2.2 开始导出- 239 -

        一、 在source端转换(转换字节序可以在sorce端进行也可以在target端进行,我们选择在target端,这个步骤不执行)- 240 -

        11.6 还原源库中的表空间为读/写模式- 242 -

        11.7 传输文件- 243 -

        11.7.1 查看目标库数据文件位置和导入目录- 243 -

        11.7.2 利用ftp工具传输转储元文件到目标库DATA_PUMP_DIR目录并修改权限- 244 -

        11.8 开始导入- 245 -

        11.8.1 转换字节序(转换字节序可以在sorce端进行也可以在target端进行,我们选择在target端执行)- 245 -

        11.8.2 创建source库的2个用户并赋权限- 246 -

        11.8.3 开始导入- 247 -

        11.8.4 查看目标平台信息- 247 -

        第12章 传输表空间(TTS)一例(linux asm -> AIX asm)- 250 -

        12.1 场景描述- 250 -

        12.2 环境准备- 252 -

        12.2.1 在源库上创建3个用户应用的表空间- 252 -

        12.2.2 在相应的表空间创建表和索引- 253 -

        12.3 判断平台支持并确定字节序- 254 -

        12.3.1 在源平台查询- 254 -

        12.3.2 在目标平台查询- 254 -

        12.4 选择自包含的表空间集- 255 -

        12.4.1 进行检查- 255 -

        12.4.2 查看检查结果- 255 -

        12.5 产生可传输表空间集- 256 -

        12.5.1 使自包含的表空间集中的所有表空间变为只读状态- 256 -

        12.5.2 使用数据泵导出工具,导出要传输的各个表空间的元数据- 256 -

        12.5.2.1 确定导出目录- 256 -

        12.5.2.2 开始导出- 257 -

        12.5.3 生成数据文件- 258 -

        12.5.3.1 在source端转换字节序(也可以在target端转换字节序,我们选择在target端转换)- 260 -

        12.6 还原源库中的表空间为读/写模式- 263 -

        12.7 传输文件- 263 -

        12.7.1 传输转储元文件到目标库- 263 -

        12.7.2 查看目标库数据文件位置和目录- 264 -

        12.7.3 拷贝文件到目标库相应位置并修改权限- 264 -

        12.8 target端转换字节序- 265 -

        12.9 开始导入- 266 -

        12.9.1 创建source库的2个用户并赋权限- 266 -

        12.9.2 开始导入- 267 -

        12.9.3 查看目标平台信息- 268 -

        12.10 查看导入后结果- 270 -

        第13章 传输表空间(TTS)一例(linux asm -> AIX asm)--基于RMAN备份- 271 -

        13.1 场景描述- 271 -

        13.2 环境准备- 272 -

        13.2.1 在源库上创建3个用户应用的表空间- 272 -

        13.2.2 在相应的表空间创建表和索引- 274 -

        13.3 判断平台支持并确定字节序- 274 -

        13.3.1 在源平台查询- 274 -

        13.3.2 在目标平台查询- 275 -

        13.4 选择自包含的表空间集- 276 -

        13.4.1 进行检查- 276 -

        13.4.2 查看检查结果- 276 -

        13.5 产生可传输表空间集- 277 -

        13.5.1 rman全备份- 277 -

        13.5.2 生成结果集- 280 -

        13.6 传输文件- 286 -

        13.6.1 查看目标库数据文件位置和目录- 286 -

        13.6.2 拷贝文件到目标库相应位置并修改权限- 287 -

        13.7 target端转换字节序- 287 -

        13.8 target端开始导入数据- 289 -

        13.8.1 创建source库的2个用户并赋权限- 289 -

        13.8.2 开始导入- 290 -

        13.8.3 查看目标平台信息- 290 -

        13.9 查看导入后结果- 291 -

        第14章 传输表空间(TTS)一例(AIX asm -> linux asm )--基于RMAN- 293 -

        14.1 场景描述- 293 -

        14.2 环境准备- 294 -

        14.2.1 在源库上创建3个用户应用的表空间,并在相应的表空间创建表和索引- 294 -

        14.3 判断平台支持并确定字节序- 296 -

        14.4 选择自包含的表空间集- 297 -

        14.4.1 进行检查- 297 -

        14.5 产生可传输表空间集- 298 -

        14.5.1 rman备份source库- 298 -

        14.5.2 transport tablespace 生成文件- 300 -

        14.6 传输文件到target端- 305 -

        14.6.1 查看目标库数据文件位置和导入目录- 305 -

        14.6.2 拷贝文件到目标库相应位置并修改文件权限- 306 -

        14.7 target端转换字节序- 307 -

        14.8 开始导入- 307 -

        14.8.1 创建source库的2个用户并赋权限- 308 -

        14.8.2 开始导入- 308 -

        14.8.3 查看目标平台信息- 309 -

        第15章 AIX平台数据库迁移到Linux--基于RMAN(真实环境)- 312 -

        15.1 场景描述- 312 -

        15.2 源库信息收集- 314 -

        15.2.1 先跑一下健康检查(可选)- 314 -

        15.2.2 表空间及数据文件情况- 315 -

        15.2.2.1 表空间大小- 315 -

        15.2.2.2 需要传输的数据文件大小- 318 -

        15.2.3 用户情况(密码、默认表空间、角色和权限,需迁移的schema对象大小、个数、列表)- 318 -

        15.2.3.1 需要迁移的用户- 318 -

        15.2.3.2 用户权限- 319 -

        15.2.3.3 用户表大小- 321 -

        15.2.3.4 对象个数- 322 -

        15.2.3.5 对象详细信息- 322 -

        15.2.4 无效对象情况- 326 -

        15.2.5 索引情况- 327 -

        15.2.6 确定是否有业务数据、脚本在例如sys用户等的默认用户下- 327 -

        15.3 判断平台支持并确定字节序- 327 -

        15.4 判断表空间集是否自包含- 328 -

        15.5 产生可传输表空间集- 329 -

        15.5.1 rman备份source库- 329 -

        15.5.2 transport tablespace 生成文件- 331 -

        15.6 传输文件到target端- 339 -

        15.6.1 dbca创建target库- 339 -

        15.6.2 查看目标库数据文件位置和导入目录- 340 -

        15.6.3 利用ftp工具传输转储元文件到目标库- 341 -

        15.6.4 拷贝文件到目标库相应位置并修改文件权限- 341 -

        15.7 target端转换字节序- 342 -

        15.8 开始导入- 344 -

        15.8.1 创建source库的需要迁移的3个用户并赋权限(前边的脚本已经生成,直接拿过来执行)- 344 -

        15.8.2 开始导入- 345 -

        15.8.2.1 报错:source和target的compatible参数不同引起ora-00721错误- 346 -

        15.8.3 查看目标平台信息- 347 -

        15.9 导入完成后的结果校验- 348 -

        15.9.1 校验用户情况(密码、默认表空间、角色和权限,需迁移的schema对象大小、个数、列表)- 348 -

        15.9.1.1 校验用户- 348 -

        15.9.1.2 用户对象个数- 349 -

        15.9.1.3 对象详细信息- 350 -

        15.9.2 无效对象情况- 353 -

        15.9.3 索引情况- 354 -

        15.10 迁移后续收尾工作- 354 -

        15.11 TTS总结- 354 -

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

        16.1.1 原库备份并传输到测试库- 355 -

        16.1.2 测试库编辑pfile文件- 359 -

        16.1.3 备份集中含有控制文件备份的情况下的恢复--尝试法找回控制文件- 359 -

        16.1.3.1 方法一:采用dbms_backup_restore.restoreControlfileTo从备份片中来尝试找回控制文件- 360 -

        一、 启动数据库到mount状态- 367 -

        二、 重新注册备份集,还原spfile,还原数据库,不完全恢复数据库- 368 -

        16.1.3.2 方法二:尝试采用创建临时库来找回控制文件- 374 -

        一、 搭建临时库来注册备份集- 374 -

        1、 修改dbname和dbid- 377 -

        2、 重新注册- 379 -

        二、 还原操作- 381 -

        1、 还原spfile- 381 -

        2、 还原控制文件- 381 -

        3、 还原database- 381 -

        16.1.3.3 方法三:直接通过restore命令尝试- 400 -

        16.1.3.4 采用os系统命令strings来判断- 402 -

        一、 判断备份集是否含有spfile- 403 -

        二、 判断备份集中是否含有control file- 405 -

        16.1.4 备份集中无控制文件情况下的数据库恢复--重建控制文件- 405 -

        16.1.5 总结- 418 -





        About Me

        .............................................................................................................................................

        ● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

        ● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

        ● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

        ● 本文博客园地址:http://www.cnblogs.com/lhrbest

        ● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

        数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

        ● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

        ● QQ群号:230161599(满)、618766405

        ● 微信群:可加我微信,我拉大家进群,非诚勿扰

        ● 联系我请加QQ好友(646634621),注明添加缘由

        ● 于 2018-03-01 06:00 ~ 2018-03-31 24:00 在魔都完成

        ● 最新修改时间:2018-03-01 06:00 ~ 2018-03-31 24:00

        文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

        ● 版权所有,欢迎分享本文,转载请保留出处

        .............................................................................................................................................

        ● 小麦苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

        ● 小麦苗出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/

        ● 小麦苗OCP、OCM、高可用网络班:http://blog.itpub.net/26736162/viewspace-2148098/

        使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

        小麦苗的微信公众号 小麦苗的DBA宝典QQ群2 《DBA笔试面试宝典》读者群 小麦苗的微店

        .............................................................................................................................................

        猜你在找的Oracle相关文章