oracle--ocp 读书笔记

520阅读 0评论2013-02-15 diashad
分类:Oracle



第1章 Oracle的基本概念
  第2章 安装Oralce Database 10g
  2.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*Plus
  4.2 连接iSQL*Plus
  第5章 管理Oracle进程
  5.1 启动SQL*Plus
  5.2 启动iSQL*Plus
  5.3 启动Database Listener
  5.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 Pump
  9.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章 监视Oracle
  15.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 实例恢复与MTTR
  18.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 Manager
  23.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 配置RMAN
  23.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 Database
  28.1 不同的闪回方法
  28.2 Flashback Database的体系结构
  28.3 配置Flashback Database
  28.4 监视Flashback Database
  28.5 使用Flashback Database
  28.6 管理闪回恢复区
  第29章 恢复用户错误
  29.1 Flashback drop
  29.2 管理回收站
  29.3 Flashback Query
  29.4 Flashback Version Query
  29.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 10g
  In 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 variables
  2.1安装Oralce Database 10g
      ok
  
  第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 correct
  order:
  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 and
  SYSAUX tablespaces, and a data dictionary.
  4. Run SQL scripts to generate the data dictionary views and the supplied PL/SQL
  packages.
  5. Run SQL scripts to generate Enterprise Manager Database Control, along with
  any options (such as Java) that the database will require.
  On Windows systems, there is an additional step because Oracle runs as a Windows
  service. Oracle provides a utility, ORADIM.EXE, to assist you in creating this service.
  
  3.2 使用DBCA创建一个数据库
  ok
  3.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 transaction
  4.1调用SQL*Plus
      ok
  4.2 连接iSQL*Plus
      ok
  
  第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 log
  5.1 启动SQL*Plus
      SQL*Plus只是一个向数据库发出特定SQL命令的基本进程,这是一个客户/服务器工具。
  
  C:\>sqlplus /nolog
  
  SQL*Plus: Release 10.1.0.2.0 - Production on 星期一 1月 11 23:23:51 2010
  
  Copyright (c) 1982, 2004, Oracle. All rights reserved.
  
  SQL> conn /as sysdba
  已连接。
  
  5.2 启动iSQL*Plus
      iSQL*Plus是图形形式的SQL*Plus,这种工具作为一种Application Server服务运行。终端用户可以从Web浏览器连接iSQL*Plus。
      使用命令isqlplusctl start,可以启动iSQL*Plus。
  C:\>isqlplusctl start
  iSQL*Plus 10.1.0.2.0
  Copyright (c) 2004 Oracle. All rights reserved.
  Starting iSQL*Plus ...
  iSQL*Plus started.
  
  为了连接iSQL*Plus,需要在浏览器中输入下面的URL:
  
      其中默认端口号是5560。
  
  5.3 启动Database Listener
      这一部分将在第12章详细讨论。
      
      如果没有运行侦听程序Database Listener,那么Database Control就无法连接数据库。
  
  C:\>lsnrctl start
  C:\>lsnrctl stop
  C:\>lsnrctl status
  
  C:\>lsnrctl status
  
  LSNRCTL for 32-bit Windows: Version 10.1.0.2.0 - Production on 12-1月 -2010 00:0
  3:21
  
  Copyright (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 - Produ
  ction
  启动日期 11-1月 -2010 18:34:00
  正常运行时间 0 天 5 小时 29 分 23 秒
  跟踪级别 off
  安全性 ON: Local OS Authentication
  SNMP OFF
  监听程序参数文件 D:\oracle\product\10.1.0\db_1\network\admin\listener.o
  ra
  监听程序日志文件 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 dbconsole
  C:\>emctl stop dbconsole
  C:\>emctl status dbconsole
  
  
  C:\>set oracle_sid=OCP10G
  
  C:\>emctl status dbconsole
  Oracle Enterprise Manager 10g Database Control Release 10.1.0.2.0
  Copyright (c) 1996, 2004 Oracle Corporation. All rights reserved.
  
  Oracle Enterprise Manager 10g is running.
  --------------------------------------------------------------
  Logs are generated in directory D:\oracle\product\10.1.0\db_1/lenovo-fe3b8a55_OC
  P10G/sysman/log
  
      一旦这个进程运行中,就可以使用如下的URL来连接数据库
  
      其中默认的端口是5500。
  5.5 数据库的启动与关闭
  1、使用正确的权限进行连接
      CONNECT的语法为:
  connect user/pass[@db]
  
  connect user/pass[@db] as sysdba
  connect user/pass[@db] as sysoper
  
  connect / as sysdba
  connect / 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_TYPE
  1    CLUSTER
  2    INDEX
  3    INDEX PARTITION
  4    LOB PARTITION
  5    LOBINDEX
  6    LOBSEGMENT
  7    NESTED TABLE
  8    ROLLBACK
  9    TABLE
  10    TABLE PARTITION
  11    TYPE2 UNDO
  
  2.3 区间(EXTENT)
      为表空间内的段分配空间时,每次只能分配一个区间(EXTENT)。
      区间管理可以是本地管理或者字典管理。
  
      2.4 数据库块
      数据库块是数据库最小的I/O单位。数据库需要读取数据时,无法只读取一条记录,而是必须读取整个数据块。写操作也会出现同样的问题:即使数据块中只有一条记录发生变化,DBWn进程都必须在检查点期间写入整个数据块。
      默认的数据块的大小在数据库创建阶段设置,并且无法修改。
  创建表空间时可以设置本表空间数据块的大小,并且无法修改。
  6.2 创建与管理表空间
      ok
      创建表空间的语法:
  CREATE [BIGFILE | SMALLFILE] [TEMPORARY] TABLESPACE tablespace name
  DATAFILE 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_demo
  DATAFILE '$ORACLE_BASE/oradata/default_demo01.dbf' SIZE 10M;
  
  删除表空间:
  DROP TABLESPACE tablespace_name;
  如果下删除的表空间存在某些对象,那么会得到如下所示的错误信息:
  DROP TABLESPACE tablespace_name
  *
  ORA-01549: tablespace not empty, use INCLUDING CONTENTS option
  
  DROP 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 users
  
  7.1 创建与管理数据库用户
      详见我的笔记,作者给出了很好的例子,略
  CREATE USER username
  IDENTIFIED [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 IDENTIFIED BY ;
  
  这个字句已经过于简单,省略了空间分配的字句(请注意作为一个DBA,要尽量避免这样的语句),通常这是不推荐的写法,可是很多客户就是这样创建用户的。
  
  需要理解一下的是,这个语句在不同的Oracle版本中会有不同的结果。
  Oracle 8i:
  Oracle 9i:
  Oracle 10g中:Oracle最终解决了这个问题,这得益于全局缺省表空间的引入。
  
  由于一直以来存在数据空间的分配和使用问题,我们建议在创建用户时就为用户制定缺省的表空间
  完善后的语句为:
  CREATE USER IDENTIFIED BY
  DEFAULT TABLESPACE
  TEMPORARY TABLESPACE ;
  
  删除用户:
  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_privs
  select * 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 objectname
  TO user | role | PUBLIC
  [WITH GRANT OPTION];
  
  REVOKE privilege [,privilege, ...]
  ON objectname
  FROM user | role | PUBLIC
  [CASCADE CONSTRAINTS];
  
  与授予系统权限不同,授予对象权限时必须制定关键字ON,从而能够确定权限应用的对象。
  一般不建议在列的级别上授予对象权限。
  通常,在需要只为表中特定的某些列授予对象权限时,我们建议创建一个只包含这些列的视图,并在这个视图上授予适当的权限。
  
  注意:取消对象权限时级联的,这一点与取消系统权限不同。
  
      确定被授予的对象权限
  ? USER_TAB_PRIVS_MADE Object privileges the user has granted to others
  on his schema objects
  ? USER_TAB_PRIVS_RECD Privileges granted to the user to objects in other
  schemas
  ? ALL_TAB_PRIVS_MADE Object privileges the user has granted to others on
  his and other schema objects
  ? ALL_TAB_PRIVS_RECD Privileges granted to the user to objects in his and
  other schemas
  ? USER_COL_PRIVS_MADE Column privileges granted by the user to tables
  in his schema
  ? USER_COL_PRIVS_RECD Column privileges granted to the user to columns
  in tables in other schemas
  ? ALL_COL_PRIVS_MADE Column privileges granted by the user to tables in
  his and other schemas
  ? ALL_COL_PRIVS_RECD Column privileges granted to the user to columns
  in tables in his and other schemas
  
      3、角色
      角色是保存权限或者其他角色的容器。角色的主要优点是简化了为用户授权的过程。
  
  
      表 Oracle 10g中的预定义角色及其被授予的权限
  
  CREATE ROLE rolename
  [NOT IDENTIFIED | IDENTIFIED
  BY password | EXTERNALLY | GLOBALLY];
  
  1.    创建角色
  CREATE ROLE rolename
  [NOT IDENTIFIED | IDENTIFIED
  BY password | EXTERNALLY | GLOBALLY];
  
      2. 修改角色
  ALTER ROLE rolename
  [NOT IDENTIFIED | IDENTIFIED
  BY 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_name
  TO 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_name
  FROM 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 ;
  grant create table to ;
  这里需要继续授予用户使用其表空间的权限
  alter user quota 10M on ;
  
  Oracle的权限可以分为两种:
  系统权限
  对象权限
  
  查询权限,通过视图dba_sys_privs
  select * from dba_sys_privs --(有488条记录)
  
  进一步,可以查询和TABLE有关的权限
  select distinct privilege from dba_sys_privs
   where privilege like '%TABLE';
  -----------
   PRIVILEGE
  1    ALTER ANY TABLE
  2    BACKUP ANY TABLE
  3    COMMENT ANY TABLE
  4    CREATE ANY TABLE
  5    CREATE TABLE
  6    DELETE ANY TABLE
  7    DROP ANY TABLE
  8    FLASHBACK ANY TABLE
  9    INSERT ANY TABLE
  10    LOCK ANY TABLE
  11    SELECT ANY TABLE
  12    UNDER ANY TABLE
  13    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 sequences
  
  8.1 用户、模式以及模式对象
      用户是存在于数据库内,通过用户名被唯一标识的人。创建一个用户的同时也会创建一个模式。
  模式(schema)由某个用户拥有的对象组成,模式最初为空。
      命名空间(namespace)定义略。
      不同命名空间内的对象能够共享相同的名称。
  8.2 数据类型
      略
  8.3 创建表
      ok
  8.4 创建约束
      ok
  8.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 objects
  
  9.1 事物的隔离性、读一致性以及提交
  略 ACID测试
      ok
  
  In brief, any relational
  database must be able to pass the ACID test.
  A Is for Atomicity
  The principle of atomicity states that all parts。。。
  
  The whole of the SQL language is only a dozen or so commands. The ones we are
  concerned with here are
  ? SELECT
  ? INSERT
  ? UPDATE
  ? DELETE
  ? COMMIT
  ? ROLLBACK
  Remember that from release 9i Oracle has included a very efficient and powerful
  MERGE command, but since the end result of a merge is identical to a combination
  of 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 methods
  
      Oracle 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 the
  commands
  SQL> alter system set local_listener='ocp10g_1522';
  SQL> alter system register;
  
  2. From an operating system prompt, use lsnrctl to check that your instance has
  registered dynamically with your list2 listener.
  C:\> lsnrctl services list2
  
  3. 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_listener
  parameter 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
  ?    监听程序-Listeners
  
  
  
  
  Net Manger(客户端)。
  
  
  概要文件-Profile
  
  
  概要文件-Profile
  
  
  服务命名-Service Naming
  
  服务命名-Service Naming
  
  
  监听程序-Listeners
  
  
  监听程序-Listeners
  
  12.7 高级的连接选项
  略P263
  12.8 测试Oracle Net连接
      1、 SQL*Plus
      2、 通过别名尝试登录
      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 issues
  14.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/utlrp
  
  Windows下的,
  SQL> @?\rdbms\admin\utlrp
  
  14.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# NUMBER
  NAME VARCHAR2(64)
  CLASS NUMBER
  VALUE NUMBER
  STAT_ID NUMBER
  This shows over three hundred statistics that are fundamental to monitoring activity:
  ocp10g> select name, value from v$sysstat;
  NAME VALUE
  ------------------------------ ----------
  logons cumulative 356
  logons current 34
  opened cursors cumulative 154035
  opened cursors current 5490
  user commits 2502
  user rollbacks 205
  user calls 37574
  recursive calls 6446648
  recursive cpu usage 39263
  session logical reads 4613746
  session stored procedure space 0
  
  
  Another critical view is V$SYSTEM_WAIT_CLASS, which summarizes the various
  categories of problems that can cause sessions, or the whole database, to run slowly:
  ocp10g> select wait_class,time_waited from v$system_wait_class
  2 order by time_waited;
  WAIT_CLASS TIME_WAITED
  -------------------- -----------
  Network 32
  Application 44
  Configuration 1545
  Concurrency 4825
  Commit 5212
  Other 10483
  System I/O 41787
  User I/O 102743
  Idle 13087012
  This 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 waiting
  to receive SQL statements from user processes. The worst real problem is disk I/O
  caused by user sessions, followed by disk I/O by the instance itself.
  
  第15章 监视Oracle
  In 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 Advisor
  
  15.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 创建撤销表空间
  ok
  
  16.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 UNDO
  
  NAME TYPE VALUE
  ------------------- ------ --------
  undo_management string AUTO
  undo_retention integer 900
  undo_tablespace string UNDOTBS1
  
  
  
  
  3、调整与监视撤销表空间
      
  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 tenminute
  interval, showing you how much undo was generated, in blocks; how
  long the longest query was, in seconds; and whether there were any “snapshot
  too old” errors, or errors from transactions running out of undo space.
  
  5. Calculate the minimum necessary size in bytes for your undo tablespace that
  will 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 10g
  
  17.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 recoverability
  
  18.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 remain
  open if there is a surviving member. This contrasts with the controlfile, where damage
  to any copy will crash the database immediately. Similarly, groups can be added or
  removed 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 valid
  member.
      
  
      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 nomount
  ORACLE 例程已经启动。
  
  Total System Global Area 121634816 bytes
  Fixed Size 787748 bytes
  Variable Size 95419100 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 262144 bytes
  
  
  
  SQL> 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 nomount
  ORACLE 例程已经启动。
  
  Total System Global Area 121634816 bytes
  Fixed Size 787748 bytes
  Variable Size 95419100 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 262144 bytes
  SQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\C
  ONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL";
  alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTRO
  L01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL"
   *
  第 1 行出现错误:
  ORA-02095: ????????????
  
  
  SQL> startup mount
  ORA-01081: ????????? ORACLE - ??????
  SQL> alter database open;
  alter database open
  *
  第 1 行出现错误:
  ORA-01507: ??????
  
  
  SQL> startup mount
  ORA-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 backups
  
  19.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_archivelog
  run{
  backup full tag 'lvhj_plus_archivelog' database
  include 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 destination
  directory.
  5. Identify the newest file in the directory. For example, on Windows use
  dir /od
  or on Unix,
  ls -ltr
  The 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. The
  critical section is the CREATE CONTROLFILE command, which will resemble
  this:
  CREATE CONTROLFILE REUSE DATABASE "OCP10G" NORESETLOGS ARCHIVELOG
  MAXLOGFILES 16
  MAXLOGMEMBERS 3
  MAXDATAFILES 100
  MAXINSTANCES 8
  MAXLOGHISTORY 454
  LOGFILE
  GROUP 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 Database
  15
  PART I
  'C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO03.LOG',
  'C:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\REDO03B.LOG'
  ) SIZE 10M
  -- STANDBY LOGFILE
  DATAFILE
  '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 datafile
  
  20.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.
  书P392
  
  
  20.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 nomount
  ORACLE 例程已经启动。
  
  Total System Global Area 121634816 bytes
  Fixed Size 787748 bytes
  Variable Size 95419100 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 262144 bytes
  
  
  
  SQL> 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 nomount
  ORACLE 例程已经启动。
  
  Total System Global Area 121634816 bytes
  Fixed Size 787748 bytes
  Variable Size 95419100 bytes
  Database Buffers 25165824 bytes
  Redo Buffers 262144 bytes
  SQL> alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\C
  ONTROL01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL";
  alter system set control_files ="D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTRO
  L01.CTL, D:\ORACLE\PRODUCT\10.1.0\ORADATA\OCP10G\CONTROL02.CTL"
   *
  第 1 行出现错误:
  ORA-02095: ????????????
  
  
  SQL> startup mount
  ORA-01081: ????????? ORACLE - ??????
  SQL> alter database open;
  alter database open
  *
  第 1 行出现错误:
  ORA-01507: ??????
  
  
  SQL> startup mount
  ORA-01081: ????????? ORACLE - ??????
  SQL>
  
  20.3 恢复受损的复用联机重做日志
  ok
  
  20.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 information






上一篇:没有了
下一篇:没有了