1:重建的控制文件跟原控制文件大小不一样是什么引起的?
   
   原控制文件6.73M,重建后的控制文件才5.95M
2:重建控制文件后,登录OEM会提示无临时表空间(因为重建控制文件时不能把temp01.dbf加上),我就重建了个TEMP02.DBF文件,除了重新这个临时表空间文件,还有其他办法没有?比如在控制文件中加上原有的temp01.dbf?

解决方案 »

  1.   

    1.这应该很正常吧。。具体理由不知道。。呵呵
    2.建控制文件并不会创建临时表空间
    这样一旦数据库运行过程中需要用到临时表空间就会报错,因此,
    你通过alter database backup controlfile to trace的时候,你会发现生成的重建脚本中会自动附加创建临时表空间的语句~~
    你就可以看到创建控制文件的后面就有创建临时表空间的脚本,你只要把那个脚本拷出来,执行下就行了。
    STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  NOARCHIVELOG
        MAXLOGFILES 16
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 8
        MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG'  SIZE 50M,
      GROUP 2 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG'  SIZE 50M,
      GROUP 3 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG'  SIZE 50M
    -- STANDBY LOGFILE
    DATAFILE
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\RMANORCL\RMAN01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\NEWORCL\NEWORCL01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDO001.DBF'
    CHARACTER SET ZHS16GBK
    ;
    -- Configure RMAN configuration record 1
    VARIABLE RECNO NUMBER;
    EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('RETENTION POLICY','TO RECOVERY WINDOW OF 4 DAYS');
    -- Configure RMAN configuration record 2
    VARIABLE RECNO NUMBER;
    EXECUTE :RECNO := SYS.DBMS_BACKUP_RESTORE.SETCONFIG('CONTROLFILE AUTOBACKUP','ON');
    -- Commands to re-create incarnation table
    -- Below log names MUST be changed to existing filenames on
    -- disk. Any one log file from each branch can be used to
    -- re-create incarnation records.
    -- ALTER DATABASE REGISTER LOGFILE 'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_11_23\O1_MF_1_1_%U_.ARC';
    -- ALTER DATABASE REGISTER LOGFILE 'E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2010_11_23\O1_MF_1_1_%U_.ARC';
    -- Recovery is required if any of the datafiles are restored backups,
    -- or if the last shutdown was not normal or immediate.
    RECOVER DATABASE
    -- Database can now be opened normally.
    ALTER DATABASE OPEN;
    -- Commands to add tempfiles to temporary tablespaces.
    -- Online tempfiles have complete space information.
    -- Other tempfiles may require adjustment.
    ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' REUSE;
    -- End of tempfile additions.
    --
    --     Set #2. RESETLOGS case
    --
    -- The following commands will create a new control file and use it
    -- to open the database.
    -- Data used by Recovery Manager will be lost.
    -- The contents of online logs will be lost and all backups will
    -- be invalidated. Use this only if online logs are damaged.
    -- WARNING! The current control file needs to be checked against
    -- the datafiles to insure it contains the correct files. The
    -- commands printed here may be missing log and/or data files.
    -- Another report should be made after the database has been
    -- successfully opened.
    -- After mounting the created controlfile, the following SQL
    -- statement will place the database in the appropriate
    -- protection mode:
    --  ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE
      

  2.   

    我没有执行alter database backup controlfile to trace这个语句只是执行了下面这部分:
    CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG
      MAXLOGFILES 16
      MAXLOGMEMBERS 3
      MAXDATAFILES 100
      MAXINSTANCES 8
      MAXLOGHISTORY 292
    LOGFILE
      GROUP 1 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG' SIZE 50M,
      GROUP 2 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG' SIZE 50M,
      GROUP 3 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG' SIZE 50M
    -- STANDBY LOGFILE
    DATAFILE
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF',
      'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF',
    CHARACTER SET ZHS16GBK
    ;
    这样不影响使用吧?
      

  3.   

    执行完上面红色字体的语句后,再执行ALTER TABLESPACE TEMP ADD TEMPFILE 'E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' REUSE;来把temp01.dbf添加进来是吗?
      

  4.   


    恩你重建控制文件的时候,你最好使用alter database backup controlfile to tracer然后去的trace文件里复制控制文件脚本就行了。相信oracle..呵呵。。
      

  5.   


    trace文件在哪?是要执行了这个语句后才能产生的吗?产生后放在哪个目录下的?
      

  6.   

    SQL> show parameter user_dump_dest;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    user_dump_dest                       string      /home/oracle/diag/rdbms/cbsstandard/cbsstandard/traceSQL> 按照时间下序,取最新的一个。
      

  7.   


    恩,我网上也找到这个查询了再问下,通过alter database backup controlfile to trace后可以提炼出:STARTUP NOMOUNT
    CREATE CONTROLFILE REUSE DATABASE "PRIMARY" NORESETLOGS  ARCHIVELOG
    --  SET STANDBY TO MAXIMIZE PERFORMANCE
        MAXLOGFILES 5
        MAXLOGMEMBERS 3
        MAXDATAFILES 100
        MAXINSTANCES 1
        MAXLOGHISTORY 226
    LOGFILE
      GROUP 1 '/opt/oracle/oradata/primary/redo01.log'  SIZE 10M,
      GROUP 2 '/opt/oracle/oradata/primary/redo02.log'  SIZE 10M,
      GROUP 3 '/opt/oracle/oradata/primary/redo03.log'  SIZE 10M
    -- STANDBY LOGFILE
    DATAFILE
      '/opt/oracle/oradata/primary/system01.dbf',
      '/opt/oracle/oradata/primary/undotbs01.dbf',
      '/opt/oracle/oradata/primary/users01.dbf'
    CHARACTER SET ZHS16GBK
    ;
    RECOVER DATABASE
    ALTER SYSTEM ARCHIVE LOG ALL;
    ALTER DATABASE OPEN;
    ALTER TABLESPACE TEMP ADD TEMPFILE '/opt/oracle/oradata/primary/temp01.dbf'
         SIZE 41943040  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
    其中的RECOVER DATABASE
    ALTER SYSTEM ARCHIVE LOG ALL;
    这2条语句也是必须的吗?我重建控制文件的时候,执行RECOVER DATABASE后,出现一连串的“?????????
    这说明什么问题?这2条语句看情况执行的?
      

  8.   

    找到trace文件后,怎么打开?用写字板打开?拷贝里面的脚本?在dos下是要一行一行输入的,还是有命令可以整个执行?