Oracle应用、开发与管理系列·OCP认证考试指南全册Oracle Database 10g

当前位置:首页 > 考试 > 计算机考试 > Oracle应用、开发与管理系列·OCP认证考试指南全册Oracle Database 10g

出版社:清华大学
出版日期:2007-4
ISBN:9787302148470
作者:(美)沃森
页数:747页

内容概要

John Watson是针对8.0、8i、9i与lOg版本的OCP DBA,具有OCP专门认可的ManagingOracle on Linux资格,并且是南非BPLC Management Consultants的首席顾问。John在南非的Oracle University工作了四年(此后进入Oracle Internal Support机构),主要讲授Database and Application Server课程,同时致力于开发课程内容与OCP问题。
Damir Bersinic是MCSE、MCDBA、MCT、CIT+以及OCP DBA,主要讲授和编写与Oracle、SQL Server以及常规数据库技术相关的主题,并且与他人合著了Portable DBA:SQL Server MCSA Windows Server 2003 Certification All—in—one Exam Guide以及其他一些涉及Oracle、SQLServer、Windows以及Active Directory的相关书籍。Damir在加拿大的多伦多地区居住和工作,他的电子邮箱地址为dbersinic@hotmail.com。

书籍目录

第Ⅰ部分  Oracle Database 10g AdministrativeⅠExam第1章  Oracle的基本概念
31.1 数据库入门与关系模型
41.1.1 数据库管理系统的关系模型
41.1.2 SQL:结构化查询语言
61.1.3 对象关系数据库管理系统
71.2 数据库对象
71.3 数据库管理员的职责
101.4 Oracle产品系列
111.5 章节回顾
121.5.1 问题
121.5.2 答案
13第2章 安装Oracle Database 10g
152.1 Oracle系统的要求
162.2 最优灵活体系结构
172.2.1 字典与装载点语法
172.2.2 文件命名语法
192.3 使用Oracle Universal Installer安装Oracle
202.3.1 操作系统的准备
202.3.2 安装Oracle软件
222.4 练习2-1:安装Oracle Database 10g
332.5 章节回顾
352.5.1 问题
352.5.2 答案
37第3章 创建Oracle数据库
393.1 Oracle服务器的体系结构
403.1.1 实例:存储结构与进程
413.1.2 数据库:物理结构
433.1.3 逻辑结构:表空间与段
443.1.4 数据字典
453.1.5 管理工具
453.1.6 外部文件
463.2 创建一个数据库
473.3 练习3-1:使用Database Configuration Assistant创建一个数据库
483.4 数据库创建脚本
503.5 DBCA的其他功能
543.6 章节回顾
553.6.1 问题
553.6.2 答案
57第4章 接合Oracle数据库
594.1 SQL的使用
604.1.1 SELECT语句
614.1.2 使用INSERT、UPDATE与DELETE语句操纵数据
654.1.3 数据定义语言
684.1.4 数据库、系统与会话管理命令
694.2 理解PL/SQL
694.3 Oracle 10g中的查询工具
714.3.1 SQL*Plus
714.3.2 iSQL*Plus
724.4 练习4-1:调用SQL*Plus
744.5 练习4-2:连接iSQL*Plus
754.6 接合Oracle数据库的其他方法
784.6.1 Oracle中的Java
784.6.2 Oracle调用接口
784.6.3 其他API
794.7 章节回顾
804.7.1 问题
804.7.2 答案
82第5章 管理Oracle进程
855.1 启动SQL*Plus
865.2 启动iSQL*Plus
865.3 启动Database Listener
875.4 启动Database Control端口监控程序
885.5 数据库的启动与关闭
905.5.1 使用正确的权限进行连接
905.5.2 SYSOPER与SYSDBA
915.5.3 startup命令
915.6 练习5-1:使用SQL*Plus启动和关闭数据库
935.6.1 shutdown命令
955.6.2 实例恢复
965.7 练习5-2:使用Database Control打开与关闭数据库
975.8 初始化文件
985.9 练习5-3:使用Database Control查看各种参数
995.10 章节回顾
995.10.1 问题
995.10.2 答案
101第6章 管理Oracle存储结构
1036.1 基本的Oracle存储结构:表空间与数据文件
1046.1.1 物理存储结构
1056.1.2 逻辑存储结构
1066.2 创建与管理表空间
1106.2.1 CREATE TABLESPACE命令
1116.2.2 修改表空间
1116.2.3 删除表空间
1126.3 练习6-1:使用Enterprise Manager创建表空间
1126.4 练习6-2:使用Enterprise Manager更改表空间
1186.5 练习6-3:使用Enterprise Manager删除表空间
12023.3.4 通道分配
45623.3.5 RMAN备份的内容
45723.3.6 配置备份的保留
45923.3.7 重写默认配置
45923.4 练习23-1:配置RMAN
46023.5 章节回顾
46023.5.1 问题
46123.5.2 答案
463第24章 使用RMAN备份数据库
46524.1 batch模式中的RMAN
46624.2 RMAN管道接口
46724.3 使用RMAN可执行程序进行备份
46724.3.1 独立命令与作业/命令块命令
46824.3.2 创建备份集
46824.4 练习24-1:创建备份集
47024.4.1 生成映像副本
47224.4.2 用于备份集与映像副本的标记
47324.4.3 增量备份
47324.4.4 合并增量备份与映像副本
47524.5 块变化跟踪
47624.6 管理与监视RMAN备份
47724.6.1 LIST、REPORT与DELETE命令
47724.6.2 动态视图
47924.7 练习24-2:管理备份
47924.8 章节回顾
48024.8.1 问题
48024.8.2 答案
483第25章 诊断Oracle数据库的问题
48525.1 告警日志
48625.2 后台跟踪文件
48825.3 服务器生成的告警
48925.3.1 告警类型
49025.3.2 告警系统体系结构
49025.3.3 查看告警信息
49125.3.4 建立通知规则
49325.3.5 编辑阈值
49425.4 练习25-1:设置、查看以及清除告警
49525.5 用户跟踪文件
49625.5.1 实例级别的SQL跟踪
49725.5.2 会话级别的SQL跟踪
49725.5.3 使用Database Control进行跟踪
49825.6 章节回顾
49925.6.1 问题
49925.6.2 答案
501第26章 恢复非关键的损失
50326.1 恢复受损的临时表空间
50426.1.1 临时数据
50426.1.2 临时空间的配置
50526.1.3 临时文件受损的情况
50526.1.4 还原临时表空间
50626.2 恢复受损的联机重做日志文件
50726.2.1 联机重做日志文件的配置
50726.2.2 联机重做日志文件成员受损的情况
50826.2.3 重建受损的联机重做日志文件成员
50926.3 恢复受损的索引表空间
51126.3.1 索引表空间
51126.3.2 索引表空间受损的情况
51226.3.3 恢复索引表空间
51326.4 练习26-1:使用索引表空间
51426.5 恢复受损的只读表空间
51526.5.1 备份只读表空间
51626.5.2 恢复只读表空间
51626.6 恢复受损的口令文件
51726.6.1 口令文件受损的情况
51726.6.2 替换口令文件
51826.7 章节回顾
51826.7.1 问题
51826.7.2 答案
520第27章 数据库的不完全恢复
52127.1 完全恢复
52227.2 需要进行不完全恢复的场合
52327.3 不完全恢复的方法
52427.3.1 不完全恢复的各种选项
52527.3.2 不完全恢复的最优方法
52627.4 使用用户托管的备份进行不完全恢复
52627.4.1 UNTIL TIME恢复
52627.4.2 UNTIL CANCEL恢复
52727.4.3 UNTIL CHANGE恢复
52727.5 使用RMAN的不完全恢复
52827.5.1 UNTIL TIME恢复
52827.5.2 UNTIL SEQUENCE恢复
52927.5.3 UNTIL SCN恢复
52927.6 练习27-1:使用RMAN执行不完全恢复
53027.7 使用Enterprise Manager进行不完全恢复
53127.8 控制文件的恢复
53327.8.1 创建新的控制文件
53327.8.2 使用用户托管的备份还原控制文件
53527.8.3 使用RMAN还原控制文件
53527.9 练习27-2:实现控制文件的自动备份与还原
53627.10 使用RESETLOGS操作进行恢复
53827.11 章节回顾
53827.11.1 问题
53927.11.2 答案
542第28章 使用Oracle Flashback Database
54528.1 不同的闪回方法
54628.1.1 Flashback Database
54628.1.2 Flashback Query(Versions、Transaction、Table)
54628.1.3 Flashback Drop
54728.1.4 使用闪回方法的场合
54828.2 Flashback Database的体系结构
54928.3 配置Flashback Database
55028.4 练习28-1:使用Database Control配置Flashback Database
55128.5 监视Flashback Database
55228.6 使用Flashback Database
55328.6.1 使用SQL*Plus进行闪回
55428.6.2 使用RMAN进行闪回
55528.6.3 使用Database Control进行闪回
55528.7 练习28-2:通过Database Control使用Flashback Database
55528.8 管理闪回恢复区
55728.8.1 闪回恢复区内的空间使用
55728.8.2 备份闪回恢复区
55928.9 限制所生成的闪回数据量
56028.9.1 将表空间排除在闪回之外
56028.9.2 在某些表空间没有生成闪回数据时所进行的闪回
56128.10 章节回顾
56128.10.1 问题
56228.10.2 答案
563第29章 恢复用户错误
56529.1 闪回与ACID测试
56629.2 Flashback Drop
56629.2.1 Flashback Drop的实现
56729.2.2 使用Flashback Drop
56829.3 练习29-1:通过SQL*Plus使用Flashback Drop
57029.4 管理回收站
57129.4.1 查询回收站
57129.4.2 收回回收站的空间
57229.5 Flashback Query
57429.5.1 基本的Flashback Query
57429.5.2 Flashback Table Query
57629.5.3 Flashback Versions Query
57829.5.4 Flashback Transaction Query
57929.6 练习29-2:通过Database Control使用Flashback Query
58129.7 闪回与撤销数据
58329.8 章节回顾
58429.8.1 问题
58429.8.2 答案
587第30章 检测与恢复数据库的讹误
58930.1 块讹误及其原因
59030.2 与块讹误相关的参数
59030.3 检测块讹误
59130.3.1 块讹误生成的错误消息
59130.3.2 DBVERIFY实用程序
59230.3.3 ANALYZE命令
59430.3.4 DBMS_REPAIR程序包
59430.4 练习30-1:检查块讹误
59630.5 使用RMAN恢复讹误块
59730.5.1 讹误块的检测
59830.5.2 块介质恢复
59830.5.3 BLOCKRECOVER命令
59930.6 练习30-2:实现块介质恢复
60030.7 处理讹误
60030.8 章节回顾
60130.8.1 问题
60230.8.2 答案
604第31章 用于调整Oracle Database 10g的工具
60531.1 顾问程序方法
60631.2 ADDM
60731.3 各种顾问程序
60831.3.1 SQL Tuning Advisor
60931.3.2 SQL Access Advisor
61131.3.3 Memory Advisor
61131.3.4 MTTR Advisor
61331.3.5 Segment Advisor
61331.3.6 Undo Advisor
61431.4 练习31-1:使用SQL Tuning Advisor
61431.5 自动的撤销保留调整
61631.6 章节回顾
61731.6.1 问题
61731.6.2 答案
618第32章 监视与管理存储结构
61932.1 联机与归档重做日志文件的存储
62032.1.1 磁盘I/O与联机重做日志文件
62032.1.2 日志切换与性能
62132.1.3 归档日志文件与性能
62232.2 空间错误与可恢复语句
62232.2.1 与空间相关的常见错误
62232.2.2 数据文件的自动扩展
62332.2.3 可恢复语句
62432.3 练习32-1:使用可恢复语句
62632.4 监视表空间使用的告警
62732.5 练习32-2:使用告警系统监视表空间的使用情况
62932.6 监视与管理段的大小
63032.6.1 估计段的大小
63132.6.2 缩小表段
63132.6.3 缩小索引段
63332.6.4 重构索引段
63432.6.5 监视索引的使用
63532.7 练习32-3:使用Database Control Segment Advisor缩小一个表
63632.8 交替的表存储结构
63732.8.1 索引组织表
63832.8.2 索引群集表
64132.8.3 散列群集表
64232.8.4 有序散列群集表
64232.9 章节回顾
64332.9.1 问题
64432.9.2 答案
646第33章 使用Automatic Storage Management管理存储结构
64933.1 逻辑卷管理器的目的
65033.1.1 RAID级别
65033.1.2 卷大小
65133.1.3 RAID级别的选择
65133.1.4 ASM与第三方LVM的比较
65233.2 ASM体系结构
65233.2.1 ASM磁盘与磁盘组
65233.2.2 ASM实例
65333.2.3 RDBMS实例
65433.2.4 ASM文件
65433.3 创建原始设备
65533.4 练习33-1:在Windows系统中创建原始设备
65633.5 创建、启动与停止ASM实例
65833.6 练习33-2:在Windows系统中创建一个ASM实例
66033.7 创建ASM磁盘组
66133.8 练习33-3:在Windows系统中创建一个磁盘组
66133.9 创建与使用ASM文件
66233.10 练习33-4:将ASM用于数据文件
66333.11 ASM与RMAN
66333.12 ASM与Linux
66433.13 章节回顾
66533.13.1 问题
66633.13.2 答案
668第34章 监视与管理内存
67134.1 系统全局区
67234.2 共享池
67334.3 数据库高速缓存区
67534.3.1 LRU列表与检查点队列
67634.3.2 默认池、保持池与回收池
67734.3.3 非标准块大小池
67834.3.4 分配数据库高速缓存区的大小
68034.4 日志缓冲区
68134.5 其他SGA区
68134.5.1 大池
68234.5.2 Java池
68234.5.3 流池
68334.6 Automatic Shared Memory Management
68334.7 练习34-1:使用Automatic Shared Memory Management
68634.8 程序全局区
68734.9 章节回顾
69034.9.1 问题
69034.9.2 答案
693第35章 管理Oracle数据库资源
69535.1 资源管理的需求
69635.2 Resource Manager的体系结构
69735.2.1 用户组
69735.2.2 Resource Manager计划
69835.2.3 Resource Manager配置工具
69935.3 管理用户与用户组
70035.4 练习35-1:管理资源用户组中的用户
70035.5 Resource Manager计划
70235.5.1 CPU方法
70335.5.2 活动会话池方法
70635.5.3 限制并行度
70735.5.4 通过执行时间控制作业
70835.5.5 通过空闲时间终止会话
70835.5.6 限制撤销数据的生成
71035.5.7 自动的用户组切换
71135.6 练习35-2:配置与测试自动的用户组切换
71135.7 Resource Manager的其他功能
71335.7.1 停顿数据库
71335.7.2 针对一个调用的用户组切换
71435.7.3 使用比例CPU方法
71535.7.4 创建一个简单的计划
71535.7.5 适应用户组映射
71635.8 章节回顾
71735.8.1 问题
71835.8.2 答案
721第36章 自动化管理任务
72336.1 Scheduler的体系结构
72436.2 Scheduler对象
72436.2.1 作业
72436.2.2 程序
72636.2.3 调度
72636.2.4 作业类
72736.2.5 窗口
72836.2.6 权限
72936.3 创建与调度作业
72936.4 练习36-1:使用Scheduler API创建一个作业
73036.5 使用程序与调度
73036.6 使用作业类、窗口与Resource Manager
73336.6.1 使用作业类
73336.6.2 使用窗口
73436.7 预配置的作业
73536.8 章节回顾
73736.8.1 问题
73736.8.2 答案
739附录 关于本书合作站点
741术语表

