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

升级Oracle 单实例数据库19.3到19.22

需求

我的Oracle Database Vagrant Box初始版本为19.3,需要升级到最新的RU,当前为19.22。

以下操作时间为为2024年2月5日。

补丁下载

补丁下载文档参见MOS文档:Primary Note for Database Proactive Patch Program (Doc ID 888.1)。

补丁安装文档参见文档(链接在下载页面中):Patch 35943157 - Database Release Update 19.22.0.0.240116

也可以从MOS的“Patch & Updates”标签页中下载:
在这里插入图片描述
结果中的Patch 35943157即我们需要的:
在这里插入图片描述

停止数据库和监听

断开所有与数据库的连接,如应用,如管理客户端(Oracle EM, SQL Developer等)。

停止数据库:

shutdown immediate

停止监听:

lsnrctl stop

备份Oracle Home

参考MOS文档: How to Perform ORACLE_HOME Backup? (Doc ID 565017.1)

以oracle用户执行以下脚本:

# 创建备份目录
mkdir ~/backup
# 本例中的ORACLE_HOME为/opt/oracle/product/19c/dbhome_1
cd $ORACLE_HOME
# 切换到上一级目录:/opt/oracle/product/19c
cd ..
# 启动备份
tar -pcvf ~/backup/oracle_home_bkup.tar dbhome_1

备份文件约7.4G:

$ ls -l ~/backup/
total 7248532
-rw-r--r--. 1 oracle oinstall 7422494720 Feb  5 13:42 oracle_home_bkup.tar

安装最新版的OPatch

下载OPatch 12.2.0.1.41 for DB 19.0.0.0.0 (Jan 2024),约120M。

$ ls -l /vagrant/p6880880_190000_Linux-x86-64.zip
-rwxrwxrwx. 1 vagrant vagrant 127629034 Feb  5 13:58 /vagrant/p6880880_190000_Linux-x86-64.zip

升级过程参见Oracle数据库升级OPatch全过程。

升级完成后:

$ opatch version
OPatch Version: 12.2.0.1.41OPatch succeeded.

安装OJVM补丁

详见MOS 文档:Oracle Recommended Patches – “Oracle JavaVM Component Database PSU and Update” (OJVM PSU and OJVM Update) Patches (Doc ID 1929745.1)

实际下载是从MOS文档:Primary Note for Database Proactive Patch Program (Doc ID 888.1)

然后搜索OJVM即可。补丁约120M:

$ ls -l /vagrant/p35926646_190000_Linux-x86-64.zip
-rwxrwxrwx. 1 vagrant vagrant 127451050 Feb  5 14:21 /vagrant/p35926646_190000_Linux-x86-64.zip

升级文档参见Patch 35926646 - Oracle JavaVM Component Release Update 19.22.0.0.240116。

PATCHDIR=/home/oracle/patchdir
mkdir $PATCHDIR
unzip -d $PATCHDIR /vagrant/p35926646_190000_Linux-x86-64.zip
cd $PATCHDIR/35926646 
opatch prereq CheckConflictAgainstOHWithDetail -ph ./ 
# 如果上面的先决条件检测通过,则可以安装补丁
opatch apply

安装过程如下:

[oracle@oracle-19c-vagrant 35926646]$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.PREREQ sessionOracle Home       : /opt/oracle/product/19c/dbhome_1
Central Inventory : /opt/oracle/oraInventoryfrom           : /opt/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-25-44PM_1.logInvoking prereq "checkconflictagainstohwithdetail"Prereq "checkConflictAgainstOHWithDetail" passed.OPatch succeeded.
[oracle@oracle-19c-vagrant 35926646]$ opatch apply
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.Oracle Home       : /opt/oracle/product/19c/dbhome_1
Central Inventory : /opt/oracle/oraInventoryfrom           : /opt/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-26-37PM_1.logVerifying environment and performing prerequisite checks...
OPatch continues with these patches:   35926646Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/opt/oracle/product/19c/dbhome_1')Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '35926646' to OH '/opt/oracle/product/19c/dbhome_1'Patching component oracle.javavm.server, 19.0.0.0.0...Patching component oracle.javavm.server.core, 19.0.0.0.0...Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...Patching component oracle.rdbms, 19.0.0.0.0...Patching component oracle.javavm.client, 19.0.0.0.0...
Patch 35926646 successfully applied.
Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_14-26-37PM_1.logOPatch succeeded.

