热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle的文件系统

Oracle的文件系统Oracle的文件结构图如下:Oracle的文件系统主要分成以下的四大块:1>控制文件(.CTL)2>数据文件(.DBF)3>日志文件(.LOG)4>其他文件www.2cto.com前...SyntaxHighli
Oracle的文件系统
 
Oracle的文件结构图如下:
 
 
Oracle的文件系统主要分成以下的四大块:
 
  1>   控制文件(.CTL)
 
  2>   数据文件(.DBF)
 
  3>   日志文件(.LOG)
 
  4>   其他文件  www.2cto.com  
 
  前三种文件系是Oracle文件系统的主要组成部分,一般在以下路径可以找到:
 
  $ORACLE_HOME$\oradata\orcl
 
    .CTL文件为控制文件
 
    .DBF 文件为数据文件
 
    .LOG 文件为日志文件
 
  除了前三种文件还有一种参数文件,参数文件不是数据库系统中的有效组成部分,在启动数据库时,参数文件不直接参与工作,只是控制文件是由参数文件寻找的。参数文件位置:
 
  $ORACLE_HOME$\admin\orcl\pfile
 
1.1   数据文件
 
  真正存储数据库中的数据,包括表,索引,试图等
 
  通常情况下数据文件的后缀名都是.DBF,但这只是约定俗成的一种做法,实际上数据库并不要求数据文件以.DBF为后缀,只是便于区分,建议建立数据文件的时候都加上。
 
  查看所有数据文件的文件号、状态和文件名
 
    SQL> select  *  from v$datafile;
 
1.2   日志文件  www.2cto.com  
 
  分三大类:
 
    alert log files        --警报日志
 
    trace log files       --跟踪日志 (用户和进程)
 
    redo log file         --重做日志(记录数据库的更改)。
 
1.2.1       重做日志文件
 
  重做日志的简单原理:在数据更新操作commit前,将更改的SQL脚本写入重做日志。主要用于数据库的增量备份和增量恢复。重做日志直接对应于硬盘的重做日志文件(有在线和归档二种),重做日志文件以组(Group)的形式组织,一个重做日志组包含一个或者多个日志文件
 
  重做日志分为
 
    在线重做日志      -- online Redo log files
    归档重做日志      -- archive Redo log files
 
1.2.1   在线重做日志(online Redo log files)
 
   又称联机重做日志,指Oracle以SQL脚本的形式实时记录数据库的数据更新,换句话说,实时保存已执行的SQL脚本到在线日志文件中(按特定的格式)。
  www.2cto.com  
   在线重做日志的原理:
 
      对于在线重做日志,Oracle 11g默认对于每个数据库实例,建立3个在线日志组,每组一个日志文件,文件名称为REDO01.LOG,REDO02.LOG和REDO03.LOG。(用户可以通过视图操作添加/修改/删除日志组和日志文件来自定义在线重做日志)每组内的日志文件的内容完全相同,且保存在不同的位置,用于磁盘日志镜像,以做多次备份提高安全性。默认情况这3组通常只有一组处于活动状态,不断地同步写入已操作的脚本,当日志文件写满时(达到指定的空间配额),如果当前数据库处于归档模式,则将在线日志归档到硬盘,成为归档日志;若当前数据库处于非归档模式,则不进行归档操作,而当前在线日志的内容会被下一次重新写入覆盖而无法保存。因此,通常数据库在运行时,是处于归档模式下的,以保存数据更新的日志。

当前归档日志组写满后,Oracle会切换到下一日志组,继续写入,就这样循环切换;当处于归档模式下,切换至原已写满的日志组,若该日志组归档完毕则覆盖写入,若没有则只能使用日志缓冲区,等待归档完毕之后才能覆盖写入。当然,处于非归档模式下是直接覆盖写入的。(关于数据库归档模式的设置,我会在另外的博文中讲到)。Oracle提供了2个视图用于维护在线重做日志:V$LOG 和  V$LOGFILE,我们可以通过这两个视图查看和修改在线日志。当然,还可以通过ALTER DATABASE ADD 、delete等命令增加/修改/删除在线日志或日志组.
 
1.2.2  Archive Redo log files--归档重做日志
 
  简称归档日志,指当条件满足时,Oracle将在线重做日志以文件形式保存到硬盘(持久化)。
 
  其实,所谓的归档,就是指将在线日志进行归档、持久化到成固定的文件到硬盘,便于以后的恢复和查询。
 
  当然,前提条件是数据库要处于归档模式。Oracle 11g 默认是为归档日志设定2个归档位置,这2个归档位置的的归档日志的内容完全一致,但文件名不同。
 