7436.6 查看表空间信息
1216.7 章节回顾
1226.7.1 问题
1236.7.2 答案
125第7章 管理数据库用户
1277.1 创建与管理数据库用户
1287.1.1 用户与模式
1287.1.2 创建用户
1287.1.3 修改用户属性
1307.1.4 删除用户
1317.2 练习7-1:使用Enterprise Manager创建数据库用户
1327.3 授予与取消权限
1347.3.1 系统权限
1347.3.2 对象权限
1377.4 练习7-2:使用Enterprise Manager授予系统权限
1407.5 练习7-3:使用Enterprise Manager授予对象权限
1447.6 创建与管理角色
1477.7 练习7-4:使用Enterprise Manager创建与管理角色
1547.8 利用配置文件控制资源的使用
1567.8.1 利用配置文件实施资源限制
1577.8.2 创建、更改以及删除配置文件
1587.8.3 为用户指派配置文件
1597.9 练习7-5:使用Enterprise Manager创建与管理配置文件
1597.10 章节回顾
1637.10.1 问题
1647.10.2 答案
166第8章 管理数据库对象
1698.1 用户、模式以及模式对象
1708.1.1 用户与模式
1708.1.2 命名模式对象
1708.1.3 对象命名空间
1728.2 数据类型
1738.3 创建表
1758.4 创建约束
1778.5 练习8-1:创建表与约束
1788.6 创建索引
1818.7 创建视图
1828.8 创建与使用序列
1848.9 练习8-2:使用约束、视图以及序列
1848.10 章节回顾
1858.10.1 问题
1868.10.2 答案
187第9章 操纵数据库数据
1899.1 数据库事务
1909.1.1 原子性(A)
1909.1.2 一致性(C)
1909.1.3 隔离性(I)
1909.1.4 持久性(D)
1919.2 执行SQL语句
1919.2.1 执行SELECT语句
1919.2.2 执行UPDATE语句
1929.2.3 执行INSERT与DELETE语句
1939.2.4 执行ROLLBACK命令
1939.2.5 执行COMMIT命令
1949.2.6 DDL与事务控制
1959.2.7 所谓的“自动提交”
1959.3 练习9-1:事务的隔离性、读一致性以及提交
1969.4 DML与完整性约束
1969.5 Data Pump
1979.5.1 Data Pump的体系结构
1989.5.2 目录
1999.5.3 直接路径与外部表路径
2009.5.4 在网络模式中使用Data Pump
2019.6 练习9-2:使用Data Pump通过Enterprise Manager Database Control导出表
2029.7 练习9-3:使用Data Pump通过impdp导入表
2049.8 SQL*Loader
2049.8.1 SQL*Loader控制文件
2059.8.2 数据加载方法
2079.9 练习9-4:使用SQL*Loader
2079.10 章节回顾
2089.10.1 问题
2089.10.2 答案
211第10章 使用PL/SQL进行Oracle编程
21310.1 编程语言与Oracle数据库
21410.1.1 SQL与过程语言
21410.1.2 存储的与匿名的PL/SQL程序块
21410.1.3 PL/SQL对象
21510.2 过程、函数以及程序包
21610.2.1 过程与函数
21610.2.2 程序包
21710.3 练习10-1:创建与使用函数、过程以及程序包
21810.4 数据库触发器
21910.5 练习10-2:使用DML触发器
22110.6 用于PL/SQL的实例参数
22210.7 章节回顾
22310.7.1 问题
22310.7.2 答案
224第11章 保护Oracle数据库的安全
22511.1 调整默认的安全设置
22611.1.1 默认的用户
22611.1.2 PUBLIC权限
22711.2 对安全性至关重要的实例参数
22811.2.1 UTL_FILE_DIR实例参数
22911.2.2 REMOTE_OS_AUTHENT与OS_AUTHEN_PREFIX实例参数
22911.2.3 O7_DICTIONARY_ACCESSIBILITY实例参数
23011.2.4 REMOTE_LOGIN_PASSWORDFILE实例参数
23111.3 口令配置文件
23211.3.1 口令配置文件的限制
23211.3.2 口令验证功能
23311.3.3 创建、指派以及修改口令配置文件
23411.4 练习11-1:创建与使用口令配置文件
23511.5 审计
23711.5.1 审计SYSDBA活动
23711.5.2 数据库审计
23811.5.3 基于值的审计
24111.5.4 细粒度审计
24211.6 练习11-2:启用审计
24311.7 安全更新
24511.8 章节回顾
24511.8.1 问题
24511.8.2 答案
246第12章 配置Oracle互联
24912.1 Oracle的客户/服务器实现
25012.2 Oracle Net与通信协议简介
25112.3 建立会话
25112.3.1 连接本地实例
25212.3.2 名称解析
25312.3.3 启动服务器进程
25312.4 创建与管理侦听器
25412.5 练习12-1:使用Database Control创建侦听器
25412.6 数据库注册
25512.6.1 静态注册
25612.6.2 动态注册
25712.7 侦听器控制实用程序
25712.8 名称解析技术
25912.8.1 Easy Connect名称解析方法
26012.8.2 本地名称解析方法
26012.8.3 目录名称解析方法
26112.8.4 外部名称解析方法
26112.9 配置服务别名
26112.10 练习12-2:创建一个Oracle Net服务别名
26212.11 练习12-3:配置动态服务注册
26312.12 高级的连接选项
26312.13 测试Oracle Net连接
26612.14 章节回顾
26712.14.1 问题
26712.14.2 答案
270第13章 管理共享服务器
27113.1 专用服务器体系结构的局限性
27213.2 共享服务器体系结构
27313.3 配置共享服务器
27513.4 练习13-1:配置与验证共享服务器
27713.5 监视共享服务器
27813.6 使用共享服务器的场合
27913.6.1 适合使用共享服务器的应用
27913.6.2 控制共享服务器的使用
28013.7 练习13-2:配置客户机选择连接类型
28013.8 章节回顾
28113.8.1 问题
28213.8.2 答案
284第14章 管理数据库性能
28714.1 无效的对象
28814.1.1 标识无效的对象
28814.1.2 修正无效的对象
28914.2 练习14-1:修正无效的对象
29014.3 无用的索引
29214.3.1 标识无用的索引
29214.3.2 修正无用的索引
29314.4 练习14-2:修正无用的索引
29414.5 优化器统计
29514.5.1 对象统计量
29614.5.2 收集统计量
29714.6 练习14-3:自动化统计量收集
30014.7 性能指标
30114.7.1 使用动态性能视图查看统计量
30114.7.2 使用Database Control查看性能指标
30314.8 对性能问题作出的反应
30314.9 章节回顾
30414.9.1 问题
30514.9.2 答案
306第15章 监视Oracle
30715.1 自动工作负荷仓库
30815.1.1 收集统计量
30815.1.2 AWR的大小与位置
30915.1.3 快照的保存
31015.2 诊断与调整顾问程序
31015.2.1 ADDM顾问程序
31015.2.2 SQL Tuning Advisor与SQL Access Advisor
31215.2.3 Memory Advisor
31315.2.4 MTTR Advisor
31315.2.5 Segment Advisor
31415.2.6 Undo Advisor
31415.3 练习15-1:生成ADDM报告
31415.4 服务器生成的告警
31615.4.1 告警系统体系结构
31615.4.2 设置阈值
31715.4.3 使用基线
31715.5 练习15-2:配置告警
31815.6 章节回顾
31915.6.1 问题
31915.6.2 答案
321第16章 管理撤销
32316.1 撤销数据的原因与实质
32416.2 撤销表空间
32516.3 练习16-1:使用Database Control创建撤销表空间
32616.4 事务与撤销段
32616.5 管理撤销
32816.5.1 与撤销相关的错误条件
32816.5.2 用于撤销管理与撤销保留保证的参数
32816.5.3 调整与监视撤销表空间
33016.5.4 删除与缩小撤销段
33116.6 练习16-2:使用SQL*Plus监视撤销
33216.7 章节回顾
33216.7.1 问题
33316.7.2 答案
335第17章 处理锁定
33717.1 共享锁与排他锁
33817.2 DML锁与DDL锁
33817.3 练习17-1:自动与手动锁定
33917.4 排队机制
34017.5 练习17-2:SELECT…FOR UPDATE命令
34017.6 锁定争用
34117.6.1 锁定争用的原因
34117.6.2 检测锁定争用
34317.6.3 解决锁定争用
34317.7 练习17-3:检测与解决锁定争用
34417.8 死锁
34417.9 练习17-4:自动解决死锁
34517.10 章节回顾
34617.10.1 问题
34617.10.2 答案
347第18章 配置数据库的备份与恢复
34918.1 备份与恢复问题
35018.2 失败类别
35118.2.1 语句失败
35118.2.2 用户进程失败
35318.2.3 网络失败
35318.2.4 用户错误
35418.2.5 介质失败
35518.2.6 实例失败
35618.3 实例恢复
35718.3.1 实例恢复的过程
35718.3.2 实例恢复不可能导致数据库出现讹误
35818.3.3 调整实例恢复
35918.4 练习18-1:实例恢复与MTTR
36018.5 MTTR顾问程序
36018.6 配置数据库的可恢复性
36118.6.1 保护控制文件
36118.6.2 保护联机重做日志文件
36318.6.3 archivelog模式与归档器进程
36518.7 练习18-2:复用重做日志
36618.8 练习18-3:将数据库转换至archivelog模式
36718.9 章节回顾
36818.9.1 问题
36818.9.2 答案
371第19章 备份Oracle数据库
37319.1 备份工具
37419.2 概念与术语
37419.2.1 全部备份与部分备份
37419.2.2 完整备份与增量备份
37519.2.3 脱机备份与联机备份
37619.2.4 映像副本与备份集
37719.3 RMAN的设置
37919.3.1 设备的设置
37919.3.2 备份集的设置
38019.3.3 策略的设置
38019.4 调度自动的备份
38119.5 练习19-1:运行数据库的一个完整备份
38219.6 控制文件备份
38319.7 练习19-2:使用SQL*Plus备份控制文件以便进行跟踪
38419.8 管理RMAN备份
38519.9 默认的备份目的地
38619.10 章节回顾
38719.10.1 问题
38719.10.2 答案
390第20章 恢复Oracle数据库
39120.1 恢复结构与进程
39220.2 介质失败后的恢复
39320.2.1 恢复受损的复用控制文件
39320.2.2 恢复受损的复用联机重做日志文件
39420.3 练习20-1:恢复受损的控制文件
39520.4 练习20-2:恢复受损的复用联机日志文件
39620.5 恢复受损的数据文件
39820.5.1 noarchivelog模式中数据文件的恢复
39820.5.2 archivelog模式中非重要文件的恢复
39820.5.3 恢复受损的重要数据文件
39920.6 练习20-3:恢复受损的非重要数据文件
39920.7 章节回顾
40220.7.1 问题
40220.7.2 答案
404第21章 管理Oracle数据库中的全球化特性
40721.1 全球化的需求
40821.2 全球化特性
40821.2.1 字符集
40821.2.2 语言支持
41021.2.3 地区支持
41121.2.4 其他NLS设置
41221.3 使用全球化支持功能
41321.3.1 选择字符集
41321.3.2 改变数据库字符集
41521.3.3 数据库内的全球化
41621.3.4 实例级别的全球化
41621.3.5 客户端环境设置
41621.3.6 会话级别的全球化设置
41721.3.7 语句级别的全球化设置
41721.4 练习21-1:全球化与客户机环境设置
41821.5 练习21-2:在会话内控制全球化设置
41921.6 语言排序与选择
42021.7 Locale Builder
42121.8 使用时区
42221.9 练习21-3:调整时区
42321.10 章节回顾
42421.10.1 问题
42421.10.2 答案
427第Ⅱ部分 Oracle Database 10g AdministrativeⅡExam第22章 配置侦听器的安全性
43122.1 保护侦听器的安全
43222.1.1 侦听器的操作系统身份验证
43222.1.2 侦听器的口令身份验证
43222.2 练习22-1:使用lsnrctl实用程序设置侦听器的口令
43422.3 控制对数据库的访问
43522.4 外部过程
43622.4.1 创建外部过程
43722.4.2 外部过程代理程序
43822.4.3 配置侦听器启动外部过程代理程序
43822.4.4 责任与流程控制概述
44022.5 练习22-2:创建一个用于外部过程调用的侦听器
44122.6 章节回顾
44222.6.1 问题
44222.6.2 答案
444第23章 开始使用Recovery Manager
44723.1 RMAN的功能
44823.2 RMAN的组件
44923.2.1 RMAN可执行程序
44923.2.2 目标数据库
44923.2.3 服务器进程与通道
45023.2.4 RMAN的存储仓库
45023.2.5 恢复目录
45023.2.6 介质管理库
45123.2.7 辅助数据库
45223.2.8 闪回恢复区
45223.3 配置RMAN
45223.3.1 环境变量与实例参数
45323.3.2 连接数据库
45423.3.3 配置RMAN的永久设置
455

编辑推荐

  《OCP认证考试指南全册Oracle Database 10g》综合考试指南不仅能够帮助应试人员通过OCA/OCP认证考试,而且也可以作为DBA的日常参考手册。

作者简介

《OCP认证考试指南全册Oracle Database 10g》旨在对参加OCA和OCP Oracle Database 10g认证考试的读者提供帮助。通过全面介绍Exam #1Z0-042 Oracle Database 10g:Administration I以及Exam #1Z0-043 Oracle Database 10g:Administration II的内容,读者能够掌握应试所需的各种技巧与知识。此外,书中还提供了许多有用的示例代码、考点以及练习题。

图书封面


 Oracle应用、开发与管理系列·OCP认证考试指南全册Oracle Database 10g下载 更多精彩书评



发布书评

 
 