还有一些后续工作:

connect / as sysdba
startup
alter pluggable database all open;
quit

执行安装后脚本,datapatch 是一款新工具,可实现 RDBMS 补丁的补丁后 SQL 操作自动化:

cd $ORACLE_HOME/OPatch
./datapatch -verbose

如果都正常,则执行以下脚本:

cd $ORACLE_HOME/rdbms/admin
sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> @utlrp.sql

然后关闭数据库。

shutdown immediate

这个补丁安装的时间有点长。如果是新库,最好是打完补丁再建库,而非建完库再打补丁。

安装数据库补丁

因为我没有GI,所以仅升级数据库就好。

补丁约1.8G:

$ ls -l /vagrant/p35943157_190000_Linux-x86-64.zip
-rwxrwxrwx. 1 vagrant vagrant 1817908992 Feb  5 13:29 /vagrant/p35943157_190000_Linux-x86-64.zip

解压:

PATCHDIR=/home/oracle/patchdir
# 解压完大约3.6G
unzip -qd $PATCHDIR /vagrant/p35943157_190000_Linux-x86-64.zip
cd $PATCHDIR/35943157
opatch prereq CheckConflictAgainstOHWithDetail -ph ./
# 如果上面的先决条件检测通过,则可以安装补丁
opatch apply

先决条件检查确实通过了:

$ opatch prereq CheckConflictAgainstOHWithDetail -ph ./
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.PREREQ sessionOracle Home       : /opt/oracle/product/19c/dbhome_1
Central Inventory : /opt/oracle/oraInventoryfrom           : /opt/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-10-48PM_1.logInvoking prereq "checkconflictagainstohwithdetail"Prereq "checkConflictAgainstOHWithDetail" passed.OPatch succeeded.

但第一次安装却失败了,因为空间不够:

[oracle@oracle-19c-vagrant 35943157]$ time opatch apply
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.Oracle Home       : /opt/oracle/product/19c/dbhome_1
Central Inventory : /opt/oracle/oraInventoryfrom           : /opt/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-12-31PM_1.logVerifying environment and performing prerequisite checks...
Prerequisite check "CheckSystemSpace" failed.
The details are:
Required amount of space(7550.384MB) is not available.
UtilSession failed:
Prerequisite check "CheckSystemSpace" failed.
Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-12-31PM_1.logOPatch failed with error code 73

空间问题处理完后,再次安装:

