Oracle 10G DG 修复从库-磁盘空间爆满导致从库无法工作

一、背景

由于近期在做应用升级和系统改造,导致几天没怎么观察DG库的状态。这几天归档日志暴涨导致磁盘空间用尽,从库无法接收主库的归档日志,且从库无法工作。经过检查,发现从库所需要的日志在主库均存在。所以当前文档使用归档日志的方式进行恢复

二、DG从库基于归档日志恢复

1、临时手动删除

  • 手动删除无用文件、超过保留期限且占用空间大的备份文件、归档日志、数据库日志、审计日志等。

2、从库取消日志同步

 SQL>alter database recover managed standby database cancel;

3、查询未同步的日志

# 主库查询归档日志序号
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /data/oracle/archive
Oldest online log sequence     115312
Next log sequence to archive   115314
Current log sequence           115314# 从库查询归档日志应用情况
SQL>select SEQUENCE#,FIRST_TIME,NEXT_TIME ,APPLIED from v$archived_log order by 1;SEQUENCE# FIRST_TIME   NEXT_TIME    APPLIED
---------- ------------ ------------ ---------115211 27-MAR-25    27-MAR-25    YES115212 27-MAR-25    27-MAR-25    YES115213 27-MAR-25    27-MAR-25    NO# 从库检查归档日志物理存储
注意:此处可以根据归档日志产生时间以及编号,来交叉验证缺少的归档日志
$ cd /data/oracle/archive

4、主库查询
注意:此处需要校验从库缺少的归档日志是否存在。如果存在则可以使用归档进行直接恢复。如果不存在则需要考虑使用其它方法恢复。但是当前文档是基于归档日志进行恢复的。

  • 基于SCN增量备份进行恢复
  • 使用完全备份直接恢复
注意:此处可以根据归档日志产生时间以及编号,来确认从库缺少的归档日志是否存在,
$ cd /data/oracle/archive# 经检查,从库缺失的归档日志在主库还存在

5、从库查看归档日志
注意:这里查看归档日志的目的,是看从库从哪个归档日志断开的,最后应用的归档日志可能未完全应用。
经确认从库 115213 号归档日志仅应用了一半,所以此处先移动该日志到其它路径下,主库发送完整日志到该路径下 ,同时更改权限

6、从库重启日志同步
注意:由于10G DG在自动断开同步的情况下,重启MRP进程后,需要在主库执行从库归档路径参数关闭再开启

# 主库发送归档日志到从库
$ scp 115213.arc [从库IP]:/data/oracle/archive# 从库更改权限
$ chown oracle:dba 115213.arc# 从库重启MRP进程
SQL>alter database recover managed standby database using current logfile disconnect from session;

7、主库执行参数更改
注意:此处需要查看主库指定的从库归档参数是哪个,才能准确重启归档参数

# 主库中指定的从库归档参数
log_archive_dest_2='SERVICE=ORCL LGWR ASYNC VALID_FOR=(all_logfiles,all_roles) DB_UNIQUE_NAME=DGS'# 根据指定参数重启开关
SQL>alter system set log_archive_dest_state_2=defer;
SQL>alter system set log_archive_dest_state_2=enable;

8、查看归档应用
注意:此处明确看到正在恢复,所以只需要等待恢复完成即可

$ tail -f alert_ORCL.log2025-03-27T11:28:47.526421+08:00
PR00 (PID:2359): Media Recovery Log /data/oracle/archive/oatest_1_115213_1056118119.arc
PR00 (PID:2359): Media Recovery Waiting for T-1.S-115213 (in transit)
2025-03-27T11:29:22.175855+08:00rfs (PID:31442): Opened log for T-1.S-115214 dbid 1148449189 branch 1056118119

三、永久解决磁盘爆满的方案

上述临时解决磁盘空间爆满的方式,显然这不是我们DBA的风格,DBA的风格都是追求自动化,所有的一切只需要经过简单的手动处理就可以达到一劳永逸

1、定期自动化删除

  • 创建删除脚本
  • 加入crontab,实现定期自动化执行

定期自动化的操作流程

1、创建删除脚本
注意:此处根据归档保留策略而定即可。如果确定可以删除,那么可直接删除保留策略前的日志。或者将这部分日志移动、发送到其它路径或者服务器保存。

