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




  1. 现有课程

课程名称

课时

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

OCP(从入门到专家)

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

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

20:00-22:00

OCM认证

每年N期,9课时/期

每周二、周五

20:00-22:00

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

未定

未定

未定

注意:

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

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

11g OCM考试内容思维导图

  1. 第一场


  1. 第二场

  1. 第三场

  1. 第四场

  1. 第五场

  1. 第六场

  1. 第七场

  1. 第八场

  1. 第九场

  1. 12c OCM

若要考12C OCM请私聊。

  1. OCM培训说明连接

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



OCP




  1. OCP培训说明网络连接

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

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

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

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

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

  1. OCP讲课文档

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


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

  1. OCP培训课程大纲

注:



  • 1学时=1小时
  • 1课时=1次课=2学时=2小时


  1. 安装与卸载

课程模块

培训要点

学时

VMware Workstation虚拟机的相关知识



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


0.5

Linux的安装(RHEL 5.5)



  • 逻辑卷的管理方式
  • 用户的环境变量配置
  • PS1环境变量的作用
  • su - 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图形创建

静默创建


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


手动创建数据库


0.5

管理工具介绍



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


0.5

Oracle软件的卸载



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


0.5

其它内容



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


0.5


SQL基础部分

课程模块

培训要点

学时

SQL简介及分类



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


0.5

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的帮助脚本


0.5

基本SELECT语句



  • 语法
  • 别名
  • 运算符
  • 去重

空值


  • NULL的注意事项,例如如果子查询结果中包含NULL值,那么NOT IN (NULL、AA、BB、CC)返回为空。
  • IS NULL 走索引


Quote (q)语法 Oracle特殊字符的处理


0.5

WHERE条件和排序




条件


  • 条件中使用字符串和日期

比较条件



模糊查询


  • 1.LIKE模糊查询如何使用索引
  • 2.如何搜索包括%和_符号的行


IN和OR(IN中最多支持1000个列举项) BETWEEN(between包括边界值) 使用NULL/NOT NULL条件 逻辑条件(AND、OR 、NOT)--注意添加括号,防止形成笛卡儿积





排序


  • 升序(ASC)
  • 降序(DESC)
  • 列别名排序
  • 多列排序




0.5

连接类型



  • 交叉连接(笛卡儿积)

内连接(简单连接)



等值连接


  • 自然连接
  • 自连接


非等值连接



外连接


  • 左外连接
  • 右外连接
  • 全外连接




0.2

查询分类




子查询



主查询和子查询的关系


  • 标量子查询---性能问题

关联子查询(标准子查询)


  • 相关子查询
  • 非相关子查询(独立子查询)





返回的行数


  • 单行子查询
  • 多行子查询



返回的列数


  • 单列子查询
  • 多列子查询


    子查询中的IN和EXISTS


主查询


0.2

合并查询(集合查询)



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


0.2

函数




