Oracle Log4j 漏洞修复及 AHF 的简单使用

3df9159e72e4cbba17d3052b8ff44e19.gif

作者 | JiekeXu

来源 |公众号 JiekeXu DBA之路(ID: JiekeXu_IT)

如需转载请联系授权 | (个人微信 ID:JiekeXu_DBA)

大家好,我是 JiekeXu,很高兴又和大家见面了,今天和大家一起来看看 Oracle Log4j 漏洞修复及 AHF 的简单使用 ,欢迎点击上方蓝字“JiekeXu DBA之路”关注我的公众号,标星或置顶,更多干货第一时间到达!

Log4j 简介  

Apache Log4j 是一款开源的 Java 日志框架,被广泛地应用在中间件、开发框架与 Web 应用中,用来记录日志信息。

漏洞描述:

1. CVE-2021-44228,Apache Log4j 远程代码执行漏洞:

2.0-beta9 <= Apache Log4j 2.x < 2.15.0,该漏洞利用难度低,严重 程度高,影响面非常大。

2. CVE-2021-45046,Apache Log4j 拒绝服务与远程代码执行漏洞:2.0-beta9 <= Apache Log4j 2.x < 2.15.0。

3. CVE-2021-4104,ApacheLog4j 1.2 JMSAppender 远程代码执行漏洞:Apache Log4j = 1.2。

4. CVE-2021-45105,Apache Log4j2 拒绝服务漏洞:2.0-beta9 <= Apache Log4j <= 2.16.0。

5. CVE-2021-44832,JDBCAppender 代码执行漏洞:2.0-beta7 <= Apache Log4j <= 2.17.0(注:只有 log4j-core jar 文件受此漏洞影响)。

受影响版本  

2.0 <= Apache Log4j 2.x <= 2.17.0。

不受影响版本

Apache Log4j 2.17.1 及以上版本(支持 Java 8 及以上)

Apache Log4j 2.12.4(支持 Java 7)

Apache Log4j 2.3.2(支持 Java 6)

排查方法  

检查是否使用 log4j,find / -name log4j*.jar

(1)、检查部署包、部署环境中是否存在 log4j-core-2.x.jar 包,查看版本

META-INF/MANIFEST.MF 文件下的 Implementation-Version 属性值。

(2)、对于第三方包,Java JAR 解压后是否存在 org/apache/logging/log4j 相关路径结构,判断是否使用了存在漏洞的组件,若使用了,则极可能存在该漏洞。

(3)、针对源码工程,查看依赖,查看是否存在 org.apache.logging.log4j 的 log4j-core。

(4)、开源漏扫部署包。

修复建议  

1) 安全版本

JDK8 及以上环境:升级到高阶版本:

目前官方发布的 Apache log4j 2.17.1 及以上版本已修复上述漏洞。

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.17.1

JDK7 环境:升级至 Apache Log4j 2.12.4

JDK6 环境:升级至 Apache Log4j 2.3.2

         fb6958755cb45f684ae3192904092ea7.png

2) 缓释措施

针对最严重的 CVE-2021-44228 漏洞,

在无法升级情况下,采用缓解措施:

(1)添加 jvm 启动参数 -Dlog4j2.formatMsgNoLookups=true

(2)在应用程序的 classpath 下添加 log4j2.component.properties 配置文件,文件内容:log4j2.formatMsgNoLookups=True

(3)移除 log4j-core 包中 JndiLookup 类文件,并重启服务,具体命令:

zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

接下来我们看数据库中 log4j 漏洞都存在那些地方,我们 find 查找一下。

[root@test19crac1 ~]# find /u01 -name log4j*.jar
/u01/app/19c/grid/suptools/tfa/release/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/19c/grid/suptools/tfa/release/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/19c/grid/tfa/test19crac1/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/19c/grid/tfa/test19crac1/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/oracle/product/19c/db_1/suptools/tfa/release/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/oracle/product/19c/db_1/suptools/tfa/release/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-jcl-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-slf4j-impl-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.11.0.jar

