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

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库

目录

  • Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库
    • 一、配置环境
    • 二、安装 Oracle 软件并创建数据库
    • 三、配置主数据库
        • 1、启动 FORCE LOGGING
        • 2、启动归档模式
        • 3、开启闪回
        • 4、为主库添加 standby redo logfile
        • 5、为主数据库配置监听
        • 6、修改主数据库的配置文件
        • 7、把主数据库的口令文件复制到备库

一、配置环境

操作系统为 CentOS7,Oracle 版本为 11g,主库为单机版 Oracle。详细情况如下表所示:

主库备库
DB 类型单机单机
操作系统Centos7.3Centos7.3
Hostnameoraoradg
IP 地址192.168.1.2192.168.1.3
ORACLE_BASE/usr/local/oracle/usr/local/oracle
DB_NAMEhisdbhisdbdg
ORACLE_SIDoraoradg
DB_Unique_Namehisdbhisdbdg
Instance_Nameoraoradg
service_nameshisdbhisdbdg
TNS_Namehisdbhisdbdg
闪回区开启开启
归档开启开启

二、安装 Oracle 软件并创建数据库

1、在主库上安装数据库软件,创建数据库,创建监听(安装过程省略)

2、在备库上安装数据库软件,创建监听,但不创建实例

主库的数据库参数如下:

SQL> show parameter nameNAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name		     string
db_file_name_convert		     string
db_name 			     string	 hisdb
db_unique_name			     string	 hisdb
global_names			     boolean	 FALSE
instance_name			     string	 ora
lock_name_space 		     string
log_file_name_convert		     string
processor_group_name		     string
service_names			     string	 hisdb

三、配置主数据库

1、启动 FORCE LOGGING

命令如下:

SQL> select open_mode,log_mode,database_role from v$database;OPEN_MODE	     LOG_MODE	  DATABASE_ROLE
-------------------- ------------ ----------------
READ WRITE	     NOARCHIVELOG PRIMARYSQL> select force_logging from v$database;FOR
---
NOSQL> alter database force logging;Database altered.SQL> select force_logging from v$database;FOR
---
YES
2、启动归档模式
-- 查询归档模是否开启
SQL> archive log list;
Database log mode	       No Archive Mode
Automatic archival	       Disabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Current log sequence	       7-- 关闭数据库
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.-- 开启数据库至 mount 状态
SQL> startup mount;
ORACLE instance started.Total System Global Area 1068937216 bytes
Fixed Size		    2260088 bytes
Variable Size		  331350920 bytes
Database Buffers	  729808896 bytes
Redo Buffers		    5517312 bytes
Database mounted.-- 修改数据库为归档模式
SQL> alter database archivelog;Database altered.-- 开启数据库
SQL> alter database open;Database altered.-- 查看归档日志是否开启
SQL> archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     5
Next log sequence to archive   7
Current log sequence	       7SQL> show  parameter recoveryNAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /usr/local/oracle/fast_recovery_area
db_recovery_file_dest_size	     big integer 4182M
recovery_parallelism		     integer	 0
3、开启闪回
 -- 查看闪回未开启
SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
NO-- 查看 db_recovery_file_dest
SQL> show parameter recoveryNAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest		     string	 /usr/local/oracle/fast_recovery_area
db_recovery_file_dest_size	     big integer 4182M
recovery_parallelism		     integer	 0-- 指定闪回区大小,指定闪回目录路径(顺序必须先设置闪回区大小,才能指定闪回目录,否则报错)
alter system set db_recovery_file_dest_size=4182m;
-- 先创建目录,再指定该闪回区域目录
alter system set db_recovery_file_dest='/usr/local/oracle/fast_recovery_area';-- 开启闪回
SQL> alter database flashback on;Database altered.-- 查看闪回未开启
SQL> select flashback_on from v$database;FLASHBACK_ON
------------------
YES
4、为主库添加 standby redo logfile

说明:

