Oracle的文件系统(二)

2014-11-24 14:18:10 · 作者: · 浏览: 1
  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;
  先对原数据库进