$ time opatch apply
Oracle Interim Patch Installer version 12.2.0.1.41
Copyright (c) 2024, Oracle Corporation.  All rights reserved.Oracle Home       : /opt/oracle/product/19c/dbhome_1
Central Inventory : /opt/oracle/oraInventoryfrom           : /opt/oracle/product/19c/dbhome_1/oraInst.loc
OPatch version    : 12.2.0.1.41
OUI version       : 12.2.0.7.0
Log file location : /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-41-25PM_1.logVerifying environment and performing prerequisite checks...
OPatch continues with these patches:   35943157Do you want to proceed? [y|n]
y
User Responded with: Y
All checks passed.Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/opt/oracle/product/19c/dbhome_1')Is the local system ready for patching? [y|n]
y
User Responded with: Y
Backing up files...
Applying interim patch '35943157' to OH '/opt/oracle/product/19c/dbhome_1'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.crypto.rsf, 19.0.0.0.0 ] , [ oracle.pg4mq, 19.0.0.0.0 ] , [ oracle.precomp.companion, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.pg4appc, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.Patching component oracle.rdbms, 19.0.0.0.0...Patching component oracle.rdbms.util, 19.0.0.0.0...Patching component oracle.rdbms.rsf, 19.0.0.0.0...Patching component oracle.assistants.acf, 19.0.0.0.0...Patching component oracle.assistants.deconfig, 19.0.0.0.0...Patching component oracle.assistants.server, 19.0.0.0.0...Patching component oracle.blaslapack, 19.0.0.0.0...Patching component oracle.buildtools.rsf, 19.0.0.0.0...Patching component oracle.ctx, 19.0.0.0.0...Patching component oracle.dbdev, 19.0.0.0.0...Patching component oracle.dbjava.ic, 19.0.0.0.0...Patching component oracle.dbjava.jdbc, 19.0.0.0.0...Patching component oracle.dbjava.ucp, 19.0.0.0.0...Patching component oracle.duma, 19.0.0.0.0...Patching component oracle.javavm.client, 19.0.0.0.0...Patching component oracle.ldap.owm, 19.0.0.0.0...Patching component oracle.ldap.rsf, 19.0.0.0.0...Patching component oracle.ldap.security.osdt, 19.0.0.0.0...Patching component oracle.marvel, 19.0.0.0.0...Patching component oracle.network.rsf, 19.0.0.0.0...Patching component oracle.odbc.ic, 19.0.0.0.0...Patching component oracle.ons, 19.0.0.0.0...Patching component oracle.ons.ic, 19.0.0.0.0...Patching component oracle.oracore.rsf, 19.0.0.0.0...Patching component oracle.perlint, 5.28.1.0.0...Patching component oracle.precomp.common.core, 19.0.0.0.0...Patching component oracle.precomp.rsf, 19.0.0.0.0...Patching component oracle.rdbms.crs, 19.0.0.0.0...Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...Patching component oracle.rdbms.deconfig, 19.0.0.0.0...Patching component oracle.rdbms.oci, 19.0.0.0.0...Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...Patching component oracle.rdbms.scheduler, 19.0.0.0.0...Patching component oracle.rhp.db, 19.0.0.0.0...Patching component oracle.sdo, 19.0.0.0.0...Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...Patching component oracle.sqlplus, 19.0.0.0.0...Patching component oracle.sqlplus.ic, 19.0.0.0.0...Patching component oracle.wwg.plsql, 19.0.0.0.0...Patching component oracle.xdk.rsf, 19.0.0.0.0...Patching component oracle.install.deinstalltool, 19.0.0.0.0...Patching component oracle.sdo.locator, 19.0.0.0.0...Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...Patching component oracle.dbtoolslistener, 19.0.0.0.0...Patching component oracle.xdk, 19.0.0.0.0...Patching component oracle.rdbms.drdaas, 19.0.0.0.0...Patching component oracle.xdk.xquery, 19.0.0.0.0...Patching component oracle.rdbms.rman, 19.0.0.0.0...Patching component oracle.network.client, 19.0.0.0.0...Patching component oracle.rdbms.hs_common, 19.0.0.0.0...Patching component oracle.nlsrtl.rsf.lbuilder, 19.0.0.0.0...Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...Patching component oracle.mgw.common, 19.0.0.0.0...Patching component oracle.rdbms.dv, 19.0.0.0.0...Patching component oracle.ldap.ssl, 19.0.0.0.0...Patching component oracle.xdk.parser.java, 19.0.0.0.0...Patching component oracle.ctx.rsf, 19.0.0.0.0...Patching component oracle.rdbms.lbac, 19.0.0.0.0...Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...Patching component oracle.ctx.atg, 19.0.0.0.0...Patching component oracle.oraolap, 19.0.0.0.0...Patching component oracle.oraolap.api, 19.0.0.0.0...Patching component oracle.odbc, 19.0.0.0.0...Patching component oracle.ldap.client, 19.0.0.0.0...Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...Patching component oracle.rdbms.install.common, 19.0.0.0.0...Patching component oracle.ovm, 19.0.0.0.0...Patching component oracle.network.listener, 19.0.0.0.0...Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...Patching component oracle.javavm.server, 19.0.0.0.0...Patching component oracle.precomp.lang, 19.0.0.0.0...Patching component oracle.precomp.common, 19.0.0.0.0...Patching component oracle.jdk, 1.8.0.201.0...
Patch 35943157 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35943157].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /opt/oracle/product/19c/dbhome_1/cfgtoollogs/opatch/opatch2024-02-05_15-41-25PM_1.logOPatch succeeded.real    36m32.647s
user    20m16.850s
sys     9m43.814s