(1)为主库添加standby redo log后,备库自动同步,所以备库不用再创建standby redo log

(2)Dataguard 在最大保护和最高可用性模式下,Standby 数据库必须配置standby redo log

(3)确保 Standby redo log的大小与主库 online redo log的大小一致。

(4)如果主库为单实例数据库: Standby redo log组数 = 主库日志总数 + 1。

(5)如果主库是RAC数据库:Standby redo log组数 = (每线程的日志数 + 1)* 最大线程数。

查看主数据库的日志信息:

-- 查看日志存放位置
SQL> select member from v$logfile;MEMBER
--------------------------------------------------------------------------------
/usr/local/oradata/hisdb/redo03.log
/usr/local/oradata/hisdb/redo02.log
/usr/local/oradata/hisdb/redo01.log-- 查看日志数量
SQL> select count(group#),thread# from v$log group by thread#;COUNT(GROUP#)	 THREAD#
------------- ----------3	       1-- 查看日志文件大小
SQL> select group#,bytes/1024/1024 from v$log;GROUP# BYTES/1024/1024
---------- ---------------1		502		503		50

添加 standby logfile

 -- 添加 4 个standby logfile,文件大小必须为 50M
/*
alter database add standby logfile '/usr/local/oradata/hisdb/standby01.log' size 50M;
alter database add standby logfile '/usr/local/oradata/hisdb/standby02.log' size 50M;
alter database add standby logfile '/usr/local/oradata/hisdb/standby03.log' size 50M;
alter database add standby logfile '/usr/local/oradata/hisdb/standby04.log' size 50M;
*/SQL> alter database add standby logfile '/usr/local/oradata/hisdb/standby01.log' size 50M;Database altered.SQL> alter database add standby logfile '/usr/local/oradata/hisdb/standby02.log' size 50M;Database altered.SQL> alter database add standby logfile '/usr/local/oradata/hisdb/standby03.log' size 50M;Database altered.SQL> alter database add standby logfile '/usr/local/oradata/hisdb/standby04.log' size 50M;Database altered.-- 查看 standby_log 信息
SQL> select group#,bytes/1024/1024 from v$standby_log;GROUP# BYTES/1024/1024
---------- ---------------4		505		506		507		50-- 查看所有的日志信息
SQL> select group#,status,type,member from v$logfile;GROUP# STATUS  TYPE            MEMBER
-----------------------------------------------------------------------------------------3	   ONLINE            /usr/local/oradata/hisdb/redo03.log2	   ONLINE           /usr/local/oradata/hisdb/redo02.log1	   ONLINE           /usr/local/oradata/hisdb/redo01.log4	   STANDBY          /usr/local/oradata/hisdb/standby01.log5	   STANDBY          /usr/local/oradata/hisdb/standby02.log6	   STANDBY          /usr/local/oradata/hisdb/standby03.log7	   STANDBY          /usr/local/oradata/hisdb/standby04.log7 rows selected.
5、为主数据库配置监听

(1)查看监听文件

[oracle@ora ~]$ cd $ORACLE_HOME/network/admin
[oracle@ora admin]$ ll
总用量 16
-rw-r--r-- 1 oracle oinstall 368 1230 21:28 listener.ora
drwxr-xr-x 2 oracle oinstall  64 1230 21:15 samples
-rw-r--r-- 1 oracle oinstall 381 1217 2012 shrept.lst
-rw-r--r-- 1 oracle oinstall 223 1230 21:28 sqlnet.ora
-rw-r----- 1 oracle oinstall 322 1230 21:46 tnsnames.ora

(2)配置监听

[oracle@ora admin]$ vi listener.ora# listener.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = hisdb)(ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1)(SID_NAME = ora))(SID_DESC =(GLOBAL_DBNAME = hisdbdg)(ORACLE_HOME = /usr/local/oracle/product/11.2.0/db_1)(SID_NAME = oradg)))ADR_BASE_LISTENER = /usr/local/oracle[oracle@ora admin]$ vi tnsnames.ora
# tnsnames.ora Network Configuration File: /usr/local/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.HISDB =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hisdb)))HISDBDG =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oradg)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = hisdbdg)))

(3)重启监听,查看监听状态

[oracle@ora admin]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 31-DEC-2024 18:52:02Copyright (c) 1991, 2013, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                31-DEC-2024 18:51:55
Uptime                    0 days 0 hr. 0 min. 6 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /usr/local/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /usr/local/oracle/diag/tnslsnr/ora/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora)(PORT=1521)))
Services Summary...
Service "hisdb" has 1 instance(s).Instance "ora", status UNKNOWN, has 1 handler(s) for this service...
Service "hisdbdg" has 1 instance(s).Instance "oradg", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

