Decode360's Blog

业精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

  BlogJava :: 首页 :: 新随笔 :: 联系 ::  :: 管理 ::
  397 随笔 :: 33 文章 :: 29 评论 :: 0 Trackbacks
Oracle管理文件(一)
 
    Oracle的管理文件说白了就是Oracle自动来进行文件的管理,如此则不再需要认为得进行指定和对OS上的文件系统进行操作,只需要操作Oracle的对象即可。这样的做法可以提供比原始的管理更加有效的操作方式,不好的地方在于和我们以前的思维逻辑不太一致,可能会不太容易接受。先看一下关于Oracle管理文件的介绍。
 
 
一、Oracle管理文件
 
    “Oracle管理文件”可以简化Oralce数据库的管理,不需要DBA直接管理Oracle数据库在操作系统上的文件。根据数据库对象而不是文件名来指定操作。
 
    “Oracle管理文件”可以是:跟踪文件、审计文件、报警文件、核心文件等。
 
    Oracle可以对“表空间”、“联机重做日志”、“控制文件”来创建相应的唯一的Oracle管理文件,并在不需要时删除。
 
 
二、Oracle管理文件的好处
 
    1、使得数据库管理更加方便。
        不需要构造文件名和存储要求,可相应命名,定义存储特征并分配存储池
 
    2、减少由管理员指定错误文件而产生的破坏
        管理文件创造的文件及文件名都是唯一的,不会在不同数据库使用同一文件,一个文件使用不同名称等
 
    3、减少由废弃文件消耗引起的磁盘空间浪费
        Oracle管理的文件不用时会自动删除,并防止了删除文件时可能出现的错误
 
    4、简化测试和开发数据库的创建过程
        决定有关文件结构和名称的时间减少,执行更少的文件管理任务
 
    5、便携式第三方工具的开发更容易展开
        不必将操作系统特定的文件名称放到SQL脚本中
 
 
三、Oracle管理文件的条件
 
    Oracle管理文件可以单独存在,即可以以前的文件都是非Oracle管理,之后创建的为Oracle管理文件
 
    初始化参数:
 
    DB_CREATE_FILE_DEST:定义默认文件系统目录位置。以后创建时将默认创建在此。
        可以在这个目录下创建:数据文件、临时文件、联机重做日志文件、控制文件。
        例: DB_CREATE_FILE_DEST = '/u01/oradata/payroll'
 
    DB_CREATE_ONLINE_LOG_DEST_n:联机重做日志文件和控制文件的默认目录位置。n表示多录备份的不同位置。
        可以在这个目录下创建:联机重做日志文件、控制文件。
        例: DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/payroll'
            DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/payroll'
 
    注意:上面指定的目录必须要事先存在,Oracle不会自己创建。另改参数可以使用ALTER SYSTEM、ALTER SESSION来设置。
          当创建命令中没有指定文件,且上面两个参数有设定的时候,Oracle将会创建Oracle管理文件。
 
 
四、管理文件的创建
 
    1、名称创建规则
 
    数据文件: ora_%t_%u.dbf    /u01/oradata/payroll/ora_tbs1_2ixfh90q.dbf
    临时文件: ora_%t_%u.tmp    /u01/oradata/payroll/ora_temp1_6dygh80r.tmp
    日志文件: ora_%g_%u.log    /u01/oradata/payroll/ora_1_wo94n2xi.log
    控制文件: ora_%u.ctl       /u01/oradata/payroll/ora_cmre7t30p.ctl
 
    注:%t是表空间名称;%u是8位随机字符;%g是联机重做日志文件组号
 
    2、在创建数据库时创建Oracle管理文件
 
    创建数据库时可以包含以下子句来指定创建的文件名和地址:
        CONTROL_FILES、LOGFILE、DATAFILE、UNDO TABLESPACE、TEMPORARY TABLESPACE
 
    * 如果在创建语句中指定了文件名,则不创建Oracle管理文件
    * 在创建过程中未指定文件名,且已经配置了初始化管理文件地址参数,则创建为Oracle管理文件
    * 如果即没有文件名,也没有指定参数,那么有的在默认路径创建,有的报错
 
    举例1:
    DB_CREATE_FILE_DEST = '/u01/oradata/sample'
    DB_CREATE_ONLINE_LOG_DEST_1 = '/u02/oradata/sample'
    DB_CREATE_ONLINE_LOG_DEST_2 = '/u03/oradata/sample'
    CREATE DATABASE sample;
 
    * u01下生成SYSTEM表空间的文件,大小100M,自动扩展,无大小限制
    * u02、u03下生成两个联机日志组,每组两个成员,每个组员100M
    * 自动撤销有效则在u01下生成撤销表空间,大小10M
    * u02、u03下生成两个控制文件,u02为主控制文件
 
 
五、创建Oracle管理文件
 
    1、表空间的数据文件
 
      CREATE TABLESPACE tablespace_name
      CREATE UNDO TABLESPACE tablespace_name
      ALTER TABLESPACE tablespace_name ADD DATAFILE
 
    注1:只要不加文件地址和文件名,其他的命令参数都可以加入,不影响Oracle管理文件的创建
    注2:要注意表空间名不代表数据文件名
 
    2、临时表空间的临时文件
 
      CREATE TEMPORARY TABLESPACE tablespace_name
      ALTER TABLESPACE tablespace_name ADD TEMPFILE
 
    3、控制文件
 
    控制文件的创建地址顺序确定:
 
      ① 看命令中是否直接指定地址
      ② 看启动参数中是否有CONTROL_FILES参数
      ③ 看DB_CREATE_ONLINE_LOG_DEST_n
      ④ DB_CREATE_FILE_DEST
      ⑤ 以上都无时,在默认路径创建
 
    注意RESETLOGS/NORESETLOGS子句的使用,下面是创建实例:
 
    CREATE CONTROLFILE
    DATABASE sample
    LOGFILE GROUP 1 ('/u02/oradata/sample/ora_1_o220rtt9.log',
                     '/u03/oradata/sample/ora_1_vhs82jdm.log',) SIZE 100M,
            GROUP 2 ('/u02/oradata/sample/ora_2_82jd6nd9.log',
                     '/u03/oradata/sample/ora_2_nmisk9wj.log',) SIZE 100M
    NORESETLOGS
    DATAFILE '/u01/oradata/sample/ora_system_xu34ymd7.dbf' SIZE 100M
    MAXLOGFILES 5
    MAXLOGHISTORY 100
    MAXDATAFILES 10
    MAXINSTANCES 2
    ARCHIVELOG;
 
    4、联机重做日志
 
    ALTER DATABASE ADD LOGDILE
    ALTER DATABASE OPEN RESETLOGS
 
 
posted on 2008-11-09 21:39 decode360 阅读(119) 评论(0)  编辑  收藏 所属分类: 08.DBA

只有注册用户登录后才能发表评论。


网站导航: