Oracle数据库故障类别及日常运维规划策略
一、故障类别
1、语句故障
单个数据库操作失败(select、insert、update或delete),如:
- 在表中输入无效的数据,解决方法:可与用户合作来验证并更正数据;
- 执行操作,但权限不足,解决方法:提供适当的对象或系统权限;
- 分配空间失败,解决方法:启用可恢复的空间分配,增加所有者限额,增加表空间的空间;
- 应用程序存在逻辑错误,解决方法:与开发人员合作来更正程序错误。
2、用户进程故障
- 用户执行了异常断开连接操作;
- 用户会话已异常终止;
- 用户遇到了程序错误并终止了会话。
解决方法:通常不需要DBA执行任何操作就可解决用户进程故障。实例的后台进程会回退未提交的更改并解除锁定。
注:
进程监视程序(PMON) :PMON定期轮询服务器进程,如果发现某个服务器进程的用户不再处于连接状态,会进行恢复,并回退未提交的更改并解除失败会话持有的任何锁定。
3、网络故障
网络故障最好为网络连接提供冗余路径,通过备份监听程序、网络连接和网络接口等方法降低网络故障,如:
- 监听程序失败,解决方法:配置备份监听程序和连接时故障转移;
- 网络接口卡故障,解决方法:配置多个网卡;
- 网络连接失败,解决方法:配置备份网络连接。
4、用户错误
用户可能会无意中删除或修改数据,这时,DBA需要帮助用户从错误中进行恢复。
- 用户尚未提交,则进行回退操作;
- 用户提交了更改,可以使用闪回查询来确定以前的值是什么,再进行相应的恢复。
如因超出了还原保留期而无法使用闪回的,可通过使用LogMiner 来恢复原始信息; - 用户删除表后可从回收站中恢复表,如果清空了回收站,或者用户使用PURGE 选项删除了表,仍可通过使用时间点恢复(PITR) 来恢复删除的表。
5、实例故障 (smon完成)
如果在同步所有数据库文件之前关闭了数据库实例,就会发生实例错误,如:
- 软硬件故障,导致实例错误,只要重新启动实例即可;
- 使用SHUTDOWN ABORT 和STARTUP FORCE 紧急关闭命令,导致实例错误,只要重新启动实例即可;
- 断电,导致实例错误,只要重新启动实例即可;
- 后台进程出现故障,导致实例错误,只要重新启动实例即可。
6、介质故障
导致一个或多个数据库文件(数据文件、控制文件或重做日志文件)丢失或损坏的任何故障。要从介质故障进行恢复,需要还原并恢复缺失的文件。 可能导致介质故障的原因:
- 磁盘驱动器故障
- 磁盘控制器故障
- 删除或损坏了数据库文件
解决办法:
- 从备份中还原受影响的文件
- 通知数据库关于新文件的位置
- 通过应用重做信息来恢复文件
二、日常运维规划策略
1、多路复用控制文件
与数据库关联的所有控制文件是完全相同的。丢失一个控制文件后进行恢复并不难。但是丢失了所有控制文件后进行恢复则很困难。为了避免丢失所有控制文件,至少要有2至3个副本,建议使用RMAN定期自动备份。
2、多路复用重做日志组
实例故障或介质故障进行恢复,可使用重做日志信息将数据文件前滚到最后一个提交的事务处理。如果重做日志组依赖于一个重做日志文件,那么这个文件丢失了很可能意味着数据也丢失了。
重做日志组由一个或多个重做日志文件组成,组中的每个日志文件都是其它日志文件的副本。Oracle 建议每个重做日志组至少包含两个文件,两个文件要分布在不同的磁盘或控制器上。
所以,当单个设备出现故障时就不会损坏整个日志组。丢失了整个日志组可以算是一种最严重的介质故障,因为这会导致丢失数据。
3、保留重做日志的归档副本
如果某个文件丢失后通过备份已还原,实例就必须应用重做信息,以便将该文件返回到控制文件中包含的最新SCN。所以,为保证数据恢复,可将数据库置于ARCHIVELOG 模式。
4、配置快速恢复区
快速恢复区是为保存归档日志、备份、闪回日志、镜像控制文件和镜像重做日志而在磁盘上专门留出的空间。
快速恢复区在磁盘上的保留位置应不同于数据库文件的工作区所在的位置。否则,磁盘将成为数据库的单点故障。
理想情况下,快速恢复区应足够大,可存放数据文件和控制文件副本,以及基于保留策略从保留的备份恢复数据库所需的闪回日志、联机重做日志和归档日志。
5、计划常规备份
大多数介质故障需要从备份还原丢失或损坏的文件。
相关文章:
Oracle数据库故障类别及日常运维规划策略
一、故障类别 1、语句故障 单个数据库操作失败(select、insert、update或delete),如: 在表中输入无效的数据,解决方法:可与用户合作来验证并更正数据;执行操作,但权限不足&#x…...

电商技术揭秘九:搜索引擎中的SEO数据分析与效果评估
相关系列文章 电商技术揭秘一:电商架构设计与核心技术 电商技术揭秘二:电商平台推荐系统的实现与优化 电商技术揭秘三:电商平台的支付与结算系统 电商技术揭秘四:电商平台的物流管理系统 电商技术揭秘五:电商平台的个性…...

多线程传参以及线程的优缺点
进程是资源分配的基本单位 线程是调度的基本单位 笼统来说,线程有以下优点: 创建一个新线程的代价要比创建一个新进程小得多 与进程之间的切换相比,线程之间的切换需要操作系统做的工作要少很多 线程占用的资源要比进程少很多 能充分利用多…...