精彩书评 (总计3条)

  •     第一本丢在了鄂尔多斯宾馆,买了第二本。书的体系结构很好,细节部分也很深入,单看细节就知道,作者的境界不是国内一般OCP能达到的~~
  •     Google文档地址:http://docs.google.com/View?id=dcbw3pcm_39hdwhvkfm http://docs.google.com/View?id=dcbw3pcm_40d48v3bc8 注1:该笔记为未完成版 注2:转帖请注明出处(笔记作者:城市行走者)    第1章 Oracle的基本概念第2章 安装Oralce Database 10g2.1安装Oralce Database 10g第3章 创建Oracle数据库3.1 Oracle服务器的体系结构3.2 创建数据库的步骤3.2 使用DBCA创建一个数据库3.3 数据库创建脚本第4章 接合Oracle数据库(Interfacing with the Oracle Database)4.1调用SQL*Plus4.2 连接iSQL*Plus第5章 管理Oracle进程5.1 启动SQL*Plus5.2 启动iSQL*Plus5.3 启动Database Listener5.4 启动Database Control端口监控程序5.5 数据库的启动与关闭第6章 管理Oracle存储结构6.1 基本的Oracle存储结构6.2 创建与管理表空间6.3 查看表空间第7章 管理数据库用户7.1 创建与管理数据库用户7.2 权限的授予(系统权限、对象权限、角色)7.3 利用配置文件控制资源的使用第8章 管理数据库对象8.1 用户、模式以及模式对象8.2 数据类型8.3 创建表8.4 创建约束8.5 创建索引8.6 创建视图8.7 创建序列第9章 操纵数据库数据9.1 事物的隔离性、读一致性以及提交9.2 DML与完整性约束9.3 Data Pump9.4 SQL*Loader第10章 使用PL/SQL进行Oracle编程第11章 保护Oracle数据库的安全第12章 配置Oracle互联12.1 Oracle客户/服务器的实现12.2 创建与管理侦听器12.3 数据库注册(静态注册、动态注册)12.4 侦听器控制实用程序(lsnrctl)12.5 名称解析技术12.6 配置服务别名12.7 高级的连接选项12.8 测试Oracle Net连接第13章 管理共享服务器第14章 管理数据库性能14.1 修正无效的对象(Invalid Objects)14.2 修正无用的索引(Unusable Indexes)14.3 优化器统计(Optimizer Statistics)14.4 性能指标(Performance Metrics)第15章 监视Oracle15.1 自动工作负荷仓库(Automatic Workload Repository, AWR)15.2 诊断与调整顾问程序15.3 服务器生成的告警第16章 管理撤销16.1 撤销数据的原因与实质16.2 创建撤销表空间16.3 管理撤销第17章 处理锁定17.1 共享锁与排他锁17.2 DML锁与DDL锁17.3 排队机制(The Enqueue Mechanism)17.4 锁定争用(Lock Contention)17.5 死锁(Deadlocks)第18章 配置数据库的备份与恢复18.1 备份与恢复问题18.2 失败类别18.3 实例恢复18.4 实例恢复与MTTR18.5 MTTR顾问程序18.6 配置数据库的可恢复性18.6.1 复用控制文件18.6.2 保护联机重做日志18.6.3 将数据库转换至归档(archivelog)模式第19章 备份Oracle数据库19.1 备份工具19.2 概念与术语19.2.1 全部备份与部分部分(Whole or Partial Backups)19.2.2 完整备份与增量备份(Full or Incremental Backups)19.2.3 脱机备份与联机备份(Offline or Online Backups)19.2.4 映像副本与备份集(Image Copies or Backup Sets)19.3 RMAN的设置19.3.1 设备的设置19.3.2 备份集的设置19.3.3 策略的设置19.4 运行数据库的一个完整备份19.5 控制文件的备份(使用SQL*Plus备份控制文件以便进行跟踪)19.6 管理RMAN备份第20章 恢复Oracle数据库20.1 回复结构与进程20.2 恢复受损的控制文件20.3 恢复受损的复用联机重做日志20.4 恢复受损的数据文件第21章 管理Oracle数据库中的全球化特性21.1 全球化特性21.1.1字符集(Character Sets)21.1.2语言支持21.1.3地区支持21.1.4 其他NLS设置21.2 使用全球化支持功能21.2.1 选择字符集21.2.2 改变数据库字符集21.2.3 数据库内的全球化21.2.4 实例级别的全球化21.2.5 客户端环境设置21.2.6 会话级别的全球化设置21.2.7 语句级别的全球化设置21.3 语言排序与选择21.4 使用时区第22章 配置侦听器的安全性22.1 保护侦听器的安全22.1.1 侦听器的操作系统身份验证22.1.2 侦听器的口令身份验证22.2 控制对数据库的访问22.3 外部过程第23章 开始使用Recovery Manager23.1 RMAN特性23.2 RMAN的组件23.2.1 RMAN可执行程序23.2.2目标数据库23.2.3 服务器进程与通道23.2.4 RMAN存储仓库(repository)23.2.5 恢复目录(Recovery Catalog)23.2.6 介质管理器(Media Management Library)23.2.7 辅助数据库(Auxiliary Database)23.2.8 闪回恢复区(Flash Recovery Area)23.3 配置RMAN23.3.1 环境变量与实例参数23.3.2 连接数据库23.3.3 配置RMAN的永久设置23.3.4 通道分配23.3.5 RMAN备份的内容23.3.6 配置备份的保留23.3.7 重写默认配置第24章 使用RMAN备份数据库24-1 创建备份集24-2管理与监视RMAN备份(list、report与delete命令)第25章 诊断Oracle数据库的问题25.1 告警日志25.2 后台跟踪文件(Background Trace Files)25.3 服务器生成的告警25.3.1 告警的类型25.3.2 告警系统的体系结构25.3.3 查看告警信息25.3.4 建立通知规则25.3.5 编辑阈值25.4 用户跟踪文件(User Trace Files)第26章 恢复非关键的损失26-1 恢复受损的临时表空间26-2 恢复受损的联机重做日志26-3 恢复受损的索引表空间26-4 恢复受损的只读表空间26-5 恢复受损的口令文件第27章 数据库的不完全恢复27.1 完全恢复27.2 需要进行不完全恢复的场合27.3 不完全恢复的方法27.4 使用用户托管的备份进行不完全恢复27.5 使用RMAN的不完全恢复27.6 控制文件的恢复27.7 使用RESETLOGS操作进行恢复第28章 使用Oracle Flashback Database28.1 不同的闪回方法28.2 Flashback Database的体系结构28.3 配置Flashback Database28.4 监视Flashback Database28.5 使用Flashback Database28.6 管理闪回恢复区第29章 恢复用户错误29.1 Flashback drop29.2 管理回收站29.3 Flashback Query29.4 Flashback Version Query29.5 Flashback Transaction Query第30章 检测与恢复数据库的讹误第31章 用于调整Oracle 10g的工具第32章 监视与管理存储结构第33章 使用ASM管理存储结构第34章 监视与管理内存第35章 管理数据库资源第36章 自动化管理任务第1章 Oracle的基本概念In this chapter you will learn• What a database is and what makes a database relational• What SQL is• Which database objects are supported in Oracle 10g• What a database administrator does• How the Oracle database fits into the Oracle product family第2章 安装Oralce Database 10gIn this chapter you will learn how to• Identify system requirements• Use Optimal Flexible Architecture• Install software with the Oracle Universal Installer• Identify and configure commonly used environment variables2.1安装Oralce Database 10gok第3章 创建Oracle数据库In this chapter you will learn how to• Create an Oracle database• Explain the Oracle database architecture• Explain the instance architecture• Use the management framework• Use DBCA to create a database• Use DBCA to configure a database• Use DBCA to drop a database• Use DBCA to manage templates图 Oracle服务器的体系结构3.1 Oracle服务器的体系结构详见我的笔记,略3.2 创建数据库的步骤To create a database, there are a number of steps that must be followed in the correctorder:1. Create a parameter file and a password file.2. Use the parameter file to build an instance in memory.3. Issue the CREATE DATABASE command. This will generate, at a minimum,a controlfile; two online redo log files; two datafiles for the SYSTEM andSYSAUX tablespaces, and a data dictionary.4. Run SQL scripts to generate the data dictionary views and the supplied PL/SQLpackages.5. Run SQL scripts to generate Enterprise Manager Database Control, along withany options (such as Java) that the database will require.On Windows systems, there is an additional step because Oracle runs as a Windowsservice. Oracle provides a utility, ORADIM.EXE, to assist you in creating this service.3.2 使用DBCA创建一个数据库ok3.3 数据库创建脚本略。第4章 接合Oracle数据库(Interfacing with the Oracle Database)In this chapter you will learn how to• Use SQL*Plus and iSQL*Plus to access Oracle Database 10g• Use SQL*Plus and iSQL*Plus to describe the logical structure of tables• Use SQL to query, manipulate, and define data using SELECT, UPDATE/INSERT/DELETE, and CREATE/ALTER/DROP• Identify common database interfaces• Describe a database transaction4.1调用SQL*Plusok4.2 连接iSQL*Plusok第5章 管理Oracle进程In this chapter you will learn how to• Control the database• Start and stop iSQL*Plus• Start and stop Enterprise Manager Database Control• Start and stop the Oracle Listener• Start up and shut down Oracle Database 10g• Describe startup and shutdown options for the Oracle database• Handle parameter files• Locate and view the database alert log5.1 启动SQL*PlusSQL*Plus只是一个向数据库发出特定SQL命令的基本进程,这是一个客户/服务器工具。C:\>sqlplus /nologSQL*Plus: Release 10.1.0.2.0 - Production on 星期一 1月 11 23:23:51 2010Copyright (c) 1982, 2004, Oracle. All rights reserved.SQL> conn /as sysdba已连接。5.2 启动iSQL*PlusiSQL*Plus是图形形式的SQL*Plus,这种工具作为一种Application Server服务运行。终端用户可以从Web浏览器连接iSQL*Plus。使用命令isqlplusctl start,可以启动iSQL*Plus。C:\>isqlplusctl startiSQL*Plus 10.1.0.2.0Copyright (c) 2004 Oracle. All rights reserved.Starting iSQL*Plus ...iSQL*Plus started.为了连接iSQL*Plus,需要在浏览器中输入下面的URL:http://<hostname.domain>:<port>/isqlplus其中默认端口号是5560。5.3 启动Database Listener这一部分将在第12章详细讨论。如果没有运行侦听程序Database Listener,那么Database Control就无法连接数据库。C:\>lsnrctl startC:\>lsnrctl stopC:\>lsnrctl statusC:\>lsnrctl statusLSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 12-1月 -2010 00:03:21Copyright (c) 1991, 2004, Oracle. All rights reserved.正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))LISTENER 的 STATUS------------------------别名 LISTENER版本 TNSLSNR for 32-bit Windows: Version 10.1.0.2.0 - Production启动日期 11-1月 -2010 18:34:00正常运行时间 0 天 5 小时 29 分 23 秒跟踪级别 off安全性 ON: Local OS AuthenticationSNMP OFF监听程序参数文件 D:\oracle\product\10.1.0\db_1\network\admin\listener.ora监听程序日志文件 D:\oracle\product\10.1.0\db_1\network\log\listener.log监听端点概要...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROCipc)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lenovo-fe3b8a55)(PORT=1521)))服务摘要..服务 "PLSExtProc" 包含 1 个例程。例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...服务 "ocp10g" 包含 1 个例程。例程 "ocp10g", 状态 READY, 包含此服务的 1 个处理程序...命令执行成功5.4 启动Database Control端口监控程序如果希望启动、停止Database Control进程,需要使用emctl实用程序。C:\>emctl start dbconsoleC:\>emctl stop dbconsoleC:\>emctl status dbconsoleC:\>set oracle_sid=OCP10GC:\>emctl status dbconsoleOracle Enterprise Manager 10g Database Control Release 10.1.0.2.0Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.http://lenovo-fe3b8a55:5500/em/console/aboutApplicationOracle Enterprise Manager 10g is running.--------------------------------------------------------------Logs are generated in directory D:\oracle\product\10.1.0\db_1/lenovo-fe3b8a55_OCP10G/sysman/log一旦这个进程运行中,就可以使用如下的URL来连接数据库http://<host.domain>:<port>/em其中默认的端口是5500。5.5 数据库的启动与关闭1、使用正确的权限进行连接CONNECT的语法为:connect user/pass[@db]connect user/pass[@db] as sysdbaconnect user/pass[@db] as sysoperconnect / as sysdbaconnect / as sysoper第一个示例是标准的数据字典身份验证。此时数据库必须是打开状态,任何用户只要使用这种语法连接数据库,那么就无法执行启动或关闭命令。第二、第三个示例指示Oracle进入外部口令文件验证用户名/口令组合。第四、第五个示例使用了操作系统身份验证。2、SYSOPER与SYSDBA需扩充,暂时略3、startup命令详见我的笔记,略第6章 管理Oracle存储结构In this chapter you will learn how to• Define the purpose of tablespaces and datafiles• Create tablespaces• Manage tablespaces (alter, drop, generate DDL, take offline, put online, add datafiles,make read-only or read/write)• Obtain tablespace information from Enterprise Manager and the data dictionary• Drop tablespaces• Describe the default tablespace图 Oracle数据库存储结构的实体关系模型6.1 基本的Oracle存储结构1、物理存储结构物理结构是从操作系统角度观察Oracle数据库时看到的的结构。 (The physical structure is what the operating system sees when “looking” at an Oracle database.) 它由一个或多个数据文件组成,每个数据文件由若干个操作系统块组成。数据库物理结构有三类物理文件组成:数据文件、重执行日志文件、控制文件。重执行日志文件记录数据库做的所有改变。控制文件用来维护数据库物理结构的信息。2、逻辑存储结构2.1 表空间(TABLESPACE)表空间的类型:第一种标准基于表空间存储的对象的类型:SYSTEM类型或非SYSTEM类型。在Oracle 10g中,SYSTEM与SYSAUX表空间由SYSTEM类型对象组成,其他表空间都被分类为非SYSTEM类型。SYSTEM表空间包含数据字典。数据字典是描述数据库自身结构、数据库中所有对象、用户以及角色的若干内部表。某个用户查询或执行DML语句时,数据字典被用于验证这个用户的权限以及查找属于被查询或修改的段的数据。执行DDL语句(包括CREATE、ALTER或DROP)后,这些表的内容也会被改变以反映相应的变化。SYSAUX表空间用于存储统计信息以及其他信息。表空间可以存储下列3种段中的一种:永久段、临时段以及撤销段。2.2 段(SEGMENT)表空间内的空间被分配给若干段。段(SEGMENT)是数据库中要求存储的对象,如一个表或一个索引。SELECT DISTINCT segment_type FROM DBA_SEGMENTS;SEGMENT_TYPE1 CLUSTER2 INDEX3 INDEX PARTITION4 LOB PARTITION5 LOBINDEX6 LOBSEGMENT7 NESTED TABLE8 ROLLBACK9 TABLE10 TABLE PARTITION11 TYPE2 UNDO2.3 区间(EXTENT)为表空间内的段分配空间时,每次只能分配一个区间(EXTENT)。区间管理可以是本地管理或者字典管理。2.4 数据库块数据库块是数据库最小的I/O单位。数据库需要读取数据时,无法只读取一条记录,而是必须读取整个数据块。写操作也会出现同样的问题:即使数据块中只有一条记录发生变化,DBWn进程都必须在检查点期间写入整个数据块。默认的数据块的大小在数据库创建阶段设置,并且无法修改。创建表空间时可以设置本表空间数据块的大小,并且无法修改。6.2 创建与管理表空间ok创建表空间的语法:CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace nameDATAFILE datafile spec | TEMPFILE tempfile spec[MINIMUM EXTENT minimum extent size][BLOCKSIZE blocksize][COMPRESS|NOCOMPRESS] DEFAULT STORAGE (default storage clause)][LOGGING|NOLOGGING][FORCE LOGGING][ONLINE|OFFLINE][EXTENT MANAGEMENT DICTIONARY |LOCAL [AUTOALLOCATE|UNIFORM SIZE size][SEGMENT SPACE MANAGEMENT MANUAL|AUTO][FLASHBACK ON|OFF]创建表空间,所需的是这个表空间的名称以及数据文件信息,其他所有的设置都可以使用Oracle的默认值。如下所示:CREATE TABLESPACE default_demoDATAFILE '$ORACLE_BASE/oradata/default_demo01.dbf' SIZE 10M;删除表空间:DROP TABLESPACE tablespace_name;如果下删除的表空间存在某些对象,那么会得到如下所示的错误信息:DROP TABLESPACE tablespace_name*ORA-01549: tablespace not empty, use INCLUDING CONTENTS optionDROP TABLESPACE OCP10GDATA INCLUDING CONTENTS CASCADE CONSTRAINTS;如果不指定INCLUDING CONTENTS和CASCADE CONSTRAINTS参数,那么只有在表空间不包括任何永久对象的前提下才能删除这个表空间。删除表空间的结果是从参数文件和数据字典中删除这个表空间的所有引用。因为并没有真正删除数据文件,所以还需要手动删除数据文件的操作(不过最好还是通过EM来完成这个步骤)。6.3 查看表空间DBA_TABLESPACES V$TABLESPACE 视图DBA_DATAFILES V$DATAFILE 视图DBA_TEMP_FILES V$TEMPFILE 视图第7章 管理数据库用户In this chapter you will learn how to• Create and manage database user accounts• Create and manage roles• Grant and revoke privileges• Control resource usage by users7.1 创建与管理数据库用户详见我的笔记,作者给出了很好的例子,略CREATE USER usernameIDENTIFIED [BY password | EXTERNALLY | GLOBALLY AS extname][DEFAULT TABLESPACE tablespacename][TEMPORARY TABLESPACE tablespacename][ACCOUNT LOCK | UNLOCK][PROFILE profilename | DEFAULT][PASSWORD EXPIRE][QUOTA num [K|M] | UNLIMITED ON tablespace[QUOTA num [K|M] | UNLIMITED ON tablespace] ... ]盖国强的这里的例子很好(略)P120创建用户的最简单语法如下:CREATE USER <username> IDENTIFIED BY <password>;这个字句已经过于简单,省略了空间分配的字句(请注意作为一个DBA,要尽量避免这样的语句),通常这是不推荐的写法,可是很多客户就是这样创建用户的。需要理解一下的是,这个语句在不同的Oracle版本中会有不同的结果。Oracle 8i:Oracle 9i:Oracle 10g中:Oracle最终解决了这个问题,这得益于全局缺省表空间的引入。由于一直以来存在数据空间的分配和使用问题,我们建议在创建用户时就为用户制定缺省的表空间完善后的语句为:CREATE USER <username> IDENTIFIED BY <password>DEFAULT TABLESPACE <tablespace_name>TEMPORARY TABLESPACE <tablespace_name>;删除用户:DROP USER username [CASCADE]Oracle不允许从数据库中删除其模式中包含对象的用户。Oracle建议在删除某个用户之前,需要确定该用户是否拥有数据库中的对象,如果该用户拥有某些对象,那么只有在验证其他用户不依赖这些对象后才能删除该用户拥有的对象。通过DBA_OBJECTS 和 DBA_DEPENDENCIES视图。select * from DBA_OBJECTS where owner='EYGLE';select * from DBA_DEPENDENCIES;需要查一下,略,s user_constraints 之间的区别???7.2 权限的授予(系统权限、对象权限、角色)1、系统权限表 Oracle 10g 中常见的系统权限GRANT privilege [, privilege, ...]TO username [, username, ...][WITH ADMIN OPTION];REVOKE privilege [, privilege, ...]FROM username [, username, ...];注意:DBA可以使用WITH ADMIN OPTION 为某个用户授予权限,如果这个用户为其他用户授予了相同的权限,那么就无法级联的取消这些用户的权限。例如:略P137…通过dba_sys_privs视图。确定被授予的系统权限查询权限,通过视图dba_sys_privsselect * from dba_sys_privs --(有488条记录)2、对象权限Privilege Granted On SELECT Table, view, sequence INSERT Table, view UPDATE Table, view DELETE Table, view ALTER Table, sequence INDEX Table REFERENCES Table EXECUTE Procedure, function, package GRANT privilege [,privilege, ...] ON objectnameTO user | role | PUBLIC[WITH GRANT OPTION];REVOKE privilege [,privilege, ...]ON objectnameFROM user | role | PUBLIC[CASCADE CONSTRAINTS];与授予系统权限不同,授予对象权限时必须制定关键字ON,从而能够确定权限应用的对象。一般不建议在列的级别上授予对象权限。通常,在需要只为表中特定的某些列授予对象权限时,我们建议创建一个只包含这些列的视图,并在这个视图上授予适当的权限。注意:取消对象权限时级联的,这一点与取消系统权限不同。确定被授予的对象权限• USER_TAB_PRIVS_MADE Object privileges the user has granted to otherson his schema objects• USER_TAB_PRIVS_RECD Privileges granted to the user to objects in otherschemas• ALL_TAB_PRIVS_MADE Object privileges the user has granted to others onhis and other schema objects• ALL_TAB_PRIVS_RECD Privileges granted to the user to objects in his andother schemas• USER_COL_PRIVS_MADE Column privileges granted by the user to tablesin his schema• USER_COL_PRIVS_RECD Column privileges granted to the user to columnsin tables in other schemas• ALL_COL_PRIVS_MADE Column privileges granted by the user to tables inhis and other schemas• ALL_COL_PRIVS_RECD Column privileges granted to the user to columnsin tables in his and other schemas3、角色角色是保存权限或者其他角色的容器。角色的主要优点是简化了为用户授权的过程。表 Oracle 10g中的预定义角色及其被授予的权限CREATE ROLE rolename[NOT IDENTIFIED | IDENTIFIEDBY password | EXTERNALLY | GLOBALLY];1. 创建角色 CREATE ROLE rolename[NOT IDENTIFIED | IDENTIFIEDBY password | EXTERNALLY | GLOBALLY];2. 修改角色ALTER ROLE rolename[NOT IDENTIFIED | IDENTIFIEDBY password | EXTERNALLY | GLOBALLY];3.为角色授予和取消权限为角色授予系统权限的语法:GRANT system_priv [, system_priv, ...]TO role | PUBLIC [, role | PUBLIC, ...][WITH ADMIN OPTION];注意:我们可以使用WITH ADMIN OPTION为角色授予系统权限,但是无法使用WITH GRANT OPTION为角色授予对象权限。为角色授予对象权限的语法:GRANT ALL [PRIVILEGES] | object_priv [, object_priv, ...]ON [schema_name.]object_nameTO role | PUBLIC [, role | PUBLIC, ...];为角色取消系统权限的语法:REVOKE system_priv | role_name [, system_priv | role_name, ...]FROM role | PUBLIC [,role | PUBLIC, ...];为角色取消对象权限的语法:REVOKE ALL [PRIVILEGES] | object_priv [, object_priv, ...]ON [schema_name.]object_nameFROM role | PUBLIC [,role | PUBLIC, ...][CASCADE CONSTRAINTS]4. 为用户授予和取消角色GRANT role_name [, role_name, ...]TO user_name | role | PUBLIC [, user_name | role | PUBLIC, ...][WITH ADMIN OPTION];5. 设置用户的默认角色一旦为某个用户授予了一个角色,就会自动将这个角色配置为默认角色。6. 启动与禁用角色SET ROLE ALL [EXCEPT role_name [,role_name] | NONE |role_name [IDENTIFIED BY password] [, role_name [IDENTIFIED BY password, ...];7. 删除角色DROP ROLE role_name;盖国强的这里的例子很好(略。好例子,连贯、顺序好:先举例,后理论)P122。不像其他书,上来先是讲什么是权限,权限的分类以及其中的细节(比如转授),最后才是最重要的例子(导致的结果是,还没有看到重点就已经晕掉了)。如果用户需要连接数据库并创建数据表,那么至少需要获得至少两个授权:CREATE SESSION 和 CREATE TABLE。grant create session to <username>;grant create table to <username>;这里需要继续授予用户使用其表空间的权限alter user <username> quota 10M on <tablespace_name>;Oracle的权限可以分为两种:系统权限对象权限查询权限,通过视图dba_sys_privsselect * from dba_sys_privs --(有488条记录)进一步,可以查询和TABLE有关的权限select distinct privilege from dba_sys_privswhere privilege like '%TABLE';-----------PRIVILEGE1 ALTER ANY TABLE2 BACKUP ANY TABLE3 COMMENT ANY TABLE4 CREATE ANY TABLE5 CREATE TABLE6 DELETE ANY TABLE7 DROP ANY TABLE8 FLASHBACK ANY TABLE9 INSERT ANY TABLE10 LOCK ANY TABLE11 SELECT ANY TABLE12 UNDER ANY TABLE13 UPDATE ANY TABLE------------可以想象,如果数据库中存在大量用户,如果我们将这些权限一一授予这些用户,操作将会极其繁琐,于是Oracle设计了一个新的技术:角色(Role)。定义:角色是一系列权限的集合。(有个权限的概念后)通常一个用户创建之后,我们授予用户两个角色就足够使用了,这两个角色是:CONNECT和RESOURCE。(Oracle在10g版本中对角色重新进行了定义)grant connect, resource to user_name;select * from dba_sys_privs where grantee='CONNECT';select * from dba_sys_privs where grantee='RESOURCE';select * from dba_sys_privs where privilege='UNLIMITED TABLESPACE';UNLIMITED TABLESPACE这一权限是为了向后兼容而保留的,如果使用不当,则会对数据库造成严重影响。P126盖国强,并参考备份与恢复一章。为了更严谨的管理,可以回收用户的UNLIMITED TABLESPACE权限,然后对用户的空间进行单独授权。7.3 利用配置文件控制资源的使用略第8章 管理数据库对象In this chapter you will learn how to• Create and modify tables• Define constraints• View the attributes of a table• View the contents of a table• Create indexes and views• Name database objects• Select appropriate datatypes• Create and use sequences8.1 用户、模式以及模式对象用户是存在于数据库内,通过用户名被唯一标识的人。创建一个用户的同时也会创建一个模式。模式(schema)由某个用户拥有的对象组成,模式最初为空。命名空间(namespace)定义略。不同命名空间内的对象能够共享相同的名称。8.2 数据类型略8.3 创建表ok8.4 创建约束ok8.5 创建索引ok索引具有下列双重目的:增强检索记录的性能,实施约束。8.6 创建视图ok视图实际上是一个查询。8.7 创建序列ok第9章 操纵数据库数据In this chapter you will learn how to• Manipulate data through SQL using INSERT, UPDATE, and DELETE• Use Data Pump to export data• Use Data Pump to import data• Load data with SQL Loader• Create directory objects9.1 事物的隔离性、读一致性以及提交略 ACID测试okIn brief, any relationaldatabase must be able to pass the ACID test.A Is for AtomicityThe principle of atomicity states that all parts。。。The whole of the SQL language is only a dozen or so commands. The ones we areconcerned with here are• SELECT• INSERT• UPDATE• DELETE• COMMIT• ROLLBACKRemember that from release 9i Oracle has included a very efficient and powerfulMERGE command, but since the end result of a merge is identical to a combinationof INSERT, UPDATE, and DELETE, there is no need to discuss it here.9.2 DML与完整性约束表 各种DML语句引发的不同约束错误以及错误消息。9.3 Data Pump略9.4 SQL*Loader上机没有成功。第10章 使用PL/SQL进行Oracle编程In this chapter you will learn how to• Identify PL/SQL objects• Describe triggers and triggering events• Identify configuration options that affect PL/SQL performance略第11章 保护Oracle数据库的安全In this chapter you will learn how to• Apply the principal of least privilege• Manage default user accounts• Implement standard password security features• Audit database activity• Register for security updates略第12章 配置Oracle互联In this chapter you will learn how to• Use Database Control to create additional listeners• Use Database Control to create Oracle Net service aliases• Use Database Control to configure connect-time failover• Use Listener features• Use the Oracle Net Manager to configure client and middle-tier connections• Use tnsping to test Oracle Net connectivity• Describe Oracle Net services• Describe Oracle Net names resolution methodsOracle Net过去被称为sqlnet,至今许多DBA仍然沿用了这个称呼。12.1 Oracle客户/服务器的实现图 通过若干层的分离使数据库免受用户的破坏12.2 创建与管理侦听器ok侦听器在listener.ora文件中定义。默认存储位置是ORACLE_HOME/network/admin注意:与其他用于配置Oracle Net的文件一样,listener.oar文件非常在意看似很小的语法问题(例如区分大小写、空格以及缩写)。因此,尽管没有其他理由,许多DBA仍然不愿手工编辑这个文件。Oracle提供了下列3个管理Oracle Net的图形工具:Database Control、Net Manager以及Net Configuration Assistant。12.3 数据库注册(静态注册、动态注册)动态注册实验:1. Using SQL*Plus, connect to your instance as user SYSTEM, and issue thecommandsSQL> alter system set local_listener='ocp10g_1522';SQL> alter system register;2. From an operating system prompt, use lsnrctl to check that your instance hasregistered dynamically with your list2 listener.C:\> lsnrctl services list23. Test the alias by connecting using SQL*Plus.SQL> connect system/oracle@ocp10g_1522;4. Reset your instance to use the default listener by putting the local_listenerparameter back to default, and re-register it.SQL> alter system set local_listener='';SQL> alter system register;12.4 侦听器控制实用程序(lsnrctl)略。12.5 名称解析技术Oracle提供了下列4中名称解析技术: Easy Connect,  local naming --- 本地名称解析方法(tnsnames.ora) directory naming,  external naming.使用本地名称解析方法时,用户可以为连接串提供一个Oracle Net服务别名,该别名通过一个本地文件tnsnames.ora被解析为完整的网络地址(包括协议、地址、端口、服务名或实例名)。例子:建立会话SQL> CONNECT SCOTT/TIGER 请求连接本地机器上的一个实例SQL> CONNECT SCOTT/TIGER@OCP10G 请求连接远程机器上的一个实例(其中OCP10G为连接串)12.6 配置服务别名可以使用的两个工具为:Database Control(服务器端)以及Net Manger(客户端)。Net Manger菜单属性结构具有3个分支: 概要文件-Profile 服务命名-Service Naming 监听程序-ListenersNet Manger(客户端)。概要文件-Profile概要文件-Profile服务命名-Service Naming服务命名-Service Naming监听程序-Listeners监听程序-Listeners12.7 高级的连接选项略P26312.8 测试Oracle Net连接1、 SQL*Plus2、 通过别名尝试登录3、 Net Manger内的test命令4、 tnsping见我的笔记第13章 管理共享服务器略,暂时用不到第14章 管理数据库性能In this chapter you will learn how to• Troubleshoot invalid and unusable objects• Gather optimizer statistics• View performance metrics• React to performance issues14.1 修正无效的对象(Invalid Objects)如果某个过程对象(例如一个存储的PL/SQL函数或者一个视图)变为无效,那么DBA不必执行任何操作。首次访问这个对象时,Oracle会尝试重新进行编译,而且有可能编译成功。查询数据库中无效的对象,可以通过DBA_OBJECT视图:select owner,object_name,object_type,status from dba_objects where status='INVALID';修正无效的对象,需要使用ALTER … COMPILE命令来编译对象。如果编译失败,通常需要首先使用DBA_DEPENDENCIES视图来确定编译错误的原因。需要编译所有的无效对的对象时,可以使用补充的实用程序脚本。Unix下的,SQL> @?/rdbms/admin/utlrpWindows下的,SQL> @?\rdbms\admin\utlrp14.2 修正无用的索引(Unusable Indexes)如果某个过程对象(例如一个存储的PL/SQL函数或者一个视图)变为无效,那么DBA不必执行任何操作。首次访问这个对象时,Oracle会尝试重新进行编译,而且有可能编译成功。但是某个索引由于某种原因变得无用,那么必须在能够使用这个索引之前,执行显式的修复操作。在旧版本的Oracle数据库中,执行SQL语句时,如果指定会话试图执行无用的索引,那么就会立即返回一条错误消息,同时语句执行失败。10g版本的数据库则改变了这种方式,在10g版本中,如果某条语句试图使用无用的索引,那么这条语句会重新使用不需要该索引的执行计划。这样SQL语句的执行总是会成功,不过代价可能是性能的显著降低。上述方式由实例参数SKIP_UNUSABLE_INDEX控制。查询变得无用的索引,通过DBA_INDEXES视图:select owner, index_name, status from dba_indexes where status='UNUSABLE';修复无用的索引,需要使用ALTER INDEX … REBUILD命令重新创建该索引。14.3 优化器统计(Optimizer Statistics)任何一条SQL语句都可以通过许多不同的方式执行。对于性能来说,执行计划(execution plan)的选择十分重要。在Oracle数据库中,标准的做法是使用优化器(Optimizer Statistics)来选择执行计划。优化器紧密依赖于一些统计量(statistics),从而能够评价众多可行的执行计划的效率以及选择某个执行计划。统计量具有许多类型,其中主要有:表统计量:DBA_TABLES视图中列统计量:DBA_COLUMNS视图中索引统计量:DBA_INDEXES以及INDEX_STATS视图中对象统计量不是实时的,而是静态的。使用ANALYZE命令或者执行DBMS_STATS程序包中的过程能够手动的收集统计量,此外通过Database Control也能实现同样的功能。注意:Oracle深信不应当专门收集统计量,而是应当自动化统计量的收集工作。如果数据库时使用DBCA创建的,那么就会将自动化的统计量收集配置为Scheduler管理的一个作业(第36章将对Scheduler进行详细讨论)。14.4 性能指标(Performance Metrics)Oracle提供了大约三百个动态性能视图(V$视图)。我们可以通过动态性能视图来访问与实例相关的以及与数据库特定区域相关的信息。The dynamic performance views give access to a phenomenal amount of information about the instance, and (to a certain extent) about the database. 动态性能视图填充了来自实例或控制文件的信息;前缀为DBA、ALL、USER的视图填充了来自数据字典的信息。动态性能视图在数据库启动阶段被创建,在指定实例的生存期内更新,在数据库关闭阶段被删除。这意味着动态性能视图包含了从数据库启动开始积累的值。因为关心的是所有的数据,所以动态性能视图无法告知特定期间发生的情况,而这段期间可能出现某些性能问题。基于这个原因,动态性能视图通常提供的是统计量而非指标。将这些统计量转换为指标是一个有一定技巧且比较费时的任务,不过10g版本的数据库通过提供自调整和性能监视使该任务变得更为简单。As an example of a dynamic performance view, you cannot do better than V$SYSSTAT,described here:ocp10g> desc v$sysstat;Name Null? Type--------------------------------- -------- -------------STATISTIC# NUMBERNAME VARCHAR2(64)CLASS NUMBERVALUE NUMBERSTAT_ID NUMBERThis shows over three hundred statistics that are fundamental to monitoring activity:ocp10g> select name, value from v$sysstat;NAME VALUE------------------------------ ----------logons cumulative 356logons current 34opened cursors cumulative 154035opened cursors current 5490user commits 2502user rollbacks 205user calls 37574recursive calls 6446648recursive cpu usage 39263session logical reads 4613746session stored procedure space 0<output truncated...>Another critical view is V$SYSTEM_WAIT_CLASS, which summarizes the variouscategories of problems that can cause sessions, or the whole database, to run slowly:ocp10g> select wait_class,time_waited from v$system_wait_class2 order by time_waited;WAIT_CLASS TIME_WAITED-------------------- -----------Network 32Application 44Configuration 1545Concurrency 4825Commit 5212Other 10483System I/O 41787User I/O 102743Idle 13087012This query shows that the worst problems since the instance started have been“Idle” events. These are not problems: they are events such as server processes waitingto receive SQL statements from user processes. The worst real problem is disk I/Ocaused by user sessions, followed by disk I/O by the instance itself.第15章 监视OracleIn this chapter you will learn how to• Set warning and critical alert thresholds• Collect and use baseline metrics• Use tuning and diagnostic advisors• Use the Automatic Database Diagnostic Monitor (ADDM)• Manage the Automatic Workload Repository• Describe server-generated alerts本章只是简单介绍,后面的章节将详细讨论。15.1 自动工作负荷仓库(Automatic Workload Repository, AWR)Oracle收集了大量与性能和动作的相关的统计信息。这些信息在内存中累加,并且被有规律的写入磁盘(也就是构成AWR的表)。最终这些信息会过期并被重写。统计量收集的级别由实例参数STATISTICS_LEVEL控制,默认值是TYPICAL。统计量在内存中(也就是在SGA内的数据结构中)积累。统计量被定时(默认为每小时一次)写入磁盘,也就是写入AWR。这被称为一次快照(snapshot)。只要生成了一个快照,MMON就会运行ADDM生成一个报告。AWR是位于SYSAUX表空间内的一组表。这些表不能被重新定位,并且存在于SYSMAN模式中。默认情况下,AWR快照保存7天,ADDM报告保存30天。15.2 诊断与调整顾问程序Oracle数据库预配置了一组顾问程序。 The Automatic Database Diagnostic Monitor (the ADDM) The SQL Tuning Advisor The SQL Access Advisor The Memory Advisor The Mean Time to Recover (MTTR) Advisor The Segment Advisor The Undo Advisor15.3 服务器生成的告警MMON进程还实现了服务器告警系统。这个进程会监视实例和数据库,如果某种指标越过了特定阈值,那么就会引发经过某个排队系统的告警信息。第16章 管理撤销In this chapter you will learn how to• Monitor and administer undo• Configure undo retention• Guarantee undo retention• Use the Undo Advisor• Describe the relationship between undo and transactions• Size the undo tablespace对于数据库管理员来说,在9i版本之前,撤销管理是一个非常繁琐的问题。从9i版本开始,DBA可以选择自动撤销管理。16.1 撤销数据的原因与实质Oracle使用撤销段保证关系数据库的“原子性”、“一致性”以及“隔离性”。撤销段在视图DBA_SEGMNETS中作为“TYPE 2 UNDO”的段类型列出,其中的ROLLBACK段也就是“TYPE 1 UNDO”,回滚段(ROLLBACK SEGMENT)只被保留用于向后兼容。16.2 创建撤销表空间ok16.3 管理撤销1、与撤销相关的错误:error ORA-1555, snapshot too old.error ORA-30036, unable to extend segment in undo tablespace.2、下列3个初始化参数可以控制撤销: UNDO_MANAGEMENT, UNDO_TABLESPACE, UNDO_RETENTION.SQL> show parameter UNDONAME TYPE VALUE------------------- ------ --------undo_management string AUTOundo_retention integer 900undo_tablespace string UNDOTBS13、调整与监视撤销表空间1. Connect to your instance with SQL*Plus as user SYSTEM.2. Set up your session for displaying dates conveniently.alter session set nls_date_format='dd-mm-yy:hh24:mi:ss';3. Query V$UNDOSTAT as follows:select begin_time, end_time, undoblks, maxquerylen, ssolderrcnt,nospaceerrcnt from v$undostat;4. Interpret the results of the query. Note that the view has one row per tenminuteinterval, showing you how much undo was generated, in blocks; howlong the longest query was, in seconds; and whether there were any “snapshottoo old” errors, or errors from transactions running out of undo space.5. Calculate the minimum necessary size in bytes for your undo tablespace thatwill prevent errors, given your current activity data, with this query:select(select max(undoblks)/600 * max(maxquerylen) from v$undostat)*(select value from v$parameter where name='db_block_size')from dual;第17章 处理锁定In this chapter you will learn how to• Detect and resolve lock conflicts• Manage deadlocks• Describe the relationship between transactions and locks• Explain lock modes within the Oracle Database 10g17.1 共享锁与排他锁排他锁,也叫独占锁(Exclusive Locks):“排他锁”锁定某条记录的的目的是为了防止其他会话对其进行更新,但是其他会话可以随时执行读取操作。共享锁(Shared Locks):“共享锁”锁定某个表的目的是为了防止另一个会话获得这个表上的排他锁(再以存在共享锁的情况下无法再获得排他锁)。17.2 DML锁与DDL锁所有DML语句都至少需要两种锁定:受影响记录上的排他锁(独占锁),以及包含受影响记录的表上的共享锁。执行DDL需要所涉及对象上的排他锁。17.3 排队机制(The Enqueue Mechanism)请求锁定需要排队。如果不希望某个会话在无法获得锁定的情况下进行排队,那么避免排队的唯一方式是:SELECT … FOR UPDATE命令的WAIT或者NOWAIT子句。17.4 锁定争用(Lock Contention)锁定争用是由用户同时访问相同的数据而导致的。设计不当的软件会是这种问题更加严重,但是大体上锁定争用是正常数据库活动的一部分。不过在紧急情况下,DBA能够通过终止过长时间拥有过多锁定的会话来解决锁定争用问题。alter system kill session '138,6';17.5 死锁(Deadlocks)略死锁是一种程序设计错误。发生死锁错误的原因是代码试图执行在逻辑上不可能的操作。注意:除了报告死锁的发生之外,DBA不需要完成针对死锁的操作。死锁问题是由Oracle数据库自动解决的。第18章 配置数据库的备份与恢复In this chapter you will learn how to• Describe the basics of database backup, restore, and recovery• Identify the types of failure that may occur in an Oracle database• Describe ways to tune instance recovery• Identify the importance of checkpoints, redo logfiles, and archived logfiles• Configure archivelog mode• Configure a database for recoverability18.1 备份与恢复问题暂时略,补充针对DBA的一些指导意见,非常重要,见我的笔记18.2 失败类别略 见我的笔记1、 语句失败2、 用户进程失败3、 网络失败4、 用户错误5、 介质失败6、 实例失败实例失败是实例的无序关闭,通常称为崩溃(crash)。18.3 实例恢复大体上,实例恢复只不过是使用联机重做日志的内容将数据库高速缓存区重新构建至崩溃前的状态。完成上诉操作后,就能打开数据库。略,见我的笔记实例恢复是自动完成的。怎么怎样才能调用实例恢复呢,答案是使用START UP命令。与检查点的关系略,见我的笔记18.4 实例恢复与MTTR本练习实例说明了检查点对实例失败后MTTR的影响。18.5 MTTR顾问程序略18.6 配置数据库的可恢复性略,见我的笔记为了保证数据库库具有最大程度的可靠性,必须复用控制文件与联机重做日志,必须在归档模式中运行数据库,同时也必须复用归档日志文件,此外还必须定期备份数据库(第19章详细介绍备份,第24章还将详细讨论)。控制文件的任何副本损坏都会导致数据库崩溃。If a member of a redo logfile group is damaged or missing, the database will remainopen if there is a surviving member. This contrasts with the controlfile, where damageto any copy will crash the database immediately. Similarly, groups can be added orremoved and members of groups can be added or moved while the database is open,as long as there are always at least two groups, and each group has at least one validmember.18.6.1 复用控制文件这个地方需要仔细研究,暂时跳过应该可以使用RMAN恢复???未上机。报这个错误:复用控制文件:1、首先关闭数据库2、使用操作系统命令复制或移动控制文件。3、在nomount模式中启动数据库4、执行alter system set control_files=… 命令.5、打开数据库SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup nomountORACLE 例程已经启动。Total System Global Area 121634816 bytesFixed Size 787748 bytesVariable Size 95419100 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL03.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROLbk.CTL";ORA-00972: 标识符过长SQL> startup nomountORACLE 例程已经启动。Total System Global Area 121634816 bytesFixed Size 787748 bytesVariable Size 95419100 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL";alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL"*第 1 行出现错误:ORA-02095: ????????????SQL> startup mountORA-01081: ????????? ORACLE - ??????SQL> alter database open;alter database open*第 1 行出现错误:ORA-01507: ??????SQL> startup mountORA-01081: ????????? ORACLE - ??????SQL>书上的例子是:18.6.2 保护联机重做日志搜“复用重做日志”的相关命令 。大概是add redo log member …18.6.3 将数据库转换至归档(archivelog)模式ok第19章 备份Oracle数据库In this chapter you will learn how to• Create consistent database backups• Back up your database without shutting it down• Create incremental backups• Automate database backups• Monitor the flash recovery area• Describe the difference between image copies and backup sets• Describe the different types of database backups• Back up a controlfile to trace• Manage backups19.1 备份工具直接使用操作系统实用程序(例如Windows操作系统中的copy或Winzip,Unix操作系统中的cp、tar、或者cpio)就可以进行备份操作。但是,Oracle强烈建议使用RMAN(Recovery Manager)。19.2 概念与术语19.2.1 全部备份与部分部分(Whole or Partial Backups)通常,如果数据库没有在归档模式中运行,那么总是应当进行全部备份。19.2.2 完整备份与增量备份(Full or Incremental Backups)19.2.3 脱机备份与联机备份(Offline or Online Backups)即冷备份与热备份;一致备份与不一致备份。术语“一致”要求读者理解Oracle的体系结构:为了使某个数据文件是一致的,这个数据文件中的所有文件块必须都执行过检查点进程并被关闭。在正常的运行中,数据库是不一致的。许多被更行的数据被复制至数据库高速缓存区,但是尚未写回磁盘。只有使用IMMEDIATE、TRANSACTIONAL或者NORMAL关闭选项干净地关闭数据库,即有序地关闭数据库,才能保证数据文件的一致性。19.2.4 映像副本与备份集(Image Copies or Backup Sets)映像副本(Image Copies):是某个文件的备份,并且每个字节都与原文件相同。显然,映像副本不可能是增量备份,也不可能在磁带设备上生成。备份集(Backup Sets):是由RMAN生成的一种专有结构。备份集可以拥有增量备份;备份集不会包含空的数据块;备份集可以启用数据压缩。19.3 RMAN的设置本节针对的是Database Control上的RMAN的设置。19.3.1 设备的设置19.3.2 备份集的设置19.3.3 策略的设置19.4 运行数据库的一个完整备份--全备份脚本_plus_archivelogrun{backup full tag 'lvhj_plus_archivelog' databaseinclude current controlfile format 'd:\backup\lvhjfull_%d_%t_%r_%s'plus archivelog format 'd:\backup\lvhjarch_%d_%t_%r_%s' delete all input;}19.5 控制文件的备份(使用SQL*Plus备份控制文件以便进行跟踪)见我的笔记Using SQL*Plus, perform a controlfile backup-to-trace, and inspect the generated file.1. Connect with SQL*Plus as user SYSTEM.2. Issue this command:SQL> alter database backup controlfile to trace;3. Locate your user dump destination.SQL> show parameters user_dump_dest;4. From an operating system prompt, change to the user dump destinationdirectory.5. Identify the newest file in the directory. For example, on Windows usedir /odor on Unix,ls -ltrThe newly generated trace fi le will be the last fi le listed.6. Open the trace file with any editor you please and study the contents. Thecritical section is the CREATE CONTROLFILE command, which will resemblethis:CREATE CONTROLFILE REUSE DATABASE "OCP10G" NORESETLOGS ARCHIVELOGMAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100MAXINSTANCES 8MAXLOGHISTORY 454LOGFILEGROUP 1 ('C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO01.LOG','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO01B.LOG') SIZE 10M,GROUP 2 ('C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO02.LOG','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO02B.LOG') SIZE 10M,GROUP 3 (Chapter 19: Backing Up an Oracle Database15PART I'C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO03.LOG','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO03B.LOG') SIZE 10M-- STANDBY LOGFILEDATAFILE'C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\SYSTEM01.DBF','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\UNDOTBS01.DBF','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\SYSAUX01.DBF','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\USERS01.DBF','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\EXAMPLE01.DBF','C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\UNDO2-01.DBF'CHARACTER SET WE8MSWIN1252;19.6 管理RMAN备份RMAN的默认备份地位闪回恢复区。闪回恢复区受两个参数:DB_RECOVERY_FILE_DEST 和DB_RECOVERY_FILE_DEST_SIZE的控制。这两个参数都不具有默认值,可是在使用DBCA创建数据库时,DBCA会将DB_RECOVERY_FILE_DEST参数设置为ORACLE_HOME主目录中的flash_recovery_erea目录,同时会将DB_RECOVERY_FILE_DEST_SIZE参数设置为2G字节。通过视图v$recovery_file_dest可以监视闪回恢复区。SQL> select * from v$recovery_file_dest;NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES-------------------------------------------------------------------------------- ----------- ---------- ----------------- ---------------D:\oracle\product\10.1.0\flash_recovery_area这里有问题,和书上的查询结构不一样,需上网查一下第20章 恢复Oracle数据库In this chapter you will learn how to• Recover from loss of a controlfile• Recover from loss of a redo logfile• Recover from loss of a system-critical datafile• Recover from loss of a nonsystem-critical datafile20.1 回复结构与进程在介质失败后,根据受损文件的类型,存在不同的恢复方法。恢复受损的控制文件恢复受损的控制文件恢复受损的复用联机重做日志恢复受损的数据文件见我的笔记In the Oracle environment, “restore” means to replace a damaged or missing file with a backup; “recover” means to synchronize the file with the rest of the database by use of archivelogs.书P39220.2 恢复受损的控制文件事实上,控制文件受损时,实例会立即终止。此时,DBA第一反应依然是尝试启动崩溃的实例。启动将在NOMOUNT模式中失败,同时会给出相应的错误消息。处理方法有多种,比较好的方法是:将幸存的控制文件复制至一个新的文件,然后编辑CONTROL_FILES初始化参数,从而将对受损文件的引用修改为对新文件的引用。这个地方需要仔细研究,暂时跳过应该可以使用RMAN恢复???未上机。报这个错误:复用控制文件:1、首先关闭数据库2、使用操作系统命令复制或移动控制文件。3、在nomount模式中启动数据库4、执行alter system set control_files=… 命令.5、打开数据库SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE 例程已经关闭。SQL> startup nomountORACLE 例程已经启动。Total System Global Area 121634816 bytesFixed Size 787748 bytesVariable Size 95419100 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL03.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROLbk.CTL";ORA-00972: 标识符过长SQL> startup nomountORACLE 例程已经启动。Total System Global Area 121634816 bytesFixed Size 787748 bytesVariable Size 95419100 bytesDatabase Buffers 25165824 bytesRedo Buffers 262144 bytesSQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL";alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL"*第 1 行出现错误:ORA-02095: ????????????SQL> startup mountORA-01081: ????????? ORACLE - ??????SQL> alter database open;alter database open*第 1 行出现错误:ORA-01507: ??????SQL> startup mountORA-01081: ????????? ORACLE - ??????SQL>20.3 恢复受损的复用联机重做日志ok20.4 恢复受损的数据文件第27、28章将详细讨论见我的笔记。第21章 管理Oracle数据库中的全球化特性In this chapter you will learn how to• Customize language-dependent behavior for the database and individual sessions• Specify different linguistic sorts for queries• Use datetime datatypes• Query data using case-insensitive and accent-insensitive searches• Obtain Globalization support configuration information21.1 全球化特性21.1.1字符集(Character Sets)字符集(Character Sets)P40821.1.2语言支持21.1.3地区支持21.1.4 其他NLS设置21.2 使用全球化支持功能我们可以在下列任一级别或全部5个级别上指定全球化: The database The instance The client environment The session The statement这些级别按照从低到高的顺序列出。21.2.1 选择字符集在数据库创建阶段,选择数据库字符集以及DB_BLOCK_SIZE参数是我们需要作出的最重要的两个决定。其余设置可以在数据库创建之后修改,而这两个参数DB_BLOCK_SIZE参数绝对不能改变,而数据库字符集虽然从理论上可以被改变,但是事实上不可行。21.2.2 改变数据库字符集数据库字符集虽然从理论上可以被改变,但是事实上不可行。Oracle提供了两个有助于解决字符集修改的工具:数据库字符集扫描程序(Database Character Set Scanner)和语言与字符集文件扫描程序(Language and Character Set File Scanner)。在Unix系统中为csscan和lcsscan。21.2.3 数据库内的全球化select * from nls_database_parameters;21.2.4 实例级别的全球化select * from nls_instance_parameters;两个视图的区别:select * from nls_database_parametersminusselect * from nls_instance_parameters;PARAMETER VALUE----------------- -------------------NLS_CALENDAR GREGORIANNLS_CHARACTERSET ZHS16GBKNLS_COMP BINARYNLS_CURRENCY $NLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE AMERICANNLS_DUAL_CURRENCY $NLS_ISO_CURRENCY AMERICANLS_NCHAR_CHARACTERSET AL16UTF16NLS_NUMERIC_CHARACTERS .,NLS_RDBMS_VERSION 10.1.0.2.0NLS_SORT BINARYNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR16 rows selected21.2.5 客户端环境设置注意:DBA完全不能控制终端用户对NLS_LANG环境变量的设置。如果应用程序容易受到全球化的影响,那么编程人员就应当考虑到这个问题,同时在会话内控制全球化设置。21.2.6 会话级别的全球化设置SQL> select * from nls_session_parameters;PARAMETER VALUE------------------------------ ---------------NLS_LANGUAGE SIMPLIFIED CHINESENLS_TERRITORY CHINANLS_CURRENCY ¥NLS_ISO_CURRENCY CHINANLS_NUMERIC_CHARACTERS .,NLS_CALENDAR GREGORIANNLS_DATE_FORMAT DD-MON-RRNLS_DATE_LANGUAGE SIMPLIFIED CHINESENLS_SORT BINARYNLS_TIME_FORMAT HH.MI.SSXFF AMNLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AMNLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZRNLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZRNLS_DUAL_CURRENCY ¥NLS_COMP BINARYNLS_LENGTH_SEMANTICS BYTENLS_NCHAR_CONV_EXCP FALSE17 rows selected下面的两种方法可以得到相同的结果:SQL> alter session set nls_date_format='dd.mm.yyyy';Session altered.SQL> execute dbms_session.set_nls('nls_date_format','''dd.mm.yyyy''');PL/SQL procedure successfully completed.21.2.7 语句级别的全球化设置21.3 语言排序与选择ok21.4 使用时区ok第22章 配置侦听器的安全性In this chapter you will learn how to• Secure the listener• Remove the default EXTPROC entry• Add a separate listener to handle external procedure calls22.1 保护侦听器的安全22.1.1 侦听器的操作系统身份验证侦听器管理命令默认的安全性基于操作系统用户ID。这种情况完全类似于数据库SYSDBA连接的操作系统身份验证,这种身份验证会跳过口令文件身份验证。22.1.2 侦听器的口令身份验证通过Net Manager、Database Control、lsnrctl实用程序或者手工编辑listener.ora文件都可以启用或者设置侦听器的口令。22.2 控制对数据库的访问ok22.3 外部过程暂时用不到。第23章 开始使用Recovery ManagerIn this chapter you will learn how to• Configure database parameters that affect RMAN operations• Change RMAN default settings with CONFIGURE• Manage RMAN’s persistent settings• Start RMAN utility and allocate channels23.1 RMAN特性23.2 RMAN的组件略23.2.1 RMAN可执行程序23.2.2目标数据库23.2.3 服务器进程与通道P45023.2.4 RMAN存储仓库(repository)23.2.5 恢复目录(Recovery Catalog)23.2.6 介质管理器(Media Management Library)23.2.7 辅助数据库(Auxiliary Database)23.2.8 闪回恢复区(Flash Recovery Area)23.3 配置RMAN23.3.1 环境变量与实例参数SQL> alter session set NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';日期/时间格式不仅对于RMAN输出的显示十分重要,而且也作为格式掩码用于某些操作(例如还原与回复操作)的日期/时间参数。另一个非常重要的参数是NLS_LANG。这个变量能够向RMAN通知数据库字符集。如果数据库被加载或打开,那么就不存在任何问题,RMAN能够通过读取控制文件发现所使用的数据库字符集。但是,如果数据库只处于nomount模式中,那么RMAN会认定数据库使用默认的US7ASCII,而这可能是错误的。为了避免可能出现的问题,就需要在启动RMAN之前设置To avoid possible problems, set the variablebefore launching RMAN. For example,$ export NLS_LANG=american_america.we8iso8859p15on Unix, orC:> set NLS_LANG=american_america.we8iso8859p15on Windows.ok,需要再找一些资料扩充一下本实验23.3.2 连接数据库C:\Documents and Settings\Owner>rman target /恢复管理器: 版本10.1.0.2.0 - ProductionCopyright (c) 1995, 2004, Oracle. All rights reserved.连接到目标数据库: OCP10G (DBID=3542321520)RMAN>一个更加详细的例子:C:\> rman target sys/oracle@ocp10g catalog rman/rman@catdb23.3.3 配置RMAN的永久设置注意:SHOW命令被格式化为一个脚本。我们可以复制粘贴、编辑和执行这些行。23.3.4 通道分配23.3.5 RMAN备份的内容控制文件的备份:INCLUDE CURRENT CONTROLFILECONFIGURE CONTROLFILE AUTOBACKUP ON控制文件的还原:RESTORE CONTROLFILE FROM AUTOBACKUP23.3.6 配置备份的保留保留策略存在两种选项:冗余级别、恢复窗口。默认为冗余级别CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default23.3.7 重写默认配置第24章 使用RMAN备份数据库In this chapter you will learn how to• Use the RMAN BACKUP command to create backup sets and image copies• Enable block change tracking• Manage the backups and image copies taken with RMAN with the LIST and REPORT commands24-1 创建备份集--备份单个表空间的脚本run{backup as backupsettag 'lvhj_rman_tablespace'format 'd:\backup\lvhj_%d_%t_%r_%s_%u.dbf'tablespace eygle;}--全备份脚本_plus_archivelogrun{backup full tag 'lvhj_plus_archivelog' databaseinclude current controlfile format 'd:\backup\lvhjfull_%d_%t_%r_%s'plus archivelog format 'd:\backup\lvhjarch_%d_%t_%r_%s' delete all input;}--RMAN可以使用下列几种方式备份控制文件:1、backup current controlfile format 'd:\backup\control_111.ctl';backup as backupset current controlfile format 'd:\backup\control_222.ctl';2、backup as copy current controlfile format 'd:\backup\control01.ctl';3、backup tablespace system include current controlfile;4、configure controlfile autobackup on;--增量备份首先执行0级备份:RMAN> configure channel 1 device type disk format 'd:\backup\bk_incremental_%u';RMAN> backup incremental level=0 database plus archivelog delete input;然后修改数据,进行一些变动再来执行1级备份:RMAN> backup incremental level=1 database plus archivelog delete input; 24-2管理与监视RMAN备份(list、report与delete命令)list:list backup;list copy;list backup of database;list backup of datafile1;list backup of tablespace eygle;list backup of archivelog all;在上面的示例中,最后都可以添加关键字VERBOSE(这是默认应用的关键字)或SUMMARY。为了修改LIST命令输出中日期与时间格式,需要在启动RMAN可执行程序之前,设置环境变量NLS_DATA_FORMAT。$ export NLS_DATE_FORMAT='dd-mm-yy hh24:mi:ss'C:\> set NLS_DATE_FORMAT='dd-mm-yy hh24:mi:ss'report与delete:report schema;report need backup;组合命令:第一条命令能够应用已配置的保留策略并列出不再需要的所有备份集与映像副本;第二条命令则可以删除认为不再需要的备份。report obsolete;delete obsolete;report obsolete redundancy 2;delete bosolete redundancy 2;delete命令可以通过数字或标记来删除单独的备份delete backupset 5;第25章 诊断Oracle数据库的问题In this chapter you will learn how to• Use the alert log and database trace files for diagnostic purposes• View alerts using Enterprise Manager• Adjust thresholds for tracked metrics• Control the size and location of trace files25.1 告警日志告警日志的位置由实例参数BACKGROUND_DUMP_DEST确定;告警日志的名称为alert_<SID>.log,其中SID是实例的名称。告警日志中的报告消息包含了下列内容: All startup and shutdown commands, with the time and mode of the operation. The startup times will include the timings of the transitions from NOMOUNT to MOUNT to OPEN, which are of vital importance for assessing whether the mean-time-to-recover figure matches standards agreed with the users. All operations involving physical structures: ALTER DATABASE commands such as creating, dropping, and renaming datafiles and redo logs. Resize operations on datafiles and taking datafiles on and offline are also recorded. Tablespace operations, such as DROP and CREATE. Also putting tablespaces into and out of hot backup mode for user-managed backups. All log switches and archives, including the names of the affected files. The nondefault initialization parameters used to start the instance. Also any subsequent ALTER SYSTEM commands that change parameters.因此,告警日志包含了影响数据库和实例的各种操作的连续历史记录以及告警与错误。25.2 后台跟踪文件(Background Trace Files)Oracle实例的后台进程会在遇到问题时将跟踪文件写至BACKGROUND_DUMP_DEST参数所指定的目录。与告警日志不同的是,跟踪文件始终意味着错误(通常是重要的错误)。25.3 服务器生成的告警25.3.1 告警的类型告警具有两种形式:阈值告警和非阈值告警。阈值告警(threshold)是指经过一段时间积累而导致的情景(例如表空间告警)。因为这些告警会一直持续直至被清除,所以也被称为有状态(stateful)告警。非阈值(nonthreshold)告警会通知所发生的不可预期时间(例如快照过旧)。出现这种错误时,错误需要被立即解决,同时告警也将成为历史。因为这些告警不会持续(一旦出现就会消失),所以也被称为无状态(stateless)告警。V$ALERT_TYPE视图列出了能够配置的告警的指标。SQL> select distinct(internal_metric_category) from v$alert_types; INTERNAL_METRIC_CATEGORY---------------------------------Database_Resource_UsageRecovery_AreaSnap_Shot_Too_OldSuspended_SessionUserBlockconfigurationfileinstance_efficiencyinstance_throughputproblemTbsprac_global_cacheservicesga_pool_wastagesystem_response_time_per_callwait_bottleneckswait_sess_cls17 rows selected25.3.2 告警系统的体系结构服务器告警系统非常有效的原因在于——服务器告警系统使用了内存中能够直接访问的统计量,而不需要向查询视图一样将信息通过某个V$视图转移至会话。告警写入任何订阅客户都能够读取的队列,并且这些客户能够基于所读取的告警执行适当的动作。因此,服务器能够在内部自动地监视自身。最后需要指出的一点是,如果队列存在问题,那么告警系统仍然能够运行,此时消息会被写入告警日志。只有在这个时候,告警日志和服务器告警系统才会发生联系。也就是说,告警日志和服务器告警系统完全分离。25.3.3 查看告警信息查看告警信息,可以通过两个视图:dba_outstanding_alerts 和dba_alert_history。25.3.4 建立通知规则25.3.5 编辑阈值DBMS_SERVER_ALERT能够提供接口,这个程序包所包含的SET_THRESHOLD过程能够为发出警告告警(warning alert)和临界告警(critical alert)设置标准(set the criteria)。25.4 用户跟踪文件(User Trace Files)后台跟踪文件时发生问题时自动生成的。用户跟踪文件只能在需要跟踪会话实际操作的时候根据要求生成。通常,用户跟踪文件用来调整应用程序。有两个级别的跟踪:实例级别的SQL跟踪、会话级别的SQL跟踪。通过Database Control启用跟踪更为容易。第26章 恢复非关键的损失In this chapter you will learn how to• Recover temporary tablespaces• Recover a redo log group member• Recover index tablespaces• Recover read-only tablespaces• Re-create the password file在Oralce中,某些文件受损不必使用还原与恢复例程,并且不会导致实例终止。这样的损失被认为是“非关键的” ,非关键的文件不必还原,而是可以被替换。关键文件是组成SYSTEM表空间以及当前活动的撤销表空间。26-1 恢复受损的临时表空间我们不需要备份临时表空间,事实上RMAN从不会备份临时表空间。处理临时数据时不会生成撤销或重做。查看临时表空间的及其临时文件的大小select * from dba_temp_files查看用户的临时表空间select username,temporary_tablespace from dba_users虽然无法备份临时文件,但是可以重建临时文件。方法一:1、在受损的临时表空间内添加另一个临时文件。alter tablespace temp add tempfile'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\TEMP02.DBF' size 1024m;2、将受损的临时文件脱机。alter database tempfile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\TEMP01.DBF' offline;3、删除受损的临时文件。alter database tempfile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\TEMP01.DBF' drop;方法二:1、创建一个新的临时表空间。create temporary tablespace temp_new tempfile'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\TEMP03.DBF' size 1024m;2、通过ALTER DATABASE命令将用户切换到这个新的临时表空间。alter database default temporary tablespace temp_new;3、删除受损的临时表空间。drop tablespace temp including contents and datafiles;26-2 恢复受损的联机重做日志查询联机重做日志文件组(针对文件组)select * from v$log;查询联机重做日志文件(针对每个成员)select * from v$logfile order by group#因为无法备份联机重做日志文件,所以一旦某个成员受损,这个成员(也就是联机重做日志文件)就无法被还原,但是却能够使用其他成员进行替换。方法一:如果只有文件受损而磁盘未受损,使用clear logfile命令删除已有的日志文件,并创建新的日志文件。alter database clear logfile group 1;方法二:如果磁盘受损,那么由于oralce无法再原有位置创建文件,因此clear logfile命令将会失败。在这种情况下,需要先使用DROP命令清除原始的成员,如果该成员依然存在,则进行物理删除,然后使用ADD命令在不同的磁盘位置添加一个替换的成员。alter database drop logfile member 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO01.LOG';在操作系统下,如果该成员依然存在,则进行物理删除:del D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO01.LOGalter database add logfile member 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\NEWDIR\REDO01.LOG' to group 1;26-3 恢复受损的索引表空间如果某个索引不可用,那么几乎所有的DML操作都会锁定相应的表:也就是说,无法执行任何插入或者删除的操作,并且影响被索引的列的更新操作会失败。虽然如此,但是在某些情况下重建索引比还原与恢复包含这些索引的表空间更为快捷。此时,索引可以视为“不重要的” 数据,并且不必包含在备份与恢复例程中。尽管索引被视为不重要的数据,但是专门为索引段创建一个或多个表空间却是至关重要的。总之,这种做法通常被认为是一种良好的习惯。可以用下面的语句检查索引数据是不是索引表空间内的唯一数据(假定索引表空间名为INDX):select owner,segment_name,segment_type,tablespace_name from dba_segmentswhere tablespace_name='INDX' and segment_type<>'INDEX';索引表空间数据文件受损会在告警日志和后台跟踪文件显示消息以及在动态性能视图中插入条目。select name,status from v$datafile;select * from v$recover_file实验:创建一个索引表空间:create tablespace indx datafile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\indx01.DBF' size 10m;新建一个表,并且创建索引:create table indtest (c1 number);create index ind1 on indtest(c1) tablespace indx;仿真索引数据文件受损:alter database datafile'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\indx01.DBF' offline drop;如果索引不可用,那么针对此表的DML操作无法执行:insert into indtest values(1);这时会报错ORA-00376和ORA-01110。删除新建的索引表空间:drop tablespace indx including contents and datafiles;重建索引表空间和索引:create tablespace indx datafile 'D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\indx01.DBF' size 10m;create index ind1 on indtest(c1) tablespace indx;删除新建的表空间和表:drop tablespace indx including contents and datafiles;drop table indtest;26-4 恢复受损的只读表空间当将某个表空间设置为只读时(ALTER TABLESPACE tablespace_name READ ONLY),数据文件会执行检查点进程(所有的脏缓冲区都被写至磁盘),当前的系统改变号(SCN)会被标注,同时存储了SCN的数据文件头部被冻结。某个文件可用的一个前提是:这个文件应当与数据库的其余部分同步,也就是说数据文件头部的SCN是最新的。只读表空间不适用于上述规则。即使SCN是过时的,Oracle仍然能够打开只读表空间数据文件。但是,我们无法对这种文件进行写操作。为什么可以从只读表空间内清除对象?这是因为drop命令只是更新数据字典,但是不更新对象本身。注意:在将某个只读表空间的状态从只读变化为读/写时,必须立即生成这个表空间的新备份。26-5 恢复受损的口令文件搜一下“重建口令文件”的命令。第27章 数据库的不完全恢复In this chapter you will learn how to• Recover the controlfile• Explain reasons for incomplete recovery• Perform incomplete recovery using Enterprise Manager• Perform incomplete recovery using RMAN• Perform incomplete recovery using SQL• Perform database recovery following a RESETLOGS operation27.1 完全恢复完全恢复具有下列4个步骤:1、 使受损的数据文件脱机。2、 还原受损的数据文件。3、 恢复受损的数据文件。4、 使已恢复的数据文件联机。--完全恢复run{startup mount;restore database;recover database;alter database open;}--完全恢复(针对单个表空间)run{sql "alter tablespace eygle offline immediate";restore tablespace eygle example;recover tablespace eygle example delete archivelog;sql "alter tablespace eygle online";}--备份单个表空间的脚本run{backup as backupsettag 'lvhj_rman_tablespace'format 'd:\backup\lvhj_%d_%t_%r_%s_%u.dbf'tablespace eygle;}--全备份脚本_plus_archivelogrun{backup full tag 'lvhj_plus_archivelog' databaseinclude current controlfile format 'd:\backup\lvhjfull_%d_%t_%r_%s'plus archivelog format 'd:\backup\lvhjarch_%d_%t_%r_%s' delete all input;}27.2 需要进行不完全恢复的场合通常,下列两种原因会导致执行不完全恢复: 无法进行完全恢复 有意丢失某些数据(用户误操作导致了错误的数据)。27.3 不完全恢复的方法不完全恢复具有下列4个步骤:1、 加载数据库。2、 还原所有数据文件,同时可以选择还原控制文件。3、 将数据库恢复至某个时间点、序列或系统改变号SCN。4、 使用RESETLOGS打开数据库。5、 完整备份数据库不完全恢复的最优方法:P526在开始不完全恢复之前,要执行的操作时关闭数据库并进行完整备份。 … 一旦认定需要进行不完全恢复时就立即关闭数据库是至关重要的。附对应的英文:As with complete recovery, the best practice is indeed to practice. The procedure iscompletely reliable, but the slightest mistake may be disastrous. It is vital to followall the steps with great care. When doing an incomplete recovery, you do not wantto have any doubts about the procedure to be followed; it is frequently said thatmost problems with incomplete recovery are caused by the DBA making a mistake.Before starting an incomplete recovery, if at all possible perform a whole closedbackup of the database. This means that whatever happens during the restore andrecover operation, you will be no worse off than before and can try again. At the veryleast, back up all the archive logs. The backup should be closed in order to preventany users doing any work, because such work will be lost after the incomplete recovery.For this reason, it is vital to close the database as soon as you decide that an incompleterecovery is needed.After a successful incomplete recovery, carry out another whole backup. Withrelease 10g of the database, this is not strictly speaking necessary (it was essentialwith earlier releases) but is still good policy.Check that the incomplete recovery really was successful. For example, it may bethat the user says the error occurred at 10:00, and so you recover until 09:59. But thenyou find that the user’s watch is not synchronized with the server’s clock, and that infact as far as the database is concerned the error occurred at 09:58, and your recoveryhas repeated it. Check that the operation was successful before allowing users toconnect, perhaps by opening the database with STARTUP RESTRICT. You do notwant them to lose more work, if you have to repeat the exercise.Remove any archive logs from the previous incarnation of the database (youshould have backed them up already) to prevent any possibility of mixing up logsfrom before and after the recovery.27.4 使用用户托管的备份进行不完全恢复略27.5 使用RMAN的不完全恢复--不完全恢复run{shutdown immediate;startup mount;sql "alter session set NLS_DATE_FORMAT=''dd-mm-yy hh24:mi:ss''";set until time '29-12-09 17:17:55';restore database;recover database;alter database open resetlogs;}27.6 控制文件的恢复需要强调的一点是:我们极少进行控制文件的恢复。控制文件受到(或者应当受到)不同设备上不同复用副本的保护。丢失控制文件的所有副本几乎是不可能的。但是,如果当前的控制文件的所有副本已经丢失,那么我们可以从备份中还原控制文件,也可以重新创建控制文件。即使控制文件未被损坏、但是需要还原控制文件的一种特殊情况是:需要将数据库恢复至数据库的物理结构与当前结构不同的时间点(也就是表空间被删除的情况)。RMAN可以使用下列几种方式备份控制文件:1、backup current controlfile format 'd:\backup\control_111.ctl';backup as backupset current controlfile format 'd:\backup\control_222.ctl';2、backup as copy current controlfile format 'd:\backup\control01.ctl';3、backup tablespace system include current controlfile;4、configure controlfile autobackup on;RMAN> restore controlfile from autobackup; 未上机27.7 使用RESETLOGS操作进行恢复使用10g版本之前的Oracle数据库时,不完全恢复需要执行第(5)个步骤:完整备份。原因略:P538。使用10g版本时,我们可以使用在不完全恢复之前生成的备份。对于当前场景来说,来自前一个场景的备份与重做都是有效的。不过,最好的策略仍然是在不完全恢复后立即生成一个完整备份。对于使用RESETLOGS命令进行恢复的操作来说,至关重要的一点是:为归档日志生成名称时,应当使Oracle能够区分不同场景产生的日志。这些名称由实例参数LOG_ARCHIVE_FORMAT控制。下面给出了一个合理的设置:alter system set log_archive_format='arch_%d_%t_%r_%s.log';各变量的意义如下:• %d The DBID, in hexadecimal• %t The thread number (always 1, unless it is a clustered database)• %r The incarnation number• %s The log switch sequence number查看每个归档日志所属的特定场景,通过V$ARCHIVED_LOG视图。select name,resetlogs_id from v$archived_log;第28章 使用Oracle Flashback DatabaseIn this chapter you will learn how to• Determine which flashback technology to use for each recovery situation• Configure and use Flashback Database• Monitor the Flashback Database• Use the Enterprise Manager Recovery Wizard to flash back a database• Manage (or maintain) the llash recovery area本章讨论了Flashback Database,这是一种功能强大但是十分极端的功能,其作用等价于不完全恢复。Flashback Database是Oracle10g的新增功能。在启用Flashback Database功能之后,数据库会定期将发生变化数据块的前镜像写入闪回日志的日志文件中,在进行数据库闪回时,这些数据块可是被直接复制回来以满足数据库的恢复需求,同时Redo Log可以被应用用于辅助数据库恢复到更精确的时间点,从而极大缩短了数据库的恢复时间。注意:Flashback Database不能保证成功,只是有可能实现闪回。28.1 不同的闪回方法可用的闪回方法共有3种,每种方法都是使用一种不同的底层体系结构实现的。这几种不同的闪回方法具有不同的性能与局限性。读者需要理解修正不同错误类型所适用的闪回方法类型,这是至关重要的问题。1、 Flashback Database数据库级闪回2、 Flashback Query(Versions、Transactioin、Table)3、 Flashback Drop28.2 Flashback Database的体系结构Flashback Database是Oracle10g的新增功能。在启用Flashback Database功能之后,数据库会定期将发生变化数据块的前镜像写入闪回日志的日志文件中,在进行数据库闪回时,这些数据块可是被直接复制回来以满足数据库的恢复需求,同时Redo Log可以被应用用于辅助数据库恢复到更精确的时间点,从而极大缩短了数据库的恢复时间。(摘自盖国强P348)与重做日志不同的是,闪回日志不是变化的日志,而是将要发生变化的数据块的前镜像的日志。Unlike the redo log, flashback logging is not a log of changes; it is a log of complete block images.Flashback Database要求数据库位于archivelog模式中,并且还需要使用ALTER DATABASE OPEN RESETLOGS命令创建数据库的一个新场景28.3 配置Flashback Database闪回数据库特性默认是关闭的。SQL> select flashback_on from v$database;FLASHBACK_ON------------NO1、确保数据库位于archivelog模式中select log_mode from v$database;2、建立一个闪回恢复区SQL> show parameter recoveryNAME TYPE VALUE------------------------------------ ----------- db_recovery_file_dest string …\flash_recovery_areadb_recovery_file_dest_size big integer 2G3、为闪回保留目标设置生存期SQL> show parameter flashbackNAME TYPE VALUE------------------------------------ ----------- db_flashback_retention_target integer 14404、 干净的关闭和加载数据库5、 启用闪回数据库特性SQL> alter database flashback on;6、 打开数据库。28.4 监视Flashback Databaseselect RETENTION_TARGET,ESTIMATED_FLASHBACK_SIZE,FLASHBACK_SIZE from v$flashback_database_log;select OLDEST_FLASHBACK_SCN,OLDEST_FLASHBACK_TIME,from v$flashback_database_log;select END_TIME,FLASHBACK_DATA,DB_DATA,REDO_DATA,ESTIMATED_FLASHBACK_SIZE from v$flashback_database_stat;select * from v$sgastat where name='flashback generation buff';28.5 使用Flashback DatabaseSQL*Plus、RMAN、Database Control都是与Flashback Database的接口。不管选择哪一种工具,Flashback Database的使用方法都是相同的:1、 关闭数据库2、 加载数据库3、 闪回至某个时间点、SCN或者日志切换序列号。4、 使用RESETLOGS命令打开数据库。一、 使用SQL*Plus进行闪回flashback database to timestamp to_timestamp('2009-12-01 10:00:00','yyyy-mm-dd hh24:mi:ss');过程略P554(注意书中使用了折半查找法?需要查一下术语)二、 使用RMAN进行闪回RMAN>flashback database to time = to_date('2009-12-01 10:00:00','yyyy-mm-dd hh24:mi:ss');RMAN> flashback database to scn = 2728665;RMAN> flashback database to sequence = 2123 thread = 1;28.6 管理闪回恢复区略P557第29章 恢复用户错误In this chapter you will learn how to• Recover a dropped table using Flashback technology• Manage the recycle bin• Perform a Flashback Table operation• Recover from user errors using Flashback Versions Query• Perform transaction-level recovery using Flashback Transaction Query上一章讨论了Flashback Database,这是一种功能强大但是十分极端的功能,其作用等价于不完全恢复。本章将介绍Oracle 10g数据库中可用的其他闪回方法,这些闪回方法不像Flashback Database一样极端,并且不会导致停机或丢失数据。29.1 Flashback drop有时候删除一个表极为容易。我们有可能删除一个存在输入错误的表,而且还可能在连接至错误模式或登录错误实例时误删表。通过在SQL*Plus提示符下进行如下设置,我们可以减少错误删除的可能性。SQL> set sqlprompt "_user'@'_connect_identifier> "SYS@OCP10G> conn eygle/eygle已连接。EYGLE@OCP10G>在ORACLE_HOME/sqlplus/admin目录内的glogin.sql文件中植入前面给出的命令,就可以为所有的SQL*Plus会话自动设置SQL提示符。Flashback Drop允许将先前删除的表(而不是被截断TRUNCATE的表)正确的恢复至其被删除前的状态,同时还会恢复所有索引以及触发器和授权。此外,唯一约束、主键约束与非空约束也将被恢复,但是,外键约束无法被恢复。在较早版本的Oracle数据库中,删除某个表的同时也会从数据字典中删除对这个表的所有引用。在10g版本的Oracle数据库中,DROP TABLE的命令实现已经完全变化;指定的表不再被删除,而是被重命名RENAME;注意:Flashback Drop不能保证成功,只是有可能实现闪回。在删除之后越早执行Flashback Drop,成功的希望就越大。注意:在SYSTEM表空间中存储的表无法启用Flashback Drop,这些表会被立即彻底地删除。例子:作为用户SYSTME连接至数据库Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 Connected as system创建一个用于本练习的用户SQL> create user dropper identified by dropper;User createdSQL> grant connect, resource to dropper;Grant succeededSQL> connect dropper/dropper;Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 Connected as dropperSQL> create table names (name varchar2(10));Table createdSQL> create index name_idx on names(name);Index createdSQL> alter table names add (constraint name_u unique (name));Table alteredSQL> insert into names values ('John');1 row insertedSQL> commit;Commit complete确认制定模式中的内容;select * from user_objects;select * from user_constraints;SQL> drop table names;Table droppedSQL> flashback table names to before drop;Done重新确认制定模式中的内容;可以看到索引与约束仍然保留它们的回收站名。SQL> alter index "BIN$fIGjXvMsRnO99AXaVpbnPQ==$0" rename to name_idx_new;Index alteredSQL> alter table names rename constraint "BIN$IcPnIdMMQXKinh0/9Tem6w==$0" to name_u_new;Table altered作为用户SYSTME重新连接至数据库,然后删除DROPPER模式。SQL> conn system/oracle;Connected to Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 Connected as systemSQL> drop user dropper cascade;User dropped查询dba_recyclebin视图,确认DROPPER的所有对象都被真正的删除。SQL> select * from dba_recyclebin where owner = 'DROPPER';29.2 管理回收站使用PURGE 命令可以永久的删除对象.这个命令具有多种形式。drop table table_name purge;purge table table_name;purge index index_name;purge tablespace tablespace_name;29.3 Flashback Querycreate table emp(empno VARCHAR2(10) not null primary key, name varchar2(10), deptno VARCHAR2(10));create table dept(deptno VARCHAR2(10) not null primary key, name varchar2(10));alter table emp add constraint emp_f foreign key (deptno) references dept(deptno);insert into dept values(50,'support'); insert into emp values(8000,'Watson',50); commit;select sysdate from dual;SYSDATE2010-1-11 10:09:03or:select dbms_flashback.get_system_change_number from dual;--9750309delete from emp where empno=8000;delete from dept where deptno=50;commit;select * from dept;select * from emp;SQL> flashback table emp to timestamp to_timestamp('2010-01-11 10:09:03',2 'yyyy-mm-dd hh24:mi:ss');flashback table emp to timestamp to_timestamp('2010-01-11 10:09:03','yyyy-mm-dd hh24:mi:ss')ORA-08189: 因为未启用行移动功能, 不能闪回表因为没有启用行移动(row movement)特性,所以操作失败。alter table dept enable row movement;alter table emp enable row movement;SQL> flashback table emp to timestamp to_timestamp('2010-01-11 10:09:03',2 'yyyy-mm-dd hh24:mi:ss');flashback table emp to timestamp to_timestamp('2010-01-11 10:09:03','yyyy-mm-dd hh24:mi:ss')ORA-02091: 事务处理已回退ORA-02291: 违反完整约束条件 (EYGLE.EMP_F) - 未找到父项关键字因为违反完整约束条件,所以操作失败SQL> flashback table emp,dept to timestamp to_timestamp('2010-01-11 10:09:03',2 'yyyy-mm-dd hh24:mi:ss');Doneor:SQL> flashback table emp,dept to scn 9750309;Doneselect * from dept;select * from emp;表闪回可能因为下列原因失败:P577。29.4 Flashback Version Queryupdate emp set name='aaa' where empno=8000;commit;update emp set name='bbb' where empno=8000;commit;update emp set name='ccc' where empno=8000;commit;delete emp where empno=8000select * from emp;select empno,name,versions_xid,versions_startscn,versions_endscn,versions_operation from emp versions between scn minvalue and maxvalue where empno=8000;-----------EMPNO NAME VERSIONS_XID VERSIONS_STARTSCN VERSIONS_ENDSCN VERSIONS_OPERATION1 8000 ccc 060022004C1E0000 9766349 D2 8000 ccc 060005004C1E0000 9763458 9766349 U3 8000 bbb 06000B004C1E0000 9763455 9763458 U4 8000 aaa 03001800161A0000 9763452 9763455 U5 8000 xxx 06000A004C1E0000 9763441 9763452 I6 8000 ccc 06002B004B1E0000 9757709 D7 8000 ccc 060029004B1E0000 9757689 9757709 U8 8000 bbb 060022004B1E0000 9757686 9757689 U9 8000 aaa 06001F004B1E0000 9757683 9757686 U10 8000 eygle 9757683 29.5 Flashback Transaction QuerySQL> desc flashback_transaction_queryName Type Comments ---------------- -------------- ----------------------------------------- XID RAW(8) Transaction identifier START_SCN NUMBER Transaction start SCN START_TIMESTAMP DATE Transaction start timestamp COMMIT_SCN NUMBER Transaction commit SCN COMMIT_TIMESTAMP DATE Transaction commit timestamp LOGON_USER VARCHAR2(30) Logon user for transaction UNDO_CHANGE# NUMBER 1-based undo change number OPERATION VARCHAR2(32) forward operation for this undo TABLE_NAME VARCHAR2(256) table name to which this undo applies TABLE_OWNER VARCHAR2(32) owner of table to which this undo applies ROW_ID VARCHAR2(19) rowid to which this undo applies UNDO_SQL VARCHAR2(4000) SQL corresponding to this undo 查询视图flashback_transaction_query需要具有 SELECT ANY TRANSACTION权限,默认这种权限被授予给SYS和DBA角色。SQL> select operation,undo_sql from flashback_transaction_query2 where xid='060022004C1E0000';OPERATION UNDO_SQL-------------------------------- DELETE insert into "EYGLE"."EMP"("EMPNO","NAME","DEPTNO") values ('8000','ccc','50');BEGIN 通过UNDO语句,就可以撤销该事物。第30章 检测与恢复数据库的讹误第31章 用于调整Oracle 10g的工具第32章 监视与管理存储结构第33章 使用ASM管理存储结构第34章 监视与管理内存第35章 管理数据库资源第36章 自动化管理任务
  •     现在10g OCP考试以R2为基准,本书以R1作基准内容铺得比较多,但深入不太够前半部还有些原则性错误题目有些翻译得不好,理解挺麻烦

