当前位置: 首页 > news >正文

Oracle Patch清理

场景:
在对Oracle安装补丁后,会发现OS上被占用了大量的空间,本文档清理Opatch过程中的一些文件,释放空间

参考文档:
Can You Delete $ORACLE_HOME/.patch_storage Directory ? (Doc ID 403218.1)
How To Avoid Disk Full Issues Because OPatch Backups Take Big Amount Of Disk Space. (Doc ID 550522.1)

-- 查看$ORACLE_HOME下的隐藏文件夹.patch_storage。 可以看到之前的补丁过程,产生的一些文件。这些文件主要用于rollback补丁,如果不需要,可以清除,以释放空间。

[oracle@19ctest .patch_storage]$ du -sm *
1       29517242_Apr_17_2019_23_27_10
1       29585399_Apr_9_2019_19_12_47
2314    35042068_Apr_6_2023_15_25_04
1941    35320081_Jul_15_2023_12_54_11
2071    35643107_Oct_3_2023_13_34_29
1939    35943157_Jan_13_2024_05_42_55
2138    36233263_Apr_8_2024_17_16_56
1       interim_inventory.txt
1       LatestOPatchSession.properties
1       NApply
1       newdirs.txt
1       record_inventory.txt
[oracle@19ctest .patch_storage]$ pwd
/u01/app/oracle/product/19.0.0/db_1/.patch_storage
[oracle@19ctest .patch_storage]$ 

-- /u01目录剩余17G 

[oracle@19ctest .patch_storage]$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     4.3G     0  4.3G   0% /dev
tmpfs                        4.4G     0  4.4G   0% /dev/shm
tmpfs                        4.4G  8.8M  4.4G   1% /run
tmpfs                        4.4G     0  4.4G   0% /sys/fs/cgroup
/dev/mapper/ol_19cdg01-root   17G  4.1G   13G  24% /
/dev/sdc1                    120G   74G   47G  62% /oradata
/dev/sdd1                    120G   60G   61G  50% /arch
/dev/sda1                   1014M  169M  846M  17% /boot
/dev/sde1                    100G   24G   76G  24% /mysql
/dev/sdf1                    120G   47G   74G  39% /oradatapdb
/dev/sdb1                     40G   24G   17G  59% /u01
tmpfs                        883M     0  883M   0% /run/user/0
[oracle@19ctest .patch_storage]$ 

-- opatch clean的帮助,该命令清除.patch_storage directory文件夹下的'restore.sh,make.txt' files and 'scratch,backup' 

[oracle@19ctest ~]$ opatch util cleanup -help
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.DESCRIPTIONThis utility cleans up 'restore.sh,make.txt' files and 'scratch,backup' directories of the.patch_storage directory of Oracle Home.If -ps option is used, then, it cleans the above specified areas only for that patch, else for all patches under ORACLE_HOME/.patch_storage. You will be still able torollback patches after this cleanup.SYNTAX
opatch util cleanup  [-invPtrLoc <Path to oraInst.loc> ][-jre <LOC> ] [-oh <ORACLE_HOME> ][-silent] [-report][-ps <patch ID with time stamp>, this willbe located under ORACLE_HOME/.patch_storage/]OPTIONS   -invPtrLocUsed to locate the oraInst.loc file. Needed when theinstallation used the -invPtrLoc flag. This should bethe path to the oraInst.loc file.-jreThis option tells OPatch to use JRE (java) from thespecified location instead of the default locationunder Oracle Home. Both -jdk and -jre options cannotbe specified together. OPatch will display error inthat case.-ohThe oracle home to work on. This takes precedence overthe environment variable ORACLE_HOME.-psThis option is used to specify the Patch ID with timestamp.This Patch ID with timestamp should be the same as in.patch_storage directory.A directory by this name will be present underORACLE_HOME/.patch_storage. If this directory is specifiedand is valid, then the contents specified in the descriptionwill be cleaned up only for this patch. Otherwise, all patchrelated directories will be acted upon by this utility.-silent In silent mode, the cleanup always takes place.-report Prints the operations without actually executing them.OPatch succeeded.
[oracle@19ctest ~]$ 