成功,耗时半小时。

以上安装是交互式的,中间有两处需要用户输入Y或N。可以指定-silent选项以静默运行。

补丁安装后的操作:

connect / as sysdba
startup
alter pluggable database all open;
quit

执行脚本:

cd $ORACLE_HOME/OPatch
./datapatch -verbose

输出如下:

$ time ./datapatch -verbose
SQL Patching tool version 19.22.0.0.0 Production on Mon Feb  5 21:09:00 2024
Copyright (c) 2012, 2024, Oracle.  All rights reserved.Log file for this invocation: /opt/oracle/cfgtoollogs/sqlpatch/sqlpatch_5704_2024_02_05_21_09_00/sqlpatch_invocation.logConnecting to database...OK
Gathering database info...doneNote:  Datapatch will only apply or rollback SQL fixes for PDBsthat are in an open state, no patches will be applied to closed PDBs.Please refer to Note: Datapatch: Database 12c Post Patch SQL Automation(Doc ID 1585822.1)Bootstrapping registry and package to current versions...done
Determining current state...doneCurrent state of interim SQL patches:
Interim patch 35926646 (OJVM RELEASE UPDATE: 19.22.0.0.240116 (35926646)):Binary registry: InstalledPDB CDB$ROOT: Applied successfully on 05-FEB-24 02.55.32.207669 PMPDB ORCLPDB1: Applied successfully on 05-FEB-24 02.55.33.974523 PMPDB PDB$SEED: Applied successfully on 05-FEB-24 02.55.33.368845 PMCurrent state of release update SQL patches:Binary registry:19.22.0.0.0 Release_Update 240104023954: InstalledPDB CDB$ROOT:Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.17.24.530288 PMPDB ORCLPDB1:Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.24.22.690150 PMPDB PDB$SEED:Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 11-JAN-24 04.24.22.690150 PMAdding patches to installation queue and performing prereq checks...done
Installation queue:For the following PDBs: CDB$ROOT PDB$SEED ORCLPDB1No interim patches need to be rolled backPatch 35943157 (Database Release Update : 19.22.0.0.240116 (35943157)):Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.22.0.0.0 Release_Update 240104023954No interim patches need to be appliedInstalling patches...
Patch installation complete.  Total patches installed: 3Validating logfiles...done
Patch 35943157 apply (pdb CDB$ROOT): SUCCESSlogfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_CDBROOT_2024Feb05_21_09_27.log (no errors)
Patch 35943157 apply (pdb PDB$SEED): SUCCESSlogfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_PDBSEED_2024Feb05_21_16_01.log (no errors)
Patch 35943157 apply (pdb ORCLPDB1): SUCCESSlogfile: /opt/oracle/cfgtoollogs/sqlpatch/35943157/25527362/35943157_apply_ORCLCDB_ORCLPDB1_2024Feb05_21_16_01.log (no errors)
SQL Patching tool complete on Mon Feb  5 21:27:20 2024real    18m19.684s
user    0m33.220s
sys     0m3.595s

这里有一个小插曲,第一次执行datapatch 时非常慢,我强行中断了。

然后回家又做了一遍,这次快些了,只用了18分钟。

执行datapatch时,解压的数据库补丁我已经删除了,说明其不需要了。

其他

RMAN catalog如果有,也需要升级。我没有,此处略。
还有一些可能需要升级的,详见文档。

验证升级成功

SQL> select banner_full from v$version;BANNER_FULL
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.22.0.0.0SQL> select banner_legacy from v$version;BANNER_LEGACY
--------------------------------------------------------------------------------
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

清理

# 删除备份的Oracle Home
rm ~/backup/oracle_home_bkup.tar
# 删除解压的补丁包
PATCHDIR=/home/oracle/patchdir
rm -fr $PATCHDIR

