`
阅读更多
一、概述
Oracle文件系统包括实例相关的文件:参数文件、跟踪文件、警告文件;数据库相关的文件:控制文件、数据文件、重做日志文件、临时文件、密码文件、修改跟踪文件、闪回日志文件。另外一些与数据库相关的其他文件转储文件、数据泵文件、平面文件不在此处细说。
二、参数文件(parameter file)
记录控制文件所在位置,存储一些参数,如内存配置相关、恢复相关、数据库名等,包括db_name、sga_aggregate_target、shared_pool_size、java_pool_size、db_block_size等的值,实例启动和运行会用到这些参数。另外还指定了控制文件存储的地方。
10g以前是每个客户端都存储一个initOID.ora的文件,10g后只在服务端存储一份,防止参数文件在客户端泛滥。可以通过命令行把spfile转储成文本的pfile,恢复数据库启动实例时候还是会用到pfile的。可以通过如下命令来根据spfile创建pfile:
SQL> create pfile from spfile;

文件已创建。
生成的文件在%ORACLE_HOME%\dbhome_1\database目录下,如我的是INITorc11gr2.ORA。
可以通过命令修改这些参数:
alter system set parameter = value [comment = 'text'] [deferred] [scope = memory|spfile|both ] 
  parameter = value提供了参数及其相应的值,如sga_target = 800m
comment = 'text' 为参数添加注释,可以说明修改原因,问题是这个注释存储在哪里?
deferred表示不是立即生效,是在下次启动时候才生效。有些参数并不是修改后立即生效的,比如?
scope表示修改参数作用范围,如果是memory表示只在当前实例生效;spfile指写到参数文件,下次生效;both表示当前实例生效并写入参数文件。跟deferred有冲突的?如果是memory并且deferred什么情况?
三、跟踪文件(trace file)
记录数据库对某些时间的响应,记录数据库的调试信息,用于数据库出错诊断。
又分为core、background和user三种类型的跟踪文件,通过sql可以得到三个文件存放的位置:
SQL> show parameter dump_dest;

NAME                                 	TYPE                   VALUE
------------------------------------ ---------------------- ------------------------------
background_dump_dest           string                 d:\oracle\diag\rdbms\orc11gr2\orc11gr2\trace
core_dump_dest                       string                 d:\oracle\diag\rdbms\orc11gr2\orc11gr2\cdump
user_dump_dest                       string                 d:\oracle\diag\rdbms\orc11gr2\orc11gr2\trace
  这个是oracle11g的结果,在oracle10g,目录是有差异的。其中background_dump_dest是共享服务器连接时进程的跟踪文件所在目录,user_dump_dest是专用服务器连接时进程的跟踪文件目录。core_dump_dest是系统出现严重问题时候的诊断信息。
可以通过三种方式启动记录跟踪文件:
1、alter system set sql_trace=true;
2、dbms_monitor
3、通过事件
如何提取跟踪文件信息?如何阅读?
四、警告文件(alert file)
数据库的完整日志信息,包括启动、停止、异常终止等。改动系统参数信息也会记录在警告文件里,在oracle11g是存放在D:\oracle\diag\rdbms\orc11gr2\orc11gr2\alert\log.xml文件里。
五、控制文件(control file)
记录数据文件、重做日志文件和临时文件所在位置。记录检查点信息等。
控制文件是二进制文件,参数文件中有记录控制文件存在何处。
六、数据文件(data file)
存放数据的文件。oracle存储数据的文件可以是多种文件类型:
1、cooked文件系统,数据文件作为操作系统的文件存在,可以在硬盘上看到这类文件,对此文件读写可以利用os的缓存。优缺点?
2、raw文件系统,数据直接存储在原始分区上,从os上看不到这类文件,不能利用os的缓存,但是这种文件系统操作更快?优缺点?
3、自从存储管理?
4、集群文件系统,集群环境下使用的文件系统,控制处理并发访问。
数据的存储,在逻辑上分为是有多层的体系结构的:
a、表空间,表空间包含有一到多个数据文件,表空间创建后可以给用户使用。
b、段segment,每个数据库对象至少属于一个段,如表段、索引段、回滚段、聚集段、lob段。一个对象可能包含多个段。表空间由段组成,一个段可以跨多个数据文件,但是不能跨表空间。
c、区段extent,段由区段组成,区段是逻辑上连续的一块存储空间,物理上可能不连续。段的两个区段也可能不连续。区段不能跨段,不能跨数据文件。
d、数据块db block,区段由数据块组成,数据块大小一般是2m、4m、8m、16m、32m,也可是是非2的幂大小。多种块大小一般在数据交换的环境中。如果一个系统有些数据表列比较多,有些表列比较少,可以通过不同的数据块大小来提高性能么?数据块的逻辑上又可以划分为多个部分:块首部,包含数据块地址、当前事务和上次事务信息等;表目录,块上数据的表信息,一个块上可能存储了多个表的数据,如聚簇表;行目录,块上存储的数据行的信息,此处存储了每一行数据的地址;空闲空间,是未使用的空间;数据部分,存储的是数据。
如何知道表空间、段、区段、块信息?
通过以下sql可以知道用户的表空间和临时表空间信息:
SQL> select username, default_tablespace,temporary_tablespace from dba_users;
  获取表空间信息数据文件信息:
SQL> select f.tablespace_name,trim(f.file_name),s.block_size from dba_tablespaces s left join dba_data_files f on f.tablespace_name = s.tablespace_name;
  获取表空间的段信息:
SQL> select seg.segment_name,seg.segment_type,seg.segment_subtype,
       seg.tablespace_name,ts.extent_management
from dba_segments seg
join dba_tablespaces ts on seg.tablespace_name = ts.tablespace_name
where ts.tablespace_name = 'USERS'
  获取区段信息:
SQL> select seg.segment_name,seg.segment_type,seg.segment_subtype,
       seg.tablespace_name,ts.extent_management,ext.*
from dba_segments seg
join dba_tablespaces ts on seg.tablespace_name = ts.tablespace_name
join dba_extents ext on ext.segment_name = seg.segment_name
where ts.tablespace_name = 'SYSTEM';
  获取块信息如何获取?通过DBA_TABLES.BLOCKS获取分配给表的块,DBA_SEGMENTS.BLOCKS获取分配给段的块数具体信息那里获取呢?
七、临时文件(temporary file)
存放排序、hash数据,以及临时表数据。如果排序或者hash的时候,内存放不下,就会放到临时文件中。临时文件和临时表空间什么关系?如何查看临时文件信息?
八、重做日志文件(redo log file)
事务的日志文件,用来回放事务。有了重做日志,就可以把之前做过的事情再做一遍了,比如delete的重做就是重新delete。重做日志主要有三个作用:
· 数据库服务器掉电后的恢复
· 介质恢复
· standby
· 数据共享,数据同步。Golden Gate就是通过redo log实现数据同步、共享和转移的。
重做日志还分为联机重做日志和归档重做日志。
联机重做日志是指数据库LGWR进程写日志数据时候用的日志文件。分为多个组,每次使用一个组的日志文件,等用完后就下一组,等所有组的日志文件都用完后就重新使用第一组的,循环使用。因为循环使用,所以会把一段时间之前的日志给覆盖掉,如果没有把日志转储到别的地方就覆盖了,等系统崩溃或者介质失败的时候,就可能导致数据丢失。
归档重做日志就是在日志被覆盖之前将其转储到别的地方,这些被转储的日志就叫归档重做日志。
九、密码文件(password file)
远程登录时候的密码验证策略等信息。
十、修改跟踪文件(change trace file)
用作增量备份,记录每次修改的内容。再有修改跟踪文件之前,每次增量备份都要读取所有数据,计算差异,生成增量备份信息。存在何处?
十一、闪回恢复文件
用作闪回数据库,快速的将数据库对象回退到某一时刻。在数据库提供闪回功能之前,数据库或数据库对象要想回退到某一时刻的状态,就必须恢复某段时间以前的数据库,然后通过重做日志文件冲做到需要回退到的时刻。有了闪回功能之后,可以轻松的恢复到某个时刻:
flashback database to scn 1157722;
  最后那个数字是系统修改号,通过dbms_flashback.get_system_change_number获取。
但是开发人员或者dba不可能时时刻刻都记录一个scn,这样恢复起来不是还不知恢复到何时?
闪回恢复文件存在何处?
分享到:
评论

相关推荐

    Oracle数据库客户端instantclient19.16系列文件

    instantclient-basic-windows.x64-19.16.0.0.0dbru.zip instantclient-sqlplus-windows.x64-19.16.0.0.0dbru.zip instantclient-tools-windows.x64-19.16.0.0.0dbru.zip

    Oracle数据库客户端instantclient21.6系列文件

    instantclient-basic-windows.x64-21.6.0.0.0dbru.zip instantclient-sqlplus-windows.x64-21.6.0.0.0dbru.zip instantclient-tools-windows.x64-21.6.0.0.0dbru.zip

    系统集成实施方案系列之 ORACLE 11g_RAC部署方案

    2.1.1 配置主机解析文件 9 2.1.2 检查所需软件包 9 2.1.3 配置系统内核参数 10 2.1.4 设置 Shell对Oracle用户的限制 10 2.1.5 配置hangcheck-timer内核模块 11 2.1.6 配置系统安全设置 12 2.1.7 配置NTP 13 2.1.8 ...

    oracle实验报告

    (6)在一个单独的表上,最多只能创建三个触发器与之关联,一个INSERT触发器,一个DELETE触发器和一个UPDATE触发器。 1. 实例讲解Oracle数据库自带的几个触发器 Oracle数据库自带的几个触发器(最简单触发器格式)...

    Oracle一系列参考资料帮助学习

    较多文件,提供给大家学习..... Oracle 安装前的存储规划, SQL语句基础(80)等

    一步一步在Linux上部署Oracle 10g R2 RAC

    某客户需要将一套Oracle 10gR2 双节点RAC 生产数据库升级至Oracle 11gR2 RAC,所以便有了本系列实战的教程。 为更贴切还原生产过程中的实际操作,本系列教程一个分两大部分: 第一部分:从零开始一步一步搭建一套在...

    ORACLE SQL性能优化系列

    设置缺省的优化器,可以通过对init.ora文件中OPTIMIZER_MODE参数的各种声明,如RULE,COST,CHOOSE,ALL_ROWS,FIRST_ROWS . 你当然也在SQL句级或是会话(session)级对其进行覆盖. 为了使用基于成本的优化器(CBO, Cost-...

    Oracle ERP 用户操作文档

    Oracle ERP 用户操作文档,(深入浅出系列)

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    深入浅出oracle DBA入门 中文版

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、buffer cache与shared pool原理、重做、回滚与撤销、等待事件、性能诊断与sql优化等几大oracle热点主题,本书从基础知识入手...

    Oracle大型数据库系统在AIXUNIX上的实战详解.part1

    文件太大,分两部分上传,此为第一部分 内容简介 《Oracle大型数据库系统在AIX/UNIX上的实战详解》以AIX UNIX平台为主线,以其他UNIX系统为参照,描述了数据库系统Oracle 10g、Oracle 11g的构架方法,说明了该数据库...

    最好最全的Oracle 数据库教程(内含命令使用实例)

    想学Oracle 数据库的朋友不要错过机会 本教程是最全面的Oracle学习教程 内容丰富 清晰易懂 要是看这个教程还学不会的话 我建议你别学Oracle 了!本教程属于珍藏教程系列!

    Navicat连Oracle插件instantclient_18_5.zip

    Navicat连接Oracle异常,需指定oci.dll文件,下载本OCI替换掉原oci.dll文件路径

    toad for oracle 11

    TOAD® 是 Quest Software公司的系列化Oracle开发和管理工具套件,包含集成化的开发、测试、管理与优化功能,可以大大提高数据库开发和管理人员的工作效率。 轻松浏览和管理Oracle数据库 TOAD 的 Schema Browser...

    Oracle Database 11g初学者指南--详细书签版

    在过去的14年中,他与IanAbramson和MichaelCorey为OraclePress合著了一系列图书.Abbey在国际Oracle用户团体非常活跃,经常出席COLLABORATE、OraclecOpenWorld和区域性用户组会议.  Michael J.Corey是Ntirety...

    BLOG_Oracle_lhr_ 等待事件系列(3+4)--System IO(控制文件)+日志类等待.pdf

    BLOG_Oracle_lhr_ 等待事件系列(3+4)--System IO(控制文件)+日志类等待.pdfBLOG_Oracle_lhr_ 等待事件系列(3+4)--System IO(控制文件)+日志类等待.pdf

    循序渐进Oracle 数据库管理、优化与备份恢复.pdf

    详细讨论了Oracle数据库的创建、从OEM到Grid Control、Oracle的字符集、用户的创建与管理、表空间和数据文件、自动存储管理(ASM)、临时表空间和临时文件、备份与恢复、备份方案与特例恢复、Oracle的闪回特性、Oracle...

    Oracle简洁版客户端--Windows32位

    Oracle简洁版客户端压缩包,为instantclient系列包,共有basic和sqlplus两包。仅支持32位的windows操作系统。对应的为Oracle 11g的数据库。文件分别为: instantclient-basic-nt-11.2.0.2.0.zip, instantclient-...

    [深入解析Oracle.DBA入门进阶与诊断案例].盖国强.扫描版.part2

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识...

    Oracle全文检索.rar

    Oracle text 需要为可检索的数据项建立索引,用户才能够通过搜索查找内容,索引进程是根据管道建模的,在这个管道中,数据经过一系列的转换后,将其关键字会添加到索引中。该索引进程分为多个阶段,如下图 ......

Global site tag (gtag.js) - Google Analytics