-- 从清理过程看,会清理'restore.sh,make.txt' files and 'scratch,backup' directories.但仍然可以对补丁进行rollback 

[oracle@19ctest ~]$ opatch util cleanup
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.Oracle Home       : /u01/app/oracle/product/19.0.0/db_1
Central Inventory : /u01/app/oraInventoryfrom           : /u01/app/oracle/product/19.0.0/db_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2024-05-08_13-30-06PM_1.logInvoking utility "cleanup"
OPatch will clean up 'restore.sh,make.txt' files and 'scratch,backup' directories.
You will be still able to rollback patches after this cleanup.
Do you want to proceed? [y|n]
y
User Responded with: YBackup area for restore has been cleaned up. For a complete list of files/directories
deleted, Please refer log file.OPatch succeeded.
[oracle@19ctest ~]$ 

一些log 

[May 8, 2024 1:30:11 PM] [INFO]     [OPSR-MEMORY] Loaded all one offs from inventory. Heap memory in use: 29 (MB)
[May 8, 2024 1:30:11 PM] [INFO]     [OPSR-TIME] Raw inventory loaded successfully
[May 8, 2024 1:30:11 PM] [INFO]     Invoking utility "cleanup"
[May 8, 2024 1:30:11 PM] [INFO]     [OPSR-TIME] Cleaning up backup
[May 8, 2024 1:30:11 PM] [INFO]     OPatch will clean up 'restore.sh,make.txt' files and 'scratch,backup' directories.You will be still able to rollback patches after this cleanup.Do you want to proceed? [y|n]

-- 执行完毕后,貌似没有变化,可能和自己环境有关(19年开始测试补丁,基本上每个季度都测试,后面把又把数据库用RMAN做了迁移,又转换成了PDB模式)。

[oracle@19ctest ~]$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     4.3G     0  4.3G   0% /dev
tmpfs                        4.4G     0  4.4G   0% /dev/shm
tmpfs                        4.4G  8.8M  4.4G   1% /run
tmpfs                        4.4G     0  4.4G   0% /sys/fs/cgroup
/dev/mapper/ol_19cdg01-root   17G  4.1G   13G  24% /
/dev/sdc1                    120G   74G   47G  62% /oradata
/dev/sdd1                    120G   60G   61G  50% /arch
/dev/sda1                   1014M  169M  846M  17% /boot
/dev/sde1                    100G   24G   76G  24% /mysql
/dev/sdf1                    120G   47G   74G  39% /oradatapdb
/dev/sdb1                     40G   24G   17G  59% /u01
tmpfs                        883M     0  883M   0% /run/user/0
[oracle@19ctest ~]$ 

-- 也可能和log中的以下有关 

[oracle@19ctest db_1]$ tail -f /u01/app/oracle/product/19.0.0/db_1/cfgtoollogs/opatch/opatch2024-05-08_13-30-06PM_1.log
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     Cannot delete as either pathToBeDeleted is empty or it does not contain .patch_storage :
[May 8, 2024 1:30:59 PM] [INFO]     [OPSR-TIME] Loading cooked inventory

-- 查看到的补丁

