oracle 控制文件的重建

不到最后时刻,如三个控制文件都已损坏,又没有控制文件的备份。还是不要重建控制文件,处理不好就会有数据丢失。

NORESETLOGS

Set #1. NORESETLOGS 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.
-- Additional logs may be required for media recovery of offline
-- Use this only if the current versions of all online logs are
-- available.
-- 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
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
;
-- 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 '/oracle/app/oracle/product/11.2.0/dbs/arch1_1_978829161.dbf';
-- 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;
-- Files in normal offline tablespaces are now named.
ALTER DATABASE RENAME FILE 'MISSING00006'
TO '+DGSYSTEM/kyeupdb/datafile/kye_tbs01.dbf';
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379'
SIZE 1024M REUSE AUTOEXTEND OFF;
-- End of tempfile additions.

操作:

[BEGIN] 2018/6/22 21:28:55
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup nomount;
ORACLE instance started. Total System Global Area 3858223104 bytes
Fixed Size 2259080 bytes
Variable Size 788531064 bytes
Database Buffers 3053453312 bytes
Redo Buffers 13979648 bytes
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
21 ; Control file created. SQL> recover database;
ORA-00283: recovery session canceled due to errors
ORA-00264: no recovery required SQL> alter database open; Database altered. SQL> select * from dba_temp_files; no rows selected ALTER TABLESPACE TEMP ADD TEMPFILE '+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379'
2 SIZE 1024M REUSE AUTOEXTEND OFF; Tablespace altered. SQL> select * from dba_temp_files; FILE_NAME
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
---------- ------------------------------ ---------- ---------- ------- ------------ --- ---------- ---------- ------------ ---------- -----------
+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379
1 TEMP 1073741824 131072 ONLINE 1 NO 0 0 1072693248 130944 [END] 2018/6/22 21:49:09

RESETLOGS

--     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.
-- 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
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
-- STANDBY LOGFILE
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
;
-- 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 '/oracle/app/oracle/product/11.2.0/dbs/arch1_1_978829161.dbf';
-- Recovery is required if any of the datafiles are restored backups,
-- or if the last shutdown was not normal or immediate.
RECOVER DATABASE USING BACKUP CONTROLFILE
-- Database can now be opened zeroing the online logs.
ALTER DATABASE OPEN RESETLOGS;
-- Files in normal offline tablespaces are now named.
ALTER DATABASE RENAME FILE 'MISSING00006'
TO '+DGSYSTEM/kyeupdb/datafile/kye_tbs01.dbf';
-- Commands to add tempfiles to temporary tablespaces.
-- Online tempfiles have complete space information.
-- Other tempfiles may require adjustment.
ALTER TABLESPACE TEMP ADD TEMPFILE '+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379'
SIZE 1024M REUSE AUTOEXTEND OFF;
-- End of tempfile additions.

操作如下:

[BEGIN] 2018/6/22 21:58:29
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options
[oracle@kyeup01 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.4.0 Production on Fri Jun 22 21:58:41 2018 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Automatic Storage Management, OLAP, Data Mining
and Real Application Testing options SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /oracle/app/oracle/product/11.2.0/dbs/arch
Oldest online log sequence 10
Current log sequence 14
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
21 ;
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 75347
Session ID: 386 Serial number: 5 SQL>
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
SIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
21 ;
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 75347
Session ID: 386 Serial number: 5 SQL> startup nomount;
ORACLE instance started. Total System Global Area 3858223104 bytes
Fixed Size 2259080 bytes
Variable Size 788531064 bytes
Database Buffers 3053453312 bytes
Redo Buffers 13979648 bytes
CREATE CONTROLFILE REUSE DATABASE "KYEUPDB" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
0M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
MAXLOGMEMBERS 3
MAXDATAFILES 4096
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 '+DGSYSTEM/kyeupdb/onlinelog/group_1.266.978829167' SIZE 200M BLOCKSIZE 512,
GROUP 2 '+DGSYSTEM/kyeupdb/onlinelog/group_2.267.978829169' SIZE 200M BLOCKSIZE 512,
GROUP 3 '+DGSYSTEM/kyeupdb/onlinelog/group_3.268.978829173' SIZE 200M BLOCKSIZE 512,
GROUP 4 '+DGSYSTEM/kyeupdb/onlinelog/group_4.269.978829183' SIZE 200M BLOCKSIZE 512,
GROUP 5 '+DGSYSTEM/kyeupdb/onlinelog/group_5.270.978829193' SIZE 200M BLOCKSIZE 512
DATAFILE
'+DGSYSTEM/kyeupdb/datafile/system.271.978829205',
'+DGSYSTEM/kyeupdb/datafile/sysaux.272.978829265',
'+DGSYSTEM/kyeupdb/datafile/undotbs1.273.978829323',
'+DGSYSTEM/kyeupdb/datafile/users.275.978829391',
'+DGSYSTEM/kyeupdb/datafile/ts_example.277.978855421',
'+DGSYSTEM/kyeupdb/datafile/kye_tbs02.dbf'
CHARACTER SET ZHS16GBK
21 ; Control file created. SQL> ALTER DATABASE OPEN RESETLOGS; Database altered. ALTER TABLESPACE TEMP ADD TEMPFILE '+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379'
2 SIZE 1024M REUSE AUTOEXTEND OFF; Tablespace altered. SQL> select * from dba_temp_files; FILE_NAME
--------------------------------------------------------------------------------
FILE_ID TABLESPACE_NAME BYTES BLOCKS STATUS
---------- ------------------------------ ---------- ---------- -------
RELATIVE_FNO AUT MAXBYTES MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
+DGSYSTEM/kyeupdb/tempfile/temp.274.978829379
1 TEMP 1073741824 131072 ONLINE
1 NO 0 0 0 1072693248 130944
SQL> archive log list;
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination /oracle/app/oracle/product/11.2.0/dbs/arch
Oldest online log sequence 1
Current log sequence 1
SQL> [END] 2018/6/22 22:10:06

如果使用 resetlogs 打开的数据库,就需要对 DB 做一次备份。

resetlogs 命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始, 每次使用 resetlogs 命令的时候,SCN 不会被重置,不过 oracle 会重置日志序列号, 而且会重置联机重做日志内容.

这样做是为了防止不完全恢复后日志序列会发生冲突(因为现有日志和数据文件间有 了时间差)。

在上面RESETLOGS重建控制文件的时候,归档是关闭的,如果是开启的,在开启RESETLOG之前,需要执行RECOVER DATABASE USING BACKUP CONTROLFILE

oracle 控制文件的重建的更多相关文章

  1. Oracle控制文件多路复用以及Oracle备份重建控制文件

    控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的.如果不正确那么数据库就需要恢复 ...

  2. oracle控制文件丢失恢复

    在学习群里有个同学误删除了控制文件,于是我也把自己数据库的控制文件删除了,看看能不能进行恢复,以下是整个实验的过程~~在做之前,先看看控制文件的备份方式:1.生成可以重建控制文件的脚本.2.备份二进制 ...

  3. Oracle控制文件

    一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...

  4. Oracle 控制文件(CONTROLFILE)

    一.Oracle 控制文件 为二进制文件,初始化大小由CREATE DATABASE指定,可以使用RMAN备份 记录了当前数据库的结构信息,同时也包含数据文件及日志文件的信息以及相关的状态,归档信息等 ...

  5. Oracle 控制文件损坏解决方案

    Oracle 控制文件损坏解决方案 故障一:丢失(损坏)一个控制文件 前台报错:ORA-00205:error in identifying control file,check alert log ...

  6. Oracle控制文件操作

    控制文件是连接instance和 database的纽带.记录了database的结构信息. 控制文件是1个2进制文件.记录的是当前database的状态. 控制文件可以有多个,在参数文件中通过con ...

  7. oracle控制文件问题

    下午时连接数据库突然发现连不上了,监听报错找不到服务,于是登录数据库所在服务器,查看监听状态,oracle:lsnrctl status 监听状态正常,登入数据库查看[oracle@frkdb1 ~] ...

  8. RAC环境下控制文件损坏重建过程

    处理过程参考了: https://blogs.oracle.com/Database4CN/entry/%E5%A6%82%E4%BD%95%E9%87%8D%E5%BB%BArac%E7%9A%84 ...

  9. Oracle控制文件丢失,日志文件丢失

    控制文件丢失: alter database backup controlfile to traces; shutdown immediate; @j:\db\script\orcl_ora_ctl_ ...

随机推荐

  1. mongodb的创建删除数据库

    1.创建数据库 use 命令 MongoDB use DATABASE_NAME 用于创建数据库.该命令将创建一个新的数据库,如果它不存在,否则将返回现有的数据库. 语法: use DATABASE  ...

  2. Appium基础二:Appium的安装(基Windows)

    1.JAVA环境配置: 1.1安装jdk: 1.2配置JAVA_Home.Path配置.java验证 Path: 输入C:\Program Files\Java\jdk1.8.0_121\bin:C: ...

  3. Git入门学习总结

    用了两天时间看完廖雪峰老师的git教程(http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b0 ...

  4. 织梦后台上传mp4视频不显示

    include/dialog/select_media.php ,约185行, 把(rm|rmvb) 改为(rm|mp4|rmvb)

  5. Linux 系统挂载阿里云数据盘

    适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) *  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划 ...

  6. 使用com.sun.imageio.plugins.png.PNGMetadata读取图片的元数据

    所谓图片元数据,就是除了我们肉眼看到的图片内容外,隐藏在这些内容背后的一些技术数据. 本文介绍如何使用Java代码将一张图片的隐藏信息读取出来. 首先不需要下载任何额外的Java库,用JDK自带的库就 ...

  7. Bootstrap历练实例:大小Well

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  8. 01_10_SERVLET如何连接Mysql数据库

    01_10_SERVLET如何连接Mysql数据库 1. 实现类 public void doGet(HttpServletRequest request, HttpServletResponse r ...

  9. POP简单动画简单使用 (入门级别)

    动画可以让APP“更友好”的与用户交互,苹果提供很多的好看的动画供开发者使用,不过简单的平移.旋转.缩放.......使用起来很简单,但是想要进行一些比较复杂的动画效果,使用起来就比较难以实现,俗话说 ...

  10. iOS项目工程及目录结构

    做过一些iOS的项目,不同项目的沉淀没有积累到一起,目录的管理都在后期随着人员的增加越来越混乱,因此在这里做一些梳理,希望达到两个目的. 一套相对通用的目录结构,作为后续项目的模版. 积累相应的基础库 ...