1.2.3  常见的日志文件操作  www.2cto.com  
 
  查询系统使用的是哪一组日志文件:
 
     select * from v$log;
 
  查询正在使用的组所对应的日志文件:
 
     select * from v$logfile;
 
  强制日志切换:
 
     alter system switch logfile;
 
  查询历史日志:
 
     select * from v$log_history;
 
  查询日志的归档模式:
 
     select dbid,name,created,log_mode from v$database;
 
  查询归档日志的信息:
 
     select recid,stamp,thread#,sequence#,name from v$archived_log;
 
  增加与删除日志文件组
 
     alter database add logfile group 1 ('c:\log1a.log'), size 100M;
 
     alter database drop logfile group 1;
 
  增加与删除日志成员  www.2cto.com  
 
     alter database add logfile member 'log1a.log' to group 1;
 
     alter database drop logfile member ' c:\log1a.log' ;
 
  日志文件移动
 
     alter database rename file 'C:\log1a.log' to 'C:\ log1b.log';
 
     注意:执行该命令之前必须保证该日志文件物理上已经移动到新目录
 
  清除日志文件
 
     alter database clear logfile C:\log1a.log';
 
     注意:该命令用于不能用删除组及组成员命令删除日志时使用
 
1.3       控制文件
 
     控制文件是定义当前数据库物理状态的二进制文件,每个oracle数据库至少有一个控制文件。控制文件由DBA管理维护  www.2cto.com  
 
1.3.1   其特性为
 
  1)控制文件若丢失需要恢复
 
  2)在MOUNT状态可以读取
 
  3)数据库运行期间控制文件不断地被更新
 
  4)每个控制文件都只关联一个数据库
 
  5)应该被多元化
 
  6)维护数据库实体
 
  7)由CREATE DATABASE语句初始化大小
 
1.3.2  控制文件包含主要内容
 
  1)数据库名及数据库唯一标识
 
  2)数据文件和日志文件标识
 
  3)数据库恢复所需的同步信息,即检查点号
 
  4)数据库创建时间
 
  5)表空间名
 
  6)当前重做日志文件SCN
 
  7)回滚段的开始和结束
 
  8)重做日志归档信息
 
  9)备份信息
 
1.3.1  控制文件的常用操作
 
  对oracle控制文件的管理主要包括:
 
    1> 控制文件的备份  www.2cto.com  
 
    2> 控制文件的移动
 
    3> 控制文件的重建
 
    4> 控制文件的修改(重命名数据库)
 
1.3.1.1    备份控制文件
 
  有三种方法:
 
    创建备份控制文件                    alter database backup controlfile to 'C:\controlfile01.ctl';
 
    通过创建跟踪文件来创建           alter database backup controlfile to trace;
 
    rman配置自动备份控制文件       configure controlfile autobackup on;
 
1.3.2.2  移动控制文件
 
  确定移动的位置;
 
  启动数据库实例,startup mount或startup;
 
  若用的是PFILE则修改控制文件的路径;若用的是SPFILE
 
  则:alter system set control_files='PATH1,PATH2,PATH3' scope=spfile;
 
  关闭数据库 shutdown immediate;
 
  物理移动控制文件到新的位置;
 
  重启数据库 startup.
 
1.2.2.3  重建控制文件  www.2cto.com  
 
  存在以下存在几种情况
 
  1)控制文件部分丢失
 
       shutdown abort;
 
       cp -p 未丢失的控制文件 已丢失的控制文件
 
       startup nomount;
 
       alter database mount;
 
       alter database open;
 
  2)控制文件丢失
 
     若rman中存在备份,可以通过rman进行恢复控制文件
 
    startup nomount;
 
    restore controlfile from autobackup;
 
     若rman中没有备份,通过数据库备份控制文件来重建控制文件
 
    shutdown immediate;
 
    cp
 
    alter database mount;
 
    alter database open using backup controlfile;
 
  3)通过跟踪文件重建  www.2cto.com  
 
       alter database backup controlfile to trace
 
       编辑此跟踪文件并用SQL执行;
 
  4)手工创建控制文件(需要知道的信息:数据库名称,在每个重做日志给中至少一个成员的位置和名称,所有数据文件的名称和位置)
 
    CREATE CONTROLFILE REUSE DATABASE "PRDB"
 
       NORESETLOGS NOARCHIVELOG
 
       MAXLOGFILES 16
 
       MAXLOGMEMBERS 3
 
       MAXDATAFILES 100
 
       MAXINSTANCES 8
 
       MAXLOGHISTORY 292
 
  LOGFILE
 
     GROUP 1 '/oracle/oradata/prdb/redo01.log' SIZE 50M,
 
     GROUP 2 '/oracle/oradata/prdb/redo02.log' SIZE 50M,
 
     GROUP 3 '/oracle/oradata/prdb/redo03.log' SIZE 50M
 
   DATAFILE
 
     '/oracle/oradata/prdb/system01.dbf',
 
     '/oracle/oradata/prdb/undotbs01.dbf',
 
     '/oracle/oradata/prdb/sysaux01.dbf',
 
     '/oracle/oradata/prdb/users01.dbf';
  www.2cto.com  
