丰富的线上&线下活动,深入探索云世界
做任务,得社区积分和周边
最真实的开发者用云体验
让每位学生受益于普惠算力
让创作激发创新
资深技术专家手把手带教
遇见技术追梦人
技术交流,直击现场
海量开发者使用工具、手册,免费下载
极速、全面、稳定、安全的开源镜像
开发手册、白皮书、案例集等实战精华
为开发者定制的Chrome浏览器插件
【OCM】想考11g和12cOCM的小伙伴可以和我(lhrbestxh)私聊,非诚勿扰。11gOCM可以保证最低学费、最快训练速度和100%的通过率,非诚勿扰。
若要考12COCM请私聊。
注:
0.5
Linux的安装(RHEL5.5)
1.5
Oracle软件单机安装
1
OracleASM的安装
2
Oracle监听和TNS的简单配置
0.1
删除数据库的几种方式
0.2
创建数据库
管理工具介绍
Oracle软件的卸载
其它内容
SQL*Plus
基本SELECT语句
WHERE条件和排序
连接类型
查询分类
合并查询(集合查询)
函数
dual表
操作数据
存储过程、函数、包的开发
约束
视图
0.3
其它数据库对象
创建和管理表
体系结构部分扩展
OracleRestart
OracleDB系统
用户及其密码文件
权限
角色
课程模块
培训要点
学时
锁
0:NONE
1:NULL
2:SS(Row-S)
3:SX(Row-X)
4:S(Share)
5:SSX(S/Row-X)
6:X(Exclusive)
会话
Undo
Undo和Redo
分区
SCN
备份
恢复
闪回
RMAN高级应用之Duplicate复制数据库
bbed简介
rman之块介质恢复
非归档模式备份恢复
OPENRESETLOGS
4条RECOVERDATABASE命令的区别是什么?
日志挖掘logminer
利用增量数据库备份进行恢复
跨版本恢复
OS备份(物理备份)和恢复
数据泵(expdp和impdp)
SQL*Loader
外部表
第1章安装Oracle软件-6-
1.1OracleDB管理员的任务-6-
1.2用于管理OracleDB的工具-7-
1.3制定安装计划-8-
1.4OracleGridInfrastructure和OracleDB安装:系统要求-9-
1.5准备操作系统-10-
1.5.1设置环境变量-11-
1.5.2检查系统要求-12-
1.5.3OUI-13-
1.5.4GI安装-15-
1.5.4.1InstallationOption(安装选项)-15-
1.5.4.2选择产品语言-16-
1.5.4.3创建ASM磁盘组-17-
1.5.4.4定义ASM口令-17-
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执行ConfigurationAssistant-25-
1.5.4.13完成安装-27-
1.5.4.14配置FRA磁盘组-27-
1.5.5安装OracleDB软件-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创建OracleDB-42-
1.5.6.1计划数据库-42-
1.5.6.2选择适当的字符集-44-
1.5.6.3DatabaseConfigurationAssistant(DBCA)-48-
1.5.6.4DatabaseTemplates(数据库模板)-49-
1.5.6.5DatabaseIdentification(数据库标识)-49-
1.5.6.6ManagementOptions(管理选项)-50-
1.5.6.7DatabaseCredentials(数据库身份证明)-50-
1.5.6.8DatabaseFileLocations(数据库文件位置)-51-
1.5.6.9RecoveryConfiguration(恢复配置)-52-
1.5.6.10DatabaseContent(数据库内容)-52-
1.5.6.11InitializationParameters(初始化参数)-53-
1.5.6.12DatabaseStorage(数据库存储)-54-
1.5.6.13CreateOptions(创建选项)-54-
1.5.7创建数据库设计模板-57-
1.5.8使用DBCA删除数据库-58-
1.5.9小测验-60-
1.5.10小结-60-
第2章RHEL5.5的OS版本-60-
2.1安装VMwareWorkstation12Pro-60-
2.1.1校验MD5值-61-
2.2安装RHEL5.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安装VMwareTools-99-
2.3.1.1安装完成后设置共享文件-104-
2.3.1.2设置桌面背景和桌面的大小-105-
2.3.2设置主机IP地址-106-
2.3.3中文环境切换成英文环境-107-
2.3.4配置本地yum源(rhel5.5)-107-
2.3.5安装rlwrap-108-
2.4对/dev/sdb进行分区-109-
2.4.1逻辑卷管理的命令-116-
第3章安装11.2.0.364位单机数据库软件-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.1DBCA图形创建-148-
4.1.1启动监听-159-
4.2DBCA静默方式建库(必会)-161-
4.2.1.1什么是静默建库?-161-
4.3CREATEDATABASE手动建库(OCM)-163-
4.4删除数据库的几种方式-164-
4.5在多个不同版本的数据库情况下,如何确定实例的ORACLE_HOME地址?-164-
第5章配置监听和TNS-165-
5.1静默创建监听-167-
第6章其它-167-
6.1让OracleDB、监听和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.2PLSQLDeveloper软件使用和Windows下绿色版Oracle客户端的安装和使用-172-
6.2.1Linux下绿色版Oracle客户端的安装-172-
6.3配置glogin.sql-173-
6.4如何判断Oracle是32位还是64位?-173-
第7章数据库软件的卸载-176-
第8章安装grid软件-177-
8.1OS修改-177-
8.1.1编辑/etc/security/limits.conf文件,在文件尾部添加如下内容:-177-
8.1.2添加grid用户-177-
8.1.3配置grid用户的环境变量-178-
8.1.4扩展磁盘空间-179-
8.2ASM磁盘准备(创建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、创建并配置udevrules文件-188-
4、udevadm进行测试-189-
5、添加完成后,重启udev,不同Linux发行版本重启方式不一样。-189-
6、查看绑定的asm,如果此时还是看不到asmdisk,请重启操作系统后再查看。-189-
二、raw方式-190-
8.2.4创建ASM磁盘的方法4--ASMLIB方式-191-
一、系统版本号-191-
二、Oracleasmlib下载-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.3kfod命令-227-
8.7.3.1在采用asmlib时,确认物理磁盘的方法-228-
目录-1-
序言-12-
第1章SQL简介-12-
1.1SQL的起源和分类-13-
1.1.1SQL的起源-13-
1.1.2SQL的分类-13-
1.2提交(COMMIT)类型-15-
1.3如何查询在线和离线的官方文档-19-
第2章SQL*Plus工具-20-
2.1SQL与SQL*Plus-20-
2.2SQL语句与SQL*Plus-20-
2.2.1关系对比-20-
2.2.2关系图-21-
2.3.1EZCONNECT方式-22-
2.3.2使用SQL*Plus-24-
2.4SQL*Plus和SQLDeveloper-24-
2.4.1从Shell脚本调用SQL*Plus-25-
2.4.1.1shell调用-25-
一、最简单的shell里调用sqlplus-25-
二、把sqlplus执行结果传递给shell方法一-26-
三、把sqlplus执行结果传递给shell方法二-26-
四、把shell程序参数传递给sqlplus-27-
五、为了安全要求每次执行shell都手工输入密码-27-
六、为了安全从文件读取密码-28-
2.4.1.2bat调用-28-
2.4.2从SQL*Plus调用SQL脚本-29-
2.4.3sqlplus中将行转为列输出-31-
2.5SQL*Plus的设置-34-
2.5.1显示表结构-35-
2.5.2SETTIMINGON;和SETTIMEON-35-
2.5.3SQL*Plus编辑命令-35-
2.5.4使用LIST,n,和APPEND-36-
2.5.5SQL*Plus文件命令-36-
2.5.5.1导出csv、和html文件-37-
一、导出csv文件格式-37-
二、导出html文件格式-38-
2.5.6如何使用上下左右方向键-40-
2.5.7设置执行脚本时的搜寻路径-41-
2.5.8SQL*Plus中@和@@的区别是什么?-41-
2.5.9SQL*Plus中&与&&的区别是什么?-41-
2.5.10glogin.sql脚本的作用是什么?如何修改命令的提示符?-42-
2.5.11SQL*Plus的ERRORLOGGING的作用是什么?-42-
2.5.12如何给SQL*Plus安装帮助-43-
2.6iSQL*Plus简介-44-
2.6.1iSQL*Plus概览-46-
2.6.2SQL和iSQL*Plus交互作用-46-
第3章基本SELECT语句-46-
3.1SELECT语句的功能-47-
3.2选择所有列-48-
3.3选择指定的列-48-
3.4SQL语句的编辑-49-
3.5列标题默认属性-49-
3.6算术表达式-51-
3.7定义空值-52-
3.7.1NULL的注意事项-54-
3.7.2ISNULL走索引-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.11Quote(q)--11g新增-64-
3.12Oracle特殊字符的处理-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/NOTNULL条件-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章OracleSQL单行函数-89-
5.1学习目的-89-
5.2SQL函数介绍-89-
5.3SQL函数分类-90-
5.3.1单行函数-90-
5.4DUAL表介绍-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.3数字格式模板-104-
5.8嵌套函数-104-
5.9通用函数-104-
5.10条件表达式-106-
5.10.1CASE表达式-106-
5.10.2DECODE函数-107-
5.11总结-108-
5.12扩展-109-
5.12.1如何将一个数字转换为字符串并且按照指定格式显示?-109-
5.12.2ORA-00904:"wm_concat":invalididentifier错误解决-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.1MAX和MIN优化写法-122-
6.4使用COUNT-124-
6.4.1使用COUNT(DISTINCT列)-125-
6.4.2COUNT(1)、COUNT(*)、COUNT(常量)、COUNT(主键)、COUNT(ROWID)、COUNT(非空列)、COUNT(允许为空列)、COUNT(DISTINCT列名)-125-
6.5组函数与空值-126-
6.6GROUPBY子句-127-
6.7HAVING子句-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自连接(SelfJoin)-144-
8.4SQL1999连接语法介绍-145-
8.4.1交叉连接-145-
8.4.2自然连接-145-
8.4.3ON子句-146-
8.5关于SQLJoin中where和and的区别-147-
8.6层次查询分层查询树形查询-150-
8.6.1层次查询语法结构-151-
8.6.2分析-153-
8.6.3SYS_CONNECT_BY_PATH用于行列转换-166-
8.6.4层次查询进阶-167-
8.6.5综合案例-170-
8.6.6快速构造大表-173-
8.7WITH语法-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.1UNION-190-
10.2UNIONALL-191-
10.3INTERSECT(相交)-191-
10.4MINUS(相减)-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.1Oracle的表可以分为哪几类?-203-
12.4表和列的命名规则-204-
12.5CREATETABLE语句创建表-205-
12.5.1用子查询语法创建表(CTAS)-206-
12.5.1.1CTAS及其优化-207-
12.6DEFAULT选项-207-
12.7引用表-208-
12.8数据类型介绍-209-
12.8.1.1TIMESTAMP类型-210-
12.8.1.2INTERVALYEARTOMONTH数据类型-212-
12.8.1.3INTERVALDAYTOSECOND数据类型-213-
12.9ALTERTABLE语句-214-
12.9.1添加列-214-
12.9.2修改列-215-
12.9.2.1修改字段的类型、大小和默认值(不能有数据)-215-
12.9.3删除列(删除一个字段或清空某一列的数据)-215-
12.9.3.1SETUNUSED选项-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.3INSERT插入数据的语法-223-
13.3.1INSERT插入值的变化-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.4UPDATE更新数据的语法-227-
13.4.1UPDATE更新的例子和问题-228-
13.4.2用子查询更新两列-228-
13.4.3更新基于另一个表的行(多表关联更新--使用子查询更新数据)-229-
13.4.3.1例子-230-
13.4.4更新导致完整性约束报错-232-
13.5DELETE删除数据的语法-233-
13.5.1TRUNCATE语句-234-
13.5.2DELETE更新的例子和问题-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.7MERGE合并语句语法-238-
13.7.1MERGE语句在优化中的巨大作用-242-
13.7.2DML语句优化的方法-243-
13.8DELETE、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.1NOTNULL约束-249-
14.3.2UNIQUE约束-249-
14.3.3PRIMARYKEY约束-251-
14.3.4FOREIGNKEY约束-251-
14.3.4.1外键列的索引-255-
14.3.4.2外键的死锁(外键未加索引)-258-
一、脚本-263-
二、找出没有建立索引的外键-265-
14.3.5CHECK约束-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.5ocp-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.1WithCheckOPTION子句-278-
15.5.2WithREADONLY子句-278-
15.6管理视图-278-
15.6.1修改视图-279-
15.6.2删除视图-279-
15.6.3内建视图-279-
15.7视图扩展-280-
15.7.1Oracle中的视图-280-
15.7.2在什么情况下可以对视图执行增、删、改操作?-281-
15.8Top-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.3NEXTVAL和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.3OCP和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什么是索引的选择性(IndexSelectivity)?-306-
16.3.7.5为什么索引没有被使用?-307-
16.3.7.6ISNULL如何用到索引?-310-
16.3.7.7LIKE模糊匹配如何选择索引?-310-
16.4同义词-311-
16.4.1概念语法-311-
16.4.2创建和删除同义词-311-
16.4.3扩展-312-
16.4.3.1PLAN_TABLE表的真谛-312-
16.5数据库链接(dblink)-313-
16.5.1dblink扩展-314-
16.5.2一道OCM考题-317-
===================================================-317-
存储过程、函数、包的开发-318-
第17章PL/SQL块-318-
17.1PL/SQL简介-318-
17.2程序形式-318-
17.3编写规范-318-
17.3.1注释-318-
17.3.2标志符号的命名规范-319-
17.4PL/SQL块(匿名块)结构-319-
17.4.2可执行部分-322-
第18章控制结构(分支,循环,控制)-323-
18.1简介-323-
18.2条件分支语句--if-323-
18.3循环-326-
18.3.1loop-326-
18.3.2while循环-328-
18.3.3for循环-330-
18.3.3.1游标for循环-332-
18.4顺序控制–goto,null-333-
18.4.1goto语句-333-
18.4.2null-335-
第19章异常处理-337-
19.1概述-337-
19.2异常处理-337-
19.2.1预定义异常(Predefined)-337-
19.2.2非预定义异常(NonPredefined)-343-
19.2.3自定义异常(User_define)-345-
19.3抛出异常-348-
19.3.1raise-348-
19.3.2RAISE_APPLICATION_ERROR-349-
19.4存过中捕获异常的行号-350-
19.5如何捕获错误并记录到表中?-354-
第20章存储过程(StoredProcedure)-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.2Oracle的自治事务是什么?-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章备份和恢复的概念-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.2Oracle的SCN是什么?-20-
1.2.1SCN的组成-20-
1.2.2SCN的分类-21-
1.2.3如何查看系统当前SCN-22-
1.2.5SYS.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闪回查询(FlashbackQuery)-42-
2.1.2闪回版本查询(FlashbackVersionQuery)-44-
2.1.3闪回事务查询(FlashbackTransactionQuery)-46-
2.1.4闪回表(FlashbackTABLE)-47-
2.1.5闪回删除(FlashbackDROP)-51-
2.1.6闪回数据库(FlashbackDatabase)-52-
2.1.7闪回数据归档(FlashbackDataArchive)-52-
2.2Oracle的回收站是什么?-54-
2.3什么是闪回数据归档(FlashbackDataArchive)-58-
2.4什么是闪回数据库?-63-
2.5其它扩展-67-
2.5.1如何让普通用户可以对DBA_SOURCE视图进行闪回查询?-67-
第3章执行数据库备份-68-
3.1课程目标-68-
3.2OracleSecureBackup-70-
3.3用户管理的备份-71-
3.4术语-72-
3.5RecoveryManager(RMAN)-74-
3.5.1rman连接数据库-75-
3.5.2RMAN数据字典-75-
3.5.3rman命令-76-
3.6RMAN简介-76-
3.7RMAN的配置-79-
3.7.1定义RMAN配置-79-
3.7.2显示RMAN默认配置-80-
3.7.2.1CONFIGURERETENTIONPOLICY配置备份保留策略-81-
一、设置RMAN备份的保存策略-84-
3.7.2.2CONFIGUREBACKUPOPTIMIZATION配置备份优化-86-
3.7.2.3CONFIGUREDEFAULTDEVICETYPE配置IO设备类型-89-
3.7.2.4CONFIGURECONTROLFILEAUTOBACKUP配置控制文件自动备份-89-
一、控制文件快照自动备份-90-
二、11G新特性-控制文件延迟自动备份-90-
3.7.2.5CONFIGUREDEVICETYPE设置并行备份-96-
3.7.2.6CONFIGUREDATAFILEBACKUPCOPIES设置备份文件冗余度-97-
3.7.2.7CONFIGUREMAXSETSIZE配置备份集的最大尺寸-98-
3.7.2.8CONFIGUREARCHIVELOGDELETIONPOLICY-98-
3.7.3FORMAT参数-102-
3.7.4配置备份设置-102-
3.7.4.1调度备份:策略-104-
3.7.4.2调度备份:选项-105-
3.7.5OCP-110-
3.8rman其它命令-113-
3.8.1列出备份信息(list)-113-
3.8.2删除备份(delete)-115-
3.8.2.1RMAN中关于备份或归档文件状态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.5show-126-
3.8.6VALIDATEDATABASE-126-
3.9批处理命令RUN-126-
3.10物理备份和逻辑备份分别是什么?-127-
3.11catalog库-128-
3.11.1恢复目录(RecoveryCatalog)的概念-128-
3.11.2如何创建恢复目录(RecoveryCatalog)-129-
3.11.2.1例子-129-
3.11.2.2官网-131-
一、Prerequisites-131-
二、基本恢复目录-133-
三、虚拟私有目录--RVPC(RMANvirtualprivatecatalog)-133-
3.11.3Recoverycatalogresyncing恢复目录同步-138-
3.11.4IMPORTCATALOG-138-
3.11.4.1例子-141-
3.11.5ManagingaRecoveryCatalog-142-
3.11.6OCP-142-
3.12BACKUP命令---RMAN备份-151-
3.12.1.1wholebackup-153-
3.12.1.2fullbackup-154-
一、完全备份示例-156-
3.12.2备份表空间-157-
3.12.2.1temp表空间-158-
3.12.3备份指定数据文件-158-
3.12.3.1system-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什么是块改变跟踪(BlockChangeTracking)?-185-
3.14.2.1OCP-186-
3.15我的备份脚本-188-
3.15.1linux-189-
3.15.1.1nocatalog全备-189-
一、简易版-归档-191-
二、简易版-非归档mount全备-192-
3.15.1.2catalog增量备份脚本-193-
一、我自己的-195-
3.15.1.3Nocatalog增量备份脚本-198-
一、我自己的-211-
3.15.2windows-213-
3.15.2.1全备--我自己的-215-
3.15.2.2增量备份-216-
3.15.2.3设置windows定时任务-219-
一、XP下设置-222-
3.16OCP-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.2spfile丢失-239-
4.5.2.1数据库没有挂掉-239-
4.5.2.2数据库已经挂掉-240-
一、从rman的自动备份中找回-240-
二、手动创建-246-
4.5.3controlfile丢失-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.5OCP-308-
4.5.4Redo文件丢失(online+archive)-310-
4.5.4.1在线Redo日志-310-
一、查看日志文件的状态-312-
二、日志文件的恢复方法-313-
三、数据库归档/非归档模式下inactiveredo异常ORA-00316ORA-00327-315-
四、正常关闭数据库currentredo异常ORA-00316ORA-01623-318-
五、数据库异常关闭current/activeredo异常ORA-00316ORA-01624ORA-01194-321-
六、LossofaRedoLogFile-332-
七、LossofaRedoLogGroup-337-
八、lossallonlineredologs-339-
九、数据库未挂掉的情况下的恢复-340-
4.5.4.2恢复归档日志archivelog-341-
一、restorearchivelog的各种选项-341-
二、我的例子-351-
三、怎样清除v$archived_log视图中的过期信息-356-
4.5.4.3OCP-358-
4.5.5datafile丢失-362-
4.5.5.1在NOARCHIVELOG模式下丢失了数据文件-364-
4.5.5.2在ARCHIVELOG模式下丢失了非关键数据文件-365-
一、在ARCHIVELOG模式下丢失了系统关键数据文件-366-
4.5.5.3open状态下可以脱机的文件(sysaux,user等等)-367-
一、修改数据文件名称-368-
4.5.5.4open状态下不能脱机的文件(system,undo,temp)-368-
一、undo文件丢失-373-
4.5.5.5LossofaNoncriticalDataFileinARCHIVELOGMode-374-
4.5.5.6LossofaSystem-CriticalDataFileinARCHIVELOGMode-374-
一、system数据文件丢失-375-
二、【RMAN】SYSTEM表空间数据文件丢失恢复模拟-380-
三、system-395-
4.5.5.7非归档模式-397-
4.5.5.8如果删除表空间之前删除了表空间文件,解决办法:-398-
4.5.5.9OCP-398-
4.5.5.10数据文件没有备份的情况-399-
4.5.6表空间丢失-406-
4.5.6.1临时表空间数据文件(tempfile)丢失-408-
4.5.6.2RecoveringfromaLostIndexTablespace-411-
4.5.6.3RecoveringaRead-OnlyTablespace-412-
4.5.6.4undo表空间-412-
一、有备份-426-
二、无备份-429-
三、使用bbed恢复-454-
四、数据库还没有挂掉的情况下-454-
4.5.7ORACLE丢失各种文件导致数据库不能OPEN恢复-455-
4.6麦苗扩展-458-
4.6.1恢复的分类-458-
4.6.2介质恢复(MEDIARECOVERY)-459-
4.6.2.1数据库还原(RESTORE)与数据库恢复(RECOVER)-459-
4.6.2.2完全恢复和不完全恢复-462-
4.6.2.3完全恢复(CompleteRecovery)-463-
一、完全恢复的几种场景-465-
4.6.2.4不完全恢复的几种类型-475-
4.6.2.5实例恢复和介质恢复的区别-476-
4.6.3rm-rf误操作的恢复过程----数据库在无备份且open情况下的恢复-477-
4.6.3.1实验-479-
4.6.3.3模拟rm-rf误操作-481-
4.6.3.4开始恢复-483-
一、判断句柄位置-483-
二、恢复数据文件、控制文件、tmp文件和onlinelog文件-485-
三、如果数据库还没有关掉则关闭数据库-489-
4.6.3.5总结-491-
4.6.4TRUNCATE恢复方法-491-
4.6.6在丢失归档的情况下如何进行数据文件的恢复-495-
4.6.7数据文件OFFLINE之后必须要做的一件事是什么?-495-
4.6.8什么是DRA(DataRecoveryAdvisor)?-498-
4.6.8.1DataRecoveryAdvisor(数据恢复指导)-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.2duplicate体系结构-520-
7.2.1DuplicatinganActiveDatabase-521-
7.2.1.1PrerequisitesSpecifictoActiveDatabaseDuplication-525-
7.2.1.2自己的例子-525-
7.2.2CloningADatabaseOnTheSameServerUsingRmanDuplicateFromActiveDatabase-526-
7.2.2.1ConfigureTheNetwork-527-
7.2.2.2CreateAPasswordFileForTheNewDatabase-528-
7.2.2.3CreateAnInit.OraForTheNewDatabase-528-
7.2.2.4CreateTheAdminDirectoryForTheNewDatabase-528-
7.2.2.5ShutdownAndStartupMountTheSourceDatabase-528-
7.2.2.6StartupNomountTheNewDatabase-529-
7.2.2.7ConnectToTheTarget(Source)AndAuxiliary(NewClone)DatabasesUsingRman-529-
7.2.2.8ExecuteTheDuplicateCommand-529-
7.2.2.9RemoveTheOldPfile-535-
7.2.2.10CheckTheNewDatabase-535-
7.2.3DuplicatingaDatabasewithaTargetConnection-536-
7.2.4DuplicatingaDatabasewithRecoveryCatalogWithoutTargetConnection-537-
7.2.5DuplicatingaDatabaseWithoutRecoveryCatalogorTargetConnection-538-
7.2.5.1老师例子-539-
7.3CreatingaBackup-BasedDuplicateDatabase-556-
7.3.1CreatinganInitializationParameterFilefortheAuxiliaryInstance-557-
7.3.2SpecifyingNewNamesforYourDestination-558-
7.3.2.1SETNEWNAME-559-
7.3.3SpecifyingParametersforFileNaming-562-
7.3.3.1DB_FILE_NAME_CONVERT-563-
7.4OCP-563-
第8章BBED简介-567-
第9章rman之块介质恢复-568-
9.1坏块的简介-568-
9.2坏块的检测方法-569-
9.3BMR恢复坏块-571-
9.4如何确定坏块的对象名-571-
9.5如果发现有坏块,那么如何检索其它未坏的数据?-572-
9.6模拟坏块-573-
9.6.1blockrecover恢复坏块-573-
9.6.1.1创建演示环境-573-
9.6.1.2单块数据块损坏的恢复处理-574-
9.6.1.3多块数据块损坏的恢复处理-575-
9.6.1.4坏块的对象定位与影响-577-
9.6.2bbed模拟-579-
9.6.2.1bbed修复坏块示例-580-
9.7坏块模拟脚本-584-
9.8OCP-585-
第10章OS备份(物理备份)和恢复-587-
10.1操作系统备份(物理备份)-587-
10.1.1冷备份(一致性备份、脱机备份)--coolbackup-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.5OCP-617-
10.1.2热备份(非一致性备份、联机备份)--只能用于归档模式-617-
10.1.2.1简介-617-
10.1.2.2具体操作-618-
一、热备的过程-618-
二、基于数据库的热备-619-
三、基于表空间的热备-620-
四、控制文件的热备-621-
五、参数文件的热备-622-
六、临时表空间的数据文件、日志文件不需要备份-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章OPENRESETLOGS-650-
12.1使用alterdatabaseopenresetlogs的场合-650-
12.2为什么使用RESETLOGS?-650-
12.3RESETLOGS会执行什么操作?-650-
12.4ocp-651-
第13章其它-651-
13.1下列4条RECOVERDATABASE命令的区别是什么-651-
13.2RESETLOGS和NORESETLOGS的区别是什么?-652-
第14章跨版本恢复-653-
14.1RMAN可以跨版本或跨平台执行还原或复制命令吗?-653-
14.2跨小版本-655-
14.3跨大版本-656-
第15章只存在备份片的数据库恢复过程-656-
15.1.1总结-656-
第16章Oracle恢复流程图-656-
第17章移动数据-658-
17.1移动数据:一般体系结构-659-
17.2exp和imp-660-
17.2.1EXP导出数据-661-
17.2.1.1导出表-664-
17.2.1.2导出方案-665-
17.2.1.3导出数据库-665-
17.2.2IMP导入数据-665-
17.2.2.1导入表-667-
17.2.2.2导入方案-668-
17.2.2.3导入数据库-668-
17.2.2.4imp导入常见问题处理-670-
17.2.3exp和imp的一些其它用法-671-
17.2.4其它实用内容-672-
17.2.4.1可以从dmp文件获取哪些信息?-672-
二、获取dmp文件中的表信息-672-
三、解析dmp文件生成parfile文件-673-
四、如何查看dmp文件的字符集-673-
五、如何将US7ASCII字符集的dmp文件导入到ZHS16GBK字符集的数据库中?-674-
17.2.4.2exp的query参数和parfile的使用-675-
一、query和parfile示例-676-
17.2.4.3什么是延迟段创建(DeferredSegmentCreation)?-677-
一、Oracle11g不能导出空表的三种解决方法-679-
17.2.4.4exp导出ASH数据-680-
一、方法1:ctas建表导出,有的客户不让建表-680-
二、方法2:导出基表的数据-682-
17.2.5常见错误-684-
17.2.5.1EXP-00091:Exportingquestionablestatistics问题处理方法-684-
17.2.5.2EXP-00026:conflictingmodesspecified-687-
17.2.5.3IMP-00013:onlyaDBAcanimportafileexportedbyanotherDBA-689-
17.2.5.4IMP-00031:必须指定FULL=Y或提供FROMUSER/TOUSER或TABLES参数-690-
17.2.5.5IMP-00002:无法打开要读取的impD:/admin.dmp-692-
17.2.5.6EXP-00008:遇到ORACLE错误904-692-
17.2.5.7imp导入报错:IMP-00037:Charactersetmarkerunknown-693-
17.2.5.8IMP-00010:notavalidexportfile,headerfailedverification-696-
17.2.5.9imp-00051,imp-00008-698-
17.2.5.10IMP-00132:firstfileinthemulti-fileexportis32-699-
17.2.6注意事项-699-
17.3数据泵(expdp和impdp)-699-
17.3.1Oracle数据泵:概览-701-
17.3.2Oracle数据泵:优点-702-
17.3.3OracleDatabase11g中的数据泵增强功能-703-
17.3.4数据泵的目录对象-704-
17.3.4.1创建目录对象-705-
17.3.5数据泵导出与导入客户机:概览-706-
17.3.6数据泵实用程序:界面与模式-707-
17.3.7使用DatabaseControl进行数据泵导出-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使用OracleEnterpriseManager监视数据泵作业-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.5Oracle用户密码含特殊字符时如何登陆?-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.10impdp传输表空间(OCM考题)-748-
17.3.13.11注意事项-750-
一、expdp导出sys用户下的表报错ORA-39165和ORA-39166-750-
17.3.13.12impdp的一些选项-752-
一、NETWORK_LINK选项-752-
17.3.13.13如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?-753-
17.3.13.1412cexpdpVIEWS_AS_TABLES选项-766-
17.3.13.15其它错误-768-
一、数据泵导出出现ORA-31617错误-768-
17.3.13.16数据泵导出导入卡死-771-
一、AIX环境下EXPDP卡住问题处理-773-
17.3.13.17使用隐含Trace参数诊断OracleDataPump故障-775-
17.4SQL*Loader-785-
17.4.1使用SQL*Loader加载数据-787-
17.4.2SQL*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.32000W酒店开房数据导入-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.62000W酒店开房数据导入-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.5DML锁-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.4SELECT...FORUPDATE-36-
1.12.5DML_LOCKS和DDL_LOCK_TIMEOUT参数-36-
1.12.6在编译存储过程、函数等对象时无响应-36-
1.12.7新建或重建索引的锁信息-36-
1.12.8对于错误"ORA-08104:thisindexobject68111isbeingonlinebuiltorrebuilt",应该如何处理?-38-
1.12.9会话-39-
1.12.9.1V$SESSION视图-39-
1.12.9.2如何查看某一个会话是否被其它会话阻塞?-42-
1.12.9.3如何查到会话正在执行的SQL语句?-43-
1.12.9.5如何让普通用户可以杀掉自己用户的会话?-44-
1.12.9.6SESSIONS和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.7将还原表空间改为固定大小-58-
2.8一般还原信息-59-
2.9使用还原指导-60-
2.10查看系统活动-61-
2.11扩展-62-
2.11.1Undo的作用-62-
2.11.2Undo段存储的内容-63-
2.11.3块清除-64-
2.11.4Undo表空间-65-
2.11.5系统回滚段(SystemRollbackSegment)与延迟回滚段(DeferredRollbackSegment)-67-
2.11.6ORA-01555-67-
2.11.7Redo日志文件(RedoLogFiles)的作用是什么?-68-
2.11.8如何管理联机Redo日志组与成员?-69-
2.11.9在Oracle中,如果联机Redo日志文件损坏,那么如何恢复?-70-
2.12小测验-70-
2.13小结-71-
第3章实施OracleDB审计-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.1EnterpriseManager审计页-82-
3.7.2使用和维护审计信息-83-
3.7.3基于值的审计-84-
3.8细粒度审计-86-
3.8.1FGA策略-87-
3.8.2审计的DML语句:-89-
3.8.3FGA准则-90-
3.9SYSDBA审计-91-
3.10维护审计线索-92-
3.11OracleAuditVault-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审计中BYACCESS和BYSESSION的区别是什么?-97-
3.12.1.5如何对SYSDBA和SYSOPER进行审计?-97-
3.12.1.6什么是细粒度审计(精细化审计)?-98-
3.12.1.7如何禁用或删除某个用户下的所有细粒度审计?-100-
3.12.1.8FGA审计和标准审计有什么区别?-100-
3.13小测验-101-
3.14小结-101-
第4章数据库维护(AWR、ASH、ADDM)-102-
4.1数据库维护-103-
4.2查看预警历史记录-104-
4.2.1术语-105-
4.3Oracle优化程序:概览-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-
三、DBA_TAB_MODIFICATIONS-125-
4.4.5.7怎样收集表的统计信息?怎样收集分区表的统计信息?-126-
4.4.5.8什么是动态采样(DynamicSampling)?-126-
4.4.5.9如何锁住统计信息?-130-
4.4.5.10什么是待定的统计信息(PendingStatistic)?-132-
4.4.5.11什么是直方图(Histogram)?-137-
4.4.5.12什么是多列统计信息(ExtendedStatistics)?-151-
4.4.5.13基表COL_USAGE$的作用是什么?-160-
4.4.5.14新建索引后统计信息是否自动收集?-160-
4.4.5.15什么是基数反馈(CardinalityFeedback)?-160-
4.4.5.16如何查询表和索引的历史统计信息-165-
4.4.5.17Oracle如何并发地收集统计信息?-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.1AWR基础结构-183-
4.5.2AWR基线-184-
4.5.3EnterpriseManager和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.4如何在AWR中查看每秒执行事务的个数?-199-
4.6自动数据库诊断监视器(ADDM)-200-
4.6.1ADDM查找结果-202-
4.6.2ADDM建议-203-
4.6.3麦苗扩展-204-
4.6.3.1什么是ADDM?-204-
4.6.3.2如何获取ADDM报告?-205-
4.7ASH-206-
4.7.1什么是ASH?-206-
4.7.2如何获取ASH报告?-207-
4.8ASH、AWR、ADDM、AWRDDRPT、AWRSQRPT的比对-210-
4.9指导框架-212-
4.9.1EnterpriseManager和指导-214-
4.9.2DBMS_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.1EnterpriseManager的性能页-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.1DBMS_JOB-237-
5.1.1dbms_jobpackage用法介绍-241-
5.1.1.1DBMS_JOB包权限-242-
5.1.1.2DBMS_JOB后台进程-242-
5.1.1.3broken-243-
5.1.1.4change-244-
5.1.1.5interval-244-
5.1.1.6isubmit-244-
5.1.1.7next_date-245-
5.1.1.8remove-246-
一、杀job-246-
二、删除其它用户下的job用sys.dbms_ijob.remove()-246-
5.1.1.9run-251-
5.1.1.10submit-252-
5.1.1.11user_export-254-
5.1.1.12what-254-
一、例子-255-
5.1.2RAC中指定dbms_job运行在指定实例-257-
5.1.3数据字典-259-
5.1.4OCP课堂-261-
5.2DBMS_SCHEDULER-263-
5.2.1DBMS_JOB和DBMS_SCHEDULER之间的区别-264-
5.2.2各个组件(components)-264-
5.2.2.1作业(job):-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.9批量创建job-305-
一、创建job主进程-305-
二、创建job子进程-310-
5.2.6判断job是否正在运行-312-
5.2.7数据字典-312-
5.2.8LightweightJobs-314-
5.2.8.1PersistentLightweightJobs-320-
5.2.9OCP课堂-321-
5.3PL/SQL工具创建和管理job-323-
5.3.1DBMS_JOB-323-
5.3.2DBMS_SCHEDULER-325-
5.4其它实用内容-325-
5.4.1RAC中如何指定JOB的运行实例?-325-
5.4.2如何判断SCHEDULERJOB是否正在运行?-328-
5.4.3如何查询SCHEDULERJOB的运行日志?-329-
5.4.4通过DBMS_SCHEDULER如何调用SHELL脚本?-330-
5.4.5如何批量删除JOB?-330-
5.4.6已通知停止作业,但是无法立即停止-331-
5.5OCP-332-
第6章分区-333-
6.1分区表简介-334-
6.2分区表的一些限制条件-334-
6.3何时考虑分区?-334-
6.4分区表有什么优点?-334-
6.5有哪些类型的分区?如何选择用哪种类型的分区表?-335-
6.5.1RANGE(范围)分区-335-
6.5.2HASH(哈希)分区-336-
6.5.3列表分区-338-
6.5.4复合分区-339-
6.5.4.1分区模板的应用-340-
一、分区模板数据字典-341-
6.5.5Interval分区-341-
6.5.5.1以月为间隔-342-
6.5.5.2以天为间隔-346-
6.5.5.3总结-350-
6.5.5.4interval分区重命名-353-
一、注意-357-
6.5.6System_partitioning-357-
6.5.6.1RestrictionsonSystemPartitioning-358-
6.5.6.2AdvantagesofSystemPartitionedTables-359-
6.5.6.3SupportingOperationswithSystem-PartitionedTables-361-
6.6分区表的维护-363-
6.6.1添加分区(addpartition)-364-
6.6.2收缩表分区(coalescepartitions)-366-
6.6.3删除分区和删除子分区(droppartition)-366-
6.6.4添加子分区-367-
6.6.5截断表分区(TruncatePartition)--截断一个分区表中的一个分区的数据-367-
6.6.5.1截断分区表的子分区-368-
6.6.5.2截断带有约束的分区表-368-
6.6.5.3注意事项-368-
6.6.6移动表分区(MovePartition)-369-
6.6.6.1将一个表的分区从一个表空间移动到另一个表空间-370-
6.6.6.2压缩表Move--compress-370-
6.6.7合并分区(MergePartitions)-371-
6.6.8重命名某一个分区(RenamePartition)-374-
6.6.9交换表分区(ExchangePartitions)-374-
6.6.10修改list表分区-378-
6.6.10.1修改list表分区--AddValues-378-
6.6.10.2修改list表分区--DropValues-379-
6.6.11拆分表分区(SplitPartition)--分区切割-380-
6.6.12修改分区表属性-382-
6.6.12.1修改表分区默认属性(ModifyDefaultAttributes)-382-
6.6.12.2修改表分区当前属性(ModifyPartition)-382-
6.6.12.3修改分区表的logging属性-383-
6.6.12.4并行度-383-
6.6.13修改表子分区模板(SetSubpartitionTemplate)-383-
6.6.14其它-385-
6.7分区表的查询优化-392-
6.8分区表常用数据字典视图有哪些?-394-
6.8.1Oracle之INTERVAL分区的STOREIN属性存储在哪张表中?-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.16OCP讲课-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.1PSU升级的过程-434-
7.10.2PSU(PatchSetUpdate)、CPU(CriticalPatchUpdate)、BP(BundlePatch)等概念-434-
7.10.3如何查找最新的PSU?-435-
7.10.4如何确认当前数据库已经安装了什么PSU?-435-
7.10.5如何安装PSU?-436-
7.10.6Upgrade与Update-437-
7.10.7注意问题-437-
7.10.8什么是Metalink或MOS?-437-
7.10.911.2.0.3.0升级到11.2.0.3.1-438-
7.10.10one-offpatch-439-
7.10.11一道OCM题-441-
7.11小测验-442-
7.12小结-442-
第8章使用技术支持(学员自行阅读)-443-
8.1课程目标-443-
8.2使用支持工作台-443-
8.3在OracleEnterpriseManager中查看严重错误预警-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.10EnterpriseManager针对ASM的支持工作台-456-
8.11使用Oracle技术支持-457-
8.12MyOracleSupport集成-458-
8.12.1使用MyOracleSupport-459-
8.13调查问题-461-
8.14记录服务请求-463-
8.15小结-464-
实验目录-11-
第1章数据泵之NETWORK_LINK-11-
1.1博客地址-11-
1.2环境介绍-12-
1.3imp和exp简介-13-
1.4expdp不使用network_link-15-
1.5expdp使用network_link-18-
1.5.1目标数据库创建dblink-18-
1.5.2client端或目标数据库执行-19-
1.5.3总结-21-
1.6impdp使用network_link-21-
1.6.1目标数据库创建dblink-21-
1.6.2client或目标端执行-22-
1.6.3总结-23-
1.7实验命令-23-
第2章DuplicatinganActiveDatabase(duplicate复制数据库)-23-
2.1博客地址-23-
1.1duplicate体系结构-24-
1.2本次实验简介-25-
1.3本次实验原理-26-
1.4环境及搭建要求-26-
1.4.1对辅助数据库的要求-27-
1.5正式开始-28-
1.5.1duplicatedatabase设置-28-
1.5.1.1创建pfile参数文件-28-
1.5.1.2创建密码文件-28-
1.5.1.4启动Auxiliary到nomout状态-29-
1.5.2在Target和Auxiliary都配置OracleNet(Listener.oraandtnsnames.ora)-30-
1.5.2.1测试网络是否配置好-33-
1.5.3开始RMANduplicatefromactivedatabase-35-
1.5.4dropdatabase-41-
2.2OCP讲课(duplicateACTIVE+ASM-->FS)-42-
1.5.5duplicatedatabase设置-42-
1.5.5.1创建pfile参数文件-42-
1.5.5.2创建密码文件-43-
1.5.5.4启动Auxiliary到nomout状态-43-
1.5.6在Target和Auxiliary都配置OracleNet(Listener.ora和tnsnames.ora)-43-
1.5.6.1测试网络是否配置好-45-
2.2.1准备执行的RUN块-45-
1.5.7开始RMANduplicatefromactivedatabase-46-
2.2.2测试一下dbid和dbname-46-
第3章DuplicatingaDatabaseWithoutRecoveryCatalogorTargetConnection-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将备份内容拷贝到destinationhost-55-
1.3.1.5创建pfile参数文件-56-
1.3.1.7创建密码文件-58-
1.3.2实施数据库的复制-58-
1.3.2.1启动Auxiliary到nomout状态-58-
1.3.2.2连接到auxiliaryinstance并复制数据库-59-
1.3.2.3可能的报错-65-
一、fra满了-65-
二、备份位置-66-
1.3.2.4验证-66-
1.3.3dropdatabase-67-
第4章DuplicatingaDatabaseWithoutRecoveryCatalogorTargetConnection-68-
4.1本次实验简介-68-
4.2本次实验原理图-69-
4.3环境及搭建要求-69-
4.3.1sourcedatabase环境-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将备份内容拷贝到destinationhost-77-
4.4.1.5创建pfile参数文件-77-
4.4.1.7创建密码文件-80-
4.4.2实施数据库的复制-81-
4.4.2.1启动Auxiliary到nomout状态-81-
4.4.2.2连接到auxiliaryinstance并复制数据库-83-
一、告警日志-93-
4.4.2.3可能的报错-119-
二、fra满了-119-
三、备份位置-120-
1.1.1.2验证-121-
4.4.3dropdatabase-122-
5.1博客地址-124-
5.2BLOG文档结构图-125-
5.3前言部分-125-
5.3.1导读-125-
5.3.2实验环境介绍-126-
5.3.3本文简介-126-
5.4.1TSPITR简介-127-
5.4.2何时使用TSPITR-127-
5.5实验部分-128-
5.5.1源库做备份操作-128-
5.5.2建立测试表并做truncate误操作-131-
5.5.4执行TSPITR之前的检查-133-
5.5.4.1检查是否自包含-133-
5.5.4.2检查哪些对象执行TSPITR后将被删除-134-
5.5.5执行TSPITR-135-
5.5.6online表空间并且导入丢失的对象-140-
5.6与TSPITR有关的OCP试题部分-142-
5.7总结-146-
5.8实验脚本-149-
第6章直接复制数据文件实现linux平台数据库复制到windows平台数据库-152-
6.1平台环境概述-152-
6.2查看字节序-152-
6.3linux下操作-154-
6.3.1linux下生成pfile和controlfile-154-
6.3.2把linux上/u01/app/oracle/oradata/rman下的数据文件、重做日志文件、归档文件,还有刚才创建的pfile和控制文件及listener.ora、tnsnames.ora文件复制到windows平台上-155-
6.4windows下操作-155-
6.4.1创建一个rman的实例,注意SID要与linux服务器中的相同-155-
6.4.3创建spfile并启动到nomount状态-157-
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.5sourcedatabase归档模式-167-
7.6linux下操作-167-
7.6.1建表-167-
7.6.2rman备份-168-
7.6.3linux下生成pfile-173-
7.6.4把linux上/home/oracle/oracle_bk/rman/下的所有备份文件复制到windows平台上-174-
7.7windows下操作-174-
7.7.1创建一个rman的实例,注意SID要与linux服务器中的相同-174-
7.7.3创建spfile并启动到nomount状态-176-
7.7.4rman进行数据文件的恢复-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.9recover到指定的scn-201-
8.10重建临时表空间并配置密码文件以及TNS和密码文件等-201-
第9章传输表空间(TTS)一例(linuxasm->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文件系统->linuxasm)-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)一例(AIXasm->linuxasm)-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)一例(linuxasm->AIXasm)-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.8target端转换字节序-265-
12.9开始导入-266-
12.9.1创建source库的2个用户并赋权限-266-
12.9.2开始导入-267-
12.9.3查看目标平台信息-268-
12.10查看导入后结果-270-
第13章传输表空间(TTS)一例(linuxasm->AIXasm)--基于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.1rman全备份-277-
13.5.2生成结果集-280-
13.6传输文件-286-
13.6.1查看目标库数据文件位置和目录-286-
13.6.2拷贝文件到目标库相应位置并修改权限-287-
13.7target端转换字节序-287-
13.8target端开始导入数据-289-
13.8.1创建source库的2个用户并赋权限-289-
13.8.2开始导入-290-
13.8.3查看目标平台信息-290-
13.9查看导入后结果-291-
第14章传输表空间(TTS)一例(AIXasm->linuxasm)--基于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.1rman备份source库-298-
14.5.2transporttablespace生成文件-300-
14.6传输文件到target端-305-
14.6.1查看目标库数据文件位置和导入目录-305-
14.6.2拷贝文件到目标库相应位置并修改文件权限-306-
14.7target端转换字节序-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.1rman备份source库-329-
15.5.2transporttablespace生成文件-331-
15.6传输文件到target端-339-
15.6.1dbca创建target库-339-
15.6.2查看目标库数据文件位置和导入目录-340-
15.6.3利用ftp工具传输转储元文件到目标库-341-
15.6.4拷贝文件到目标库相应位置并修改文件权限-341-
15.7target端转换字节序-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.11TTS总结-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-
二、判断备份集中是否含有controlfile-405-
16.1.4备份集中无控制文件情况下的数据库恢复--重建控制文件-405-
16.1.5总结-418-
AboutMe
.............................................................................................................................................
●本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除