de4e87c62de30b27fee4145f19a473b9.png

17dbec0751889cfa33c6ac9da4e06927.png

如下所示,数据库没有打任何补丁,DB 版本为 19.3,而 log4j 版本有两个,一个为 TFA 所用的 2.9.1 版本,另一个为数据库实例目录下 2.11.0 的版本。

[oracle@test19crac2 ~]$ $ORACLE_HOME/OPatch/opatch version
OPatch Version: 12.2.0.1.17
          
OPatch succeeded.
[oracle@test19crac2 ~]$ $ORACLE_HOME/OPatch/opatch lspatches
29585399;OCW RELEASE UPDATE 19.3.0.0.0 (29585399)
29517242;Database Release Update : 19.3.0.0.190416 (29517242)
          
OPatch succeeded.

然后可以发现,在 grid 的家目录下 suptools 目录中同时存在 orachk、oratop、tfa 三种监控检查工具。

[root@test19crac1 suptools]# cd /u01/app/19c/grid/suptools
[root@test19crac1 suptools]# ls
orachk  oratop  tfa

81b41355a6ae624c6c48667f35909dab.png

如果我们的数据库打了补丁,这里以 19c RAC 为例,11g 环境请自行测试。如果补丁版本过低,那么 GI 目录下的 log4j 已经不存在了,但是 AHF 框架下还存在 2.13.3 版本的受影响的 AHF,那么这种情况下可以采取继续更新高版本的 19c RU15-RU20 均可,也可以单独升级 AHF,后文有讲到如何升级。

859e7c5b5710ba8278bbe73ddddc65e5.png

3628338fb0ca97a733ecd551c18183c9.png

那么,单机文件系统的Oracle 19c 呢(19.3 未打补丁的情况),在 tfa_home 目录下同样存在log4j-core-2.9.1.jar 受影响的版本,生产环境建议打补丁,补丁升级到 RU19.12 或 RU19.15 以上版本,单机环境补丁更新停机时间也就三十多分钟的样子,具体补丁升级方法可参考我以前写的文章:《RU15补丁更新》。当然你也可以尝试下载高版本的 log4j 文件通过软链接的形式来替换,下文中同样有讲到,你可以在测试环境中自行测试。

/u01/app/oracle/product/19.0.0/dbhome_1/suptools/tfa/release/tfa_home/jlib

下面我们来插播一下 TFA 的简单使用情况。

TFA 使用简介  

查看 TFA:Trace File Analyzer 状态和版本。

d441aee0dd271e85a1898e3559efa1bc.png

TFA 更多帮助命令

[grid@test19crac2 ~]$ tfactl --help
WARNING - TFA Software is older than 180 days. Please consider upgrading TFA to the latest version.
Unknown option: -help
          
Usage : /u01/app/19c/grid/bin/tfactl[options]
    commands:diagcollect|collection|analyze|ips|run|start|stop|print|directory|toolstatus|setupmos|upload|events|search|changes
For detailed help on each command use:
  /u01/app/19c/grid/bin/tfactl           -help
          
tfactl>

由此可以发现 tfactl 命令可以 |start|stop|print |toolstatus 等操作。

3bd42e8b530f8bb3191fff6c2745c961.png

删除 180 天以前的自动诊断存储库日志和跟踪文件,参数 dryrun 先预估要删除的文件和释放的空间,然后去掉参数 dryrun 在执行删除。

/u01/app/19c/grid/bin/tfactl managelogs -purge -older 180d -dryrun

当然也可以按照 gi 和 database 分别删除

$ tfactl managelogs -purge -older 30d
$ tfactl managelogs -purge -older 30d –gi
$ tfactl managelogs -purge -older 30d -database

查看目录使用情况

$ tfactl managelogs -show usage
$ tfactl managelogs -show usage –gi
$ tfactl managelogs -show usage -database

052c7f4a301177a1e91521e368c4719a.png

/u01/app/19c/grid/bin/tfactl managelogs -purge -older 30d -gi
/u01/app/19c/grid/bin/tfactl managelogs -show usage -gi