相关文章:

升级Oracle 单实例数据库19.3到19.22

需求 我的Oracle Database Vagrant Box初始版本为19.3,需要升级到最新的RU,当前为19.22。 以下操作时间为为2024年2月5日。 补丁下载 补丁下载文档参见MOS文档:Primary Note for Database Proactive Patch Program (Doc ID 888.1)。 补丁…...

在Vue中如何动态绑定class和style属性

在Vue中,动态绑定class和style属性是我们经常遇到的需求。这个功能允许我们根据不同的条件来动态改变元素的样式,让我们的应用更加灵活和富有交互性。在本篇博客文章中,我将带你深入探索在Vue中如何实现这一功能。 首先,让我们了…...

使用Docker部署DashDot服务器仪表盘并结合cpolar实现公网监测服务器

最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。 文章目录 1. 本地环境检查1.1 安装docker1.2 下载Dashdot镜像 2.…...

Android kernel logcat时间戳显示错乱修改

前言 在抓取log时发现,kernel log合logcat的时间戳不对应。在分析log时,造成很大的困扰 修改 针对Android 10 的修改 diff --git a/system/core/logd/LogKlog.cpp b/system/core/logd/LogKlog.cpp old mode 100644 new mode 100755 index edd326a..f…...

2024年考PMP还有什么用?

PMP 是项目管理专业人士资格认证的意思,也是项目管理领域通用的证书, 做项目的基本都会去考。 要说 PMP 有啥作用? 个人感觉 PMP 证书更多的是跳槽、转行的敲门砖的作用,因为现在很多公司都要 PMP 证书,有了可以加分…...

解决zabbix图像中文乱码