1.3.2.4  重命名数据库
 
  alter database backup controlfile to trace;
 
  show parameter user_dump_dest
 
  select name,values from v$parameter
 
  where name='user_dump_dest';
 
  cp ***.trc controlfile.sql
 
  vi controlfile.sql
 
  more controlfile.sql
 
  CREATE CONTROLFILE set DATABASE "PRDB" RESETLOGS FORCE LOGGING ARCHIVELOG
 
  MAXLOGFILES 16
 
  MAXLOGMEMBERS 3
 
  MAXDATAFILES 100
 
  MAXINSTANCES 8
 
  MAXLOGHISTORY 292
 
  LOGFILE
 
  GROUP 1 '/oracle/oradata/prdb/redo01.log' SIZE 50M,
 
  GROUP 2 '/oracle/oradata/prdb/redo02.log' SIZE 50M,
 
  GROUP 3 '/oracle/oradata/prdb/redo03.log' SIZE 50M
 
  DATAFILE
 
  '/oracle/oradata/prdb/system01.dbf',
 
  '/oracle/oradata/prdb/undotbs01.dbf',
 
  '/oracle/oradata/prdb/sysaux01.dbf',
 
  '/oracle/oradata/prdb/users01.dbf'
 
  CHARACTER SET ZHS16GBK;  www.2cto.com  
 
  shutdown immediate;
 
  先对原数据库进行一次全备;
 
  startup nomount;
 
  @controlfile.sql
 
  recover database
 
  alter database open restlogs;
 
  alter database rename global name to newdbname.mydomain.com;
 
  backup database;
 
1.3.2  参数文件
 
  参数文件(10g中的参数文件)
 
  主要用来记录数据库的配置文件,在数据库启动时,Oracle读取参数文件,并根据参数文件中的参数设置来配置数据库。如内存池的分配,允许打开的进程数和会话数等。
 
  两类参数文件:
 
       pfile:文本文件的参数文件,可以使用vi,vim等编辑器修改,文件名通常为init.ora
 
       spfile:二进制的参数文件,不能直接修改,只能存放在Oracle服务器端,可以使用EM或指令来修改
 
  优先级别:  www.2cto.com  
 
       Oracle 启动读取参数文件的顺序,如果个文件都不存在,则Oracle会报错
 
       spfile.ora --> spfile.ora -->init.ora
 
  参数文件的路径:
 
       spfle:$ORACLE_HOME/dbs/spfile$ORACLE_SID.ora
 
       pfile(9i):$ORALCE_HOME/dbs/init$ORALCE_SID.ora          //10g以后一般不用init.ora
 
       pfile(10g):$ORALCE_BASE/admin/$ORACLE_SID/pfile       //仅当数据库初始化时使用  www.2cto.com  
 
           pfile:$ORACLE_HOME/dbs/init.ora                                 //默认
 
1.3.3       密码文件
 
  作用:主要进行DBA权限的身份认证
 
  密码文件的位置
 
      Linux:$ORACLE_HOME/dbs/orapw
 
      Windows::$ORACLE_HOME/database/PW.ora
 
  密码文件查找的顺序
 
  --->orapw--->orapw--->Failure
 
   导致密码文件内容修改的几种方式:
 
      1.使用orapwd建立,修改密码文件,不建议使用
 
      2.使用alter user sys identified by <>
 
    3.使用grant sysdba to <> 或grant sysoper to <> 或revoke sysdba |sysoper from <>
 

推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细分析了Hive在启动过程中遇到的权限拒绝错误,并提供了多种解决方案,包括调整文件权限、用户组设置以及环境变量配置等。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 本文详细介绍了IBM DB2数据库在大型应用系统中的应用,强调其卓越的可扩展性和多环境支持能力。文章深入分析了DB2在数据利用性、完整性、安全性和恢复性方面的优势,并提供了优化建议以提升其在不同规模应用程序中的表现。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • Hadoop入门与核心组件详解
    本文详细介绍了Hadoop的基础知识及其核心组件,包括HDFS、MapReduce和YARN。通过本文,读者可以全面了解Hadoop的生态系统及应用场景。 ... [详细]
  • 深入探讨CPU虚拟化与KVM内存管理
    本文详细介绍了现代服务器架构中的CPU虚拟化技术,包括SMP、NUMA和MPP三种多处理器结构,并深入探讨了KVM的内存虚拟化机制。通过对比不同架构的特点和应用场景,帮助读者理解如何选择最适合的架构以优化性能。 ... [详细]
  • 本文详细探讨了HTML表单中GET和POST请求的区别,包括它们的工作原理、数据传输方式、安全性及适用场景。同时,通过实例展示了如何在Servlet中处理这两种请求。 ... [详细]
  • 磁盘健康检查与维护
    在计算机系统运行过程中,硬件或电源故障可能会导致文件系统出现异常。为确保数据完整性和系统稳定性,定期进行磁盘健康检查至关重要。本文将详细介绍如何使用fsck和badblocks工具来检测和修复文件系统及硬盘扇区的潜在问题。 ... [详细]
author-avatar
mobiledu2502862707
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有