(4)使用tnsping测试主备连通性

tnsping hisdbtnsping hisdbdg
6、修改主数据库的配置文件

(1)生成参数文件

SQL> create pfile from spfile;File created.

(2)查看数据库信息

-- 主数据库
SQL> show parameter db_unique_name;NAME				     TYPE	 VALUE
------------------------------------ ----------- ------------------------------
db_unique_name			     string	 hisdb-- 备份数据库
SQL> show parameter db_unique_name;

(3)修改参数文件

# 在参数文件中添加以下内容:
*.db_unique_name='hisdb'                           # 主数据库的唯一名,默认和数据库名一致
*.log_archive_config='dg_config=(hisdb,hisdbdg)'   # 主库和备库在tnsname.ora中的连接名*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=hisdb'                             # 主数据库的唯一名
*.log_archive_dest_2='service=hisdbdg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=hisdbdg'                           # 备用数据库的唯一名
*.db_file_name_convert='/usr/local/oradata/hisdb/','/usr/local/oradata/hisdb/'
# db_file_name_convert参数的设置说明:当主备库目录结构不一致的时候,主数据库和备用数据库的数据文件
# 转换目录映射
# 格式: 
# 主库配置格式: *.db_file_name_convert= 备用数据库数据文件目录,主数据库数据文件目录
# 备库配置格式: *.db_file_name_convert= 主数据库数据文件目录,备用数据库数据文件目录
*.log_file_name_convert='/usr/local/oradata/hisdb/','/usr/local/oradata/hisdb/'
# log_file_name_convert:指明主数据库和备用数据库的log文件转换目录映射。
# 主库配置格式: *. log_file_name_convert=备用数据库log目录,主数据库log目录
# 备库配置格式: *. log_file_name_convert=主数据库log目录,备用数据库log目录
# 如果主备库的数据文件路径以及联机日志路径不一致,则需要设置db_file_name_convert和
# log_file_name_convert的参数,当然如果多对一同样要设置。
# 但是如果主备库数据文件以及日志文件路径一直则不需要设置该参数
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_file_management='auto'
# fal_client用于发送日志,fal_server用于接受日志。
# 也即无论是主库或备库,fal_server=对方,fal_client=自己
# 主库设置如下
*.fal_server='hisdbdg'
*.fal_client='hisdb'
# 备库设置如下
# *.fal_server='hisdb'
# *.fal_client='hisdbdg'

修改以后的参数文件内容如下:

[oracle@ora admin]$ cd $ORACLE_HOME/dbs
[oracle@ora dbs]$ ll
总用量 24
-rw-rw---- 1 oracle oinstall 1544 11 17:31 hc_ora.dat
-rw-r--r-- 1 oracle oinstall 2851 515 2009 init.ora
-rw-r--r-- 1 oracle oinstall 1384 11 17:41 initora.ora
-rw-r----- 1 oracle oinstall   24 1230 21:46 lkHISDB
-rw-r----- 1 oracle oinstall 1536 1230 21:46 orapwora
-rw-r----- 1 oracle oinstall 3584 11 17:32 spfileora.ora[oracle@ora admin]$ vi initora.oraora.__db_cache_size=792723456
ora.__java_pool_size=4194304
ora.__large_pool_size=8388608
ora.__oracle_base='/usr/local/oracle'#ORACLE_BASE set from environment
ora.__pga_aggregate_target=499122176
ora.__sga_target=1073741824
ora.__shared_io_pool_size=0
ora.__shared_pool_size=255852544
ora.__streams_pool_size=0
*.audit_file_dest='/usr/local/oracle/admin/hisdb/adump'
*.audit_trail='db'
*.compatible='11.2.0.4.0'
*.control_files='/usr/local/oradata/hisdb/control01.ctl','/usr/local/oracle/fast_recovery_area/hisdb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='hisdb'
*.db_recovery_file_dest_size=4385144832
*.db_recovery_file_dest='/usr/local/oracle/fast_recovery_area'
*.diagnostic_dest='/usr/local/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oraXDB)'
*.open_cursors=300
*.pga_aggregate_target=499122176
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=1073741824
*.undo_tablespace='UNDOTBS1'# 新增如下内容
*.db_unique_name='hisdb'
*.log_archive_config='dg_config=(hisdb,hisdbdg)'
*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=hisdb'
*.log_archive_dest_2='service=hisdbdg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=hisdbdg'
*.db_file_name_convert='/usr/local/oradata/hisdbdg/','/usr/local/oradata/hisdb/'
*.log_file_name_convert='/usr/local/oradata/hisdbdg/','/usr/local/oradata/hisdb/'
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.standby_file_management='auto'
*.fal_server='hisdbdg'
*.fal_client='hisdb'

停库,然后使用修改后的参数文件启动数据库:

-- 停库
SQL> shutdow immediate
Database closed.
Database dismounted.
ORACLE instance shut down.-- 生成spfile参数文件
SQL> create spfile from pfile;File created.
-- 启动数据库
SQL> startup
ORACLE instance started.Total System Global Area 1068937216 bytes
Fixed Size		    2260088 bytes
Variable Size		  331350920 bytes
Database Buffers	  729808896 bytes
Redo Buffers		    5517312 bytes
Database mounted.
Database opened.
7、把主数据库的口令文件复制到备库
[oracle@ora admin]$ cd $ORACLE_HOME/dbs
[oracle@ora dbs]$ ls
hc_ora.dat  init.ora  lkHISDB  orapwora  spfileora.ora[oracle@ora dbs]$ scp orapwora oracle@oradg:$ORACLE_HOME/dbs
oracle@oradg's password: 
orapwora                                                                                                                                  100% 1536     1.5KB/s   00:00    
[oracle@ora dbs]$ 

相关文章:

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库

Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库 目录 Oracle Dataguard(主库为 Oracle 11g 单节点)配置详解(2):配置主数据库一、配置…...

(leetcode算法题)10. 正则表达式匹配

10. 正则表达式匹配 - 力扣(LeetCode) 此题的要求一个字符串 s 和一个字符规律 p之间支持 . 和 * 的正则表达式匹配 . 匹配任意单个字符 * 匹配零个或多个前面的那一个元素 所谓匹配,是要涵盖 整个 字符串 s 的,而不是部分字符串…...

Hive性能调优考量

Hive作为大数据领域常见的数据仓库组件,在设计和开发阶段需要注意效率。影响Hive效率的不仅仅是数据量过大,数据倾斜、job(小文件过多)或者磁盘I/O过多、MapReduce分配不合理等因素都会对Hive的效率有影响。对Hive的调优可以从架构…...

2024-12-29-sklearn学习(26)模型选择与评估-交叉验证:评估估算器的表现 今夜偏知春气暖,虫声新透绿窗纱。

文章目录 sklearn学习(26) 模型选择与评估-交叉验证:评估估算器的表现26.1 计算交叉验证的指标26.1.1 cross_validate 函数和多度量评估26.1.2 通过交叉验证获取预测 26.2 交叉验证迭代器26.2.1 交叉验证迭代器–循环遍历数据26.2.1.1 K 折26.2.1.2 重复 K-折交叉验…...