b562e4cd9f136c77451e42b937c388ae.png

TFA 的更多实用操作请查看官方文档,这里不在演示了。

86f67f7fa9b465b31e3ec3a4b9f9b246.png

参考文档:https://docs.oracle.com/en/engineered-systems/health-diagnostics/autonomous-health-framework/ahfug/managing-and-configuring-tfa.html#GUID-CBF85753-9DCC-48BC-AA83-5CA2982ED0EB

TFA 升级  

下载最新的 AHF (Autonomous Health Framework) Oracle自治运行状况框架,在 19c 后来的版本中,官方建议使用 AHF 来代替TFA 框架,所以这里我们直接下载最新的 AHF,MOS 文档Doc ID:1513912.1 可以下载,也可本公众号后台回复【AHF】获取此软件包。

e29a655bb14c5999381f61748246fb00.png

1)上传此软件包到服务器 RAC1并解压

unzip AHF-LINUX_v23.6.0.zip -d AHF_23.6

505f06f1015924f4b5d8c5d28fc385bf.png

2)安装AHF

官方文档附录中给出了安装命令,我们可以参考,指定相关参数运行,也可以直接运行ahf_setup 命令(升级同样也是运行此命令),仅在节点1运行即可,安装或升级过程中需要输入节点 2 root 密码。

96ded08ecdfa55afaa2218c0b419442a.png

./ahf_setup
[-ahf_loc AHF Location]
[-data_dir AHF Repository]
[-nodes node1,node2]
[-extract[orachk|exachk|-notfasetup]]
[-force]
[-local]
[-silent]
[-tmp_loc directory]
[-debug [-level 1-6]]

55b0fef418ce348e5b0d5892df674f56.png

308bd8c41210229e48f97292a886c927.png

[root@test19crac1 AHF_23.6]# ./ahf_setup        
AHF Installer for Platform Linux Architecture x86_64          
AHF Installation Log : /tmp/ahf_install_236000_26649_2023_07_31-10_51_26.log         
Starting Autonomous Health Framework (AHF) Installation       
AHF Version: 23.6.0 Build Date: 202306301433        
TFA is already installed at : /u01/app/19c/grid/tfa/test19crac1/tfa_home        
Installed TFA Version : 183300 Build ID : 20190315044534         
Default AHF Location : /opt/oracle.ahf         
Do you want to install AHF at [/opt/oracle.ahf] ? [Y]|N : Y
AHF Location : /opt/oracle.ahf       
AHF Data Directory stores diagnostic collections and metadata.
AHF Data Directory requires at least 5GB (Recommended 10GB) of free space.         
Choose Data Directory from below options :      
1. /u01/app/grid [Free Space : 5701 MB]
2. Enter a different Location      
Choose Option [1 - 2] : 1       
AHF Data Directory : /u01/app/grid/oracle.ahf/data        
Shutting down TFA : /u01/app/19c/grid/tfa/test19crac1/tfa_home       


Copying TFA Data Files from /u01/app/19c/grid/tfa/test19crac1/tfa_home
          
Uninstalling TFA : /u01/app/19c/grid/tfa/test19crac1/tfa_home
          
Do you want to add AHF Notification Email IDs ? [Y]|N : N
          
AHF will also be installed/upgraded on these Cluster Nodes :        


1. test19crac2
          
The AHF Location and AHF Data Directory must exist on the above nodes
AHF Location : /opt/oracle.ahf
AHF Data Directory : /u01/app/grid/oracle.ahf/data
          
Do you want to install/upgrade AHF on Cluster Nodes ? [Y]|N : Y
          
Extracting AHF to /opt/oracle.ahf
          
Configuring TFA Services       


Copying TFA Data Files to AHF
          
Discovering Nodes and Oracle Resources
          
Starting TFA Services
Created symlink from /etc/systemd/system/multi-user.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service.
Created symlink from /etc/systemd/system/graphical.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service.
          