SYS@cdbtest SQL> select comments from dba_registry_history;COMMENTS
--------------------------------------------------------------------------------
RDBMS_19.23.0.0.0DBRU_LINUX.X64_240405
Patch applied from 19.3.0.0.0 to 19.21.0.0.0: Release_Update - 230930151951
Patch applied from 19.21.0.0.0 to 19.22.0.0.0: Release_Update - 240104023954
Patch applied from 19.22.0.0.0 to 19.23.0.0.0: Release_Update - 240406004238SYS@cdbtest SQL> alter session set container =test;Session altered.SYS@cdbtest SQL> select comments from dba_registry_history;COMMENTS
--------------------------------------------------------------------------------
RDBMS_19.23.0.0.0DBRU_LINUX.X64_240405
Patch applied on 19.3.0.0.0: Release_Update - 190410122720
Patch applied from 19.3.0.0.0 to 19.5.0.0.0: Release_Update - 190909180549
Patch applied from 19.5.0.0.0 to 19.11.2.0.0: Release_Update_Revision - 21100717
1159RAN jvmpsu.sql
OJVM RU post-install
Patch rolled back from 19.11.2.0.0 to 19.11.0.0.0: Release_Update - 210413004009
Patch applied from 19.11.0.0.0 to 19.14.0.0.0: Release_Update - 211225122123
Patch applied from 19.14.0.0.0 to 19.15.0.0.0: Release_Update - 220331125408COMMENTS
--------------------------------------------------------------------------------
Patch applied from 19.15.0.0.0 to 19.17.0.0.0: Release_Update - 220924224051
Patch applied from 19.17.0.0.0 to 19.18.0.0.0: Release_Update - 230111171738
Patch applied on 19.18.0.0.0: Release_Update - 230111171738
Patch applied on 19.18.0.0.0: Release_Update - 230111171738
Patch applied from 19.18.0.0.0 to 19.19.0.0.0: Release_Update - 230322020406
Patch applied from 19.19.0.0.0 to 19.20.0.0.0: Release_Update - 230715022800
Patch applied from 19.20.0.0.0 to 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951COMMENTS
--------------------------------------------------------------------------------
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
OJVM RU post-deinstall
Patch applied on 19.21.0.0.0: Release_Update - 230930151951
Patch applied from 19.21.0.0.0 to 19.22.0.0.0: Release_Update - 240104023954
Patch applied from 19.22.0.0.0 to 19.23.0.0.0: Release_Update - 24040600423827 rows selected.SYS@cdbtest SQL> 

-- 也可以手工清除,官网上对于手工清除,是这样说明的 

Additionally, further cleanup of the $ORACLE_HOME/.patch_storage is possible if there are directories from patches applied to previous versions. This can be done manually as follows:

1.  run command:

$ opatch lsinventory

2.  Remove all the sub-directories from $ORACLE_HOME/.patch_storage that are not present in the list of installed patches. Directory names would be prefaced with the patchid for example:

13343438_<timestamp>

example to find sub-directories : $ opatch lsinventory | grep -E "(^Patch.*applied)|(^Sub-patch)"

Note: List of patches include the sub patches of install Bundle patches, PSU, GI PSU.  Hence you should NOT remove the sub patch folders.

[oracle@19ctest ~]$ opatch lsinventory | grep -E "(^Patch.*applied)|(^Sub-patch)"
Patch  36233263     : applied on Fri Apr 19 08:54:31 CST 2024
Patch  29585399     : applied on Thu Apr 18 15:21:33 CST 2019
[oracle@19ctest ~]$ 

-- 手工清理掉

rm -rf  29517242_Apr_17_2019_23_27_10
rm -rf  35042068_Apr_6_2023_15_25_04
rm -rf  35320081_Jul_15_2023_12_54_11
rm -rf  35643107_Oct_3_2023_13_34_29
rm -rf  35943157_Jan_13_2024_05_42_55

--清理后空间,剩余25G 

[oracle@19ctest .patch_storage]$ df -h
Filesystem                   Size  Used Avail Use% Mounted on
devtmpfs                     4.3G     0  4.3G   0% /dev
tmpfs                        4.4G     0  4.4G   0% /dev/shm
tmpfs                        4.4G  8.8M  4.4G   1% /run
tmpfs                        4.4G     0  4.4G   0% /sys/fs/cgroup
/dev/mapper/ol_19cdg01-root   17G  4.1G   13G  24% /
/dev/sdc1                    120G   74G   47G  62% /oradata
/dev/sdd1                    120G   60G   61G  50% /arch
/dev/sda1                   1014M  169M  846M  17% /boot
/dev/sde1                    100G   24G   76G  24% /mysql
/dev/sdf1                    120G   47G   74G  39% /oradatapdb
/dev/sdb1                     40G   16G   25G  39% /u01
tmpfs                        883M     0  883M   0% /run/user/0
[oracle@19ctest .patch_storage]$ 

END