Spring Boot + MinIO 实现分段、断点续传,让文件传输更高效

一、引言 在当今的互联网应用中,文件上传是一个常见的功能需求。然而,传统的文件上传方式在面对大文件或不稳定的网络环境时,可能会出现性能瓶颈和上传失败的问题。 传统文件上传,就像是用一辆小推车搬运大型家具,一…...

获取用户详细信息-ThreadLocal优化

Thread全局接口可用,不用再重复编写。所以为了代码的复用,使用Thread。把之前的内容(函数的参数和map与username)注释掉,换为Thread传过来的内容(map与username)。 因为Thread需要在拦截器里面…...

R语言6种将字符转成数字的方法,写在新年来临之际

咱们临床研究中,拿到数据后首先要对数据进行清洗,把数据变成咱们想要的格式,才能进行下一步分析,其中数据中的字符转成数字是个重要的内容,因为字符中常含有特殊符号,不利于分析,转成数字后才能…...

Go语言方法和接收器类型详解

Go语言方法和接收器类型详解 1. 方法接收器类型 1.1 值接收器 值接收器方法不会改变接收器的状态,因为Go语言会在调用时复制接收器的值。因此,任何对接收器成员变量的修改都只会影响副本,而不会影响原始结构体实例。 type Person struct …...

Linux常用命令总结

目录 查询java服务的pid查询pid上的进程占用的端口方法 1:使用 lsof 查询端口方法 2:使用 netstat 查询端口方法 3:使用 ss 命令查询端口 system相关命令 查询java服务的pid JPS查询pid上的进程占用的端口 要根据进程 ID(PID&am…...

Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录

Linux总结之CentOS Stream 9安装mysql8.0实操安装成功记录 由于网上很多的mysql8.0安装教程都是老版本或者安装过程记录有问题,导致经常安装到一半需要删除重新安装。所以将成功的实操安装过程记录一下,方面后面查阅,大家还有问题的可以在此讨…...

ROS2软件架构全面解析-学习如何设计通信中间件框架

前言 ROS(Robot Operating System) 2 是一个用于开发机器人应用的软件平台,也称为机器人软件开发工具包 (SDK)。 ROS2是ROS1的迭代升级版本 ,最主要的升级点是引入DDS(Data Distribution Service)为基础的…...

基于微信小程序的校园自助打印系统

博主介绍:java高级开发,从事互联网行业六年,熟悉各种主流语言,精通java、python、php、爬虫、web开发,已经做了多年的设计程序开发,开发过上千套设计程序,没有什么华丽的语言,只有实…...

Linux命令——3.网络与用户

文章目录 一、网络1.网络测试与诊断2.网络接口配置3.无线网络配置4.防火墙与网络管理6.防火墙管理1)firewalld命令2)iptables命令 二、用户和群组1.管理员模式2.用户账户管理1)useradd创建2)usermod修改3)userdel 删除…...

2、redis的持久化

redis的持久化 在redist当中,高可用的技术包括持久化,主从复制,哨兵模式,集群。 持久化是最简单的高可用的方法,作用就是备份数据。即将数据保存到硬盘,防止进程退出导致数据丢失。 redis持久化方式&…...

建造者模式 Builder Pattern

在创建一个对象的时候,构造器参数有点多,而且有些参数还是可选的,再者还有不少同类型的,那就更应该使用 builder 模式了。 使用 Builder 模式的初衷是 把易变性(mutability)移动到Builder类,而…...

制作一个类似ChatGPT的AI对话网站,模型能力使用ChatGPT

要快速搭建一个类似ChatGPT的AI对话网站,并且使用类似ChatGPT的模型能力,可以考虑以下技术和工具: ### 1. **使用现有的AI模型平台** - **OpenAI API**: 如果你希望使用类似于ChatGPT的能力,OpenAI提供了强大的API服务&#xff08…...

LinuxC高级day2