.--------------------------------------------------------------------------------.
| Host        | Status of TFA | PID   | Port | Version    | Build ID             |
+-------------+---------------+-------+------+------------+----------------------+
| test19crac1 | RUNNING       | 34212 | 5000 | 23.6.0.0.0 | 23600020230630143300 |
| test19crac2 | RUNNING       | 10468 | 5000 | 18.3.3.0.0 | 18330020190315044534 |
'-------------+---------------+-------+------+------------+----------------------'        


Running TFA Inventory...       
Adding default users to TFA Access list...       
.------------------------------------------------------------------.
|                   Summary of AHF Configuration                   |
+-----------------+------------------------------------------------+
| Parameter       | Value                                          |
+-----------------+------------------------------------------------+
| AHF Location    | /opt/oracle.ahf                                |
| TFA Location    | /opt/oracle.ahf/tfa                            |
| Orachk Location | /opt/oracle.ahf/orachk                         |
| Data Directory  | /u01/app/grid/oracle.ahf/data                  |
| Repository      | /u01/app/grid/oracle.ahf/data/repository       |
| Diag Directory  | /u01/app/grid/oracle.ahf/data/test19crac1/diag |
'-----------------+------------------------------------------------'
          
Starting Orachk Scheduler from AHF          
Setting up AHF CLI and SDK          
AHF install completed on test19crac1          
Installing AHF on Remote Nodes :
         
AHF will be installed on test19crac2, Please wait.          
AHF will prompt twice to install/upgrade per Remote Node. So total 2 prompts
          
Do you want to continue Y|[N] : Y
          
AHF will continue with Installing on remote nodes
          
Installing AHF on test19crac2 :
          
[test19crac2] Copying AHF Installer
root@test19crac2's password:         
[test19crac2] Running AHF Installer
root@test19crac2's password:         
AHF binaries are available in /opt/oracle.ahf/bin         
AHF is successfully installed          
Do you want AHF to store your My Oracle Support Credentials for Automatic Upload ? Y|[N] : N       
Moving /tmp/ahf_install_236000_26649_2023_07_31-10_51_26.log to /u01/app/grid/oracle.ahf/data/test19crac1/diag/ahf/          
[root@test19crac1 AHF_23.6]#

3)检查版本

[root@test19crac1 AHF_23.6]# ahfctl version
[root@test19crac1 AHF_23.6]# tfactl version
[root@test19crac1 AHF_23.6]# tfactl status

a5ed2ecf72d5a7e802bfb89bfceb3de6.png

4)删除 grid 用户下家目录 suptools 下所有的 log4j*.jar(如果存在)

fe530b91dc45baf6f1e3a885e61fcd75.png

我这里 grid 下的 log4j 已经被自动删除了,如果还存在,可以手动删除。/opt 显示的 log4j-core.jar 已经是符合要求的版本了,至于 db目录 property_graph 下的这个需要打补丁,然后会自动删除这个文件。这里我做一个大胆的尝试,直接删除这个文件然后重启主机,看看数据库能不能正常启动(PS:生产环境不建议这么玩,推荐 RU 补丁更新),当然也可以删除这两个文件后使用高版本的 log4j-core 对其做一个软链接指向低版本的 log4j。  

#cp /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j* /home/oracle
#rm -rf /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.11.0.jar
#rm -rf /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.11.0.jar
#cp /opt/oracle.ahf/common/jlib/log4j-api-2.17.1.jar /u01/app/oracle/product/19c/db_1/md/property_graph/lib/
#cp /opt/oracle.ahf/common/jlib/log4j-core-2.17.1.jar /u01/app/oracle/product/19c/db_1/md/property_graph/lib/
#chown oracle:oinstall /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j*
#su - oracle
$ ln -s /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.17.1.jar log4j-core-2.11.0.jar
$ ln -s /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.17.1.jar log4j-api-2.11.0.jar




#reboot

6a7c2158884b55a6dc876ff777ecc15f.png

51ce5dba4dede9f1956f3c72ac94e33e.png

重启后检查数据库状态,这里数据库一切正常。

