`
itspace
  • 浏览: 961086 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle 10g数据库闪回之后怎么样noresetlogs打开数据库(一)

 
阅读更多
很多时候数据库resetlogs打开之后会引起诸多不便,比如在Oracle 10g下,闪回数据库之后必须要resetlogs打开,那怎么样才能避免数据库resetlogs打开呢?
以下步骤仅用于测试,在生产环境下慎用。
(1)将数据库启动在mount状态,打开强制模式的闪回点dd,记录控制文件的checkpoint和checkpoint count
SQL> startup mount
ORACLE instance started.

Total System Global Area 1069547520 bytes
Fixed Size                  2101704 bytes
Variable Size             276827704 bytes
Database Buffers          784334848 bytes
Redo Buffers                6283264 bytes
Database mounted.

SQL>  create restore point dd guarantee flashback database;

Restore point created.

SQL> select to_char(checkpoint_change#) from v$datafile;

TO_CHAR(CHECKPOINT_CHANGE#)
----------------------------------------
10999733115905
10999733115905
10999733115905
10999733115905


SQL> select file#,to_char(checkpoint_change#),CHECKPOINT_COUNT from v$datafile_header;

     FILE# TO_CHAR(CHECKPOINT_CHANGE#)              CHECKPOINT_COUNT
---------- ---------------------------------------- ----------------
         1 10999733115905                                         70
         2 10999733115905                                         70
         3 10999733115905                                         70
         4 10999733115905                                         69

(2)在mount状态下备份控制文件和日志文件
[ora10g@xe2 lank]$ cp redo01.log redo01.log.bak     
[ora10g@xe2 lank]$ cp redo02.log redo02.log.bak     
[ora10g@xe2 lank]$ cp redo03.log redo03.log.bak         
[ora10g@xe2 lank]$ cp control01.ctl control01.ctl.bak

(3)打开数据库之后切换几个归档
SQL> alter database open;

Database altered.

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

SQL> /

System altered.


(4)将数据库闪回至闪回点dd,可以发现数据文件的checkpoint和控制文件checkpoint均已闪回至闪回点状态,但是checkpoint count没有,这需要用bbed手动修改
SQL> flashback database to restore point dd;

Flashback complete.

SQL> select to_char(checkpoint_change#) from v$datafile_header;

TO_CHAR(CHECKPOINT_CHANGE#)
----------------------------------------
10999733115905
10999733115905
10999733115905
10999733115905

SQL>  select file#,to_char(checkpoint_change#),CHECKPOINT_COUNT from v$datafile_header;

     FILE# TO_CHAR(CHECKPOINT_CHANGE#)              CHECKPOINT_COUNT
---------- ---------------------------------------- ----------------
         1 10999733115905                                         74
         2 10999733115905                                         74
         3 10999733115905                                         74
         4 10999733115905                                         73


SQL> select file# ,fuzzy from v$datafile_header;

     FILE# FUZ
---------- ---
         1 NO
         2 NO
         3 NO
         4 NO
        
SQL> select to_char(checkpoint_change#) from v$datafile;

TO_CHAR(CHECKPOINT_CHANGE#)
----------------------------------------
10999733115905
10999733115905
10999733115905
10999733115905

(5)将之前备份的控制文件和日志文件还原
[ora10g@xe2 lank]$ cp control01.ctl.bak control01.ctl
[ora10g@xe2 lank]$ cp control01.ctl.bak control02.ctl
[ora10g@xe2 lank]$ cp control01.ctl.bak control03.ctl
[ora10g@xe2 lank]$ cp redo01.log.bak redo01.log
[ora10g@xe2 lank]$ cp redo02.log.bak redo02.log
[ora10g@xe2 lank]$ cp redo03.log.bak redo03.log

(6)mount数据库时alert日志会提示闪回日志比控制文件状态新,这主要是因为控制文件来自之前备份的控制文件。
SQL> startup mount
ORACLE instance started.

Total System Global Area 1069547520 bytes
Fixed Size                  2101704 bytes
Variable Size             276827704 bytes
Database Buffers          784334848 bytes
Redo Buffers                6283264 bytes
Database mounted.

Thu Oct 13 10:59:38 CST 2011
Errors in file /app/admin/lank/bdump/lank_rvwr_9155.trc:
ORA-38739: Flashback log file is more recent than control file.
ORA-38701: Flashback database log 1 seq 1 thread 1: "/app/flash_recovery_area/LANK/flashback/o1_mf_79dnqb8m_.flb"

如果直接打开数据库会有如下提示:
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-38760: This database instance failed to turn on flashback database
其解决办法是将闪回点删除
SQL> drop restore point dd;

Restore point dropped.

再次尝试将数据库打开,提示数据文件比控制文件新,但是之前看到控制文件和数据文件的checkpoint已经处于一致状态,且fuzzy为NO
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/lank/db/lank/system01.dbf'
ORA-01207: file is more recent than control file - old control file

(7)进一步比较控制文件和数据文件的区别,这里主要比较checkpoint count和control seq
dump控制文件
SQL>  alter session set events 'immediate trace name controlf level 1';

Session altered.


DUMP OF CONTROL FILES, Seq # 2440 = 0x988
V10 STYLE FILE HEADER:
        Compatibility Vsn = 169870592=0xa200500
        Db ID=1193074783=0x471ce05f, Db Name='LANK'
        Activation ID=0=0x0
        Control Seq=2440=0x988, File size=430=0x1ae
        File Number=0, Blksiz=16384, File Type=1 CONTROL
       
dump 数据文件
SQL> alter session set events 'immediate trace name file_hdrs level 10';
DATA FILE #1:
  (name #4) /lank/db/lank/system01.dbf
creation size=38400 block size=8192 status=0xe head=4 tail=4 dup=1
tablespace 0, index=1 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:70 scn: 0x0a01.132f5c01 10/13/2011 10:53:56
Stop scn: 0x0a01.132f5c01 10/13/2011 10:53:56
Creation Checkpointed at scn:  0x0000.00000007 09/20/2011 15:54:10


V10 STYLE FILE HEADER:
        Compatibility Vsn = 169870592=0xa200500
        Db ID=1193074783=0x471ce05f, Db Name='LANK'
        Activation ID=0=0x0
        Control Seq=2464=0x9a0, File size=51200=0xc800
        File Number=1, Blksiz=8192, File Type=3 DATA
Tablespace #0 - SYSTEM  rel_fn:1
Creation   at   scn: 0x0000.00000007 09/20/2011 15:54:10
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x2d901f29 scn: 0x0a01.132f57a3 reset logs terminal rcv data:0x0 scn: 0x0000.00000000
prev reset logs count:0x2d70c21f scn: 0x0000.00000001 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000
recovered at 10/13/2011 10:57:46
status:0x2000 root dba:0x00400179 chkpt cnt: 74 ctl cnt:73
begin-hot-backup file size: 0
Checkpointed at scn:  0x0a01.132f5c01 10/13/2011 10:53:56

发现控制文件和数据文件头的checkpoint count和control seq有区别,也就意味着数据库做闪回时,并没有闪回checkpoint count和control seq。
于是按照以下原则更改数据文件头的值:
a、数据文件头的control seq小于控制文件的control seq
b、数据文件头的chkpt cnt等于控制文件的chkpt cnt
经过查找需要修改的值在数据文件头的位置为:
   ub4 kccfhcsq                             @40 ==>control seq
   ub4 kcvfhcpc                             @140 ==>chkpt cnt                                                                   
   ub4 kcvfhccc                             @148 ==>ctl cnt
找到位置之后将所有文件用bbed修改即可 
   BBED> dump offset 40
   BBED> modify 0x8009
   BBED> dump offset 140
   BBED> modify 0x46
   BBED> dump offset 148
   BBED> modify 0x45
   BBED> sum apply
  
修改完毕之后,数据库就可以正常打开了。鼓掌!!!
  
分享到:
评论

相关推荐

    Open resetlogs操作对Oracle数据库恢复的影响.pdf

    Open resetlogs操作对Oracle数据库恢复的影响.pdf

    2层设计-2.4G RF高频信号收发模块硬件(cadence原理图+PADS PCB图+BOM)文件.zip

    2层设计-2.4G RF高频信号收发模块硬件(cadence原理图+PADS PCB图+BOM)文件,可供学习及设计参考。

    JAVA文件传输(lw+源代码).zip

    FTP(File Transfer Protocol)是文件传输协议的简称。 FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)查看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 目前FTP服务器软件都为国外作品,例如Server_U、IIS,国内成熟的FTP服务器软件很少,有一些如(Crob FTP Server),但从功能上看来远不能和那些流行的服务器软件媲美。

    语音端点检测及其在Matlab中的实现.zip

    语音端点检测及其在Matlab中的实现.zip

    Matlab 交互式多模型目标跟踪IMM.zip

    Matlab 交互式多模型目标跟踪IMM.zip

    numpy试题(2021年整理精品文档).zip

    numpynumpy试题(2021年整理精品文档).zip

    基于Python+Django城市PM2.5空气质量数据可视化分析系统

    【作品名称】:基于Python+Django城市PM2.5空气质量数据可视化分析系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: Python基于Django城市PM2.5空气质量数据可视化分析 开发软件:Pycharm + Python3.7 + Django + Echarts + Mysql 实现目标:利用已经收集各个城市包括北京、上海、广州、成都、沈阳的PM2.5空气数据,利用python进行各种数据分析,将分析结果保存到csv文件中,然后利用django框架的网站,前端采用echart对分析的结果进行图表可视化展示。

    c#实现求解白拉修斯方程。程序使用文件流,四阶龙哥库塔法.zip

    c#实现求解白拉修斯方程。程序使用文件流,四阶龙哥库塔法

    单片机3.DSN

    单片机3.DSN

    NumPy 的用途是什么

    NumPy 的用途是什么

    Java游戏设计打飞机程序(源代码+LW).zip

    Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)Java游戏设计打飞机程序(源代码+LW)

    Java项目之企业人事工资管理系统(源码)

    Java项目之企业人事工资管理系统(源码) 开发语言:Java 框架:ssm 技术:JSP JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9

    vb.net做的教务管理系统 功能完善 后台数据库使用的acce.zip

    vb.net做的教务管理系统 功能完善 后台数据库使用的acce.zip

    Nvidia 17.1 for win10&Win11 vGPU驱动

    Nvidia 17.1最新win10&Win11 vGPU驱动 名称:551.78_grid_win10_win11_server2022_dch_64bit_internationa

    基于物品的协同过滤推荐调用实例(C#版).zip

    协同过滤算法(Collaborative Filtering)是一种经典的推荐算法,其基本原理是“协同大家的反馈、评价和意见,一起对海量的信息进行过滤,从中筛选出用户可能感兴趣的信息”。它主要依赖于用户和物品之间的行为关系进行推荐。 协同过滤算法主要分为两类: 基于物品的协同过滤算法:给用户推荐与他之前喜欢的物品相似的物品。 基于用户的协同过滤算法:给用户推荐与他兴趣相似的用户喜欢的物品。 协同过滤算法的优点包括: 无需事先对商品或用户进行分类或标注,适用于各种类型的数据。 算法简单易懂,容易实现和部署。 推荐结果准确性较高,能够为用户提供个性化的推荐服务。 然而,协同过滤算法也存在一些缺点: 对数据量和数据质量要求较高,需要大量的历史数据和较高的数据质量。 容易受到“冷启动”问题的影响,即对新用户或新商品的推荐效果较差。 存在“同质化”问题,即推荐结果容易出现重复或相似的情况。 协同过滤算法在多个场景中有广泛的应用,如电商推荐系统、社交网络推荐和视频推荐系统等。在这些场景中,协同过滤算法可以根据用户的历史行为数据,推荐与用户兴趣相似的商品、用户或内容,从而提高用户的购买转化率、活跃度和社交体验。 未来,协同过滤算法的发展方向可能是结合其他推荐算法形成混合推荐系统,以充分发挥各算法的优势。

    (文章复现)工业园区需求响应资源聚合优化配置方法matlab代码

    参考文献: [1]李明轩,齐步洋,贺大玮.工业园区需求响应资源聚合优化配置方法[J].电网技术,2022,46(09):3543-3549.DOI:10.13335/j.1000-3673.pst.2021.1666. 1.摘要 需求响应资源数量的不断提升对响应资源的优化运行方法提出了更高的要求。面向工业园区内负荷聚合商开展日内需求响应的应用场景,提出了一种资源聚合优化配置方法,即在日前时段对响应资源预先聚合优化形成一定数量满足 特定条件的聚合体,再在日内运行时段对各聚合体进行优化调用以满足电网侧需求。该方法实现对数量庞大、分散存在、特性各异的资源的灵活聚合和优化配置,充分发挥各资源响应潜力和互补特性,并通过将大量求解计算从日内转移至日前时段,平衡了响应实时性要求与计算规模的矛盾。通过算例分析验证了所提模型与方法的合理性和有效性。

    毕业设计[主机域名]HostDirector v1.01_hostdirector101.zip

    毕业设计[主机域名]HostDirector v1.01_hostdirector101.zip

    基于MATLAB的pca人脸识别.zip

    基于MATLAB的pca人脸识别.zip

    Qt+OpenCV通用视觉框架全套源码.zip.008

    Qt+OpenCV通用视觉框架全套源码.zip.008

    JAVA002打飞机游戏设计(程序+LW).zip

    JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)JAVA002打飞机游戏设计(程序+LW)

Global site tag (gtag.js) - Google Analytics