#!/bin/bash
#############################################################################
#
#Author:Albert
#Date:27-Mar-25
#
# Main purpose:This script is used to delete expired files.
#
#
#############################################################################
# Parameter
logpath="/data/scripts/scripts_db"
CURTIME=`date +%Y%m%d%H%M%S`
delF_log="$logpath/del_file_list_30.log"export week=`date +%w`if [ ! -f $delF_log ]; then
touch $delF_log
chmod 777 $delF_log
else
rm -rf $delF_log
touch $delF_log
chmod 777 $delF_log
fi#if [ $week -ne 0 ] ; then
#  echo "Today cannot Sunday:$week" >> $delF_log
#  exit 0
#fipad=$(printf '%0.1s' "-"{1..60})folList[0]="[需要删除的文件的路径]"echo "Delete 30 days before file " >> $delF_log
echo "Perform Date :"$CURTIME >> $delF_log
echo "$pad" >>$delF_log
for i in ${folList[@]}
do
echo "Location is :  $i " >>$delF_log
find $i -type d -mtime +30 >> $delF_log
find $i -type f -mtime +30 >> $delF_log
find $i -type f -mtime +30 -exec rm -rf  {} \;
done
echo "$pad" >>$delF_log
echo "Complete Time :"$CURTIME >> $delF_log

2、加入定时计划

[oracle@hekdwdg ~]$ crontab -e
00 22 * * * sh /data/scripts/del_file_list_30.sh# 重启定时任务即可
[oracle@hekdwdg ~]$service crond restart

3、一劳永逸
实现自动化检查、删除,就可以释放双手了。去干想干的事情。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/899244.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【踩坑系列】使用httpclient调用第三方接口返回javax.net.ssl.SSLHandshakeException异常

1. 踩坑经历 最近做了个需求,需要调用第三方接口获取数据,在联调时一直失败,代码抛出javax.net.ssl.SSLHandshakeException异常, 具体错误信息如下所示: javax.net.ssl.SSLHandshakeException: sun.security.validat…

算法基础——模拟

