我的个人信息
- 网名:小麦苗
- QQ:646634621
- QQ群:618766405
- 我的博客:http://blog.itpub.net/26736162/abstract/1/
- 微信公众号:xiaomaimiaolhr,二维码如下:
- 小麦苗的微信二维码如下所示,加我时请备注相关信息:
- 我的微店地址:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail
- ?小麦苗出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/
- 博客链接:http://blog.itpub.net/26736162/viewspace-2152182/
现有课程
课程名称
课时 上课时间(可根据情况调整)
OCP(从入门到专家) 每年1-2期,35课时左右/期 每周一、周三、周四、周六 20:00-22:00 OCM认证 每年N期,9课时/期 每周二、周五 高可用课程(rac+dg+ogg) 未定 未定 注意:
- 每次上课前30分钟答疑。
- OCM实时答疑,提供和考试一样的练习环境。
- 授课方式:YY语音直播 + QQ互动答疑 + 视频复习。
- OCP课时可以根据大家学习情况进行增加或缩减。
- OCP报名可以循环听课,但最多不得超过3期课。
-
12c OCM课程私聊
-
OCM
【OCM】想考11g和12c OCM的小伙伴可以和我(lhrbestxh)私聊,非诚勿扰。11g OCM可以保证最低学费、最快训练速度和100%的通过率,非诚勿扰。
11g OCM考试内容思维导图
第一场
第二场
第三场
第四场
-
第五场
第六场
第七场
第八场
第九场
12c OCM
若要考12C OCM请私聊。
OCM培训说明连接
OCM培训说明连接:https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA
-
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/
OCP讲课文档
OCP第1期相关视频说明
- 小麦苗OCP 11g课程第1节--RHEL5.5的安装和基本配置(使用逻辑卷):https://v.qq.com/x/page/u0534y1g6u3.html
- 小麦苗OCP 11g课程第2节--数据库软件的图形化安装和静默安装,MD5,配置YUM源,安装rlwrap软件:https://v.qq.com/x/page/m05348z2s4v.html
- 小麦苗OCP 11g课程第3节--图形化建库、静默建库、静默删库、干净地卸载数据库软件、配置数据库资源开机启动、pmap、判断数据库位数等:https://v.qq.com/x/page/x0535r1ucah.html
- 【已加密】小麦苗OCP 11g课程第4节--sql语句的分类,如何查看在线和离线文档、sqlplus的使用和设置(导出csv和html文件)、ERRORLOGGING的作用
- 【已加密】小麦苗OCP 11g课程第5节--基本SELECT语句的写法,NULL的注意事项,Quote (q)语法、模糊查询、WHERE子句和排序
- 小麦苗OCP 11g课程第6节--IS NULL走索引,LIKE模糊查询走索引,DUAL表详解(包括恢复),Oracle中的函数、隐式类型转换:https://v.qq.com/x/page/s0540b5ih94.html
- 小麦苗OCP 11g课程第7节--函数的高级应用,组函数,COUNT的用法和区别,MAX和MIN优化写法:http://v.qq.com/x/page/l0540f9nhgh.html
- 【已加密】小麦苗OCP 11g课程第8节--多表连接、笛卡儿积、层次查询(树形查询)、WITH语法、子查询、合并查询(集合查询)、connect by和笛卡儿积快速构造大表
- 【已加密】小麦苗OCP 11g课程第9节--创建和管理表、数据字典、数据类型介绍、操作数据(INSERT、UPDATE、DELETE、MERGE)、DML语句优化的方法
- 【已加密】小麦苗OCP 11g课程第10节--约束、视图、外键约束必须创建索引(死锁)、Top-N 分析、物化视图简介
- 【已加密】小麦苗OCP 11g课程第11节--序列、索引、同义词、DBLINK、为什么索引没有被使用、哪些操作会导致索引失效、监控索引的使用、预估索引的大小、索引的选择性
- 【已加密】小麦苗OCP 11g课程第12节--匿名块、存储过程、函数、包的开发、异常处理、自治事务、分批提交DML、利用触发器完成一些监控功能、存储过程和函数返回集合类型
- 小麦苗OCP 11g课程第13节--ASM的安装和配置、磁盘组的简单维护、创建ASM磁盘的几种常见方式(asmlib)、静默安装GRID软件、EM的创建和使用、如何查看磁盘是否包含数据、如何让crs_stat命令显示完整、kfod命令等:http://v.qq.com/x/page/s0560te3pju.html
- 【已加密】小麦苗OCP 11g课程第14节--体系结构(内存结构、进程结构、存储结构)--内存组件(SGA+PGA)、数据库和实例的区别、ASMM和AMM、归档模式的切换、多路复用控制文件等
- 小麦苗OCP 11g课程第15节--EM的维护、参数文件(spfile和pfile)、启动和关闭、告警日志、Oracle Restart(重点)等:http://v.qq.com/x/page/j06000r2u4a.html
- 【已加密】小麦苗OCP 11g课程第16节--ASM相关维护(磁盘组、OS和ASM文件格式转换)等
- 【已加密】小麦苗OCP 11g课程第17节--Oracle网络管理(动态注册和静态注册、限定IP访问、sqlnet.ora、listener.ora、tnsnames.ora文件的作用、TWO_TASK、SYS登录报权限不足、ORA-12547等)
- 【已加密】小麦苗OCP 11g课程第18节--表空间和数据文件管理(bigfile、OMF、表空间大小查询、表空间扩展、表空间配额、移动数据文件、如何删除表空间数据文件)
- 【已加密】小麦苗OCP 11g课程第19节--数据库用户管理、权限和角色、密码文件(Oracle的两种认证方式等等)
- 【已加密】小麦苗OCP 11g课程第20节--锁和会话(视图之间的关联关系、如何彻底杀掉会话等)、Undo(作用,存储内容、快清除、ORA-01555)、审计(分类,FGA审计、sysdba审计、AUD$表迁移等)
- 【已加密】小麦苗OCP 11g课程第21节--AWR(如何获取和阅读)、ASH(如何诊断系统问题)、ADDM、统计信息(学好sql优化必修的一节课)等
- 【已加密】小麦苗OCP 11g课程第22节--exp、imp(从dmp文件获取相关信息,例如查看字符集,延迟段创建等)、数据泵expdp和impdp(彻底停止expdp,exclude、include,TTS,network_link,expdp卡死等)等
- 【已加密】小麦苗OCP 11g课程第23节--sqlldr(各种错误处理、酒店开房数据导入)、外部表(字符集设置)、补丁集更新(PSU、one-off补丁、热补丁)
- 【已加密】小麦苗OCP 11g课程第24节--故障类别、SCN(系统检查点SCN、文件检查点SCN、开始SCN和结束SCN)、实例恢复(前滚和回滚)、闪回体系(包括7种闪回技术及其原理)、DBA_SOURCE的使用
- 【已加密】小麦苗OCP 11g课程第25节--延迟段创建导致不能导出空表(只在11.2.0.1中存在)、RMAN简介及其常用命令(show all的配置、list、report、delete等)、备份恢复的类型
- 【已加密】小麦苗OCP 11g课程第26节--catalog库、RMAN备份(累积和差异增量备份)、块改变跟踪、备份脚本分享、定时任务(crontab + windows下的任务计划)
- 【已加密】小麦苗OCP 11g课程第27节--密码文件恢复、spfile恢复、控制文件恢复、在线redo和归档文件的恢复、v$archived_log的清理
- 【已加密】小麦苗OCP 11g课程第28节--数据文件恢复、表空间恢复(Undo表空间的恢复)、DRA(数据恢复顾问)、rm -rf误操作的恢复过程、TRUNCATE恢复方法、在丢失归档的情况下如何进行数据文件的恢复
- 【已加密】小麦苗OCP 11g课程第29节--日志挖掘logminer、bbed简介、坏块的检测(dbv、rman等)和恢复(BMR、bbed等)、如何确定坏块的对象名、OS备份(冷备和热备及其恢复)、非归档模式备份和恢复、RESETLOGS和NORESETLOGS区别、跨版本恢复、只存在备份片的恢复、恢复流程图
- 【已加密】小麦苗OCP 11g课程第30节--实验课(数据泵之NETWORK_LINK、duplicate from active复制数据库ASM到FS、TSPITR(表空间基于时间点恢复)、TTS(传输表空间))、测试库搭建等
- 【已加密】小麦苗OCP 11g课程第31节--JOB(DBMS_JOB、DBMS_SCHEDULER、创建删除JOB、是否正在运行、运行日志、故障处理)、分区表(分区类型、分区表查询优化、索引失效、普通表转换为分区表有哪些办法、压缩分区、分区表收集统计信息)
OCP培训课程大纲
注:
- 1学时=1小时
- 1课时=1次课=2学时=2小时
安装与卸载
课程模块
培训要点 学时 VMware Workstation虚拟机的相关知识 - 安装和卸载
- 版本介绍(32位和64位)
- 网络配置(配置固定IP地址并且可以上外网)
- 快照的介绍
- VMware Tools
- 主机和虚拟机资源共享
- 主机和虚拟机时间同步
- 虚拟机的配置文件
0.5 Linux的安装(RHEL 5.5) 1.5 Oracle软件单机安装 - 让Oracle DB、监听和oem开机启动(dbstart)
- 配置sudo
- 图形界面和静默方式安装单机软件
1 Oracle ASM的安装 2 Oracle监听和TNS的简单配置 - 学会使用netmgr
- 静默创建监听
0.1 删除数据库的几种方式 - dbca -silent
- DROP DATABASE;
0.2 创建数据库 管理工具介绍 Oracle软件的卸载 - Windows平台(主要是清理注册表)
- Linux平台
其它内容 - 如何判断Oracle是32位还是64位?
- 在多个不同版本的数据库情况下,如何确定实例的ORACLE_HOME地址?
0.5 sql基础部分
sql简介及分类
sql*Plus 基本SELECT语句 - 语法
- 别名
- 运算符
- 去重
-
空值
- NULL的注意事项,例如如果子查询结果中包含NULL值,那么NOT IN (NULL、AA、BB、CC)返回为空。
- IS NULL 走索引
- Quote (q)语法
- Oracle特殊字符的处理
WHERE条件和排序 连接类型 - 交叉连接(笛卡儿积)
-
内连接(简单连接)
-
等值连接
- 自然连接
- 自连接
- 非等值连接
-
-
外连接
- 左外连接
- 右外连接
- 全外连接
查询分类 合并查询(集合查询) - UNION
- UNION ALL
- INTERSECT
- MINUS
- 应用
函数 dual表 操作数据 存储过程、函数、包的开发 -
PL/sql块
- 分支
- 循环(游标FOR循环)
- 控制
-
存储过程
-
包
- 一个项目一个包,或一个系统一个包
-
异常处理
-
Oracle分批提交DML
- 分批 update
- 分批 delete
- 分批 insert
2 基本对象的管理
课程模块
DBLINK 约束 视图 0.3 其它数据库对象 创建和管理表 数据库管理 体系结构和Oracle Restart
课程模块 培训要点 学时 DB 服务器体系结构 -
内存结构
-
SGA
-
共享池(Shared Pool)
-
数据缓冲区(Database Buffer Cache)
- 回收池(Recycle Pool)
- 保留池(Keep Pool)
- 默认池(Default Pool)
- Redo日志缓冲区(Redo Log Buffer)
- 大池(Large Pool)
- Java池(Java Pool)
- 流池(Streams Pool)
-
-
PGA
-
- AMM和ASMM
-
进程结构
-
存储结构(物理结构)
2 体系结构部分扩展 -
AMM和ASMM
- 区别
- 互换
- 自动PGA内存管理
- UGA介绍
- SHOW SGA和V$SGA的结果区别
0.5 Oracle Restart 1 Oracle DB 系统 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
-
-
初始化参数文件
-
告警日志
- 使用跟踪文件
ASM ASM
- 简介
-
ASM对于管理员的好处
- ASM是什么?它有哪些优点?
-
ASM实例
- 主要进程
- ASM实例初始化参数
- 数据库实例与ASM之间的交互
- ASM相关动态性能视图
-
系统权限
- SYSASM、SYSDBA或SYSOPER
- 使用OEM管理ASM用户
-
启动和停止ASM实例
- sql*Plus
- srvctl
- asmcmd
-
ASM磁盘
-
ASM磁盘组
- 与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 管理数据库存储结构(表空间和数据文件)
管理数据库存储结构(表空间和数据文件)
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
- 密码延迟验证
- 哪些用户密码没有被修改过
- 密码复杂性校验
- 删除用户
-
扩展
权限 角色 锁和会话
课程模块 培训要点 学时 锁 - 锁的概念、作用
- 并发和并行
-
锁的分类
-
操作/保护对象不同
-
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)
-
-
1 会话 1 审计和Undo
审计
Undo - 还原数据
- 事务处理和还原数据
- 存储还原信息
- 还原数据与重做数据
-
管理还原
- 配置还原保留时间
- 保证还原保留时间
- 将还原表空间改为固定大小
- 一般还原信息
- 使用还原指导
Undo和Redo 1 AWR、ASH、ADDM和统计信息
AWR、ASH、ADDM和统计信息
-
- 统计信息的简介和分类
- 索引统计信息
- 表统计信息
- 列统计信息
- 系统统计信息
- 内部对象统计信息
- 怎样收集表的统计信息?怎样收集分区表的统计信息?
- 什么是动态采样(Dynamic Sampling)?
- 如何锁住统计信息?
- 什么是待定的统计信息(Pending Statistic)?
- 什么是直方图(Histogram)?
- 什么是多列统计信息(Extended Statistics)?
- 基表COL_USAGE$的作用是什么?
- 新建索引后统计信息是否自动收集?
- 什么是基数反馈(Cardinality Feedback)?
- 如何查询表和索引的历史统计信息
- Oracle如何并发地收集统计信息?
- 当收集表的统计信息时应该注意哪些问题?
- 什么是基数(Cardinality)和可选择率(Selectivity)?
- 使用SPLIT来拆分某个分区的时候,其拆分出来的新分区的统计信息行数是多少?
- 当自动收集任务运行时,哪些对象会被收集?
- 分区表统计信息的更新机制是怎样的?
- 如何查询表的DML操作数据变化量?
- 对表执行TRUNCATE操作会将表的统计信息也清除掉吗?
-
ASH
-
- 什么是ADDM?
- 如何获取ADDM报告?
-
自动维护任务
- 简介
- 自动维护任务配置
-
服务器生成的预警
- 设置阈值
- 创建和测试预警
- 预警通知
- 对预警作出响应
JOB和分区
JOB
-
DBMS_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 表分区
- 拆分表分区(Split Partition)--分区切割
- 修改表子分区模板(Set Subpartition Template)
-
分区表的查询优化
- 分区表常用数据字典视图有哪些?
- Oracle之INTERVAL分区的STORE IN属性存储在哪张表中?
- 如何查询某个分区是否是INTERVAL分区表?
-
分区表的压缩
- 分区表压缩
- 含有子分区的分区表压缩
- 分区表哪些分区被压缩了
- 解压缩
-
分区表单个分区分析(分区表收集统计信息)
- 指定partname和GRANULARITY
-
普通表转换为分区表有哪些办法?
- 分区表中lob类型的字段
- 分区表性能注意事项
-
索引失效的情况
- 分区表
- 非分区表
1 备份和恢复(包括闪回)
备份和恢复的概念
SCN 备份 恢复 - TRUNCATE恢复方法
- TSPITR(表空间基于时间点恢复)
- rm -rf误操作的恢复过程
- 在丢失归档的情况下如何进行数据文件的恢复
- 数据文件OFFLINE之后必须要做的一件事是什么?
-
什么是DRA(Data Recovery Advisor,数据恢复指导)?
- rm -rf 误操作的恢复过程
- 丢失了控制文件(多种恢复方法演示)
- 丢失了在线重做日志文件
-
数据文件恢复
- 数据故障
- 只存在备份片如何恢复数据库
- 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
-
其它内容
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
-
热备份(非一致性备份、联机备份) --只能用于归档模式
移动数据(exp、expdp、sqlldr、外部表)
exp和imp
-
EXP导出数据
- 导出表
- 导出方案
- 导出数据库
-
IMP导入数据
- 导入表
- 导入方案
- 导入数据库
- imp导入常见问题处理
-
其它实用内容
- exp的query参数
- 什么是延迟段创建(Deferred Segment Creation)?
- Oracle 11g不能导出空表的三种解决方法
-
exp导出ASH数据
-
常见错误
- 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
-
其它实用内容
-
过滤对象(exclude、include)
- 导出数据库连接
- 导出JOB
- dba_export_objects
- 重定义表的Schema或表空间
- 优化导入/导出效率
- impdp传输表空间(OCM考题)
- expdp 导出sys用户下的表报错ORA-39165 和ORA-39166
- 数据泵导出导入卡死
- 使用隐含Trace参数诊断Oracle Data Pump故障
- 全库导出和导入演示
sql*Loader 外部表 - 外部表的优点
- 使用ORACLE_LOADER定义外部表
- 使用ORACLE_DATAPUMP填充外部表
-
使用外部表
- 基础
- 只有1列
- 外部表的parallel
-
利用外部表查看告警日志
- 先来个最简单的使用方法
- 再来个稍微复杂点的
0.2 管理补丁程序
管理补丁程序
实验课 实验课
- 数据泵之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讲课内容思维导图 安装与卸载
sql基础部分
基本对象的管理
数据库管理部分
体系结构和Oracle Restart
管理数据库实例
ASM
- 网络管理
- 表空间及数据文件
- 事务处理及用户
用户权限及角色
- 锁和会话
- 审计和Undo
- AWR、ASH、ADDM、统计信息
- JOB和分区
- 备份和恢复(包括闪回)
- 移动数据
管理补丁程序
实验课
OCP讲课文档目录
数据库安装部分的目录
第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.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.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.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.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 -
Oracle基本sql部分及其基本管理
目录- 1 -
序言- 12 -
第1章 sql简介- 12 -
1.1.1 sql的起源- 13 -
1.2 提交(COMMIT)类型- 15 -
1.3 如何查询在线和离线的官方文档- 19 -
第2章 sql*Plus工具- 20 -
2.2.1 关系对比- 20 -
2.2.2 关系图- 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 -
二、 把sqlplus执行结果传递给shell方法一- 26 -
三、 把sqlplus执行结果传递给shell方法二- 26 -
四、 把shell程序参数传递给sqlplus- 27 -
五、 为了安全要求每次执行shell都手工输入密码- 27 -
六、 为了安全从文件读取密码- 28 -
2.4.1.2 bat调用- 28 -
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.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.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.1 学习目的- 89 -
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.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.1 单行子查询- 178 -
? ?针对单行子查询的条件和普通条件一样- 178 -
? ?单行子查询中使用HAVING- 178 -
? ?可以把单行子查询想像作一个可变的值。它和一个单一值没什么区别- 178 -
9.3.3 多行子查询- 182 -
9.3.4 总结- 184 -
9.3.5 子查询扩展- 184 -
9.3.5.2 子查询中的IN和EXISTS- 186 -
9.3.5.3 多行子查询- 187 -
9.4 一个案例- 188 -
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.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.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.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 -
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.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 -
三、 数据库归档/非归档模式下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 -
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 -
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.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文件的字符集- 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.3 直接路径加载与常规路径加载的比较- 790 -
17.4.4 麦苗扩展- 791 -
17.4.4.1 如何将文本文件或Excel中的数据导入数据库?- 791 -
二、 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章 管理数据并发处理(锁和会话)- 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.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.2 索引统计信息- 115 -
4.4.5.3 列的统计信息- 115 -
4.4.5.4 系统统计信息- 118 -
4.4.5.5 内部对象统计信息- 120 -
一、 统计信息何时变为陈旧状态(10%的含义)?- 122 -
三、 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.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.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.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 -
第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 -
第8章 热备下的测试库搭建- 190 -
8.1 基础知识- 190 -
8.2 本次实验环境简介- 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.6 还原源库中的表空间为读/写模式- 209 -
9.7 传输文件- 210 -
9.7.1 传输转储元文件到目标库- 210 -
9.7.2 查看目标库数据文件位置和目录- 210 -
9.7.3 拷贝文件到目标库相应位置- 210 -
9.8 开始导入- 211 -
9.8.2 开始导入- 211 -
9.8.3 查看目标平台信息- 212 -
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.2 开始导入- 225 -
10.8.3 查看目标平台信息- 226 -
第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.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相关文章
-
-