1.在家目录下创建目录文件,dir a.dir下创建dir1和dir2 b.把当前目录下的所有文件拷贝到dir1中, c.把当前目录下的所有脚本文件拷贝到dir2中 d.把dir2打包并压缩为dir2.tar.xz e.再把dir2.tar.xz移动到dir1中 f.解压dir1中的压缩包 g.使用tree工具&#x…...

Word格式修改

经常修改格式,留下这篇汇总 Word的累加符号上下标变右标指定目录:word如何取消封面或者目录下方的页码,页码从正文开始加参考文献:【Word】怎样给论文添加引用参考文献删空白页: word中无法删除空白页怎么办&#xff…...

深度学习-稀疏卷积

步骤: 1、构建输入输出哈希表; 输入哈希表的键为激活点的索引,值为激活点的坐标;输出哈希表的键为激活点对应的输出点的索引,值为输出点的坐标。 2、构建规则书; 规则书的每一行包含4个值,分别是…...

Microsoft Visual Studio中的/MT, /MTd,/MD,/MDd分别是什么意思?

1. /MT,/MTd,/MD,/MDd的含义 /MT,/MTd,/MD,/MDd是 Microsoft Visual C 编译器的运行时库链接选项。它们决定了程序如何链接 C 运行时库(CRT)。具体含义如下: /MT&#x…...

交换机关于环路、接口绑定、链路聚合的相关知识

文章目录 1、对交换机SW-1进行配置,仅允许Host-1通过Ethernet0/0/1接口与Host-3和Host-4通信,Host-2无法与其他主机通信。2、关闭生成树协议,验证环路造成的影响3、关闭生成树协议通过链路聚合实现两条链路正常通信并提高链路可靠性。 内容包…...

5.微服务灰度发布落地实践(rocketmq增强)

文章目录 前言发送端灰度增强订阅端灰度增强 前言 上一篇分析了,在灰度发布实现中为什么要对消息队列灰度发布进行增强。本篇主要介绍如何实现rocketmq 灰度发布的增强. 发送端灰度增强 订阅端灰度增强...

32单片机从入门到精通之开发环境——库文件(六)

每个人都有自己的追求和梦想,但要实现这些梦想并不容易。在追逐梦想的路上,我们会遇到各种困难和挫折,甚至会感到无助和失望。然而,正是这些困难和挫折让我们更加坚韧和坚定地追求自己的目标。不要害怕失败,失败只是暂…...

大电流和大电压采样电路

大电压采样电路: 需要串联多个电阻进行分压,从而一级一级降低电压,防止电阻损坏或者短路直接打穿MCU。 为什么需要加电压跟随器:进行阻抗的隔离,防止MCU的IO阻抗对分压产生影响: 大电流检测电路&#xff…...

用户态和内核态?

目录 一、定义与特点 二、功能与权限差异 三、安全性与稳定性 四、系统调用与交互 五、参考 用户态和内核态是操作系统中的两种基本运行状态,它们各自具有不同的特点和权限,共同构成了操作系统的运行基础。以下是对用户态和内核态的详细解释&#x…...

Qt天气预报系统设计界面布局第四部分左边

Qt天气预报系统设计 1、第四部分左边的第一部分1.1添加控件1.2修改控件名字 2、第四部分左边的第二部分2.1添加控件2.2修改控件名字 3、第四部分左边的第三部分3.1添加控件3.2修改控件名字 4、对整个widget04l调整 1、第四部分左边的第一部分 1.1添加控件 拖入一个widget&…...

【Spring MVC 常用注解】注解驱动开发的魔法

在 Spring MVC 中,注解可以说是开发者的“魔法棒”,通过简单的注解配置,开发者能够实现请求处理、参数绑定、响应返回等复杂功能,真正做到“少写代码多干活”。 我们接下来就来一起看看 Spring MVC 中常用的注解,它们的…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发二十一.4,SDP协议分析