8a6280adf45f374340ad9d639cd59b30.png

AHF 卸载 

使用 root 用户或者安装者用户执行 tfactl 或 ahfctl uninstall命令卸载,首先要停止 ORAchk,然后停止 TFA,最后删除 AHF 安装目录 /opt/oracle.ahf。

Running the command:

Stops Oracle ORAchk

Stops Oracle Trace File Analyzer

Deletes the Oracle Autonomous Health Framework installation directory

ahfctl uninstall -deleterepo -silent

AHF 常用命令  

ahfctl statusahf -all
ahfctl showrepo -all

52ac93ceaf851de7c321e68f65297605.png

获取 CPU 内存资源限制

ahfctl getresourcelimit

限制 CPU 核数为 2

ahfctl setresourcelimit -value 2

限制内存使用 500M

ahfctl setresourcelimit -resource kmem -value 500

限制内存和 SWAP内存总和为 1024M

ahfctl setresourcelimit -resource swmem -value 1024

分析所有错误信息(包括数据库 ORA错误和 GI错误)

tfactl analyze -type error

同样,也可以使用 tfactl 来清理诊断日志

tfactl purge -older 30d

e3ba715b763b30bd2d0a27753ec1ae07.png

更多使用命令请查看官方文档,这里不在演示。

OGG log4j 漏洞 

最后,花一点儿时间来简单说一下 OGG log4j 漏洞,正常 ogg19c 以上版本中是不存在此漏洞的,但我这里还有Oracle GoldenGate for Big Data Version 12.3.2.1.1 的版本,此版本同样使用了 log4j-core-2.9.1.jar 的包。同样解决此漏洞可以打补丁,也可以升级 OGG 更可以使用高版本的OGG,只不过这三种办法均不常用,一般也很少有人使用,我这里大胆一些,在测试环境中我直接删除了 log4j-core-2.9.1.jar 这个包,服务均可正常使用,安全稳定运行一年多时间,生产环境中我使用高版本软链接的方式替换这个包,也已经安全稳定运行一周了。如下是操作过程:

[root@cs-ogg lib]# cd /goldengate/ggjava/resources/lib/optional
[root@cs-ogg optional]# ll log*
-rwxr-xr-x 1 oracle oracle  239856 5月   1 2018 log4j-api-2.9.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5月   1 2018 log4j-core-2.9.1.jar
-rwxr-xr-x 1 oracle oracle   23153 5月   1 2018 log4j-slf4j-impl-2.9.1.jar
[root@cs-ogg lib]# su - oracle
[oracle@cs-ogg optional]$ cd /goldengate/ggjava/resources/lib/optional/
[oracle@cs-ogg optional]$ mv log4j-core-2.9.1.jar log4j-core-2.9.1.jar_bak20230728
[oracle@cs-ogg optional]$ ln -s /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar log4j-core-2.9.1.jar
[oracle@cs-ogg optional]$ ll
总用量 3560
-rwxr-xr-x 1 oracle oracle  239856 5月   1 2018 log4j-api-2.9.1.jar
-rw-r--r-- 1 oracle oracle 1770490 3月   9 2022 log4j-core-2.17.1.jar
lrwxrwxrwx 1 oracle oracle      63 7月  28 16:00 log4j-core-2.9.1.jar -> /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5月   1 2018 log4j-core-2.9.1.jar_bak20230728
-rwxr-xr-x 1 oracle oracle   23153 5月   1 2018 log4j-slf4j-impl-2.9.1.jar
drwxr-xr-x 2 oracle oracle      32 7月  14 2018 logback
-rwxr-xr-x 1 oracle oracle    6983 5月   1 2018 slf4j-jcl-1.7.25.jar
-rwxr-xr-x 1 oracle oracle    8460 5月   1 2018 slf4j-jdk14-1.7.25.jar
-rwxr-xr-x 1 oracle oracle   12244 5月   1 2018 slf4j-log4j12-1.7.25.jar
-rwxr-xr-x 1 oracle oracle    4007 5月   1 2018 slf4j-nop-1.7.25.jar
-rwxr-xr-x 1 oracle oracle   15257 5月   1 2018 slf4j-simple-1.7.25.jar
[oracle@cs-ogg optional]$ chmod a+x log4j-core-2.17.1.jar
[oracle@cs-ogg optional]$ ll
总用量 3560
-rwxr-xr-x 1 oracle oracle  239856 5月   1 2018 log4j-api-2.9.1.jar
-rwxr-xr-x 1 oracle oracle 1770490 3月   9 2022 log4j-core-2.17.1.jar
lrwxrwxrwx 1 oracle oracle      63 7月  28 16:00 log4j-core-2.9.1.jar -> /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5月   1 2018 log4j-core-2.9.1.jar_bak20230728
-rwxr-xr-x 1 oracle oracle   23153 5月   1 2018 log4j-slf4j-impl-2.9.1.jar
drwxr-xr-x 2 oracle oracle      32 7月  14 2018 logback
-rwxr-xr-x 1 oracle oracle    6983 5月   1 2018 slf4j-jcl-1.7.25.jar
-rwxr-xr-x 1 oracle oracle    8460 5月   1 2018 slf4j-jdk14-1.7.25.jar
-rwxr-xr-x 1 oracle oracle   12244 5月   1 2018 slf4j-log4j12-1.7.25.jar
-rwxr-xr-x 1 oracle oracle    4007 5月   1 2018 slf4j-nop-1.7.25.jar
-rwxr-xr-x 1 oracle oracle   15257 5月   1 2018 slf4j-simple-1.7.25.jar
[oracle@cs-ogg goldengate]$ ./ggsci
          
