oracle体系结构及dba管理(编辑修改稿)内容摘要:
制的重做日志文件被叫做归档日志文件。 分布式恢复 RECO 负责解决分布事物中的故障。 Oracle 可以连接远程的多个数据库,当由于网络问题,有些事物处于悬而未决的状态。 RECO 进程试图建立与远程服务器的通信,当故障消除后,RECO 进程自动解决所有悬而未决的会话。 第 10 页 共 22 页 服务进程 Server Process 服务进程的分类 专用服务进程 (Dedicated Server Process) 一个服务进程对应一个用户进程 共享服务 进程 (MultiTreaded Server Process) 一个服务进程对应多个用户进程,轮流为用户进程服务。 用户进程 User Process 在客户端,将用户的 SQL 语句传递给服务进程 一个贯穿数据库全局的概念 系统改变号 SCN(System Change Number) 系统改变号,一个由系统内部维护的序列号。 当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。 a. 查询语句不会使 SCN 增加,就算是同时发生的更新,数据库内部对应的 SCN 也是不同 的。 这样一来就保证了数据恢复时候的顺序。 b. 维持数据的一致性,当一个查询执行的时候,他会先从系统中得到一个当前的 SCN号,在他查找数据的同时,他会检查每个数据行和他对应的 SCN号,只有那些不比他的 SCN号大的行才能从对应用户数据文件的缓冲区内取出,而那些大于他 SCN 号的行,就应该从回滚段数据文件的缓冲中取出。 举一个实例来分析:一个查询返回以下 5 行 ID Name 1 ShangHai 2 Beijing 3 Gugangzhou 4 ShenZhen 5 HangZhou 用户 A 从 12:00 开始运行,到 12:05 结束在 12:01 用户 B 执行了一条 Update 语句,更新了 ID 是 2 的那条记录把 Beijing 该成了 ,这时候用户 A 的那个查询是不会出现 Tianjing的记录。 12:00 查询时候的 SCN 是 N 然后用户 B的更新使得系统的 SCN 变成 N+1 当用户 A查询到 ID=2的记录的时候发现他的 SCN 已经 大于查询开始时候的 SCN,他就会在回滚段数据缓冲中找到 SCN=N 的那条记录,并把它返回。 在 9i中可以使用 SQLselect from dual。 但 Oracle并不支持在 8i 中得到 SCN的方法,但我们可以采用以下方法: create global temporary table t ( x number )。 create or replace function get_s return number 第 11 页 共 22 页 as pragma autonomous_transaction。 l_s number。 begin insert into t values ( userenv(39。 mits39。 ) ) returning x into l_s。 mit。 return l_s。 end。 / select get_s from dual。 第三章 . ORACLE 数据库( Database) 物理结构 —— 物理操作系统文件的集合 . 控制文件 ( Control files) 参数文件 记录了控制文件的位置 控制文件包括如下主要信息 数据库的名字,检查点信息,数据库创建的时间戳 所有的数据文件,联机日志文件,归档日志文件信息 备份信息等 有了这些信息, Oracle 就知道那些文件是数据文件,现在的重做日志文件是哪些,这些都是系统启动和运行的基本条件,所以他是 Oracle 运行的根本。 如果没有控制文件系统是不可能启动的。 控制文件是非常重要的,一般采用多个镜相复制来保护控制文件,或采用RAID 来保护控制文件。 控制文件的丢失,将使数据库的恢复变的很复 杂。 控制文件信息可以从 v$controlfile 中查询获得 SQL select * from v$controlfile。 STATUS NAME C:\ORACLE\ORADATA\ORCL\ C:\ORACLE\ORADATA\ORCL\ C:\ORACLE\ORADATA\ORCL\ 数据文件( Data files) 数据文件的详细信息记载在控制文件中。 注意: SYSTEM 表空间是不允许脱机的。 在进行数据库恢复时,很多时候需要先将故障数据文件脱机。 可以通过如下方式查看数据文件: SQL select name,status,enabled from v$datafile。 第 12 页 共 22 页 NAME STATUS ENABLED C:\ORACLE\ORADATA\ORCL\ SYSTEM READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE C:\ORACLE\ORADATA\ORCL\ ONLINE READ WRITE 重做日志文件( Redo files) 用户对数据库进行的任何操作都会记录在重做日志文件。 在了解重做日志之前必须了解重做日志的两个概念,重做日志组和重做日志组成员 (Member),一个数据库中至少要有两个日志组文件,一组写完后再写另一组,即轮流写。 每个日志组中至少有一个日志成员,一个日志组中的多个日志成 员是镜相关系,有利于日志文件的保护,因为日志文件的损坏,特别是当前联机日志的损坏,对数据库的影响是巨大的。 联机日志组的交换过程叫做切换,需要特别注意的是,日志切换在一个优化效果不好的数据库中会引起临时的“挂起”。 挂起大致有两种情况: 在归档情况下,需要归档的日志来不及归档,而联机日志又需要被重新利用 检查点事件还没有完成(日志切换引起检查点),而联机日志需要被重新利用 解决这种问题的常用手段是: 通过 v$log可以查看日志组, v$logfile 可以查看具体的 成员文件。 SQL select group,thread,bytes,archived,status from v$log。 GROUP THREAD BYTES ARCHIVED STATUS 1 1 1048576 YES INACTIVE 2 1 1048576 YES INACTIVE 3 1 1048576 NO CURRENT 归档日志文件( Archived files) Oracle 可以运行在两种模式之中,归档模式和不归档模式。 如果不用归档模式,当然,你就不会有归档日志,但是,你的系统将不会是一个实用系统, Oracle 不能保证数据能够被正确恢复,因为你可能会丢失数据。 但 是在归档模式中,为了保存用户的所有修改,在重做日志文件切换后和被覆盖之间系统将他们另外保存成一组连续的文件系列,该文件系列就是归档日志文件。 有人或许会说,归档日志文件占领我大量的硬盘空间,其实,具体想一想,你是愿意浪费一点磁盘空间来保护你的数据,还是愿意丢失你的数据呢。 显而义见,我们需要保证我们第 13 页 共 22 页 的数据的安全性。 其实,归档并不是一直占领你的磁盘空间,你可以把她备份到磁带上,或则删除上一次完整备份前的所有日志文件。 初始化参数文件( Parameter f。oracle体系结构及dba管理(编辑修改稿)
相关推荐
V Router Age Seq Checksum 12 0x80000001 0x0075C0 12 0x80000004 0x00CD22 12 0x80000004 0x004E9 此时已经没有 Type5 AS External Link States 的 LSA 了。 2. Totally Stub Area 对于本实验的 Area1 来说,其实域间路由 OIA 也是不需要的。
我和 oracle 的stream, quest 的 shareplex,以及非用于容灾方式的 data guard 等对比过,大家互有长短。 关键就是,采用基于这种精确分析的复制方式,如何保证数据是完全准确的: ,检查数据是否一致,有类似于 select minus select 的方式,但是对于超过 100M 的表,除非你有足够的耐心,我经常见到表最大是 92G,没有分区,很变态。
l drop table table_name cascade constraints sql drop tablespace tablespace_name including contents cascade constraints 3. define constraints while create a table sql create table xay(id number(7)
= xsi:noNamespaceSchemaLocation= card ID=119AB name Ryan /name /card /Card b) ?xml version= encoding=gb2312? Card xmlns:xsi= xsi:noNamespaceSchemaLocation= card ID=dddAZ name Ryan /name /card /Card
,想明白其中的道理) 跨版本使用 Exp/Imp Exp/Imp 很多时候,可以跨版本使用,如在版本 7与版本 8 之间导出导入数据,但这样做必须选择正确的版本,规则为: 总 是使用 IMP 的版本匹配数据库的版本,如果要导入到 816,则使用 816的导入工具。 总是使用 EXP 的版本匹配两个数据库中低的那个版本,如在 815 与 816 之间互导,则使用 815 的EXP 工具。 OS
(目录 ) (组选择) 3./opt/oracle/product/ (安装路径) edition (安装企业版) (这个时候不建库,因为安装完毕还需要打补丁) 15.安装完 oracle 以后执行以下补丁包 把所有补丁 copy到目录 /gfj 下 ( 1)安装 opatch工具,最新的版本是 su – oracle $ cd /gfj $ unzip ( 2)安装补丁 su – oracle