相关文章:

Oracle Patch清理

场景&#xff1a; 在对Oracle安装补丁后&#xff0c;会发现OS上被占用了大量的空间&#xff0c;本文档清理Opatch过程中的一些文件&#xff0c;释放空间 参考文档&#xff1a; Can You Delete $ORACLE_HOME/.patch_storage Directory ? (Doc ID 403218.1) How To Avoid Disk …...

Redis-三主三从高可用集群搭建

正式搭建之前&#xff0c;注意事项&#xff08;坑&#xff09;提前放到最开始&#xff0c;也可以出问题回来看&#xff0c; &#xff08;1&#xff09;第二步中最好将配置文件中的logfile自定义一个目录&#xff0c;以便于在第五步中启动出错的时候迅速定位错误。 &#xff0…...

ImageMagick

Linux 安装 sudo apt install php8.2-imagick Windows 安装 下载 ImageMagick ImageMagick – Download 安装并将 D:\Program Files\ImageMagick-7.1.1-Q16-HDRI 加入到系统环境变量 path 中&#xff0c; 或者将 CORE_RL_*.dll 复制到 c:\windows\system32 下 下载 php 扩展…...

攻防世界-web-command_execution

题目&#xff1a; 原理&#xff1a; | 的作用为将前一个命令的结果传递给后一个命令作为输入 &&的作用是前一条命令执行成功时&#xff0c;才执行后一条命令 方法一&#xff1a; 第一步&#xff1a; 1.打开浏览器&#xff0c;在文本框内输入127.0.0.1 | find / -name…...

go语言自定义排序接口Interface实现示例 sort.Sort(data Interface) 快速排序 pdqsort

go语言sort.Sort(data Interface) 排序接口自定义排序实现&#xff0c;golang里面的sort包中的Sort方法底层使用的是 pdqsort的一个快速排序算法&#xff0c; 我们可以将要排序的对象实现Interface接口后直接丢个这个函数即可自动按照我们指定的方式进行数据快速排序。 sort函…...

RIP动态路由协议详解

目录 一&#xff1a;RIP协议的基本信息 二&#xff1a;RIP协议中的更新方式 三&#xff1a;RIP协议中的计时器 定时更新器&#xff08;UPDATE timer&#xff09; 无效定时器&#xff08;invalid Timer&#xff09; 垃圾收集定时器&#xff08;garbage collection timer&a…...

ROS2 安装与测试

文章目录 ROS2 安装与测试ROS2 安装1. 设置编码2. 添加源3. 安装 ROS24. 设置环境变量 ROS2 示例测试实例一&#xff1a;命令行实例实例二&#xff1a;小海龟仿真实例 参考链接 ROS2 安装与测试 ROS2 安装 基于 Ubuntu 22.04 LTS 操作系统。 1. 设置编码 sudo apt update &…...

MySQL数据分组技术深度解析及实践

在处理大量数据库记录时,数据分组是一种强大的工具,它允许我们按照特定列的值将数据划分为逻辑上的集合,进而对每个集合执行聚合操作,如计数、求和或平均值等。MySQL中的​​GROUP BY​​​子句正是实现这一功能的关键所在。本文将详细介绍​​GROUP BY​​的使用方法,结合…...

【敦煌网注册/登录安全分析报告】

敦煌网注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大…...

Python读取ASC文件并转换成Excel文件(坐标)

import pandas as pd# 读取asc文件&#xff0c;指定空格为分隔符 df pd.read_csv(out_view2.asc, sep , headerNone)# 去掉空列 df df.dropna(howall, axis1)# 将数据保存到Excel文件 df.to_excel(out_view2.xlsx, indexFalse, headerFalse)效果图...

Rust 的 Warp 库编写的 restful api 参数传递与解析方法

Warp是一个用 Rust 编写的流行的异步 web 框架。在使用 warp 构建 RESTful API 时&#xff0c;可以通过多种方式传递参数到你的处理函数中。 以下是一些常见的方法&#xff0c;说明如何在 warp 中传递参数&#xff1a; 路径参数&#xff1a; 你可以使用 warp::path 和 warp::…...

