Oracle备库宕机启动的完美解决方案

简介

ORA-10458: standby database requires recovery

ORA-01196: 文件 1 由于介质恢复会话失败而不一致

ORA-01110: 数据文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'

一个项目做了Oracle主从数据库同步,通过Dataguard实现,从库服务器宕机,再开机的时候,从库无法启动,报“ORA-01196: 文件 1 由于介质恢复会话失败而不一致”这个错误,具体日志信息如下:

ORA-10458: standby database requires recovery
ORA-01196: 文件 1 由于介质恢复会话失败而不一致
ORA-01110: 数据文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF'

正常启动的顺序应该是先启动备库再启动主库。由于从库宕机导致有段时间日志未同步,主备不一致,从库无法启动。

参考资料

https://www.jb51.net/article/160838.htm

恢复前准备

备份主库

备份主库数据【/home/oracle/backup/20190506/】

mkdir /home/oracle/backup/20190506
 sqlplus / as sysdba
 SQL> create directory data_dir as '/home/oracle/backup/20190506';
 expdp SYSTEM/密码@orcl schemas=用户名 dumpfile=bak20190506.dmp directory=data_dir logfile=bak20190506.log;

检查日志文件

恢复之前需要了解当前备库的数据库文件、日志文件,查看主备库是否一致【如不一致需要拷贝】。

SQL> set linesize 300
SQL> col MEMBER for a60
SQL> select type,member from v$logfile;

检查数据库文件

SQL> select name from v$datafile;

备库恢复

关闭备库,并启动了实例,加载数据库,但是数据库没有打开。打开日志进程

shutdown immediate
startup mount;
alter database recover managed standby database using current logfile disconnect from session;

主库操作

alter system switch logfile;

强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)

alter system switch logfile;

多操作几次,操作之后,稍等一段时间,时间视网速而定,过一段时间后,在主库上查询一下同步情况:

select name,sequence#,archived,applied from v$archived_log order by sequence#;

如果返回结果"APPLIED"都是“YES”或者只有最后一个是“NO”的话,说明全部归档日志全部已经归档完了
,此时到备库上上操作

启动备库

alter database recover managed standby database cancel;
alter database open;
alter database recover managed standby database using current logfile disconnect from session;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。

(0)