keil创建单片机工程
一、创建工程 打开Keil uVision4,依次选择 Project—>New uVision4 Project,选择工程保存路径及填写工程名称,如下图 然后点“保存”。在Select a CPU Data Base File中选择"STC MCU Database",点 "OK"&am…...

QT 串口助手 学习制作记录
QT 串口助手qt 学习制作记录 参考教程:QT初体验:手把手带你写一个自己的串口助手_qt设计串口助手的流程图-CSDN博客 Qt之串口编程(添加QSerialPort模块)_如何安装 qt串口模块教程-CSDN博客 串口调试助手࿱…...
Github 2024-04-13 Rust开源项目日报Top10
根据Github Trendings的统计,今日(2024-04-13统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Rust项目10CUE项目1Go项目1Tauri: 构建小型、快速和安全的桌面应用程序 创建周期:1673 天开发语言:Rust协议类型:Apache License 2.0Star数量…...

大模型日报|今日必读的10篇大模型论文
大家好,今日必读的大模型论文来啦! 1.谷歌推出新型 Transformer 架构:反馈注意力就是工作记忆 虽然 Transformer 给深度学习带来了革命性的变化,但二次注意复杂性阻碍了其处理无限长输入的能力。 谷歌研究团队提出了一种新型 T…...

深度学习 Lecture 8 决策树
一、决策树模型(Decision Tree Model) 椭圆形代表决策节点(decison nodes),矩形节点代表叶节点(leaf nodes),方向上的值代表属性的值, 构建决策树的学习过程: 第一步:决定在根节点…...
打包 docker 容器镜像到另一台电脑
# 提交容器为镜像 <container_id> 容器id my_migration_image 镜像名称 docker commit <container_id> my_migration_image # 保存镜像为tar文件 docker save my_migration_image > my_migration_image.tar 在另一台电脑上导入上面的镜像,请…...
贪心算法--购买股票
给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。 在每一天,你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。你也可以先购买,然后在 同一天 出售。 返回 你能获得的 最大 利润 。 示例 1&a…...

在Mac主机上连接Linux虚拟机
前言 最近醉心于研究Linux,于是在PD上安装了一个Debian Linux虚拟机,用来练练手。但是每次在mac和Linux之间切换很是麻烦,有没有一种方法,可以在mac终端直接连接我的虚拟机,这样在mac终端上就可以直接操控我的Linux虚…...
前端如何单独做虚拟奖金池?
公司业务需求要做一个虚拟奖金池,具体是需求是,不需要后端数据支持,但是又需要不同用户看到的奖金池数据每次变动都是一致的,并且要在给定的最小最大值中变动。 一开始看需求,因为需要所有登录/未登录,不同…...
前端md5校验文件
前端获取文件的md5值,与文件一同传到后端,后端同样对md5值进行校验。如果相同,则文件未被损坏(其实这种方式优点类似于tcp、ip的差错校验,好像token也是这种方式) 项目准备 前端并不可能手写一个算法来实…...

总结SQL相对常用的几个字符函数
目录 字符的截取 substr() trim()、ltrim()、rtrim() 字符串的拼接 ||、 字符的大小写转换 upper(column_name):大写 lower(column_name):小写 字符替换 replace() 搜索字符 instr(column_name, substring_to_find,start,n_appearence) charindex(substring_to_fi…...
云计算笔记
RAID的组合方式 RAID0:多个硬盘同时工作,可提供性能,无冗余机制 RAID1:数据保存多份,提供冗余机制,性能受到影响 RAID3:存在数据盘和单独校验盘,数据写入 至数据盘后需要运算且将…...

网络安全学习路线-超详细
零基础小白,到就业!入门到入土的网安学习路线! 在各大平台搜的网安学习路线都太粗略了。。。。看不下去了! 建议的学习顺序: 一、网络安全学习普法(心里有个数,要进去坐几年!&#x…...

【多模态检索】Coarse-to-Fine Visual Representation
快手文本视频多模态检索论文 论文:Towards Efficient and Effective Text-to-Video Retrieval with Coarse-to-Fine Visual Representation Learning 链接:https://arxiv.org/abs/2401.00701 摘要 近些年,基于CLIP的text-to-video检索方法…...

VRRP——虚拟路由冗余协议
什么是VRRP 虚拟路由冗余协议VRRP(Virtual Router Redundancy Protocol)是一种用于提高网络可靠性的容错协议。 通过VRRP,可以在主机的下一跳设备出现故障时,及时将业务切换到备份设备,从而保障网络通信的连续性和可…...

隧道应急广播应该如何搭建?
隧道应急广播系统的搭建需遵循以下关键步骤,确保在紧急情况下能够迅速、准确地传达信息,保障人员安全: 1. 需求分析与规划设计: 明确目标:确定广播系统覆盖范围(如隧道全长、出入口、避难所等关键位置&…...

OpenHarmony实战开发-Worker子线程中解压文件。
介绍 本示例介绍在Worker 子线程使用ohos.zlib 提供的zlib.decompressfile接口对沙箱目录中的压缩文件进行解压操作,解压成功后将解压路径返回主线程,获取解压文件列表。 效果图预览 使用说明 1.点击解压按钮,解压test.zip文件,…...

龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...

Zustand 状态管理库:极简而强大的解决方案
Zustand 是一个轻量级、快速和可扩展的状态管理库,特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
基于服务器使用 apt 安装、配置 Nginx
🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…...

【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...

376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...