`
阅读更多
一、概述
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,这样恢复起来不是还不知恢复到何时?
闪回恢复文件存在何处?
分享到:
评论

相关推荐

    navicat链接oracle文件,OCI文件 oracle12版本 OCI文件链接oracle12

    Oracle数据库是世界上最流行的数据库管理系统之一,而Navicat是一款强大的数据库管理工具,支持多种数据库类型,包括Oracle。在本文中,我们将深入探讨如何使用Navicat连接到Oracle 12c数据库,以及oci文件在其中的...

    批处理文件彻底卸载Oracle文件

    总的来说,利用批处理文件彻底卸载Oracle是一个高效的方法,它可以自动化处理一系列复杂的卸载步骤,帮助用户避免手动操作时可能出现的遗漏。但这个过程也涉及对系统的重要操作,因此必须谨慎对待,确保每个步骤都...

    批处理文件启动Oracle服务

    批处理文件是包含一系列DOS命令的文本文件,扩展名为.bat或.cmd。这些命令可以包括启动、停止、暂停和继续Oracle服务的操作。 例如,你可以创建一个批处理文件,内容如下: ```cmd @echo off REM 启动Oracle监听器...

    Oracle启动停止服务文件

    批处理文件本质上是一系列命令的集合,当执行bat文件时,这些命令将按顺序运行,执行相应的任务。 这个"启动停止ORACLE服务bat"文件可能包含了以下命令: 1. **设置环境变量**:首先,可能包含了设置Oracle的环境...

    oracle11g 客户端文件包

    它包含了一系列动态链接库(DLLs),这些库文件是运行PL/SQL Developer或者其他Oracle数据库应用程序所必需的。 解压并使用这个客户端文件包的步骤如下: 1. 下载并解压缩文件包到你选择的目录。 2. 设置环境变量...

    oracle相关rpm安装文件汇总

    在Oracle环境中,RPM文件通常包含了Oracle数据库软件的各个组件,使得在Linux系统上部署Oracle变得更加便捷。 "oracle相关rpm安装文件汇总"这个压缩包很可能包含了用于在Linux系统上安装Oracle数据库所需的各种RPM...

    oracleClient安装包exp和imp文件.zip

    Oracle客户端11.2.0.4.0是该系列的一个稳定版本,提供了对Oracle数据库服务器的访问能力,包括数据查询、应用程序开发和数据库管理。这个版本支持多种操作系统,并且包含了oci.dll、tnsnames.ora等关键文件,这些...

    oracle数据库测试sql文件.zip

    在这个压缩包中,"测试sql文件"可能包含了一系列的SQL脚本,这些脚本可能涵盖了以下知识点: 1. **基础查询**:如何使用SELECT语句来查询数据,包括WHERE子句用于过滤结果,GROUP BY和HAVING子句用于数据分组和条件...

    Oracle更改数据文件位置

    本篇文章将详细介绍如何通过一系列步骤安全地将Oracle数据文件从一个位置移动到另一个位置。 #### 一、准备工作 1. **备份数据**:在进行任何更改之前,强烈建议先对数据库进行完整备份。 2. **了解当前的数据文件...

    oracle服务启动终止文件

    批处理文件是一种包含了操作系统命令的文本文件,能够自动执行一系列操作,为用户提供了便利。 标题中的"oracle服务启动终止文件"指的是两个批处理脚本,即"启动oracle服务.bat"和"停止oracle服务.bat"。这些文件是...

    oracle利用批处理文件执行SQL语句,bat连接oracle数据库并执行语句

    Oracle数据库是世界上最流行的数据库管理系统之一,它广泛应用于企业级数据存储和管理。批处理文件(如.bat文件)在Windows环境中是一种高效的方式,可以自动化执行一系列命令,包括连接数据库和执行SQL语句。在这个...

    操作Oracle的DLL文件

    Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,它的强大功能和稳定性使其在企业级应用中占据了重要地位。本文将详细讲解如何通过操作Oracle的DLL文件——System.Data.OracleClient.dll来实现对Oracle...

    EditPlus Oracle 9i语法文件

    它是Oracle数据库系列中的一个重要版本,引入了许多新的特性和改进,包括支持XML、数据仓库优化、互联网应用开发以及增强了的性能和可用性。 在EditPlus中,`9i_r2_sql.stx` 文件是一种自定义语法文件,用于为...

    Oracle存储过程读写文件[文].pdf

    这种功能主要依赖于Oracle提供的UTL_FILE包,这是一个标准的PL/SQL库,提供了一系列函数和过程,支持文件的I/O操作。 首先,要使用UTL_FILE包,需要在Oracle中创建一个目录对象(Directory object),这实际上是一...

    Oracle通过DBF恢复数据

    在日常工作中,Oracle数据库作为企业级数据管理系统之一,经常面临着各种意外情况,如误删除、误操作或系统故障导致的数据丢失。在这种情况下,如何有效地恢复数据成为了一项重要的技能。本文将详细介绍在没有备份的...

    oracle 培训PDF文件

    2. **Oracle数据库文件(Database Files):** - **数据文件(Data Files):** 包含实际的数据和数据字典信息,支持自动扩展。 - **重做日志文件(Redo Log Files):** 记录对数据库的所有更改,用于恢复操作。 ...

    oracle系列培训教程

    3. **Oracle数据库体系结构**(Oracle系列培训教程之四:数据库体系结构.doc):这章节将详细阐述Oracle数据库的物理和逻辑存储结构,如数据文件、控制文件、重做日志文件、表空间、段、区等,以及这些组件如何协同...

    通过.bat文件连接oracle 插入数据库记录

    Oracle是全球知名的关系型数据库管理系统,而批处理脚本则是在Windows操作系统中运行的一系列命令集合,通常用于自动化任务执行。 在Windows环境下,我们可以通过SQL*Plus工具或PL/SQL Developer等第三方软件来编写...

    解决Oracle导出dmp文件空表导不出问题.docx

    ### 解决Oracle导出DMP文件空表导不出问题 #### 背景与问题描述 在使用Oracle数据库的过程中,可能会遇到一个常见的问题:当尝试使用工具如PL/SQL Developer导出包含空表的DMP文件时,这些空表无法被正确地导出。...

    用java文件连接oracle数据库

    Oracle的JDBC驱动是`ojdbc`系列,这里提到的`classes12.jar`文件就是Oracle JDBC驱动的一个版本。在Java代码中,你可以这样导入: ```java import java.sql.Connection; import java.sql.DriverManager; ``` 2....

Global site tag (gtag.js) - Google Analytics