关不掉的弹窗

这里分两种方式 第一种 #include<Windows.h> int main(){system("mode 15,14");while(1){MessageBox(NULL,TEXT("关不掉吧!"),TEXT("中病毒啦~~你这个SB!"),MB_OK);}} 实际上不是关不掉&#xff0c;而是关不完 解决方法&#xff1a;找…...

【JVM】类加载机制及双亲委派模型

目录 一、类加载过程 1. 加载 2. 连接 a. 验证 b. 准备 c. 解析 3. 初始化 二、双亲委派模型 类加载器 双亲委派模型的工作过程 双亲委派模型的优点 一、类加载过程 JVM的类加载机制是JVM在运行时&#xff0c;将 .class 文件加载到内存中并转换为Java类的过程。它…...

WordPress插件:链接自动识别转为超链接

WordPress插件&#xff1a;链接自动识别转为超链接 <?phpfunction open_links_in_new_tab() {add_filter(the_content, make_clickable);function autoblank($text) {$return str_replace(<a, <a target"_blank", $text);return $return;}add_filter(th…...

Java----数组的定义和使用

1.数组的定义 在Java中&#xff0c;数组是一种相同数据类型的集合。数组在内存中是一段连续的空间。 2.数组的创建和初始化 2.1数组的创建 在Java中&#xff0c;数组创建的形式与C语言又所不同。 Java中数组创建的形式 T[] 数组名 new T[N]; 1.T表示数组存放的数据类型…...

【C++】-QT多线程-006

1【QT】多线程 #ifndef MYWIDGET_H #define MYWIDGET_H#include <QWidget>namespace Ui { class MyWidget; }class MyWidget : public QWidget {Q_OBJECTpublic:explicit MyWidget(QWidget *parent 0);~MyWidget();/* 5 自定义信号*/ /*所有的信号函数只声明不定义&…...

vscode go语言开发中在任意包运行和调试代码 Example使用方法

一般情况下我们在进行go语言开发的时候我们都需要创建一个main方法和main包才能运行go代码&#xff0c; 针对这个问题&#xff0c;go语言给我们内置了功能强大的testing测试框架&#xff0c; 其中一个很有意思的Example测试就非常的方便使用。 他不管你在什么包&#xff0c;也…...

数据库查询--条件查询

目录 1.关系运算条件的查询 2.逻辑运算符条件的查询 3.带关键字IN的查询 4.带BETWEEN AND关键字的查询 5.空值查询 6.带LIKE关键字的模糊查询 1.关系运算条件的查询 在SELECT语句中&#xff0c;最常见的是使用WHERE字句指定关系运算条件对数据进行过滤。 语法格式&#x…...

用 Python 和 AkShare 进行个股数据清洗:源码剖析和建议优化

这是《个股清洗源码》一个获取股票买卖盘信息并将其打印到控制台并保存到文件的脚本。 下面我们来对源码进行剖析 先复习一下源码 import os import akshare as ak from akshare import stock_bid_ask_em from datetime import datetime import pandas as pd from io import …...

颍川诞生了两个帝王的仲父

伯、仲、叔、季是古代兄弟的长幼排行顺序&#xff0c;《释名释亲属》载&#xff1a;“父之弟曰仲父……仲父之弟曰叔父”。也就是古代称父亲的兄弟为仲父&#xff0c;多用于帝王对宰相重臣的尊称。 历史上最有名的、有正史记载的帝王“仲父”有两位&#xff0c;而且都出自颍川…...

避免图片失效!UEditor/NEditor远程图片抓取与OSS存储实战

避免图片失效&#xff01;UEditor/NEditor远程图片抓取与OSS存储实战 在内容管理系统&#xff08;CMS&#xff09;的开发中&#xff0c;富文本编辑器是不可或缺的核心组件。UEditor和NEditor作为国内广泛使用的富文本解决方案&#xff0c;其远程图片抓取功能对于保障内容持久性…...

AMD显卡也能玩转GPU编程?ROCm环境搭建与OpenCL入门避坑指南