单行函数


  • 字符函数
  • 数字函数
  • 日期函数
  • 转换函数(隐式类型转换(字符列的值应该加上单引号)
  • 通用函数
  • 条件表达式有 CASE表达式、DECODE 函数



多行函数(组函数)


  • 组函数的概念及应用
  • AVG、SUM、MAX、MIN(MAX​​MIN的优化写法
  • COUNT
  • DISTINCT
  • GROUP BY和HAVING
  • 嵌套组函数



扩展内容


  • 如何将一个数字转换为字符串并且按照指定格式显示?
  • ORA-00904: "wm_concat":invalid identifier错误解决
  • 如何判断一个字符串是否含有中文汉字?
  • 如何让日期显示为"年-月-日时:分:秒"的格式?
  • NLS_LANGUAGE的使用
  • 如何判断当天是否月份最后一天?
  • COUNT(1)​​COUNT(*)COUNT(常量)COUNT(主键)COUNT(ROWID)COUNT(非空列)COUNT(允许为空列)COUNT(DISTINCT 列名) 的区别(结果和效率)




2

dual表



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


0.2

操作数据




INSERT


  • 插入特殊值
  • 插入指定日期
  • 插入可输入变量
  • 从另外一个表复制
  • 在INSERT语句中使用子查询



DELETE


  • 一道OCM考题
  • 记得加WHERE条件
  • 查找和删除重复的记录



UPDATE


  • 关联更新一定要加WHERE条件
  • 优化写法



MERGE(数据合并)


  • 语法、概念
  • MERGE语句在优化中的巨大作用


提高DML语句性能的写法


0.5

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




PL/SQL块


  • 分支
  • 循环(游标FOR循环)
  • 控制



存储过程


  • 编写
  • 存过中捕获异常的行号
  • 存储过程和函数的区别是什么?
  • 存过中的动态执行语句(动态sql)
  • 存过返回集合



函数


  • 函数返回集合
  • 函数返回系统游标
  • 函数返回索引表



  • 一个项目一个包,或一个系统一个包


异常处理



分类


  • 预定义异常
  • 非预定义异常
  • 自定义异常



抛出异常


  • 通过PL/SQL运行时引擎
  • 使用RAISE语句
  • 调用RAISE_APPLICATION_ERROR存储过程
  • SQLCODE和SQLERRM


如何捕获错误并记录到表中? 存过中捕获异常的行号(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE)



Oracle分批提交DML


  • 分批 update
  • 分批 delete
  • 分批 insert




2


基本对象的管理

课程模块

培训要点

学时

DBLINK



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


0.2

约束



  • 约束的概念和原则
  • 定义约束

几种常见的约束


  • NOT NULL约束
  • UNIQUE约束
  • PRIMARY KEY约束(非空且唯一)

FOREIGN KEY约束


  • 1.外键列需创建索引,否则易引起锁问题,导致死锁的产生
  • 2.找出没有建立索引的外键


CHECK约束



管理约束


  • 添加约束
  • 删除约束
  • 级联约束
  • 查看约束
  • 禁用、启用约束




0.5

视图



  • 视图的概念和优势
  • 分类
  • 视图中的规则
  • 管理视图
  • TOP-N分析

物化视图简介

  • 对比"有无物化视图"前后执行计划的区别


扩展


  • DBA_UPDATABLE_COLUMNS的作用
  • 在什么情况下可以对视图执行增、删、改操作?




0.3

其它数据库对象




序列


  • 讲解一道OCP和OCM的考题
  • 概念、语法、修改、删除
  • 性能问题



索引


  • 概念、作用、创建、删除

分类


  • 复合索引
  • 函数索引
  • 位图索引
  • 分区索引
  • 全文索引
  • 虚拟索引
  • 不可见索引


重点:不能使用索引的情况

扩展


  • 哪几种情况不能使用索引
  • 如何预估即将创建索引的大小?
  • 如何监控索引的使用状况?
  • 哪些操作会导致索引失效?
  • 什么是索引的选择性(Index Selectivity)?
  • IS NULL如何用到索引?





同义词


  • 概念、创建、删除
  • 扩展
  • PLAN_TABLE表的真谛




0.5

创建和管理表




表的分类


  • 普通堆表(heap table)---最多包含1000列

全局临时表


  • 会话级
  • 事务级



分区表


  • 范围分区
  • 列表分区
  • HASH分区
  • 组合分区


索引组织表(IOT) 簇表     外部表


数据字典(dict和tab)

创建表


  • CTAS及其优化
  • default选项
  • 数据类型


删除表 引用

修改表alter


  • 重命名(rename)表或字段的名称
  • 添加、修改、删除列
  • SET UNUSED及其恢复
  • 移动表所在的表空间
  • 修改表的存储特征



truncate

  • DELETE、DROP和TRUNCATE的区别


给表和列添加注释(COMMENT语句)

  • 提供一个SQL生成开发语句



0.5


数据库管理

  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(后台进程) 守护程序/应用程序进程



存储结构(物理结构)


  • 数据文件
  • 控制文件---新增控制文件
  • 联机Redo日志文件
  • 参数文件

归档日志文件


  • 归档和非归档的区别
  • 归档和非归档模式互相切换


密码文件 备份文件 告警日志和跟踪文件




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)

  • 数据块dump文件详解






数据库实例



OS分配的一块内存


  • SGA
  • PGA


一些后台进程(PMON、SMON、LGWR、CKPT、DBWn等)


实例和数据库的区别


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的运行日志路径:ORACLE H OME/ 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脚本




使用跟踪文件


2


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


网络管理

课程模块

培训要点

学时

网络管理




监听


  • 配置
  • 管理
  • 静态监听和动态监听
  • 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


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

课程模块

培训要点

学时

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



  • 表空间和数据文件
  • 表数据的存储方式
  • 浏览存储结构
  • 表空间的存储
  • 预配置的数据库中的表空间
  • 变更表空间
  • 表空间操作

Oracle管理的文件(OMF)


  • 数据文件的OMF管理
  • 日志文件的OMF管理
  • 使用OMF管理控制文件
  • 使用OMF 创建ASM文件涉及的一些参数


扩大数据库 改变数据文件的名称和位置、移动数据文件 什么是用户的表空间配额(User tablespace Quota) 如何正确的删除表空间数据文件?

表空间管理


  • 表空间大小查询
  • 创建新的表空间
  • 表空间大小为空的原因
  • 扩展表空间
  • 表空间收缩
  • 修改表空间名称
  • 表空间的管理方式



数据文件管理


  • DBA_DATA_FILES
  • 数据文件大小查询
  • 设置数据文件为自动增长
  • 改变数据文件的大小
  • 数据文件的大小为空


什么是大文件表空间(Bigfile Tablespace)?


1.5


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

课程模块

培训要点

学时

数据库事务处理



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



用户及其密码文件




创建、密码

  • 如何重建SCOTT用户

使用工具来创建用户

修改密码

  • Oracle用户密码含特殊字符时的登陆问题


密码文件


  • 创建、作用

Oracle的两种认证方式


  • OS验证
  • 密码文件验证





PROFILE管理密码


  • 账户锁定
  • 给账户(用户)解锁
  • 终止密码
  • 密码历史
  • 修改密码为永不过期
  • Oracle用户被锁原因及办法

用户的状态(ACCOUNT_STATUS的九种状态)



基本状态


  • 正常(OPEN)

锁定状态


  • LOCKED
  • LOCKED(TIMED)



过期状态


  • EXPIRED
  • EXPIRED(GRACE)





组合状态


  • EXPIRED & LOCKED(TIMED)
  • EXPIRED(GRACE) & LOCKED(TIMED)
  • EXPIRED & LOCKED
  • EXPIRED(GRACE) & LOCKED





在不知道用户密码的情况下如何更改密码


  • 用原密码的密文来更改密码
  • 直接更新USER$基表


user$.lCOUNT列记录了失败的登陆次数 11g密码区分大小写--sec_case_sensitive_logon 密码延迟验证 哪些用户密码没有被修改过 密码复杂性校验


删除用户

扩展


  • 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有哪些预定义角色?


自定义角色


角色生效和失效




锁和会话




课程模块

培训要点

学时



  • 锁的概念、作用
  • 并发和并行
  • 锁的分类
    • 操作/保护对象不同

      • 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审计和标准审计有什么区别?


1

Undo



  • 还原数据
  • 事务处理和还原数据
  • 存储还原信息
  • 还原数据与重做数据

管理还原

  • 配置还原保留时间

保证还原保留时间 将还原表空间改为固定大小 一般还原信息 使用还原指导


0.5

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


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报告?



自动维护任务


  • 简介
  • 自动维护任务配置



服务器生成的预警


  • 设置阈值
  • 创建和测试预警
  • 预警通知
  • 对预警作出响应




2


JOB和分区

课程模块

培训要点

学时

JOB




DBMS_JOB


  • 创建、删除
  • 后台进程
  • dbms_job package 用法介绍

杀JOB


  • 删除其它用户下的job用 sys.dbms_ijob.remove()
  • 杀会话+杀后台进程



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? 数据字典




1

分区



  • 分区表简介
  • 何时考虑分区?
  • 分区表有什么优点

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


  • 范围分区(RANGE PARTITION)
  • 哈希分区(HASH PARTITION)
  • 列表分区(LIST PARTITION)
  • 引用分区(REFERENCE PARTITION)
  • 复合分区(组合分区)

INTERVAL分区(间隔分区)


  • 月分区
  • 天分区


系统分区


分区模板

分区表的维护


  • 添加分区(add partition)
  • 收缩表分区(coalesce partitions)
  • 删除分区和删除子分区(drop partition)
  • 添加子分区

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


  • 截断分区表的子分区
  • 截断带有约束的分区表
  • 注意事项



    移动表分区(Move Partition)


  • 将一个表的分区从一个表空间移动到另一个表空间
  • 压缩表Move--compress


合并分区(Merge Partitions) 重命名某一个分区(Rename Partition) 交换表分区(Exchange Partitions)

修改 list 表分区


  • 修改 list 表分区--Add Values
  • 修改list 表分区--Drop Values


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

修改分区表属性


  • 修改表分区默认属性(Modify Default Attributes)
  • 修改表分区当前属性(Modify Partition)
  • 修改分区表的logging属性
  • 并行度


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



分区表的查询优化


  • 单分区查询
  • 跨分区查询


分区表常用数据字典视图有哪些? 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 指导


实例恢复和介质恢复的区别 配置可恢复性 配置快速恢复区


0.5

SCN



  • SCN的组成

SCN的分类


  • 系统检查点SCN(System Checkpoint SCN)
  • 文件检查点SCN(Datafile Checkpoint SCN)
  • 开始SCN(Start SCN)
  • 结束SCN(Stop SCN)


如何查看系统当前SCN SCN与时间的相互转换


0.3

备份



  • rman 连接数据库
  • RMAN数据字典

rman命令


  • 列出备份信息(list)
  • 删除备份(delete)

报告命令(report)


  • 可以报告哪些文件需要备份
  • 报告不可恢复的备份集
  • 报告数据库的信息


交叉检查(crosscheck) VALIDATE DATABASE



RMAN的配置


  • CONFIGURE RETENTION POLICY 配置备份保留策略
  • CONFIGURE BACKUP OPTIMIZATION 配置备份优化
  • CONFIGURE DEFAULT DEVICE TYPE 配置 IO 设备类型
  • CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自动备份
  • CONFIGURE DEVICE TYPE 设置并行备份
  • CONFIGURE DATAFILE BACKUP COPIES 设置备份文件冗余度
  • CONFIGURE MAXSETSIZE 配置备份集的最大尺寸
  • CONFIGURE ARCHIVELOG DELETION POLICY


RMAN中关于备份或归档文件状态OBSOLETE和EXPIRED的区别是什么? 物理备份和逻辑备份分别是什么? 差异增量备份和累积增量备份的区别是什么? 什么是块改变跟踪?

完全备份

  • 全库备份脚本分享

增量备份

文件备份


  • 数据文件备份
  • 控制文件
  • spfile


表空间备份


1

恢复



  • 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视图中的过期信息




1

闪回




闪回的分类


  • 闪回删除(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视图进行闪回查询?
  • 存储过程被覆盖了,如何恢复?




1

RMAN 高级应用之 Duplicate 复制数据库



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


1

bbed简介


  • bbed简介


0.1

rman之块介质恢复



  • 坏块的简介
  • 坏块的检测方法
  • BMR恢复坏块
  • 如何确定坏块的对象名
  • 如果发现有坏块,那么如何检索其它未坏的数据?

模拟坏块



blockrecover恢复坏块


  • 创建演示环境
  • 单块数据块损坏的恢复处理
  • 多块数据块损坏的恢复处理
  • 坏块的对象定位与影响



    bbed模拟

  • bbed修复坏块示例





0.5

非归档模式备份恢复



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


0.2

OPEN RESETLOGS



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


0.1

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;


0.1

日志挖掘logminer


  • 日志挖掘logminer


0.1

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


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


0.1

跨版本恢复



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


1

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




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


  • 冷备份的优缺点
  • 冷备份一般步骤
  • 冷备脚本的写法
  • 存在冷备下的还原(非归档模式)

丢失数据文件


  • 丢失system表空间
  • 丢失sysaux
  • undo丢失
  • 自己建立的表空间(如users,ts_test)
  • temp表空间


日志文件丢失 控制文件丢失 参数文件丢失 密码文件丢失



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


  • 简介

热备的过程


  • 基于数据库的热备
  • 基于表空间的热备
  • 控制文件的热备
  • 参数文件的热备
  • 临时表空间的数据文件、日志文件不需要备份


    热备份的相关视图

    存在热备下的还原


  • 还原控制文件

还原数据文件


  • 可以脱机的表空间文件
  • 不可以脱机的表空间文件








0.5





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

课程模块

培训要点

学时

exp和imp




EXP导出数据


  • 导出表
  • 导出方案
  • 导出数据库



IMP导入数据


  • 导入表
  • 导入方案
  • 导入数据库
  • imp导入常见问题处理



其它实用内容



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


  • 一、获取基本信息:导出的版本、时间、导出的用户
  • 二、获取dmp文件中的表信息
  • 三、解析dmp文件生成parfile文件
  • 四、如何查看dmp文件的字符集
  • 五、如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中?


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






0.5

数据泵(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故障 全库导出和导入演示


0.5

SQL*Loader



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


0.2

外部表



  • 外部表的优点
  • 使用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考题



0.5


实验课

课程模块

培训要点

学时

实验课



  • 数据泵之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(真实环境)


2





  1. OCP讲课内容思维导图
    1. 安装与卸载

【OCP|OCM】Oracle培训考证系列_数据库

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

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

  1. SQL基础部分

【OCP|OCM】Oracle培训考证系列_数据库_04

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

【OCP|OCM】Oracle培训考证系列_数据库_06

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

【OCP|OCM】Oracle培训考证系列_表空间_08

【OCP|OCM】Oracle培训考证系列_表空间_09

【OCP|OCM】Oracle培训考证系列_表空间_10

  1. 基本对象的管理

【OCP|OCM】Oracle培训考证系列_数据库_11

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

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

  1. 数据库管理部分
    1. 体系结构和Oracle Restart

【OCP|OCM】Oracle培训考证系列_数据库_14

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

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


  1. 管理数据库实例

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


  1. ASM

【OCP|OCM】Oracle培训考证系列_表空间_18

  1. 网络管理

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

  1. 表空间及数据文件

【OCP|OCM】Oracle培训考证系列_表空间_20

  1. 事务处理及用户

【OCP|OCM】Oracle培训考证系列_数据库_21


  1. 用户权限及角色

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

  1. 锁和会话

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

  1. 审计和Undo

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

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

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

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

  1. JOB和分区

【OCP|OCM】Oracle培训考证系列_数据库_27

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

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

【OCP|OCM】Oracle培训考证系列_数据库_29

【OCP|OCM】Oracle培训考证系列_数据库_30

【OCP|OCM】Oracle培训考证系列_表空间_31

【OCP|OCM】Oracle培训考证系列_表空间_32

【OCP|OCM】Oracle培训考证系列_表空间_33

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

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

  1. 移动数据

【OCP|OCM】Oracle培训考证系列_表空间_36

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

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


  1. 管理补丁程序

【OCP|OCM】Oracle培训考证系列_数据库_39


  1. 实验课

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


  1. OCP讲课文档目录
    1. 数据库安装部分的目录


第1章 安装Oracle软件    - 6 -

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

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

1.3 制定安装计划    - 8 -

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

1.5 准备操作系统    - 10 -

1.5.1 设置环境变量    - 11 -

1.5.2 检查系统要求    - 12 -

1.5.3 OUI    - 13 -

1.5.4 GI安装    - 15 -

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

1.5.4.2 选择产品语言    - 16 -

1.5.4.3 创建 ASM 磁盘组    - 17 -

1.5.4.4 定义 ASM 口令    - 17 -

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

1.5.4.6 指定安装位置    - 20 -

1.5.4.7 创建清单    - 21 -

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

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

1.5.4.10 监视安装进度    - 24 -

1.5.4.11 执行root配置脚本    - 25 -

1.5.4.12 执行 Configuration Assistant    - 25 -

1.5.4.13 完成安装    - 27 -

1.5.4.14 配置 FRA 磁盘组    - 27 -

1.5.5 安装 Oracle DB 软件    - 30 -

1.5.5.1 选择安装类型    - 30 -

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

1.5.5.3 选择语言设置    - 32 -

1.5.5.4 选择数据库版本    - 33 -

1.5.5.5 指定安装位置    - 34 -

1.5.5.6 选择操作系统组    - 35 -

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

1.5.5.8 安装概要页    - 37 -

1.5.5.9 安装产品页    - 38 -

1.5.5.10 安装完成    - 39 -

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

1.5.5.12 小测验    - 41 -

1.5.5.13 小结    - 42 -

1.5.6 使用DBCA创建Oracle DB    - 42 -

1.5.6.1 计划数据库    - 42 -

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

1.5.6.3 Database Configuration Assistant (DBCA)    - 48 -

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

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

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

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

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

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

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

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

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

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

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

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

1.5.9 小测验    - 60 -

1.5.10 小结    - 60 -

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

2.1 安装VMware Workstation 12 Pro    - 60 -

2.1.1 校验MD5值    - 61 -

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

2.2.1 简易安装    - 63 -

2.2.2 一般安装过程    - 68 -

2.2.2.1 开始安装    - 83 -

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

2.2.2.3 继续    - 92 -

2.3 其它软件安装    - 99 -

2.3.1 安装VMware Tools    - 99 -

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

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

2.3.2 设置主机IP地址    - 106 -

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

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

2.3.5 安装rlwrap    - 108 -

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

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

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

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

3.1.1 软件准备    - 117 -

3.1.2 检查硬件    - 117 -

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

3.1.4 安装软件包检查    - 118 -

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

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

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

3.1.5.3 /etc/profile    - 121 -

3.1.5.4 /etc/sysctl.conf    - 121 -

3.1.6 关闭防火墙    - 122 -

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

3.1.8 禁用selinux    - 123 -

3.2 新建用户和组    - 124 -

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

3.3 新建安装目录    - 125 -

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

3.5 准备oracle安装文件    - 125 -

3.5.1 拷贝安装文件    - 125 -

3.5.1.1 计算MD5值    - 128 -

3.5.2 解压安装文件    - 129 -

3.6 开始安装    - 130 -

3.6.1 安装前的检查    - 141 -

3.6.2 执行root.sh脚本    - 144 -

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

第4章 创建数据库    - 148 -

4.1 DBCA图形创建    - 148 -

4.1.1 启动监听    - 159 -

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

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

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

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

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

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

5.1 静默创建监听    - 167 -

第6章 其它    - 167 -

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

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

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

6.1.3 总结    - 172 -

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

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

6.3 配置glogin.sql    - 173 -

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

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

第8章 安装grid软件    - 177 -

8.1 OS修改    - 177 -

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

8.1.2 添加grid用户    - 177 -

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

8.1.4 扩展磁盘空间    - 179 -

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

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

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

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

一、 uuid方式    - 184 -

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

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

4、 udevadm进行测试    - 189 -

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

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

二、 raw方式    - 190 -

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

一、 系统版本号    - 191 -

二、 Oracle asmlib下载    - 191 -

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

四、 配置ASM    - 193 -

五、 系统添加磁盘    - 194 -

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

七、 测试    - 197 -

8.3 安装grid软件    - 198 -

8.3.1 解压软件    - 198 -

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

8.3.2.1 创建ASM磁盘组    - 203 -

8.3.2.2 执行root脚本    - 209 -

8.3.2.3 继续安装    - 210 -

8.3.2.4 测试ASM实例    - 211 -

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

8.3.3.1 安装grid软件    - 212 -

8.3.3.2 静默创建ASM实例    - 215 -

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

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

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

8.6 创建EM    - 223 -

8.7 其它扩展    - 225 -

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

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

8.7.3 kfod命令    - 227 -

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





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


目录    - 1 -

序言    - 12 -

第1章 SQL简介    - 12 -

1.1 SQL的起源和分类    - 13 -

1.1.1 SQL的起源    - 13 -

1.1.2 SQL的分类    - 13 -

1.2 提交(COMMIT)类型    - 15 -

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

第2章 SQL*Plus工具    - 20 -

2.1 SQL 与 SQL*Plus    - 20 -

2.2 SQL 语句与SQL*Plus    - 20 -

2.2.1 关系对比    - 20 -

2.2.2 关系图    - 21 -

2.3 登录 SQL*Plus    - 21 -

2.3.1 EZCONNECT方式    - 22 -

2.3.2 使用 SQL*Plus    - 24 -

2.4 SQL*Plus和SQL Developer    - 24 -

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

2.4.1.1 shell调用    - 25 -

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

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

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

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

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

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

2.4.1.2 bat调用    - 28 -

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

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

2.5 SQL*Plus的设置    - 34 -

2.5.1 显示表结构    - 35 -

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

2.5.3 SQL*Plus编辑命令    - 35 -

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

2.5.5 SQL*Plus 文件命令    - 36 -

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

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

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

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

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

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

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

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

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

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

2.6 iSQL*Plus 简介    - 44 -

2.6.1 iSQL*Plus概览    - 46 -

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

第3章 基本SELECT语句    - 46 -

3.1 SELECT语句的功能    - 47 -

3.2 选择所有列    - 48 -

3.3 选择指定的列    - 48 -

3.4 SQL语句的编辑    - 49 -

3.5 列标题默认属性    - 49 -

3.6 算术表达式    - 51 -

3.7 定义空值    - 52 -

3.7.1 NULL的注意事项    - 54 -

3.7.2 IS NULL 走索引    - 55 -

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

3.7.3.1 情形一:    - 57 -

3.7.3.2 情形二:    - 58 -

3.8 定义列别名    - 59 -

3.9 连字运算符    - 61 -

3.9.1 文字字符串    - 62 -

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

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

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

3.13 本章学习目的    - 68 -

第4章 条件和排序    - 69 -

4.1 用选择限定行    - 69 -

4.1.1 限定语法    - 70 -

4.1.2 使用WHERE子句    - 71 -

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

4.1.4 比较条件    - 72 -

4.1.4.1 使用比较条件    - 72 -

4.1.4.2 使用BETWEEN条件    - 73 -

4.1.4.3 使用IN条件    - 73 -

4.1.4.4 使用LIKE条件    - 75 -

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

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

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

4.1.5.1 注意问题    - 83 -

4.1.6 优先规则    - 84 -

4.2 排序    - 85 -

4.2.1 降序排序    - 86 -

4.2.2 用列别名排序    - 87 -

4.2.3 多列排序    - 88 -

4.3 总结    - 89 -

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

5.1 学习目的    - 89 -

5.2 SQL函数介绍    - 89 -

5.3 SQL函数分类    - 90 -

5.3.1 单行函数    - 90 -

5.4 DUAL表介绍    - 91 -

5.4.1 扩展    - 92 -

5.5 字符函数    - 93 -

5.5.1 大小写处理函数    - 93 -

5.5.2 字符处理函数    - 94 -

5.6 数字函数    - 96 -

5.7 日期函数    - 97 -

5.7.1 系统日期    - 97 -

5.7.2 用日期计算    - 98 -

5.7.3 日期函数    - 99 -

5.7.4 转换函数    - 100 -

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

5.7.5.1 扩展    - 101 -

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

5.7.6.1 日期格式模板    - 103 -

5.7.6.2 时间格式模板    - 104 -

5.7.6.3 数字格式模板    - 104 -

5.8 嵌套函数    - 104 -

5.9 通用函数    - 104 -

5.10 条件表达式    - 106 -

5.10.1 CASE表达式    - 106 -

5.10.2 DECODE函数    - 107 -

5.11 总结    - 108 -

5.12 扩展    - 109 -

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

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

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

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

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

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

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

6.1 学习目的    - 120 -

6.2 组函数的概念    - 121 -

6.3 组函数使用    - 121 -

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

6.3.1.1 MAX和MIN优化写法    - 122 -

6.4 使用COUNT    - 124 -

6.4.1 使用COUNT(DISTINCT 列)    - 125 -

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

6.5 组函数与空值    - 126 -

6.6 GROUP BY 子句    - 127 -

6.7 HAVING 子句    - 128 -

6.8 嵌套组函数    - 128 -

6.9 总结    - 129 -

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

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

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

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

第8章 连接的类型    - 131 -

8.1 等值连接    - 132 -

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

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

8.2 外连接    - 136 -

8.2.1 外连接(扩展)    - 140 -

8.3 自连接    - 143 -

8.3.1 自连接(Self Join)    - 144 -

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

8.4.1 交叉连接    - 145 -

8.4.2 自然连接    - 145 -

8.4.3 ON子句    - 146 -

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

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

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

8.6.2 分析    - 153 -

8.6.3 SYS_CONNECT_BY_PATH 用于 行列转换    - 166 -

8.6.4 层次查询进阶    - 167 -

8.6.5 综合案例    - 170 -

8.6.6 快速构造大表    - 173 -

8.7 WITH语法    - 174 -

8.8 总结    - 175 -

第9章 子查询    - 175 -

9.1 学习目的    - 176 -

9.2 子查询介绍    - 176 -

9.3 子查询分类    - 178 -

9.3.1 单行子查询    - 178 -

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

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

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

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

9.3.2 单行子查询错误    - 181 -

9.3.3 多行子查询    - 182 -

9.3.4 总结    - 184 -

9.3.5 子查询扩展    - 184 -

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

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

9.3.5.3 多行子查询    - 187 -

9.4 一个案例    - 188 -

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

10.1 UNION    - 190 -

10.2 UNION ALL    - 191 -

10.3 INTERSECT(相交)    - 191 -

10.4 MINUS(相减)    - 192 -

第11章 数据字典    - 192 -

11.1 动态性能视图    - 193 -

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

11.2 数据字典    - 196 -

11.2.1 数据字典视图    - 197 -

11.3 扩展    - 199 -

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

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

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

12.3 表的分类    - 203 -

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

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

12.5 CREATE TABLE语句创建表    - 205 -

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

12.5.1.1 CTAS及其优化    - 207 -

12.6 DEFAULT选项    - 207 -

12.7 引用表    - 208 -

12.8 数据类型介绍    - 209 -

12.8.1 时间数据类型    - 210 -

12.8.1.1 TIMESTAMP类型    - 210 -

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

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

12.9 ALTER TABLE语句    - 214 -

12.9.1 添加列    - 214 -

12.9.2 修改列    - 215 -

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

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

12.9.3.1 SET UNUSED选项    - 216 -

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

12.9.5 修改表的名字    - 217 -

12.9.6 修改字段的名字    - 217 -

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

12.10 删除表    - 218 -

12.11 改变对象名称    - 218 -

12.12 截断表(TRUNCATE)    - 219 -

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

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

12.14 总结    - 222 -

第13章 操作数据    - 222 -

13.1 学习目的    - 222 -

13.2 数据操纵语言    - 223 -

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

13.3.1 INSERT插入值的变化    - 225 -

13.3.1.1 插入特殊值    - 225 -

13.3.1.2 插入指定日期    - 226 -

13.3.1.3 插入可输入变量    - 226 -

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

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

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

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

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

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

13.4.3.1 例子    - 230 -

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

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

13.5.1 TRUNCATE语句    - 234 -

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

13.5.3 从表中删除行    - 235 -

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

13.5.4.1 一道OCM题    - 236 -

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

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

13.6 显示默认值    - 238 -

13.7 MERGE合并语句语法    - 238 -

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

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

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

13.9 本章总结    - 245 -

第14章 约束    - 245 -

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

14.1.1 约束的概念    - 246 -

14.1.2 约束的原则    - 246 -

14.2 定义约束    - 246 -

14.2.1 定义约束的语法    - 246 -

14.2.2 定义约束分类    - 247 -

14.3 几种常见的约束    - 248 -

14.3.1 NOT NULL约束    - 249 -

14.3.2 UNIQUE约束    - 249 -

14.3.3 PRIMARY KEY约束    - 251 -

14.3.4 FOREIGN KEY约束    - 251 -

14.3.4.1 外键列的索引    - 255 -

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

一、 脚本    - 263 -

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

14.3.5 CHECK约束    - 266 -

14.4 管理约束    - 268 -

14.4.1 添加约束    - 268 -

14.4.2 删除约束    - 270 -

14.4.3 禁用、启用约束    - 271 -

14.4.4 级联约束    - 271 -

14.4.5 查看约束    - 272 -

14.5 ocp    - 273 -

14.6 总结    - 274 -

第15章 视图    - 274 -

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

15.2 视图的概念    - 275 -

15.2.1 使用视图的优势    - 275 -

15.3 创建简单视图    - 276 -

15.3.1 视图中查询数据    - 277 -

15.4 创建复杂视图    - 277 -

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

15.5.1 With Check OPTION子句    - 278 -

15.5.2 With READ ONLY子句    - 278 -

15.6 管理视图    - 278 -

15.6.1 修改视图    - 279 -

15.6.2 删除视图    - 279 -

15.6.3 内建视图    - 279 -

15.7 视图扩展    - 280 -

15.7.1 Oracle中的视图    - 280 -

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

15.8 Top-N 分析    - 282 -

15.8.1 扩展    - 283 -

15.9 物化视图简介    - 285 -

15.9.1 扩展    - 286 -

查询重写(QueryRewrite):    - 287 -

15.10 总结    - 290 -

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

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

16.2 序列    - 291 -

16.2.1 序列的语法    - 292 -

16.2.2 定义及查询序列    - 292 -

16.2.3 NEXTVAL和CURRVAL伪列    - 293 -

16.2.4 使用序列    - 293 -

16.2.5 修改序列    - 294 -

16.2.6 删除序列    - 295 -

16.2.7 麦苗扩展    - 295 -

16.2.7.1 注意内容    - 295 -

16.2.7.2 性能问题    - 296 -

16.2.7.3 OCP和OCM题举例    - 296 -

16.3 索引    - 297 -

16.3.1 索引的优缺点    - 297 -

16.3.2 索引的使用原则    - 298 -

16.3.3 创建索引    - 299 -

16.3.4 查询索引    - 300 -

16.3.5 基于函数的索引    - 300 -

16.3.6 删除索引    - 301 -

16.3.7 麦苗扩展    - 301 -

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

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

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

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

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

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

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

16.4 同义词    - 311 -

16.4.1 概念语法    - 311 -

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

16.4.3 扩展    - 312 -

16.4.3.1 PLAN_TABLE表的真谛    - 312 -

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

16.5.1 dblink扩展    - 314 -

16.5.2 一道OCM考题    - 317 -

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

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

第17章 PL/SQL 块    - 318 -

17.1 PL/SQL 简介    - 318 -

17.2 程序形式    - 318 -

17.3 编写规范    - 318 -

17.3.1 注释    - 318 -

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

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

17.4.1 声明部分    - 320 -

17.4.2 可执行部分    - 322 -

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

18.1 简介    - 323 -

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

18.3 循环    - 326 -

18.3.1 loop    - 326 -

18.3.2 while循环    - 328 -

18.3.3 for 循环    - 330 -

18.3.3.1 游标for循环    - 332 -

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

18.4.1 goto 语句    - 333 -

18.4.2 null    - 335 -

第19章 异常处理    - 337 -

19.1 概述    - 337 -

19.2 异常处理    - 337 -

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

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

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

19.3 抛出异常    - 348 -

19.3.1 raise    - 348 -

19.3.2 RAISE_APPLICATION_ERROR    - 349 -

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

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

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

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

20.2 示例    - 359 -

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

20.2.1.1 执行存过    - 360 -

20.2.1.2 存过调用存过    - 362 -

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

21.1 一些常用的监控    - 369 -

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

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

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

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

23.1 分批update    - 377 -

23.2 分批delete    - 378 -

23.3 分批insert    - 379 -





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


目录    - 1 -

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

1.1 故障类别    - 17 -

1.1.1 语句失败    - 17 -

1.1.2 用户进程失败    - 18 -

1.1.3 网络故障    - 19 -

1.1.4 用户错误    - 19 -

1.1.5 介质故障    - 20 -

1.2 Oracle的SCN是什么?    - 20 -

1.2.1 SCN的组成    - 20 -

1.2.2 SCN的分类    - 21 -

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

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

1.2.5 SYS.SMON_SCN_TIME字典基表    - 24 -

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

1.3.1 实例故障    - 25 -

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

1.3.3 实例恢复的阶段    - 28 -

1.3.4 优化实例恢复    - 30 -

1.3.4.1 使用 MTTR 指导    - 31 -

1.3.5 麦苗扩展    - 32 -

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

1.4 配置可恢复性    - 35 -

1.5 配置快速恢复区    - 36 -

1.6 测验    - 37 -

1.7 小结    - 37 -

第2章 闪回体系    - 38 -

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

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

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

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

2.1.4 闪回表(Flashback TABLE)    - 47 -

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

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

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

2.1.8 相关OCP题目    - 52 -

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

2.2.1 相关OCP题目    - 56 -

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

2.3.1 相关OCP题目    - 60 -

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

2.4.1 相关OCP题目    - 65 -

2.5 其它扩展    - 67 -

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

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

3.1 课程目标    - 68 -

3.2 Oracle Secure Backup    - 70 -

3.3 用户管理的备份    - 71 -

3.4 术语    - 72 -

3.5 Recovery Manager (RMAN)    - 74 -

3.5.1 rman 连接数据库    - 75 -

3.5.2 RMAN数据字典    - 75 -

3.5.3 rman命令    - 76 -

3.6 RMAN简介    - 76 -

3.7 RMAN的配置    - 79 -

3.7.1 定义RMAN配置    - 79 -

3.7.2 显示RMAN默认配置    - 80 -

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

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

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

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

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

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

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

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

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

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

3.7.2.8 CONFIGURE ARCHIVELOG DELETION POLICY    - 98 -

3.7.3 FORMAT参数    - 102 -

3.7.4 配置备份设置    - 102 -

3.7.4.1 调度备份:策略    - 104 -

3.7.4.2 调度备份:选项    - 105 -

3.7.5 OCP    - 110 -

3.8 rman 其它命令    - 113 -

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

3.8.2 删除备份(delete)    - 115 -

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

3.8.3 报告命令(report)    - 119 -

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

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

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

3.8.4 交叉检查(crosscheck)    - 125 -

3.8.5 show    - 126 -

3.8.6 VALIDATE DATABASE    - 126 -

3.9 批处理命令RUN    - 126 -

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

3.11 catalog库    - 128 -

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

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

3.11.2.1 例子    - 129 -

3.11.2.2 官网    - 131 -

一、 Prerequisites    - 131 -

二、 基本恢复目录    - 133 -

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

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

3.11.4 IMPORT CATALOG    - 138 -

3.11.4.1 例子    - 141 -

3.11.5 Managing a Recovery Catalog    - 142 -

3.11.6 OCP    - 142 -

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

3.12.1.1 whole backup    - 153 -

3.12.1.2 full backup    - 154 -

一、 完全备份示例    - 156 -

3.12.2 备份表空间    - 157 -

3.12.2.1 temp表空间    - 158 -

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

3.12.3.1 system    - 159 -

3.12.4 备份控制文件    - 159 -

3.12.4.1 在线镜像备份    - 162 -

3.12.4.2 自动备份    - 162 -

一、 显式自动备份    - 162 -

二、 隐式自动备份    - 163 -

3.12.4.3 手动备份    - 163 -

一、 备份集备份    - 163 -

二、 镜像复制备份    - 163 -

三、 重建脚本    - 164 -

3.12.4.4 控制文件快照    - 165 -

3.12.5 备份spfile    - 172 -

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

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

3.12.6.2 联机日志的备份    - 174 -

3.13 管理备份    - 175 -

3.13.1 查看备份报告    - 177 -

3.13.2 监视快速恢复区    - 178 -

3.13.3 使用 RMAN 命令行    - 179 -

3.14 麦苗扩展    - 180 -

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

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

3.14.2.1 OCP    - 186 -

3.15 我的备份脚本    - 188 -

3.15.1 linux    - 189 -

3.15.1.1 nocatalog全备    - 189 -

一、 简易版-归档    - 191 -

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

3.15.1.2 catalog增量备份脚本    - 193 -

一、 我自己的    - 195 -

3.15.1.3 Nocatalog增量备份脚本    - 198 -

一、 我自己的    - 211 -

3.15.2 windows    - 213 -

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

3.15.2.2 增量备份    - 216 -

3.15.2.3 设置windows定时任务    - 219 -

一、 XP下设置    - 222 -

3.16 OCP    - 224 -

3.17 小测验    - 234 -

3.18 小结    - 234 -

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

4.1 课程目标    - 234 -

4.2 打开数据库    - 235 -

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

4.3 数据库归档恢复    - 238 -

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

4.5 物理文件恢复    - 239 -

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

4.5.2 spfile 丢失    - 239 -

4.5.2.1 数据库没有挂掉    - 239 -

4.5.2.2 数据库已经挂掉    - 240 -

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

二、 手动创建    - 246 -

4.5.3 controlfile丢失    - 246 -

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

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

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

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

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

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

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

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

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

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

4.5.3.4 控制文件不一致    - 307 -

4.5.3.5 OCP    - 308 -

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

4.5.4.1 在线Redo日志    - 310 -

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

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

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

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

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

六、 Loss of a Redo Log File    - 332 -

七、 Loss of a Redo Log Group    - 337 -

八、 loss all online redo logs    - 339 -

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

4.5.4.2 恢复归档日志archivelog    - 341 -

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

二、 我的例子    - 351 -

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

4.5.4.3 OCP    - 358 -

4.5.5 datafile丢失    - 362 -

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

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

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

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

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

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

一、 undo文件丢失    - 373 -

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

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

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

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

三、 system    - 395 -

4.5.5.7 非归档模式    - 397 -

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

4.5.5.9 OCP    - 398 -

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

4.5.6 表空间丢失    - 406 -

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

4.5.6.2 Recovering from a Lost Index Tablespace    - 411 -

4.5.6.3 Recovering a Read-Only Tablespace    - 412 -

4.5.6.4 undo表空间    - 412 -

一、 有备份    - 426 -

二、 无备份    - 429 -

三、 使用bbed恢复    - 454 -

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

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

4.6 麦苗扩展    - 458 -

4.6.1 恢复的分类    - 458 -

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

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

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

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

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

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

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

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

4.6.3.1 实验    - 479 -

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

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

4.6.3.4 开始恢复    - 483 -

一、 判断句柄位置    - 483 -

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

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

4.6.3.5 总结    - 491 -

4.6.4 TRUNCATE恢复方法    - 491 -

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

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

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

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

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

4.6.8.2 数据恢复指导    - 501 -

4.6.8.3 数据故障    - 503 -

一、 列出数据故障    - 504 -

二、 提供修复建议    - 505 -

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

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

4.9 小测验    - 510 -

第5章 日志挖掘logminer    - 511 -

5.1 演示    - 515 -

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

6.1 自己的脚本    - 516 -

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

7.1 简介    - 519 -

7.2 duplicate体系结构    - 520 -

7.2.1 Duplicating an Active Database    - 521 -

7.2.1.1 Prerequisites Specific to Active Database Duplication    - 525 -

7.2.1.2 自己的例子    - 525 -

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

7.2.2.1 Configure The Network    - 527 -

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

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

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

7.2.2.5 Shutdown And Startup Mount The Source Database    - 528 -

7.2.2.6 Startup Nomount The New Database    - 529 -

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

7.2.2.8 Execute The Duplicate Command    - 529 -

7.2.2.9 Remove The Old Pfile    - 535 -

7.2.2.10 Check The New Database    - 535 -

7.2.3 Duplicating a Database with a Target Connection    - 536 -

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

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

7.2.5.1 老师例子    - 539 -

7.3 Creating a Backup-Based Duplicate Database    - 556 -

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

7.3.2 Specifying New Names for Your Destination    - 558 -

7.3.2.1 SET NEWNAME    - 559 -

7.3.3 Specifying Parameters for File Naming    - 562 -

7.3.3.1 DB_FILE_NAME_CONVERT    - 563 -

7.4 OCP    - 563 -

第8章 BBED简介    - 567 -

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

9.1 坏块的简介    - 568 -

9.2 坏块的检测方法    - 569 -

9.3 BMR恢复坏块    - 571 -

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

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

9.6 模拟坏块    - 573 -

9.6.1 blockrecover恢复坏块    - 573 -

9.6.1.1 创建演示环境    - 573 -

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

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

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

9.6.2 bbed模拟    - 579 -

9.6.2.1 bbed修复坏块示例    - 580 -

9.7 坏块模拟脚本    - 584 -

9.8 OCP    - 585 -

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

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

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

10.1.1.1 冷备份的优缺点    - 588 -

10.1.1.2 冷备份一般步骤    - 588 -

10.1.1.3 冷备脚本的写法    - 589 -

一、 冷备脚本    - 592 -

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

一、 丢失数据文件    - 592 -

二、 日志文件丢失    - 608 -

三、 控制文件丢失    - 612 -

四、 参数文件丢失    - 616 -

五、 密码文件丢失    - 616 -

10.1.1.5 OCP    - 617 -

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

10.1.2.1 简介    - 617 -

10.1.2.2 具体操作    - 618 -

一、 热备的过程    - 618 -

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

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

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

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

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

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

10.1.2.4 热备ocp    - 625 -

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

一、 还原控制文件    - 629 -

二、 还原数据文件    - 632 -

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

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

11.1.1 非归档全备份    - 641 -

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

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

第12章 OPEN RESETLOGS    - 650 -

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

12.2 为什么使用RESETLOGS?    - 650 -

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

12.4 ocp    - 651 -

第13章 其它    - 651 -

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

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

第14章 跨版本恢复    - 653 -

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

14.2 跨小版本    - 655 -

14.3 跨大版本    - 656 -

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

15.1.1 总结    - 656 -

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

第17章 移动数据    - 658 -

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

17.2 exp和imp    - 660 -

17.2.1 EXP导出数据    - 661 -

17.2.1.1 导出表    - 664 -

17.2.1.2 导出方案    - 665 -

17.2.1.3 导出数据库    - 665 -

17.2.2 IMP导入数据    - 665 -

17.2.2.1 导入表    - 667 -

17.2.2.2 导入方案    - 668 -

17.2.2.3 导入数据库    - 668 -

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

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

17.2.4 其它实用内容    - 672 -

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

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

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

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

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

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

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

一、 query和parfile示例    - 676 -

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

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

17.2.4.4 exp导出ASH数据    - 680 -

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

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

17.2.5 常见错误    - 684 -

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

17.2.5.2 EXP-00026: conflicting modes specified    - 687 -

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

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

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

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

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

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

17.2.5.9 imp-00051,imp-00008    - 698 -

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

17.2.6 注意事项    - 699 -

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

17.3.1 Oracle 数据泵:概览    - 701 -

17.3.2 Oracle 数据泵:优点    - 702 -

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

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

17.3.4.1 创建目录对象    - 705 -

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

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

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

17.3.8 数据泵导出示例    - 709 -

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

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

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

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

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

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

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

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

17.3.11 数据泵旧模式    - 717 -

17.3.12 管理文件位置    - 719 -

17.3.13 麦苗扩展    - 720 -

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

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

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

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

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

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

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

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

三、 impdp示例    - 734 -

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

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

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

一、 Exclude 反规则    - 739 -

二、 Include 正规则    - 740 -

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

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

五、 导出job    - 742 -

六、 导出dblink    - 743 -

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

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

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

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

17.3.13.11 注意事项    - 750 -

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

17.3.13.12 impdp的一些选项    - 752 -

一、 NETWORK_LINK 选项    - 752 -

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

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

17.3.13.14 12c expdp VIEWS_AS_TABLES选项    - 766 -

17.3.13.15 其它错误    - 768 -

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

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

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

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

17.4 SQL*Loader    - 785 -

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

17.4.2 SQL*Loader 控制文件    - 787 -

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

17.4.4 麦苗扩展    - 791 -

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

一、 sqlldr高级用法    - 793 -

二、 sqlldr报错处理    - 795 -

17.4.4.2 简单示例    - 797 -

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

17.5 外部表    - 803 -

17.5.1 外部表的优点    - 804 -

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

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

17.5.4 使用外部表    - 807 -

17.5.5 麦苗扩展    - 807 -

17.5.5.1 基础    - 807 -

17.5.5.2 外部表示例    - 809 -

17.5.5.3 只有1列    - 809 -

17.5.5.4 外部表的parallel    - 810 -

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

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

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

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

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

17.7 小测验    - 820 -

17.8 小结    - 820 -




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


目录    - 1 -

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

1.1 课程目标    - 14 -

1.2 锁    - 15 -

1.2.1 显式锁定    - 17 -

1.2.2 隐式锁定    - 17 -

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

1.3 锁定机制    - 18 -

1.4 数据并发处理    - 19 -

1.5 DML 锁    - 21 -

1.6 入队机制    - 22 -

1.7 锁冲突    - 23 -

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

1.9 检测锁冲突    - 25 -

1.10 解决锁冲突    - 26 -

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

1.11 死锁    - 28 -

1.12 锁的扩展    - 28 -

1.12.1 分类    - 29 -

1.12.2 锁的兼容性    - 32 -

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

1.12.4 SELECT ... FOR UPDATE    - 36 -

1.12.5 DML_LOCKS和DDL_LOCK_TIMEOUT参数    - 36 -

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

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

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

1.12.9 会话    - 39 -

1.12.9.1 V$SESSION视图    - 39 -

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

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

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

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

1.12.9.6 SESSIONS和PROCESSES的关系    - 46 -

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

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

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

1.13 小测试    - 48 -

1.14 小结    - 49 -

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

2.1 还原数据    - 50 -

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

2.3 存储还原信息    - 53 -

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

2.5 管理还原    - 55 -

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

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

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

2.8 一般还原信息    - 59 -

2.9 使用还原指导    - 60 -

2.10 查看系统活动    - 61 -

2.11 扩展    - 62 -

2.11.1 Undo的作用    - 62 -

2.11.2 Undo段存储的内容    - 63 -

2.11.3 块清除    - 64 -

2.11.4 Undo表空间    - 65 -

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

2.11.6 ORA-01555    - 67 -

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

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

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

2.12 小测验    - 70 -

2.13 小结    - 71 -

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

3.1 责任分离    - 73 -

3.2 数据库安全性    - 74 -

3.3 监视合规性    - 75 -

3.4 标准数据库审计    - 76 -

3.5 配置审计线索    - 78 -

3.6 统一审计线索    - 79 -

3.6.1 指定审计选项    - 80 -

3.7 默认审计    - 81 -

3.7.1 Enterprise Manager 审计页    - 82 -

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

3.7.3 基于值的审计    - 84 -

3.8 细粒度审计    - 86 -

3.8.1 FGA 策略    - 87 -

3.8.2 审计的 DML 语句:    - 89 -

3.8.3 FGA 准则    - 90 -

3.9 SYSDBA审计    - 91 -

3.10 维护审计线索    - 92 -

3.11 Oracle Audit Vault    - 93 -

3.12 麦苗扩展    - 94 -

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

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

3.12.1.3 审计如何分类    - 97 -

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

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

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

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

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

3.13 小测验    - 101 -

3.14 小结    - 101 -

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

4.1 数据库维护    - 103 -

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

4.2.1 术语    - 105 -

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

4.4 统计信息    - 107 -

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

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

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

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

4.4.5 麦苗扩展    - 112 -

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

4.4.5.2 索引统计信息    - 115 -

4.4.5.3 列的统计信息    - 115 -

4.4.5.4 系统统计信息    - 118 -

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

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

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

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

三、 DBA_TAB_MODIFICATIONS    - 125 -

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4.5.1 AWR 基础结构    - 183 -

4.5.2 AWR 基线    - 184 -

4.5.3 Enterprise Manager 和 AWR    - 185 -

4.5.4 管理 AWR    - 186 -

4.5.5 统计级别    - 187 -

4.5.6 麦苗扩展    - 188 -

4.5.6.1 什么是AWR?    - 188 -

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

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

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

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

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

4.6.1 ADDM 查找结果    - 202 -

4.6.2 ADDM 建议    - 203 -

4.6.3 麦苗扩展    - 204 -

4.6.3.1 什么是ADDM?    - 204 -

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

4.7 ASH    - 206 -

4.7.1 什么是ASH?    - 206 -

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

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

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

4.9 指导框架    - 212 -

4.9.1 Enterprise Manager 和指导    - 214 -

4.9.2 DBMS_ADVISOR程序包    - 215 -

4.10 小测验    - 215 -

4.11 自动维护任务    - 216 -

4.11.1 自动维护任务    - 216 -

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

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

4.12.1 设置阈值    - 220 -

4.12.2 创建和测试预警    - 221 -

4.12.3 预警通知    - 222 -

4.12.4 对预警作出响应    - 224 -

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

4.13 性能监视    - 226 -

4.13.1 Enterprise Manager 的性能页    - 227 -

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

4.13.3 性能页:吞吐量    - 229 -

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

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

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

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

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

4.17 小测验    - 235 -

4.18 小结    - 236 -

第5章 JOB    - 237 -

5.1 DBMS_JOB    - 237 -

5.1.1 dbms_job package 用法介绍    - 241 -

5.1.1.1 DBMS_JOB包权限    - 242 -

5.1.1.2 DBMS_JOB后台进程    - 242 -

5.1.1.3 broken    - 243 -

5.1.1.4 change    - 244 -

5.1.1.5 interval    - 244 -

5.1.1.6 isubmit    - 244 -

5.1.1.7 next_date    - 245 -

5.1.1.8 remove    - 246 -

一、 杀job    - 246 -

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

5.1.1.9 run    - 251 -

5.1.1.10 submit    - 252 -

5.1.1.11 user_export    - 254 -

5.1.1.12 what    - 254 -

一、 例子    - 255 -

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

5.1.3 数据字典    - 259 -

5.1.4 OCP课堂    - 261 -

5.2 DBMS_SCHEDULER    - 263 -

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

5.2.2 各个组件(components)    - 264 -

5.2.2.1 作业(job):    - 264 -

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

5.2.2.3 程序(program):    - 266 -

5.2.2.4 作业类(job_class):    - 266 -

一、 管理JobClasses    - 270 -

5.2.2.5 窗口(window):    - 270 -

5.2.2.6 窗口组(window_group):    - 272 -

5.2.3 参数设置    - 274 -

5.2.4 管理job    - 278 -

5.2.4.1 启用Jobs    - 278 -

5.2.4.2 禁用Jobs    - 279 -

5.2.4.3 修改Jobs    - 280 -

5.2.4.4 执行Jobs    - 282 -

一、 dbms_scheduler.run_job报错    - 284 -

5.2.4.5 停止Jobs    - 285 -

5.2.4.6 删除Jobs    - 286 -

一、 批量删除job    - 287 -

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

5.2.5 创建job    - 290 -

5.2.5.1 需要的权限    - 290 -

5.2.5.2 例子    - 291 -

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

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

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

5.2.5.6 含有参数    - 302 -

5.2.5.7 时间段内的job    - 304 -

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

5.2.5.9 批量创建job    - 305 -

一、 创建job主进程    - 305 -

二、 创建job子进程    - 310 -

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

5.2.7 数据字典    - 312 -

5.2.8 Lightweight Jobs    - 314 -

5.2.8.1 Persistent Lightweight Jobs    - 320 -

5.2.9 OCP课堂    - 321 -

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

5.3.1 DBMS_JOB    - 323 -

5.3.2 DBMS_SCHEDULER    - 325 -

5.4 其它实用内容    - 325 -

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

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

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

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

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

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

5.5 OCP    - 332 -

第6章 分区    - 333 -

6.1 分区表简介    - 334 -

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

6.3 何时考虑分区?    - 334 -

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

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

6.5.1 RANGE(范围)分区    - 335 -

6.5.2 HASH(哈希)分区    - 336 -

6.5.3 列表分区    - 338 -

6.5.4 复合分区    - 339 -

6.5.4.1 分区模板的应用    - 340 -

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

6.5.5 Interval分区    - 341 -

6.5.5.1 以月为间隔    - 342 -

6.5.5.2 以天为间隔    - 346 -

6.5.5.3 总结    - 350 -

6.5.5.4 interval分区重命名    - 353 -

一、 注意    - 357 -

6.5.6 System_partitioning    - 357 -

6.5.6.1 Restrictions on System Partitioning    - 358 -

6.5.6.2 Advantages of System Partitioned Tables    - 359 -

6.5.6.3 Supporting Operations with System-Partitioned Tables    - 361 -

6.6 分区表的维护    - 363 -

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

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

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

6.6.4 添加子分区    - 367 -

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

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

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

6.6.5.3 注意事项    - 368 -

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

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

6.6.6.2 压缩表Move--compress    - 370 -

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

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

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

6.6.10 修改 list 表分区    - 378 -

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

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

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

6.6.12 修改分区表属性    - 382 -

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

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

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

6.6.12.4 并行度    - 383 -

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

6.6.14 其它    - 385 -

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

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

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

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

6.9 分区表的压缩    - 402 -

6.9.1 分区表压缩    - 402 -

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

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

6.9.4 总结    - 404 -

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

6.9.6 解压缩    - 405 -

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

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

6.12 分区表查询    - 410 -

6.12.1 单分区查询    - 410 -

6.12.2 跨分区查询    - 411 -

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

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

6.15 索引失效的情况    - 420 -

6.16 OCP讲课    - 421 -

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

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

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

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

7.4 应用补丁程序    - 427 -

7.5 存放补丁程序    - 428 -

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

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

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

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

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

7.10 麦苗扩展    - 433 -

7.10.1 PSU升级的过程    - 434 -

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

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

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

7.10.5 如何安装PSU?    - 436 -

7.10.6 Upgrade与Update    - 437 -

7.10.7 注意问题    - 437 -

7.10.8 什么是Metalink或MOS?    - 437 -

7.10.9 11.2.0.3.0升级到11.2.0.3.1    - 438 -

7.10.10 one-off patch    - 439 -

7.10.11 一道OCM题    - 441 -

7.11 小测验    - 442 -

7.12 小结    - 442 -

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

8.1 课程目标    - 443 -

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



  1. 实验课

实验目录    - 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 -