精彩短评 (总计101条)

  •     能容全面,适合备考OCP,但是能容不算很详细,还需参考其它资料,如官方文档
  •     买来看看也不错的。
  •     即使不是考ocp的dba,也可以把这本书当教科书系统的学习一遍。
  •     很有帮助,不过太厚了点...
  •     适合有一定ORACLE基础的,毕竟是OCP考试内容
  •     不错的一本书,10gOCP必备
  •     翻译过来的,有些地方拗口,可以用来和E文的对照看,便于理解。E文有基础的还是看原版比较好。
  •     比较基础的书,说的全面
  •     内容很丰富!!好书
  •     很不错。喜欢。
  •     书很不错,不过纸张有些质量不高。内容和适合我,继续学习。。。。。。
  •     刚开始对我来说这本有点难,有点深,知识点有杂,同事叫我先看有关OCA的,可是网上OCA的书比较少,我买了这个系列中SQL开发指南先看把,这本以后再看呵呵~
  •     比较系统讲解,真的不错!价格虽高,但质量有的!
  •     这本书部分的理论讲的很详细,同时有练习,还有实现的详细的操作步骤,对快速掌握oracle的初步知识有很多帮助
  •     此书的确是一本好书,正在阅读中。
  •     书的质量不错,只能说:好好学习,天天向上。
  •     原版内容结构体系已经很棒了。中文版就是有翻译错误买中文版的目的就是想快速读完,英文版回头还是要在花些时间读一遍。
  •     最近准备考个OCP 10G
    果然是备考利器,官方PPT 只讲基本,不扩展,教师版的PPT也不全,看看题库就知道了,很多考点PPT根本没提。
    还是这本好,涉及部分考点。 讲得很透彻。 翻译的还可以接受,即使翻译的不准确也能猜出来。 中英对照,利于考试啊。

    总之 10g 备考利器。
  •     老感觉这是一本学习的好书却实践性不是太强建议刚开始学习oracle的朋友可以拿它作为一个指南如果是要练手的话那就免了或者是你已经研究了一段时间拿这本书解答一些你的疑问也是个不错的选择
  •     老师介绍的,说的还可以,当然有些地方翻译得……不太好,嘿嘿
  •     翻译有点不到位,内容还是ok的
  •     是一本挺好的ocp参考书
  •     作为OCP考试的参考教程
  •     朋友推荐的,既是教科书,又是工具书,确实适合拥有。从上海到北京,周日似乎快递休息,所以晚了一天收到。书还不错,右上角稍有折角,其它还好!不过没有光盘,似乎此书应该附光盘。
  •     1)可能的话,建议再降价一点,因为书店才买7.5折;2)可能的话,时间稍微快点,此次用了4天整;
  •     13号下午定的书今天上午到了,还一直送到实验室,开心!
  •     书的纸张质量很精良,内容很精要,非常适合初学者或者有一定ORACLE学习经历的人。
  •     找台机器装吧,慢慢练习。
  •     买了一本,就是对翻译不放心,一直对着英文原版的电子书看。总是觉得还是原汁原味的好,建议有英语基础且不是时间很紧的同仁,买本英文原著看看。祝大家都能顺利通过OCP考试!
  •     官方教材就是讲的详细一点
  •     很基础的讲解。从安装每一个步骤讲起。非常适合对Oracle不是很熟悉的用户
  •     值得信赖,以后有机会继续合作!
  •     很好,质量不错,内容合适
  •     是我现在需要的
  •     内容全面,写的也比较浅显,但不适合考证复习。
  •     书很好,要细细读。
  •     内容很详细清晰
  •     书还不错,真正看
  •     书籍涉及的内容比较广,可以作为复习用,这方面挺实用的,不过习题即使看了,再看英文版,感觉作业不是很大,可能英文水平不是很高
  •     教科书,Oracledba必读!
  •     说了4-5天到货,果然是第5天到的,能再快点就好了!
  •     挺好的,而且发货挺快的
  •     书可以的,很适合oracle数据库的管理
  •     有些内容比较基础,还行,不过不如英文版的地道;
  •     正在学习中,对于有点基础的来说,还是相当可以的
  •     老公比较喜欢
  •     这本书的印刷质量没我想象中的好,而且内容确实一般
  •     外观合格,内容不便评价(偶只是个初学者)。满足我的学习需求。
  •     非常好的。收益!
  •     印刷不错,内容正在学习中,据说不错。拭目以待。。。
  •     这本书确实还不错,我正在看,讲的很细致,挺有帮助的。
  •     看着不错就买啦看看书怎么样以后再说吧
  •     很针对考试不错
  •     翻译一般,对想考证,而E文不太好的同学有点帮助
  •     知识点讲解的很详细。
  •     对考OCP认证有帮助
  •     好书,烂翻译
  •     不错,很适合考ocp的人去买下
  •     适合考OCP的多个层面的读者,很实用
  •     内容简单,易理解
  •     纸也白,还没怎么看,很厚一本,据说现在oca要考2门了,郁闷ing。知道这本书翻译的有些问题,所以下了英文的pdf对照看
  •     书不错,就是有点厚,呵呵!
  •     我觉得还不错,就是太重不便于携带……
  •     不是期望的那样好,虽然不是很详细.但也很全面.有下定的阅读价值.
  •     没想象中那么好吧,应该是翻译的不好,好多地方总感觉翻译的不太到位,学起来有点困难
  •     拿来复习的话,这本书事本不错的工具书。很多有关DBA的注意事项和异常处理
  •     用来考试用,是本超级好书用来学习用,是本一般般的书....
  •     这书还不错,只是想要最新的11G
  •     很详细的一本书,有些东西在生产环境中会用不到,但是原理要懂的
  •     速度和质量都还行最好折扣再高点
  •     看了一半决定再从头看看,很适合全面了解Oracle,但还需要配套一本深入数据库体系结构的书
  •     很适合入门的朋友看,配合英文的PDF,学习还是很顺畅的,特别是实验安排的比较好。
  •     学oracle的第三本书,很不错,看完以后,考OCP就没有问题了。
  •     可以慢慢品了,有意义的
  •     到手4天不到,内容还没有仔细看,刚看完一章多一点,书就脱叶了,623-634整6张纸居然就掉下来了。
  •     适合作为入门学习的指导书。从最基础的Oracle组件,到深入的内存架构,和SQL的基本语法,以及RMAN备份恢复,都有很详细的讲解。缺乏实践案例,只能作为入门。
  •     还不错正在学习中
  •     快+好
  •     考试全靠它,很好
  •     刚拿到书,希望有所帮助吧...看看先,过些日子再评价!
  •     挺好的一本书,当当的服务也挺好,到货很快
  •     学习数据库的必备。学习中。关键还是要练习
  •     很不错的指导书对于认证很有帮助
  •     一本不错的书,就是送到时间稍微长了点
  •     有些语句翻译还是有点问题啊. 不过这样的情况很少.

    书很厚需要长时间的阅读, 再加上长时间的手动练习.
  •     还好,内容不错,不过还没有看多少呢
  •     讲的挺好的,介绍加习题,不错。
  •     很不错滴,我在书店看到就想买了,还是到当当来买,优惠啊,而且快递时间比网站上说的短好多。
  •     能看懂,就是忒厚了。
  •     如果我的英文足够好,那看这本的原版,收获会更大,考试会更犀利。这本书配合题库看,相得益彰
  •     倒是不错,可是就是中文的,可是考试时英文的,建议中英文对照。
  •     相对于11g 1Z0-051、052、53的翻译,这本算好了。书的质量也不错,OCA、OCP考试的必备用书。
  •     打开我的oracle之门,不错。
  •     同学推荐的,考试用,还没看完,听人讲可能有些翻译的不算到位吧
  •     对于参加考试来讲,是非常好的自学书籍,内容围绕考试,讲解详细,每一章的练习也都不错。
    很好,非常值得推荐
  •     应该还不错,正在阅读中.
  •     非常不错,值!
  •     其实我在书店也看到了这本书,而且认真挑过很多ocp相关的书.不过觉得这本还比较合适.主要是比较详细,而且对于ocp10g来说,很难找到一本比它更系统的书了.书中有两大部分,基础篇和高级篇.对应oca和ocp部分.就是有点厚,不过可以多看几遍.看到后面就不用那么仔细看了,就当小说或工具书翻吧~`
  •     书的包装,配送,价格都不错!内容与想象的一样。
  •     有手感,是一本实用的书,
  •     官方的,不错
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024