Oracle 11g R2 RAC 到单实例 Data Guard 搭建(RMAN备份方式)
一、配置方案
环境说明
| 角色 | 主库 | 主库 | 备库 |
|---|---|---|---|
| 主机名 | rac01 | rac02 | racdg |
| 公网IP | 10.10.10.141 | 10.10.10.143 | 10.10.10.191 |
| VIP | 10.10.10.142 | 10.10.10.144 | - |
| SCAN | 10.10.10.140 | 10.10.10.140 | - |
| INSTANCE_NAME | orcl1 | orcl2 | orcl |
| DB_NAME | orcl | orcl | orcl |
| SERVICE_NAME | orcl | orcl | orcl |
| DB_UNIQUE_NAME | orcl | orcl | orcldg |
| 存储模式 | ASM | ASM | 文件系统 |
文件系统规划
| 主库 | 备库 |
|---|---|
| +DATADG/orcl/datafile | /oradata/datafile |
| +DATADG/orcl/tempfile | /oradata/tempfile |
| +ARCDG/orcl/onlinelog, +DATADG/orcl/onlinelog | /oradata/onlinelog |
| +ARCDG/ | /oradata/arch |
操作步骤
1. 主库上设置 Force Logging 模式
查看数据库的模式:
SQL> select LOG_MODE, OPEN_MODE, PROTECTION_MODE, DATABASE_ROLE, SWITCHOVER_STATUS, GUARD_STATUS, FORCE_LOGGING from v$database;
在主库上开启强制日志模式:
SQL> alter database force logging;SQL> select force_logging from v$database;
FOR
---
YES
--如果没有开始归档模式需要开启归档模式
srvctl stop database -d orcl -o immediate
srvctl start instance -d orcl -i orcl1 -o mount
alter database archivelog;
alter database open;
srvctl start instance -d orcl -i orcl2
2. RMAN备份主库
在rac节点上执行 RMAN 备份:
$rman target /
RMAN> run {allocate channel c1 type disk;allocate channel c2 type disk;backup as compressed backupset database format='/oracle/backup/%T_%d_%s_%p.bak';sql 'alter system archive log current';backup archivelog all format '/oradata/backup/arch_%d_%T_%s_%p.bak';backup format='/oracle/backup/%T_%d_%s_%p.ctl' current controlfile;release channel c1;release channel c2;
}
传递备份至备库:
$ scp /oracle/backup/20210418* oracle@10.10.10.191:/oradata/backup
3. 主库上监听和 TNS 配置
配置主库监听:对于 RAC 环境在grid用户下的$GRID_HOME/network/admin/listener.ora
su - grid
$cd $GRID_HOME/network/admin/
$vi listener.ora
示例配置:
##节点 1
[grid@rac01 admin]$ cat listener.oralistener.ora Network Configuration File:
/u01/app/11.2.0/grid/network/admin/listener.ora Generated by Oracle
configuration tools.ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ONSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)(SID_NAME = orcl1)))LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER)))ADR_BASE_LISTENER = /u01/app/gridENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ONLISTENER_SCAN1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1)))ADR_BASE_LISTENER_SCAN1 = /u01/app/grid##节点 2,对应修改即可。
[grid@rac02 admin]$ cat listener.oralistener.ora Network Configuration File: /u01/app/11.2.0/grid/network/admin/listener.oraGenerated by Oracle configuration tools.ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER_SCAN1 = ONSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)(SID_NAME = orcl2)))LISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER)))ADR_BASE_LISTENER = /u01/app/gridENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER = ONLISTENER_SCAN1 =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = LISTENER_SCAN1)))ADR_BASE_LISTENER_SCAN1 = /u01/app/grid-- 这里写的 Oracle 用户的 ORACLE_HOME,否则连接时会报错:ORA-01031: insufficient privileges
注意在 Oracle 11gR2 的 RAC 环境下,监听是在 grid 用户下配置的。所以这里可以用 grid 用户连接,并修改。 最后重新加载监听。
将备库的 TNS 添加到主库两节点的 tnsnames.ora 中:
$cd $ORACLE_HOME/network/admin
$vi tnsnames.ora
示例配置:
ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.141)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.143)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))ORCLDG =
(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.191)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))
)
4. 主库上修改参数
在节点一和节点二上设置以下参数:
SQL> alter system set fal_server='orcldg';
SQL> alter system set fal_client='orcl1' scope=both sid='orcl1'; --不打算使用FSFO功能可以不配
SQL> alter system set fal_client='orcl2' scope=both sid='orcl2'; --不打算使用FSFO功能可以不配
SQL> alter system set log_archive_config='DG_CONFIG=(orcl,orcldg)' scope=both sid='*';
SQL> alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(all_logfiles,all_roles) db_unique_name=orcl' scope=both sid='*';
SQL> alter system set log_archive_dest_2='SERVICE=orcldg lgwr ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcldg' scope=both;
SQL> alter system set log_archive_max_processes=10 scope=both;
SQL> alter system set db_file_name_convert='/oradata/datafile', '+DATADG/orcl/datafile', 'oradata/tempfile', '+DATADG/orcl/tempfile' scope=spfile;
SQL> alter system set log_file_name_convert='/oradata/onlinelog','+ARCDG/orcl/onlinelog','/oradata/onlinelog','+DATADG/orcl/onlinelog' scope=spfile;
SQL> alter system set standby_file_management='AUTO' scope=both;
SQL> alter system set log_archive_dest_state_1='enable';
SQL> alter system set log_archive_dest_state_2='enable';
SQL> alter system set remote_login_passwordfile='EXCLUSIVE' scope=spfile;
5. 备库存储和文件系统创建
在备库上新建各个数据文件的存放位置:
$ mkdir -p /oradata/datafile # 数据文件
$ mkdir -p /oradata/tempfile # 临时文件
$ mkdir -p /oradata/onlinelog # redo 日志
$ mkdir -p /oradata/controlfile # 控制文件
$ mkdir -p /oradata/arch # 归档文件
手动建立以下目录,保持与主库目录一致:
$ cd $ORACLE_BASE
$ mkdir -p /u01/app/oracle/oradata/orcl
$ mkdir -p /u01/app/oracle/admin/orcl/adump
$ mkdir -p /u01/app/oracle/fast_recovery_area
6. 口令文件复制
将主库的口令文件复制到备库相同目录下,并改名为 orapworcldg:
$ scp /oracle/app/oracle/db/dbs/orapworcl oracle@10.10.10.191:/u01/app/oracle/product/11.2.0/db_1/dbs
$ mv orapworcl orapworcldg
7. 创建和修改备库 pfile 参数文件
在主库上生成 pfile:
SQL> create pfile from spfile;
传递至备库并重命名:
$ cd $ORACLE_HOME/dbs
$ scp initorcl.ora oracle@10.10.10.191: /u01/app/oracle/product/11.2.0/db_1/dbs
$ vi initorcldg.ora
修改相关参数:
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/oradata/controlfile/control01.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name=orcl
*.db_unique_name=orcldg
*.service_names=orcl
*.db_recovery_file_dest_size=209715200000
*.open_cursors=300
*.pga_aggregate_target=70061654016
*.processes=1500
*.sessions=1655
*.sga_target=38386270208
*.log_archive_format='%t_%s_%r.arc'
*.db_recovery_file_dest='/oradata/arch'
*.db_file_name_convert='+DATADG/orcl/datafile','/oradata/datafile','+DATADG/orcl/tempfile','/oradata/tempfile'
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl, orcldg)'
*.LOG_ARCHIVE_DEST_1='LOCATION=/oradata/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcldg'
*.LOG_ARCHIVE_DEST_2='SERVICE=orcl LGWR ASYNC NOAFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'
*.log_file_name_convert='+ARCDG/orcl/onlinelog','/oradata/onlinelog','+DATADG/orcl/onlinelog','/oradata/onlinelog'
*.remote_login_passwordfile='exclusive'
*.standby_file_management=auto
*.diagnostic_dest='/u01/app/oracle'
*.fal_server='orcl1','orcl2'
*.fal_client='orcldg'
启动备库并创建 SPFILE:
SQL> startup pfile='/u01/app/oracle/product/11.2.0/db_1/dbs/initorcldg.ora' nomount;
SQL> create spfile from pfile;
SQL> shutdown immediate;
8. 备库上监听和 TNS 配置
配置监听器:
$cd $ORACLE_HOME/network/admin
$vi listener.ora
示例配置:
LISTENER =
(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.191)(PORT = 1521)))
)SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = orcl)(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)(SID_NAME = orcl)))ADR_BASE_LISTENER = /u01/app/oracle
配置 TNS:
$vi tnsnames.ora
示例配置:
ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.141)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.143)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))ORCLDG =
(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.191)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl))
)
开启监听:
$ lsnrctl start
检查监听和 TNS:
$ tnsping orcldg
$ tnsping orcl
9. RMAN恢复备库
恢复控制文件并注册备份集:
-- 备库启动到nomount
SQL> startup nomount;
-- 进入rman恢复控制文件,并注册备份集
rman target /
RMAN> restore standby controlfile from '/oradata/backup/20210418_ORCL_4020_1.ctl';
RMAN> alter database mount;
RMAN> CATALOG START WITH '/oradata/backup/';
RMAN> CROSSCHECK BACKUP;
恢复数据库:
示例:批量重命名数据文件和临时文件
-- 生成重命名数据文件的 RMAN命令
SELECT 'set newname for datafile ' || t.file_id || ' to ''' || '/oradata/datafile/' || SUBSTR(t.file_name, INSTR(t.file_name, '/', -1) + 1) || '''; '
FROM dba_data_files t;-- 生成重命名临时文件的 RMAN命令
SELECT 'set newname for tempfile ' || t.file_id || ' to ''' || '/oradata/datafile/' || SUBSTR(t.file_name, INSTR(t.file_name, '/', -1) + 1) || '''; '
FROM dba_temp_files t;-- 生成重命名日志文件的 SQL 语句(如果需要)
SELECT 'ALTER DATABASE RENAME FILE ''' || a.MEMBER || ''' TO ''' || '/oradata/onlinelog/' || SUBSTR(a.MEMBER, INSTR(a.MEMBER, '/', -1) + 1) || ''';'
FROM v$logfile a;
执行恢复:
RMAN> run {set newname for datafile 1 to '/oradata/datafile/system01.dbf';set newname for datafile 2 to '/oradata/datafile/sysaux01.dbf';set newname for datafile 3 to '/oradata/datafile/undotbs01.dbf';set newname for datafile 4 to '/oradata/datafile/undotbs02.dbf';set newname for datafile 5 to '/oradata/datafile/users01.dbf';set newname for datafile 6 to '/oradata/datafile/test01.dbf';set newname for tempfile 1 to '/oradata/tempfile/temp01.dbf';restore database;switch datafile all;switch tempfile all;
}recover database;
如果恢复中有差异可以从主库中复制归档日志到备库并注册:
$su – grid
$asmcmd
ASMCMD> cp +ARCDG/orcl/AR*/2021_04_18/thread_* /oracle/backup
$scp /oracle/backup/thread_* oracle@10.10.10.191:/oradata/arch
注册归档日志并恢复数据库:
SQL> alter database register logfile '/oradata/arch/thread_2_seq_3741.2001.973785643';
...
SQL> recover managed standby database disconnect from session;
SQL> recover managed standby database cancel;
10. 在主库中建立 Standby Logfile
RAC 每个 Redo Thread 都需要创建对应的 Standby Redo Log。 创建原则和单实例一样,包括日志文件大小相等,日志组数量要多 1 组。
-- 主库查询日志文件大小及路径
SQL> set lines 120
SQL> col member for a50
SQL> select a.thread#,
a.group#,a.bytes/1024/1024 size(MB),b.member
from v$log a,v$logfile b where a.group#=b.group#;
在rac节点一或节点二上执行:
SQL> alter database add standby logfile thread 1 group 11('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 1 group 12('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 1 group 13('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 1 group 14('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 1 group 15('+ARCDG', '+DATADG') size 512M;
...
SQL> alter database add standby logfile thread 2 group 16('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 2 group 17('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 2 group 18('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 2 group 19('+ARCDG', '+DATADG') size 512M;
SQL> alter database add standby logfile thread 2 group 20('+ARCDG', '+DATADG') size 512M;
...
11. 在备库中建立 Standby Logfile
alter database add standby logfile group 11 ('/oradata/onlinelog/standby_redo11a.dbf', '/oradata/onlinelog/standby_redo11b.dbf') size 512m;
alter database add standby logfile group 12 ('/oradata/onlinelog/standby_redo12a.dbf', '/oradata/onlinelog/standby_redo12b.dbf') size 512m;
alter database add standby logfile group 13 ('/oradata/onlinelog/standby_redo13a.dbf', '/oradata/onlinelog/standby_redo13b.dbf') size 512m;
alter database add standby logfile group 14 ('/oradata/onlinelog/standby_redo14a.dbf', '/oradata/onlinelog/standby_redo14b.dbf') size 512m;
alter database add standby logfile group 15 ('/oradata/onlinelog/standby_redo15a.dbf', '/oradata/onlinelog/standby_redo15b.dbf') size 512m;
...
12. 备库打开数据库并实时应用 Redo
SQL> alter database open;
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLYSQL> alter database recover managed standby database using current logfile disconnect from session;
二、完成后验证
主库检查
SQL> select thread#, sequence#, status from v$log;
SQL> select process, sequence#, status from v$managed_standby;
备库检查
SQL> SELECT PROCESS, THREAD#, SEQUENCE#, STATUS FROM V$MANAGED_STANDBY;
SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;
验证同步
-- rac节点1 执行
SQL> create table test1 as select * from dba_users;
Table created.SQL> alter system switch logfile;
System altered.-- 节点2 执行
SQL> create table test2 as select * from dba_users;
Table created.SQL> alter system switch logfile;
System altered.-- 备库查询
SQL> select count(*) from test1;COUNT(*)
----------31SQL> select count(*) from test2; COUNT(*)
----------31SQL> select THREAD#,sequence#,applied from v$archived_log order by 1,2;THREAD# SEQUENCE# APPLIED
---------- ---------- ---------1 72 NO1 73 YES1 74 YES2 56 YES2 57 NO
三、问题汇总
3.1 备库未打补丁处理
- 传递与主库一致的补丁。
- 关闭所有 Oracle 相关进程。
- 应用补丁。
3.2 Temp 文件错误处理
- 恢复时
set newname路径错误。 - 将 tempfile 下线并新建正确路径的 tempfile。
- 删除错误的 tempfile。
3.3 归档删除脚本部署
- 创建归档删除脚本并定期自动删除归档文件。
总结
至此,Oracle RAC集群到单机的dataguard搭建完成。
相关文章:
Oracle 11g R2 RAC 到单实例 Data Guard 搭建(RMAN备份方式)
一、配置方案 环境说明 角色主库主库备库主机名rac01rac02racdg公网IP10.10.10.14110.10.10.14310.10.10.191VIP10.10.10.14210.10.10.144-SCAN10.10.10.14010.10.10.140-INSTANCE_NAMEorcl1orcl2orclDB_NAMEorclorclorclSERVICE_NAMEorclorclorclDB_UNIQUE_NAMEorclorclorcl…...
HTTPS 加密
HTTPS 加密技术 1. HTTPS 概述 HTTPS(HyperText Transfer Protocol Secure)是 HTTP 协议的安全版本,利用 SSL/TLS 协议对通信进行加密,确保数据的机密性、完整性和身份认证。HTTPS 在保护敏感数据的传输(如登录凭证、…...
泛微e9开发 编写前端请求后端接口方法以及编写后端接口
泛微e9开发 前端请求后端接口以及后端发布接口 前端请求后端接口 前端发起get请求 fetch(/api/youpath, {method: GET, // 默认 GET 方法,可以省略headers: {Content-Type: application/json, // 通常 GET 请求无需指定 body,Content-Type 不太重要},…...
Linux —— 《线程控制》
文章目录 前言:为什么要链接pthread库?线程控制:线程创建:start_routine?传递自定义类型同一份栈空间? 线程等待:返回值与参数?创建多线程 线程终止线程分离 前言: 上一文我们学习…...
基于HTML+CSS的房地产销售网站设计与实现
摘 要 房地产销售系统,在二十年来互联网时代下有着巨大的意义,随着互联网不断的发展扩大,一个方便直 观的房地产管理系统的网站开发是多么地有意义,不仅打破了传统的线下看房,线下获取资讯,也给房地产从业…...
操作系统 | 学习笔记 | 王道 | 2.4死锁
2.4 死锁 文章目录 2.4 死锁2.4.1 死锁的概念2.4.2 死锁预防2.4.3 死锁避免2.4.4 死锁检测和解除 2.4.1 死锁的概念 死锁的定义 在并发环境下,各进程因竞争资源而造成的一种互相等待对方手里的资源,导致各进程都阻塞,都无法向前推进的现象&am…...
【FPGA开发】Vivado自定义封装IP核,绑定总线
支持单个文件的封装、整个工程的封装,这里用单个文件举例。 在文件工程目录下,自建一个文件夹,里面放上需要封装的verilog文件。 选择第三个,指定路径封装,找到文件所在目录 取个名,选择封装IP的路径 会…...
python的3D可视化库vedo-3 (visual模块)点对象的属性、光效、附注
文章目录 3 PointsVisual的方法3.1 对象属性3.1.1 顶点大小3.1.2 复制属性3.1.3 颜色设置3.1.4透明度设置 3.2 对象光效3.2.1 点的形状3.2.2 点的表面光效 3.3 尾随线和投影3.3.1 尾随线3.3.2 投影 3.4 给对象附加文字说明3.4.1 标注3.4.2 2D标注3.4.3 气泡说明3.4.4 旗标说明3…...
llamaindex实战-ChatEngine-ReAct Agent模式
概述 ReAct 是一种基于Agent的聊天模式,构建在数据查询引擎之上。对于每次聊天交互,代理都会进入一个 ReAct 循环: 首先决定是否使用查询引擎工具并提出适当的输入 (可选)使用查询引擎工具并观察其输出 决定是否重复…...
redis快速进门
、数据库类型认识 关系型数据库 关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行…...
从0开始linux(39)——线程(2)线程控制
欢迎来到博主的专栏:从0开始linux 博主ID:代码小豪 文章目录 线程创建线程标识符线程参数多线程竞争资源 回收线程detach 线程退出pthread_cancel 线程创建 线程创建的函数为pthread_create。该函数是包含在posix线程库当中,posix线程是C语言…...
International Journal of Medical Informatics投稿经历时间节点
20240423,完成投稿 20240612,按编辑要求修改后再投, with editor 20240613,under review,completed 0, accepted 0, invitation 2. 20240620, under review,completed 0, accepted 1, invitation 2. 20240626, unde…...
BUUCTF—Reverse—Java逆向解密(10)
程序员小张不小心弄丢了加密文件用的秘钥,已知还好小张曾经编写了一个秘钥验证算法,聪明的你能帮小张找到秘钥吗? 注意:得到的 flag 请包上 flag{} 提交 需要用专门的Java反编译软件:jd-gui 下载文件,发现是个class文…...
CLIP-MMA: Multi-Modal Adapter for Vision-Language Models
当前的问题 CLIP-Adapter仅单独调整图像和文本嵌入,忽略了不同模态之间的交互作用。此外,适应性参数容易过拟合训练数据,导致新任务泛化能力的损失。 动机 图1所示。多模态适配器说明。 通过一种基于注意力的 Adapter ,作者称之…...
三维扫描仪-3d扫描建模设备自动检测尺寸
在现代工业制造领域,三维扫描仪已成为实现高精度尺寸检测的关键设备。CASAIM自动化智能检测系统以其自动化三维立体扫描技术,为产品尺寸的自动检测提供了高效、可靠的解决方案。 CASAIM自动化智能检测系统通过非接触式测量方式,通过激光扫描…...
vue3+ant design vue实现日期选择器默认显示当前年,并限制用户只能选择当前年及之前~
1、思路:之前想拿当前年直接做赋值操作,实际上是行不通的,因为组件本身有数据格式限制,会出现报错,然后索性直接获取当前日期(YYYY-MM-DD)赋值给日期组件,这样不管你用的是年&#x…...
【electron-vite】搭建electron+vue3框架基础
一、拉取项目 electron-vite 中文文档地址: https://cn-evite.netlify.app/guide/ 官网网址:https://evite.netlify.app/ 版本 vue版本:vue3 构建工具:vite 框架类型:Electron JS语法:TypeScript &…...
05《存储器层次结构与接口》计算机组成与体系结构 系列课
目录 存储器层次结构概述 层次结构的定义 存储器的排名 存储器接口 处理器与存储器的速度匹配 存储器接口的定义 存储器访问命中率 两种接口 第1种方式:并行 命中率的计算 存储器访问时间 第2种方式:逐级 结语 大家好,欢迎回来。…...
elasticsearch报错fully-formed single-node cluster with cluster UUID
1.问题描述 k8s集群内部署的es中间件起不来,查看日志发现如下警告,节点发现功能开启,但是目前我是单节点服务,所以尝试编辑sts将节点发现功能去掉或者在部署时将你的sts的yaml文件和chart文件修改重新部署以去掉该功能 {"t…...
Milvus×Florence:一文读懂如何构建多任务视觉模型
近两年来多任务学习(Multi-task learning)正取代传统的单任务学习(single-task learning),逐渐成为人工智能领域的主流研究方向。其原因在于,多任务学习可以让我们以最少的人力投入,获得尽可能多…...
synchronized 学习
学习源: https://www.bilibili.com/video/BV1aJ411V763?spm_id_from333.788.videopod.episodes&vd_source32e1c41a9370911ab06d12fbc36c4ebc 1.应用场景 不超卖,也要考虑性能问题(场景) 2.常见面试问题: sync出…...
云计算——弹性云计算器(ECS)
弹性云服务器:ECS 概述 云计算重构了ICT系统,云计算平台厂商推出使得厂家能够主要关注应用管理而非平台管理的云平台,包含如下主要概念。 ECS(Elastic Cloud Server):即弹性云服务器,是云计算…...
MySQL 隔离级别:脏读、幻读及不可重复读的原理与示例
一、MySQL 隔离级别 MySQL 提供了四种隔离级别,用于控制事务之间的并发访问以及数据的可见性,不同隔离级别对脏读、幻读、不可重复读这几种并发数据问题有着不同的处理方式,具体如下: 隔离级别脏读不可重复读幻读性能特点及锁机制读未提交(READ UNCOMMITTED)允许出现允许…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包
文章目录 现象:mysql已经安装,但是通过rpm -q 没有找mysql相关的已安装包遇到 rpm 命令找不到已经安装的 MySQL 包时,可能是因为以下几个原因:1.MySQL 不是通过 RPM 包安装的2.RPM 数据库损坏3.使用了不同的包名或路径4.使用其他包…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...