相关推荐

  • 批处理写的 oracle 数据库备份还原工具

    这是针对oracle编写的,可以用在不同的电脑上,因为它会自动读取当前电脑的环境变量,从而取得oracle的安装路径,唯一有一点不足的地方是程序中运行过程中会产生一个中间文本文件,不过这并不碍大事,备份或者还原完了以后将会自动删除产生文本文件,代码如下: 复制代码 代码如下: @echo off&setlocal enabledelayedexpansion color 0a :start for /f "tokens=2 delims==" %%a in ('path') d

  • Linux oracle数据库自动备份自动压缩脚本代码

    复制代码 代码如下: #!#backup.sh##系统名称sysname=gzsyspath=/home/oracle/databak/$sysname/v_date=$(date '+%Y%m%d%H%M%S')logfile=$syspath/backup.$v_date.logecho backup_time>>$logfiledate '+%Y-%m-%d %H:%M:%S' >> $logfile#数据库使用情况echo "backup gznxt"&

  • ORACLE 数据库RMAN备份恢复

    机器A: select instance_name from v$instance; select name from v$database; select name from v$datafile; 查询日志模式: archive log list; shutdown immediate; startup mount; 把日志改为归档模式: alter database archivelog; alter database open; alter system archive log curr

  • oracle数据库创建备份与恢复脚本整理

    1:创建用户 复制代码 代码如下: create temporary tablespace user_temp tempfile 'D:\app\topwqp\oradata\orcl\user_temp.dbf' size 500m autoextend on next 50m maxsize 2048m extent management local; create tablespace ts_mydb logging datafile 'D:\app\topwqp\oradata\orcl

  • Linux 自动备份oracle数据库详解

    Linux 自动备份oracle数据: 曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非常有必要. 简单实用的晚间自动备份数据库小案例 步骤一.创建备份脚本,暂且命名为orabak.sh #路径名,指定备份的路径 FILEPATH = /oracle/orabak #根据指定日期格式,定义备份数据库文件名 FILENAME = `date + %

  • Linux中Oracle数据库备份

    先来介绍一些不使用脚本我们直接使用命令备份与还原oracle数据库Oracle数据备份:步骤 1 备份用户数据.1.使用linux系统下的数据库管理员账号连接linux终端.2. 执行以下语句,创建"bak_dir"文件夹. 复制代码 代码如下: mkdir bak_dir 3. 执行以下语句,为"bak_dir"文件夹赋予读.写和执行权限. 复制代码 代码如下: chmod 777 bak_dir 4. 执行以下语句,以sysdba用户登录oracle数据库服务器

  • oracle数据库冷备份的方法

    冷备份是数据库文件的物理备份,通常在数据库通过一个shutdown normal或shutdown immediate 命令正常关闭后进行.当数据库关闭时,其使用的各个文件都可以进行备份.这些文件构成一个数据库关闭时的一个完整映像.冷备份通常要备份以下文件:所有数据文件所有控制文件所有联机重做日志初始化参数文件initsid.ora(可选)先执行以下SQL语句查看所有需要备份的文件: 复制代码 代码如下: SVRMGR> select * from v$datafile;SVRMGR> sel

  • Oracle备库宕机启动的完美解决方案

    简介 ORA-10458: standby database requires recovery ORA-01196: 文件 1 由于介质恢复会话失败而不一致 ORA-01110: 数据文件 1: 'XXXXXXXXXXXXXXXXXX\XXXXX1.DBF' 一个项目做了Oracle主从数据库同步,通过Dataguard实现,从库服务器宕机,再开机的时候,从库无法启动,报"ORA-01196: 文件 1 由于介质恢复会话失败而不一致"这个错误,具体日志信息如下: ORA-10458:

  • PostgreSQL 主备数据宕机恢复测试方案

    主节点宕机数据,备库数据恢复 背 景 在从节点停止服务,然后往主库不断写入数据,然后把主机宕机掉,启动从库,把主库宕机期间的增量wal日志复制到从库的archive目录下, 执行恢复脚本,则会把主机宕机后的增量数据追加到数据库. 环境 服务器 角色 10.10.56.16 master 10.10.56.18 slave - 配置16 master 的 pg_hba,conf 文件 host all all 10.10.56.0/0 md5 host replication all 10.10.

  • ORA-00349|激活 ADG 备库时遇到的问题及处理方法

    近日有一套实时同步的 ASM 管理的单机 11204 ADG 备库,由于业务需要,想要脱离主库的约束,想激活拉成读写库直接升级成 ASM 管理的 19C,闪回快照模式无法满足要求,只能 ALTER DATABASE ACTIVATE STANDBY DATABASE 强制切成可读写的主库.说干就干,先将其切成主库,升级过程等下次在一起讨论. --主库 --主库设置为 defer, 取消备库日志应用,关库启动到 mount 状态进行. show parameter log_archive_dest

  • win平台oracle rman备份和删除dg备库归档日志脚本

    总觉得使用windows跑oracle是不靠谱的事情,可以这个世界上总有很多人喜欢做类似这样的事情,对于数据库比较常见的两件事情:rman和删除dg备库归档日志,在linux/unix平台上使用shell实现很简单,可是跑到win里面,就变的烦了,不是因为其麻烦,而是因为用的人少,不知道怎么下手处理该事情,我编写了简单的实现初级功能的win下面rman备份和删除备库归档日志脚本,供大家参考,也更加欢迎朋友提出来更加好的处理方法(win是真心的不懂)rman备份脚本 复制代码 代码如下: --ba

  • Oracle数据库由dataguard备库引起的log file sync等待问题

    导读: 最近数据库经常出现会话阻塞的报警,过一会又会自动消失,昨天晚上恰好发生了一次,于是赶紧进行了查看,不看不知道,一看吓一跳,发现是由dataguard引起的log file sync等待.我们知道,通常log file sync等待都是由频繁写日志造成的,这次居然是由DG环境引起的. (一)问题描述 数据库:Oracle 11.2.0.4,单机版,有Dataguard环境 操作系统:centos 7.4 通过zabbix监控到的会话阻塞信息如下图,这里是自定义的监控,解释如下: 用户use

  • Java应用/JVM宕机排查步骤操作

    相信大家都遇到过,自己的Java应用运行一段时间就宕机了或者响应请求特别慢.这时候就需要我们了来找出问题所在了.绝大部分都是代码问题导致的. 一.服务宕机 如果是服务宕机,发生致命问题导致进程已经死掉了,那么已经访问不了了,通常都是CPU问题引起的,程序一般会自己生成javacore文件,一般生成位置在/root目录或jar包同目录下.JavaCore文件主要保存的是Java应用各线程在某一时刻的运行的位置,即JVM执行到哪一个类.哪一个方法.哪一个行上. 找到这个文件,执行命令 gdb jav

  • Windows 64位下装安装Oracle 11g,PLSQL Developer的配置问题,数据库显示空白的完美解决方案(图文教程)

    安装pl sql 后,若下图的数据库处为空.则需要安装32位的客户端,说明pl sql不支持64位客户端连接. 解决办法: 1.下载32位Oracle客户端,并安装 2.设置PLSQL Developer 打开pl sql 在"工具" - "首选项" - "连接"中,设置 OCI库 (即oracle 32位的安装位置) D:\app\Administrator\product\11.2.0\client_1\oci.dll 如下图: 3.添加环境

  • Oracle监听器被优化大师挂掉后的完美解决方法

    Oracle监听器被优化大师挂掉后的解决方法: 在启动oracleorahome90tnslistener服务 时出错,信息: 在本地计算机无法启动oracleorahome90tnslistener服务, 错误3:系统找不到指定路径. 我在网上查资料后,发现一般这些文件的位置由注册表的 ORACLE_HOME 变量决定. 先看一看注册表中 HKEY_LOACL_MACHINE/ SOFTWARE/ORACLE 下的 ORACLE_HOME值 如果没有这个值 ,那你一定要添加进去. ORACLE

  • mysql主键的缺少导致备库hang住

    最近线上频繁的出现slave延时的情况,经排查发现为用户在删除数据的时候,由于表主键的主键的缺少,同时删除条件没有索引,或或者删除的条件过滤性极差,导致slave出现hang住,严重的影响了生产环境的稳定性,也希望通过这篇博客,来加深主键在innodb引擎中的重要性,希望用户在使用RDS,设计自己的表的时候,一定要为表加上主键,主键可以认为是innodb存储引擎的生命,下面我们就来分析一下这个案例(本案例的生产环境的binlog为row模式,对于myisam存储引擎也有同样的问题): (1).现

  • PHP脚本内存泄露导致Apache频繁宕机解决方法

    在部署一套内网测试环境时,频繁宕机,开机后不断的吃内存,重启apache之后内存占用会不停的上涨,直到swap用完,直到死机,由于是内网环境,服务器并发和压力都很小. 查看apache错误日志,报大量类似错误: 复制代码 代码如下: [Tue Feb 14 14:49:28 2012] [warn] child process 7751 still did not exit, sending a SIGTERM [Tue Feb 14 14:49:30 2012] [error] child p

随机推荐