目录 1 多项式输出 2.蛇形方阵 3.字符串的展开 模拟,顾名思义,就是题⽬让你做什么你就做什么,考察的是将思路转化成代码的代码能⼒。这类题⼀般较为简单,属于竞赛⾥⾯的签到题(但是,万事⽆绝对&#xff…

PrimeTime生成.lib竟暗藏PG添加Bug

在primeTime里生成lib,如何能带上相关的pg信息? 这是一位群友的发问,就这个问题总结了下可能的原因和解决步骤: 概念 PrimeTime是Synopsys的静态时序分析工具,通常用于在设计的各个阶段进行时序验证。 1&#xff09…

yolo系列算法最新进展

YOLO(You Only Look Once)系列算法作为目标检测领域的代表性模型,自2016年推出以来不断迭代,在速度与精度之间寻求平衡。截至2024年,其最新进展主要集中在以下几个方面: ‌1. YOLOv8 的优化与扩展‌ ‌官方…

动态规划:路径类dp

路径类dp 1.矩阵的最小路径和_牛客题霸_牛客网 #include<iostream> #include<cstring> using namespace std;const int N 510; int f[N][N]; int n, m;int main() {cin >> n >> m;memset(f, 0x3f3f3f, sizeof(f));f[0][1] 0;for (int i 1; i < …

性能测试理论基础-性能指标及jmeter中的指标

1、什么是性能测试 通过一定的手段,在多并发下情况下,获取被测系统的各项性能指标,验证被测系统在高并发下的处理能力、响应能力,稳定性等,能否满足预期。定位性能瓶颈,排查性能隐患,保障系统的质量,提升用户体验。 2、什么样的系统需要做性能测试 用户量大,页面访问…

Debian,Ubuntu,设置/etc/vim/vimrc.tiny解决:上下左右变成ABCD,backspace退格键失效的问题

Debian,Ubuntu,用设置/etc/vim/vimrc.tiny解决:上下左右变成ABCD,backspace退格键失效的问题 Debian,Ubuntu, 默认的vi 在编辑模式下的上下左右变成ABCD , 退格键也失效 解决办法1, 卸载重装vim sudo apt remove vim; sudo apt install -y vim解决办法2: 修改 /etc/vim/vimr…

Redis 单机16个db,集群只有一个的基本知识

目录 前言1. 基本知识2. 配置 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 爬虫神器&#xff0c;无代码爬取&#xff0c;就来&#xff1a;bright.cn Java基本知识&#xff1a; java框架 零基础从入门到精通…

蓝桥杯C++基础算法-多重背包(优化)

这段代码实现了一个多重背包问题的动态规划解法&#xff0c;并且使用了二进制拆分&#xff08;或称二进制优化&#xff09;来优化物品的数量处理。这种方法可以显著减少状态转移的次数&#xff0c;提高算法的效率。以下是代码的详细思路解析&#xff1a; 1. 问题背景 给定 n 个…

FALL靶机攻略

1.下载靶机&#xff0c;导入靶机 下载地址&#xff1a;https://download.vulnhub.com/digitalworld/FALL.7z 开启靶机。 2. 靶机、kali设置NAT网卡模式 3. kali扫描NAT网卡段的主机 kali主机 nmap扫描&#xff1a;nmap 192.168.92.1/24 判断出靶机ip是192.168.92.133。开启…

notepad++代码查看器分享

文章目录 &#x1f4dd; Notepad 简介&#x1f527; 主要特点打开.c文件示意高亮语法展示全局替换功能展示 &#x1f4dd; Notepad 简介 Notepad 是一款 免费的开源文本编辑器和源代码编辑器&#xff0c;运行在 Windows 系统上。 它是对 Windows 自带“记事本”的增强版本&…

详细介绍Spring MVC的执行流程是怎么样的?

Spring MVC 是 Spring 框架的一部分&#xff0c;用于构建 Web 应用程序。它的执行流程如下&#xff1a; 前端控制器&#xff08;DispatcherServlet&#xff09;接收请求&#xff1a;用户通过浏览器发送 HTTP 请求到服务器&#xff0c;请求首先被前端控制器 DispatcherServlet 接…

MySQL中的内连接与外连接详解:基础与进阶应用

文章目录 表的内连和外连&#xff08;重点&#xff09;内连接外连接左外连接右外连接 简单回顾 表的内连和外连&#xff08;重点&#xff09; 表的连接分为内连和外连 内连接 内连接实际上就是利用where子句对两种表形成的笛卡儿积进行筛选&#xff0c;我们前面学习的查询都…

动态内存分配与内存对齐

在C语言及其他低级编程语言中,内存管理是一个至关重要的主题。动态内存分配和内存对齐是确保程序高效和稳定运行的关键因素。本文将深入探讨动态内存分配的原理,内存对齐的概念,并解释它们如何共同影响程序的性能和资源利用。 一、动态内存分配简介 1.1 动态内存分配的概念…

Milvus×最新版DeepSeek v3:对标Claude,本地数据五分钟写网站

前言 就在昨晚&#xff0c;DeepSeek v3推出了新版本V3-0324&#xff0c;再次一夜爆火。 虽然官方表示“这只是一次小升级”“API接口和使用方式不变”&#xff0c;但经过Zilliz的第一时间实测&#xff0c;我们发现无论是逻辑能力&#xff0c;还是编程能力&#xff0c;相较原本的…

6.M-LAG专题

M-LAG 的作用及特点 能不能简单的描述以下M-LAG的工作原理? 跨设备链路聚合&#xff0c;将两台物理设备在聚合层面虚拟成一台设备来实现跨设备链路聚合&#xff0c;从而提供设备级冗余保护和流量负载分担 M-LAG(跨设备链路聚合)是基于IEEEP802.1A协议的跨设备链路聚合技术。…

每日免费分享之精品wordpress主题系列~DAY16

主题介绍&#xff1a; 今日在网上寻找wordpress主题的时候逛到了大叔的网站&#xff0c;赶脚这个主题蛮不错的&#xff0c;于是百度一下&#xff0c;果然&#xff0c;这个主题很受欢迎。作为主题下载站追梦者也不甘落后&#xff0c;马上就发布出来了&#xff0c;希望对你们有用…

LeeCode 383. 赎金信

给你两个字符串&#xff1a;ransomNote 和 magazine &#xff0c;判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以&#xff0c;返回 true &#xff1b;否则返回 false 。 magazine 中的每个字符只能在 ransomNote 中使用一次。 示例 1&#xff1a; 输入&#…

目标检测20年(一)

今天看的文献是《Object Detection in 20 Years: A Survey》&#xff0c;非常经典的一篇目标检测文献&#xff0c;希望通过这篇文章学习到目标检测的基础方法并提供一些创新思想。 论文链接&#xff1a;1905.05055 目录 一、摘要 1.1 原文 1.2 翻译 二、介绍 三、目标检测…

分割 / 合并大文件的简单 python 代码

使用方法 分割: python fs.py -n <分割后的文件个数> <要分割的文件> 合并: python fs.py -m <分割文件1> <分割文件2> ... 示例 PS C:\Users\Administrator\Desktop> python fs.py 使用方法: 分割: python fs.py -n <分割后的文件个数> &…