AMD显卡也能玩转GPU编程&#xff1f;ROCm环境搭建与OpenCL入门避坑指南 在GPU计算领域&#xff0c;NVIDIA的CUDA生态长期占据主导地位&#xff0c;但AMD显卡用户同样拥有强大的并行计算选择。本文将带你探索AMD ROCm平台的完整搭建流程&#xff0c;并深入OpenCL编程的核心技巧&…...

【高精度气象】预报误差不是技术小问题,而是2026新能源企业利润表里的隐形黑洞

当一场风速预测偏差让电厂在现货市场中多交千万罚金&#xff0c;当一次辐照度低估导致交易策略全盘错配——气象误差&#xff0c;正在从“技术指标”变成“财务黑洞”。2026年3月&#xff0c;一份来自陕西能源气象服务的最新数据显示&#xff0c;基于AI模型的风电场功率预测偏差…...

HPE DL380 Gen10安装RedHat 7.9全流程:从VROC驱动配置到系统引导避坑指南

HPE DL380 Gen10企业级部署实战&#xff1a;RedHat 7.9与VROC驱动深度适配指南 在企业级IT基础设施中&#xff0c;HPE ProLiant DL380 Gen10服务器以其卓越的可靠性和扩展性成为关键业务负载的首选平台。当这类高性能硬件遇上RedHat Enterprise Linux 7.9这一经典企业级操作系统…...

Anaconda3重装避雷指南:Win11系统这些配置不删干净等于白装(2024实测)

Anaconda3重装避雷指南&#xff1a;Win11系统深度清理实战手册 为什么你的Anaconda重装总失败&#xff1f; 每次重装Anaconda后&#xff0c;那些熟悉的报错信息又阴魂不散地出现&#xff1f;"明明已经卸载干净了"——这是大多数数据科学从业者最常发出的困惑。实际上…...

从DEM到决策:如何用QGIS分析河北地形,为生态保护与项目选址提供依据?

从DEM到决策&#xff1a;QGIS地形分析在河北生态保护与项目选址中的实战指南 河北省复杂的地形地貌为各类生态保护和工程项目带来了独特挑战。作为华北地区生态屏障与经济发展的重要区域&#xff0c;如何科学评估地形特征直接影响着规划决策的质量。本文将带您用QGIS这一开源工…...

Elk优雅错误处理:10个用户友好提示与降级机制详解

Elk优雅错误处理&#xff1a;10个用户友好提示与降级机制详解 【免费下载链接】elk A nimble Mastodon web client 项目地址: https://gitcode.com/gh_mirrors/el/elk Elk作为一款轻量级的Mastodon网页客户端&#xff0c;以其流畅的用户体验和高效的错误处理机制备受用户…...

MinerU效果展示:精准识别表格数据,财务报告一键解析

MinerU效果展示&#xff1a;精准识别表格数据&#xff0c;财务报告一键解析 1. 引言&#xff1a;当AI遇见财务报表 想象一下&#xff0c;你是一名财务分析师&#xff0c;面前堆着几十份上市公司最新发布的PDF财报。你需要从中快速提取近三年的营收、利润、现金流等关键数据&a…...

SYSTEM表空间自动增长却报ORA-01658?Oracle19C表空间管理的那些坑

Oracle 19C SYSTEM表空间自动增长失效的深度解析与实战指南 引言 在Oracle数据库管理中&#xff0c;SYSTEM表空间扮演着核心角色&#xff0c;它存储着数据字典、系统存储过程等关键元数据。然而&#xff0c;许多DBA在实际工作中都遇到过这样的困惑&#xff1a;明明设置了AUTOEX…...

GESP5级C++考试语法知识(十一、递归算法(一))

&#x1f31f; 第一章&#xff1a;什么是递归&#xff1f;&#xff08;“套娃小精灵”的故事&#xff09;1、&#x1f3af; 想象一个魔法世界&#xff1a;有一个小精灵&#xff0c;它不会做复杂的事情&#xff0c;但它有一个绝招&#xff1a;&#x1f449; 遇到问题&#xff0c…...