Oracle GoldenGate for Big Data
Version 12.3.2.1.1 (Build 005)
          
Oracle GoldenGate Command Interpreter
Version 12.3.0.1.2 OGGCORE_OGGADP.12.3.0.1.2_PLATFORMS_180712.2305
Linux, x64, 64bit (optimized), Generic on Jul 13 2018 00:46:09
Operating system character set identified as UTF-8.        


Copyright (C) 1995, 2018, Oracle and/or its affiliates. All rights reserved.
          
GGSCI (cs-ogg) 1> stop *
GGSCI (cs-ogg) 2> sart *
GGSCI (cs-ogg) 3> info all
          
Program     Status      Group       Lag at Chkpt  Time Since Chkpt        


MANAGER     RUNNING                                          
REPLICAT    RUNNING     REP01       00:00:13      00:00:01      
REPLICAT    RUNNING     REP02       00:00:00      00:00:09

全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【JiekeXu DBA之路】,第一时间一起学习新知识!以下三个地址可以找到我,其他地址都属于盗版侵权爬取我的文章,而且代码格式、图片等均有错乱,不方便阅读,欢迎来我公众号或者墨天轮地址关注我,第一时间收获最新消息。

欢迎关注我的公众号【JiekeXu DBA之路】,第一时间一起学习新知识!

————————————————————————————
公众号:JiekeXu DBA之路
CSDN :https://blog.csdn.net/JiekeXu
墨天轮:https://www.modb.pro/u/4347
————————————————————————————

ce782d84f719b4a716f13ec6b8ca1b85.gif

分享几个数据库备份脚本

Oracle 表碎片检查及整理方案

OGG|Oracle GoldenGate 基础2022 年公众号历史文章合集整理
 
  

Oracle 19c RAC 遇到的几个问题

OGG|Oracle 数据迁移后比对一致性

OGG|Oracle GoldenGate 微服务架构

Oracle 查询表空间使用率超慢问题一则

国产数据库|TiDB 5.4 单机快速安装初体验

Oracle ADG 备库停启维护流程及增量恢复

Linux 环境搭建 MySQL8.0.28 主从同步环境

从国产数据库调研报告中你都能了解哪些信息及我的总结建议

df6c24ac6af21314afb2b85c617ccb0c.png

猜你喜欢

转载自blog.csdn.net/JiekeXu/article/details/132033497