SDP在4566 中有详细描述。 SDP 全称是 Session Description Protocol, 翻译过来就是描述会话的协议。 主要用于两个会话实体之间的媒体协商。 什么叫会话呢,比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。 那为什…...

STM32 高级 WIFi案例1:测试AT指令

需求描述 测试AT指令是否能够正常控制ESP32的wifi,比如重启、读取设备信息等。 思路: stm32通过串口usart2向ESP32发布命令。ESP32通过串口1返回信息。 配置: 第一步:对ESP32芯片烧录可以读取stm32命令的固件(fac…...

Mono里运行C#脚本18—mono_image_load_names

前面已经分析完成加载CLR的流表,接着下来就是使用前面分析的数据,更进一步来处理了。下面就是通过函数mono_image_load_names获得程序集的名称和模块名称。 在CLI定义的文档里,表Assembly : 0x20: Assembly表结构信息,以下是该表各列的简要说明: HashAlgId: 这是一个4字…...

Java和Python区别: 应用领域与性能抉择的深度解析

文章目录 1. 引言2. 语言特性对比:灵活性与严谨性的碰撞3. 应用场景分析:专注任务的工具选择3.1 数据库交互:Java 的优势所在3.2 图像识别与计算:Python 的专长3.3 Web 开发 4. 高并发请求处理:架构设计与硬件选择4.1 …...

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者

SQL Server详细使用教程(包含启动SQL server服务、建立数据库、建表的详细操作) 非常适合初学者 文章目录 目录 前言 一、启动SQL server服务的三种方法 1.不启动SQL server服务的影响 2.方法一:利用cmd启动SQL server服务 3.方法二:利用SQL Serv…...

基于Docker+模拟器的Appium自动化测试(二)

模拟器的设置 打开“夜神模拟器”的系统设置,切换到“手机与网络”页,选中网络设置下的“开启网络连接”和“开启网络桥接模式”复选框,而后选择“静态IP”单选框,在IP地址中输入“192.168.0.105”,网关等内容不再赘述…...

CSS系列(47)-- Animation Timeline详解

前端技术探索系列:CSS Animation Timeline详解 ⏱️ 致读者:探索动画时间线的艺术 👋 前端开发者们, 今天我们将深入探讨 CSS Animation Timeline,这个强大的动画控制特性。 基础概念 🚀 时间线定义 …...

1、pycharm、python下载与安装

1、去官网下载pycharm 官网:https://www.jetbrains.com/pycharm/download/?sectionwindows 2、在等待期间,去下载python 进入官网地址:https://www.python.org/downloads/windows/ 3、安装pycharm 桌面会出现快捷方式 4、安装python…...

【翻译】优化加速像素着色器执行的方法

中文翻译 在回复我的 Twitter 私信时,我遇到了一个关于如何提高像素/片段着色器执行速度的问题。这是一个相当广泛的问题,具体取决于每个 GPU/平台和游戏内容的特性,但我在本帖中扩展了我“头脑风暴”式的回答,以便其他人也觉得有用。这不是一份详尽的清单,更像是一个高层…...

ZLib库使用详细教程 以及标准ZLib函数和QT自带压缩函数比较

1. 下载Zlib 官网下载地址如下:http://www.zlib.net/ 2. 利用cmake编译zlib 有两种方法可以打开cmake-gui winR输入cmd打开命令行,在命令行中输入cmake-gui可以直接打开应用界面找到你一开始安装cmake的文件夹,在bin子文件夹中双击cmake-…...

android stdudio环境: gradle一直安装失败

一、一直显示如下错误 The specified Gradle distribution file:/home/wangqingyuan/.gradle/wrapper/dists/gradle-8.6-bin/gradle-8.6-bin.zip does not exist. 经分析,是因为应用本身设置了gradle版本的地址为本地: 应用目录:gradle/gra…...

2024年12月31日Github流行趋势

项目名称:free-programming-books 项目地址url:https://github.com/EbookFoundation/free-programming-books项目语言:HTML历史star数:344575今日star数:432项目维护者:vhf, eshellman, davorpa, MHM5000, …...

音视频入门基础:MPEG2-TS专题(24)——FFmpeg源码中,显示TS流每个packet的pts、dts的实现

音视频入门基础:MPEG2-TS专题系列文章: 音视频入门基础:MPEG2-TS专题(1)——MPEG2-TS官方文档下载 音视频入门基础:MPEG2-TS专题(2)——使用FFmpeg命令生成ts文件 音视频入门基础…...

设计模式の状态策略责任链模式

文章目录 前言一、状态模式二、策略模式三、责任链模式 前言 本篇是关于设计模式中的状态模式、策略模式、以及责任链模式的学习笔记。 一、状态模式 状态模式是一种行为设计模式,核心思想在于,使某个对象在其内部状态改变时,改变该对象的行为…...

TI毫米波雷达原始数据解析之Lane数据交换

TI毫米波雷达原始数据解析之Lane数据交换 背景Lane 定义Lane 确认确认LVDS Lane 数量的Matlab 代码数据格式参考 背景 解析使用mmWave Studio 抓取的ADC Data Lane 定义 芯片与DCA100之间的数据使用LVDS接口传输,使用mmWave Studio 配置过程中有一个选项是LVDS L…...

Python-Pdf转Markdown

使用pdfminer.sixmarkdownify pdfminer.six可以提取Pdf文本内容markdownify可以将文本内容写markdown文件 安装 pip install pdfminer.six pip install markdownify实现 from pdfminer.high_level import extract_text from markdownify import markdownifydef pdf2markdo…...

win32汇编环境下,双击窗口程序内生成的listview列表控件的某行,并提取其内容的示例程序

;运行效果 ;双击后 ;上源码,仔细研究里面的几条备注就理解原理了 ;提取窗口程序内生成的listview列表控件的内容示例程序 ;抄下面源码,可以在radasm里面直接编译运行。主要的部分加了备注。 ;>>>>>>>>>>>>>>…...

对45家“AI+安全”产品/方案的分析

一. 关键洞察 “AI+安全”创新非常活跃,一片百家争鸣之势,赛道选择上,以事件分诊Incident Triage、 安全辅助Security Copilots、自动化Automation三者为主为主,这充分反映了当前安全运营的主要需求,在产品理念选择上以 AI 和 自动化为主,这确实又切合上了在关键…...

家用电器销售系统|Java|SSM|JSP|

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、JSP、jquery,html 5⃣️数据库可…...

小程序租赁系统构建指南与市场机会分析

内容概要 在当今竞争激烈的市场环境中,小程序租赁系统正崭露头角,成为企业转型与创新的重要工具。通过这个系统,商户能够快速推出自己的小程序,无需从头开发,节省了大量时间和资金。让我们来看看这个系统的核心功能吧…...

《XML Schema 字符串数据类型》

《XML Schema 字符串数据类型》 1. 引言 XML Schema 是一种用于描述和验证 XML 文档结构和内容的语言。在 XML Schema 中,字符串数据类型是一种基本的数据类型,用于表示文本数据。本文将详细介绍 XML Schema 中的字符串数据类型,包括其定义…...

探索框架领域的新兴技术:微框架与插件化框架的崛起

近年来,随着软件开发技术的快速发展,开发者对框架的需求也在不断变化。从传统的重量级框架到轻量级微框架,以及支持高度扩展性的插件化框架,技术生态系统日新月异。本文旨在介绍这些新兴框架技术中的一些小众但创新的理念与实现&a…...

【数据结构-单调队列】力扣2762. 不间断子数组

给你一个下标从 0 开始的整数数组 nums 。nums 的一个子数组如果满足以下条件&#xff0c;那么它是 不间断 的&#xff1a; i&#xff0c;i 1 &#xff0c;…&#xff0c;j 表示子数组中的下标。对于所有满足 i < i1, i2 < j 的下标对&#xff0c;都有 0 < |nums[i1…...