使用zabbix查看监控图像信息,发现会有中文乱码现象。 解决方法如下: 1.拷贝windows文字文件到服务器上 C:\Windows\Fonts目录下拷贝自己需要的中文语言文件 2.修改配置文件 vim /usr/share/zabbix/include/defines.inc.php 81行 define(ZBX_GRAPH_F…...

centos间文件传输

scp /home/vagrant/minio zx192.168.56.34:/home/zx /home/vagrant/minio 是你要传输的文件而且是当前机器登录用户有权限操作的文件 zx是目标机器的用户192.168.56.34是目标机器的地址 /home/zx是要传到这个文件夹下 要确保zx有/home/zx这个文件夹的操作权限 本质就是ssh文…...

2.0 Zookeeper 安装配置

Linux 安装 zookeeper 下载地址为: Apache ZooKeeper。 选择一稳定版本,本教程使用的 release 版本为3.4.14,下载并安装。 打开网址 https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz,看到如下界…...

Matomo 访问图形显示异常

近期我们的把 PHP 系统完全升级后,访问 Matomo 的站点有关访问的曲线无法显示。 出现的情况如下图: 我们可以看到图片中有关的访问曲线无法显示。 如果具体直接访问链接的话,会有下面的错误信息。 问题和解决 出现上面问题的原因是缺少 ph…...

MySQL学习记录——사 表结构的操作

文章目录 1、创建表2、查看表结构3、改变表结构4、删除表5、总结 1、创建表 CREATE TABLE table_name ( field1 datatype, field2 datatype, field3 datatype ) character set 字符集 collate 校验规则 engine 存储引擎; 例子 create table users ( id int, name varchar(20) c…...

【华为 ICT HCIA eNSP 习题汇总】——题目集12

1、企业网络内部常常采用私有 IP 地址进行通信,以下哪个地址属于私有 IP 地址? A、0.1.1.1 B、127.5.4.3 C、128.0.0.5 D、172.24.35.36 考点:网络层 解析:(D) A类 IP 地址中,10.0.0.0 ~ 10.255…...

Redis发布订阅及事务管理

目录 1.1 发布订阅 1.1.1 什么是发布订阅 1.1.2 常用命令 1.1.3 示例演示 1.2 事务管理 1.2.1 事务定义 1.2.2 Multi、Exec、discard 1.2.3 示例 1.2.4 事务的错误处理 1.2.5 事务的冲突问题 1.2.5.1 事务场景 1.2.5.2 悲观锁 1.2.5.3 乐观锁 1.2.5.4 事务解决冲…...

设计模式第五天|代理模式 7-小明买房子 装饰模式 8-咖啡加糖

目录 【设计模式专题之代理模式】7-小明买房子【设计模式专题装饰模式】8-咖啡加糖 【设计模式专题之代理模式】7-小明买房子 文章链接:卡码网设计模式 题目链接:7-小明买房子 这里注意在HomeAgent类里需要定义对象成员变量HomeBuyer,这里在实…...

mongodb数据库集合(表)的创建和数据修改

文章目录 前言发现宝藏一、集合的创建二、集合的修改三、数据插入数据库四、清空数据库集合数据 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作…...

MySQL 的UI

MySQL也有许多用户界面(UI)工具,用于管理数据库。以下是一些流行的MySQL UI工具: 1. **MySQL Workbench:** 由MySQL官方提供,功能强大,支持数据库建模、SQL开发、服务器配置等。 2. **DBeaver&a…...

Leetcode 3026. Maximum Good Subarray Sum

Leetcode 3026. Maximum Good Subarray Sum 1. 解题思路2. 代码实现 题目链接:3026. Maximum Good Subarray Sum 1. 解题思路 这一题的话主要就是要快速遍历所有的good subarray并快速获得每一个good subarray的和的最大值。 因此,问题就主要就成了两…...

elementUI之el-form-item的嵌套的场景

像这种,计费规则这几个字而且带红点,外观上是el-form-item,但是其并没有直接和控件进行相关联,这是和其他的el-form-item不同之处。所以这里就得用上嵌套了。也就是说elementUI中el-form-item是可以嵌套使用的。...

Linux项目自动化构建工具之make/Makefile演示gcc编译

文章目录 一、背景二、如何使用?三、原理四、关于make的问题五、再次理解/编写makefile依赖关系依赖方法 六、原理讲解项目清理makefile是支持变量的取消执行make后显示命令依赖方法可以多行 一、背景 会不会写makefile,从一个侧面说明了一个人是否具备…...

ChatGPT 官方中文页面上线

根据页面显示,OpenAI 现已推出 ChatGPT 的多语言功能 Alpha 版测试,允许用户选择不同语言的界面进行交互。 如下图所示,ChatGPT 会检测系统当前所使用的语言,并提示用户进行语言切换。 用户也可通过设置页面选择其他语言。目前&a…...

算法学习——华为机考题库10(HJ64 - HJ69)

算法学习——华为机考题库10(HJ64 - HJ69) HJ64 MP3光标位置 描述 MP3 Player因为屏幕较小,显示歌曲列表的时候每屏只能显示几首歌曲,用户要通过上下键才能浏览所有的歌曲。为了简化处理,假设每屏只能显示4首歌曲&a…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...

NPOI操作EXCEL文件 ——CAD C# 二次开发

缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...

pycharm 设置环境出错

pycharm 设置环境出错 pycharm 新建项目,设置虚拟环境,出错 pycharm 出错 Cannot open Local Failed to start [powershell.exe, -NoExit, -ExecutionPolicy, Bypass, -File, C:\Program Files\JetBrains\PyCharm 2024.1.3\plugins\terminal\shell-int…...

stm32wle5 lpuart DMA数据不接收

配置波特率9600时,需要使用外部低速晶振...

ubuntu22.04有线网络无法连接,图标也没了

今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...

DiscuzX3.5发帖json api

参考文章:PHP实现独立Discuz站外发帖(直连操作数据库)_discuz 发帖api-CSDN博客 简单改造了一下,适配我自己的需求 有一个站点存在多个采集站,我想通过主站拿标题,采集站拿内容 使用到的sql如下 CREATE TABLE pre_forum_post_…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发,采用现代化的Web技术,为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## 📋 系统概述 ### 🎯 系统定…...

Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践

在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...