基于OGG实现Oracle实时同步MySQL
📢📢📢📣📣📣
哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验
一位上进心十足的【大数据领域博主】!😜😜😜
中国DBA联盟(ACDU)成员,目前服务于工业互联网
擅长主流Oracle、MySQL、PG、高斯及Greenplum运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。
✨ 如果有对【数据库】感兴趣的【小可爱】,欢迎关注【IT邦德】💞💞💞
❤️❤️❤️感谢各位大可爱小可爱!❤️❤️❤️
文章目录
- 前言
- 1.架构设计
- 2.OGG安装部署
- 2.1 OGG for Oracle
- 2.2 OGG for MySQL
- 3.Oracle相关配置
- 3.1 参数调整
- 3.2 新增用户
- 4.MySQL数据初始化
- 5.Oracle OGG设置
- 6.MySQL OGG设置
- 7.全量同步数据
- 8.增量时实同步
- 8.1 Oracle端
- 8.2 MySQL端
- 9.测试同步
前言
本文详细阐述了基于OGG实现Oracle实时同步MySQL全过程1.架构设计
2.OGG安装部署
2.1 OGG for Oracle
1.OGG下载地址:
https://www.oracle.com/middleware/technologies/goldengate-downloads.html
创建OGG使用目录
chown -R oracle:oinstall /oraogg
chmod 775 -R /oraogg
2.环境变量如下
vi .bash_profileexport GG_HOME=/oraogg/goldengate
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:$GG_HOME
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
alias ggsci='cd $GG_HOME;ggsci'source .bash_profile3.静默安装
cd /oraogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/response
vi /oraogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/response/oggcore.rsp--只修改如下3个地方即可。
INSTALL_OPTION=ora19c
SOFTWARE_LOCATION=/oraogg/goldengate
INVENTORY_LOCATION=/u01/app/oraInventory
/u01/app/oracle/product/19.3.0/db_1
使用如下命令静默安装:
/oraogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/runInstaller -silent
-responseFile /oraogg/fbo_ggs_Linux_x64_Oracle_shiphome/Disk1/response/oggcore.rsp
OGG初始化
cd /ogg
./ggsci
create subdirs
2.2 OGG for MySQL
1.安装客户端
yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
yum install mysql-community-server --nogpgcheck
2.创建oggm用户运行OGG for MySQL软件,安装目录为/oggmysql
groupadd -g 1005 ogg
useradd -g ogg -u 1005 -m oggm
mkdir -p /oggmysql
chown oggm:ogg /oggmysql
3.解压缩安装
cd /oggmysql/
unizp 213000_ggs_Linux_x64_MySQL_64bit.zip
tar -xf ggs_Linux_x64_MySQL_64bit.tar
[root@ogg21all oggmysql]# ./ggsci -V
Oracle GoldenGate Command Interpreter for MySQL
Version 21.3.0.0.0 OGGCORE_21.3.0.0.0_PLATFORMS_210728.1047
Oracle Linux 7, x64, 64bit (optimized), MySQL on Jul 28 2021 18:17:46
Copyright © 1995, 2021, Oracle and/or its affiliates. All rights reserved.
4.配置
su - oggm
$ /oggmysql/ggsci
GGSCI (ogg21all) 1> create subdirs
5.环境变量设置
vi .bash_profileexport GG_HOME=/oggmysql
export PATH=$PATH:$HOME/bin:$GG_HOME
alias ggsci='cd $GG_HOME;ggsci'source .bash_profile
3.Oracle相关配置
3.1 参数调整
– oracle数据库配置
1.开启数据库归档–如果没有开启
2.开启数据库级别附加日志–如果没有开始最小附加日志
3.开启强制日志–如果没有开启强制日志
4.设置ENABLE_GOLDENGATE_REPLICAT参数为TRUE
5.创建OGG用户包括包括源端用户、目标端用户以及OGG抽取用户
alter database add supplemental log data;
alter database add supplemental log data (all) columns;
alter database force logging;
alter system set enable_goldengate_replication=TRUE;
##修改归档路径
mkdir -p /home/oracle/arch
SYS@oradb> alter system set log_archive_dest_1=‘location=/home/oracle/arch’;
System altered.
SYS@oradb> archive log list
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /u01/app/oracle/arch
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5
SYS@oradb> select name,supplemental_log_data_min , force_logging, log_mode from v$database;
NAME SUPPLEMENTAL_LOG FORCE_LOGGING LOG_MODE
------------------ ---------------- ----------------- ------------------------
ORCLCDB YES YES ARCHIVELOG
##关闭回收站
SQL> SHOW PARAMETER recyclebin;
SQL> ALTER SYSTEM SET recyclebin = OFF SCOPE = SPFILE;
SQL> show recyclebin;
SQL> PURGE recyclebin;
3.2 新增用户
-- OGG管理用户
SYS@oradb> alter session set container=ORCLPDB1;CREATE USER ogg identified by oracle;
GRANT DBA to ogg;
grant SELECT ANY DICTIONARY to ogg;
GRANT EXECUTE ON SYS.DBMS_LOCK TO ogg;
grant select any transaction to ogg;
grant select any table to ogg;
grant flashback any table to ogg;
grant alter any table to ogg;exec dbms_goldengate_auth.grant_admin_privilege('OGG','*',TRUE); -- 业务用户
CREATE USER rptuser identified by oracle;
GRANT DBA to rptuser ;
grant SELECT ANY DICTIONARY to rptuser;
GRANT EXECUTE ON SYS.DBMS_LOCK TO rptuser;
4.MySQL数据初始化
1.生成MySQL端DDL语句
可以使用Navicat的数据传输功能或其它工具直接从Oracle端生成MySQL类型的建表语句如下:mysql -uroot -proot
create database rptdb;mysql -uroot -proot -h 172.18.12.91 -D rptdb -f < ddl.sql2.DDL语句如下
SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0; DROP TABLE IF EXISTS `ADDRESSES`;
CREATE TABLE `ADDRESSES`
( `ADDRESS_ID` decimal(12, 0) NOT NULL,
`CUSTOMER_ID` decimal(12, 0) NOT NULL,
`DATE_CREATED` datetime NOT NULL,
`HOUSE_NO_OR_NAME` varchar(60) NULL,
`STREET_NAME` varchar(60) NULL,
`TOWN` varchar(60) NULL,
`COUNTY` varchar(60) NULL,
`COUNTRY` varchar(60) NULL,
`POST_CODE` varchar(12) NULL,
`ZIP_CODE` varchar(12) NULL,
PRIMARY KEY (`ADDRESS_ID`),
INDEX `ADDRESS_CUST_IX`(`CUSTOMER_ID` ASC)
);----- Table structure for CARD_DETAILS ----
DROP TABLE IF EXISTS `CARD_DETAILS`;
CREATE TABLE `CARD_DETAILS`
( `CARD_ID` decimal(12, 0) NOT NULL,
`CUSTOMER_ID` decimal(12, 0) NOT NULL,
`CARD_TYPE` varchar(30) NOT NULL,
`CARD_NUMBER` decimal(12, 0) NOT NULL,
`EXPIRY_DATE` datetime NOT NULL,
`IS_VALID` varchar(1) NOT NULL,
`SECURITY_CODE` decimal(6, 0) NULL,
PRIMARY KEY (`CARD_ID`),
INDEX `CARDDETAILS_CUST_IX`(`CUSTOMER_ID` ASC)
);---- Table structure for CUSTOMERS ----
DROP TABLE IF EXISTS `CUSTOMERS`;
CREATE TABLE `CUSTOMERS`
( `CUSTOMER_ID` decimal(12, 0) NOT NULL,
`CUST_FIRST_NAME` varchar(40) NOT NULL,
`CUST_LAST_NAME` varchar(40) NOT NULL,
`NLS_LANGUAGE` varchar(3) NULL,
`NLS_TERRITORY` varchar(30) NULL,
`CREDIT_LIMIT` decimal(9, 2) NULL,
`CUST_EMAIL` varchar(100) NULL,
`ACCOUNT_MGR_ID` decimal(12, 0) NULL,
`CUSTOMER_SINCE` datetime NULL,
`CUSTOMER_CLASS` varchar(40) NULL,
`SUGGESTIONS` varchar(40) NULL,
`DOB` datetime NULL, `MAILSHOT` varchar(1) NULL,
`PARTNER_MAILSHOT` varchar(1) NULL,
`PREFERRED_ADDRESS` decimal(12, 0) NULL,
`PREFERRED_CARD` decimal(12, 0) NULL,
PRIMARY KEY (`CUSTOMER_ID`),
INDEX `CUST_ACCOUNT_MANAGER_IX`(`ACCOUNT_MGR_ID` ASC),
INDEX `CUST_DOB_IX`(`DOB` ASC),
INDEX `CUST_EMAIL_IX`(`CUST_EMAIL` ASC)
);
5.Oracle OGG设置
[root@ogg21all /]# su - oracle
[oracle@ogg21all ~]$ ggsci
GGSCI (ogg21all) 2> edit params mgr
PORT 7809
add credentialstore
alter credentialstore add user ogg@172.18.12.90/oradb, password oracle alias ora19c
INFO CREDENTIALSTORE
GGSCI (ogg21all) 7> INFO CREDENTIALSTORE
Reading from credential store:
Default domain: OracleGoldenGate
Alias: ora19c
Userid: ogg@172.18.12.90/oradb
dblogin useridalias ora19c
ADD SCHEMATRANDATA RPTUSER
INFO SCHEMATRANDATA RPTUSER
list tables RPTUSER.*
6.MySQL OGG设置
GGSCI (ogg21all) 1> edit params mgr
port 8809
GGSCI (ogg21all) 2> start mgr
Manager started.
GGSCI (ogg21all) 3> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
7.全量同步数据
Oracle全量同步到MySQL
注意:在此阶段,源端需要停业务,不能产生新数据。-- oracle端
edit params ext0
EXTRACT ext0
USERIDALIAS ora19c
rmthost 127.0.0.1,mgrport 8809
rmttask replicat,group rep0
TABLE RPTUSER.ADDRESSES;
TABLE RPTUSER.CARD_DETAILS;
TABLE RPTUSER.CUSTOMERS;add extract ext0 ,sourceistable
delete extract ext0-- MySQL端
edit params rep0
replicat rep0
targetdb rptdb@172.18.12.91:3306 userid root password root
map RPTUSER.ADDRESSES, target rptdb.ADDRESSES;
map RPTUSER.CARD_DETAILS, target rptdb.CARD_DETAILS;
map RPTUSER.CUSTOMERS, target rptdb.CUSTOMERS;add replicat rep0 ,specialrun
delete replicat rep0-- 直接启动源端ext0即可,rep0不用启动,MGR会自动启动它,等同步结束,它会自动关闭
start ext0-- 查看日志
info rep0,showch
view report rep0--登录验证数据
mysql -uroot -proot -h 172.18.12.91 -D rptdbmysql> select count(*) from ADDRESSES;
+----------+
| count(*) |
+----------+
| 150 |
+----------+
1 row in set (0.04 sec)mysql> select count(*) from CARD_DETAILS;
+----------+
| count(*) |
+----------+
| 150 |
+----------+
1 row in set (0.05 sec)mysql> select count(*) from CUSTOMERS;
+----------+
| count(*) |
+----------+
| 100 |
+----------+
1 row in set (0.04 sec)GGSCI (ogg21all as ogg@oradb) 21> info ext0Extract EXT0 Last Started 2023-11-25 18:58 Status STOPPED
Checkpoint Lag Not Available
Log Read Checkpoint Table RPTUSER.CUSTOMERS2023-11-25 18:58:46 Record 100
Task SOURCEISTABLE
8.增量时实同步
8.1 Oracle端
ADD EXTRACT exto INTEGRATED TRANLOG BEGIN NOW
ADD EXTTRAIL ./dirdat/eo EXTRACT exto
dblogin useridalias ora19c
REGISTER EXTRACT exto DATABASE
edit params exto
EXTRACT exto
USERIDALIAS ora19c
TRANLOGOPTIONS FETCHPARTIALLOB
EXTTRAIL ./dirdat/eo
TABLE RPTUSER.ADDRESSES;
TABLE RPTUSER.CARD_DETAILS;
TABLE RPTUSER.CUSTOMERS;
启动exto
start exto
GGSCI (ogg21all as ogg@oradb) 12> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
EXTRACT RUNNING EXTO 00:02:19 00:00:08
8.2 MySQL端
edit params repm
replicat repm
targetdb rptdb@172.18.12.91:3306 userid root password root
map RPTUSER.ADDRESSES, target rptdb.ADDRESSES;
map RPTUSER.CARD_DETAILS, target rptdb.CARD_DETAILS;
map RPTUSER.CUSTOMERS, target rptdb.CUSTOMERS;
add rep repm, exttrail /oraogg/goldengate/dirdat/eo, NODBCHECKPOINT
delete rep repm
start repm
9.测试同步
1.Oracle端测试产生数据
SYS@oradb> DELETE FROM RPTUSER.ADDRESSES WHERE ADDRESS_ID=150;GGSCI (ogg21all as ogg@oradb) 21> stats exto,totalSending STATS request to Extract group EXTO ...Start of statistics at 2023-11-25 19:36:13.Output to ./dirdat/eo:Extracting from RPTUSER.ADDRESSES to RPTUSER.ADDRESSES:*** Total statistics since 2023-11-25 19:25:02 ***Total inserts 0.00Total updates 0.00Total deletes 1.00Total upserts 0.00Total discards 0.00Total operations 1.00End of statistics.2.mysql端插入数据
mysql -uroot -proot -h 172.18.12.91 -D rptdb
mysql> select count(*) from ADDRESSES;GGSCI (ogg21all) 18> stats repm,totalSending STATS request to Replicat group REPM ...Start of statistics at 2023-11-25 19:56:10.Replicating from RPTUSER.ADDRESSES to rptdb.ADDRESSES:*** Total statistics since 2023-11-25 19:54:49 ***Total inserts 0.00Total updates 0.00Total deletes 1.00Total upserts 0.00Total discards 0.00Total operations 1.00End of statistics.mysql> SELECT * FROM ADDRESSES WHERE ADDRESS_ID=150;
Empty set (0.00 sec)mysql> select database();
+------------+
| database() |
+------------+
| rptdb |
+------------+
1 row in set (0.00 sec)
相关文章:

基于OGG实现Oracle实时同步MySQL
📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...

〖大前端 - 基础入门三大核心之JS篇㊷〗- DOM事件对象及它的属性
说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:不渴望力量的哈士奇(哈哥),十余年工作经验, 从事过全栈研发、产品经理等工作…...

如何搭建zerotier服务器组网实现内网穿透
小白花了四天的下班时间终于把zerotier网络调通,此刻坐在桌前舒畅地喝口茶~~ 下面来详细记录下这几天踩的坑: 起因就在于一直在iPad上用向日葵连接公司电脑的我觉得向日葵的界面用的实在难受,vs code操作十分不灵光&…...

【C++】构造函数和析构函数第四部分(深拷贝和浅拷贝)--- 2023.11.25
目录 什么是浅拷贝?浅拷贝的问题使用深拷贝解决浅拷贝问题结束语 什么是浅拷贝? 如果在一个类中没有人为定义拷贝函数,则系统会提供默认拷贝函数。那么在此默认拷贝函数中主要进行了简单的赋值操作,那这个简单的赋值操作我们一般…...

加速软件开发:自动化测试在持续集成中的重要作用!
持续集成的自动化测试 如今互联网软件的开发、测试和发布,已经形成了一套非常标准的流程,最重要的组成部分就是持续集成(Continuous integration,简称CI,目前主要的持续集成系统是Jenkins)。 那么什么是持…...
工具及方法 - 查找排名:国内网络作家排名
中国十大网络小说作家排名,在买购网的排名: 中国十大网络小说作家 网络小说作家排行榜 中国著名网络写手排名→MAIGOO生活榜 (这个网站里还有很多其他的排名。) 1,唐家三少 2,辰东 3,我吃西红…...
MySQL INSERT插入条件判断:如果不存在则插入
MySQL INSERT插入条件判断:如果不存在则插入(转) 我们经常需要进行sql的批量插入,要求:该条记录不存在则插入,存在则不插入。如果使用一条INSERT语句实现呢? ####普通的 INSERT INTO 插入&…...

CSM32RV003:国产高精度16位ADC低功耗RISC-V内核MCU
目录 高精度ADC工业应用工业数据采集应用CSM32RV003简介主要特性 高精度ADC工业应用 高精度ADC即高精度模数转换器,是一种能够将输入模拟信号转换为数字信号的芯片,在多种消费电子、工业、医疗和科研领域都有广泛应用。高精度ADC的主要特点是能够提供高…...
65道常问前端面试题总结react
面试题总结 一.Axios的实现原理 Axios 是一个基于 Promise 的 HTTP 客户端库,用于浏览器和 Node.js 环境。它可以发送 HTTP 请求并处理响应数据。下面是 Axios 实现的基本原理: 封装请求:Axios 提供了一个简单易用的 API,使得开…...

单片机学习1——点亮一个LED灯
Keil软件编写程序: 特殊功能寄存器声明: #include<reg52.h>sbit LED P1^0;void main() {LED 0;while(1); } 代码说明: sbit 语句是特殊功能位声明。 生成HEX文件,这个文件是下载到单片机里的文件。Options for Target…...

PyCharm 配置sqlite3驱动下载问题
单击View -> Tool Windows -> Database,打开Database窗体,之后进行配置,下载驱动包失败! 解决 (1)下载Sqlite3驱动 下载地址: Central Repository: org/xerial/sqlite-jdbc 选择的版本是3.34.0,下载…...

NVMe-oF E-JBOF设计解析:WD RapidFlex网卡、OpenFlex Data24
OpenFlex Data24 NVMe-oF Storage Platform WD的SN840 NVMeSSD新品并没有太吸引我注意,因为它还是PCIe 3.0接口的,要知道Intel的PCIe 4.0 SSD都已经推出了。 但上面这个NVMe-oF(NVMe over Fabric)EBOF(区别于普通JBO…...

visual studio 下的git
我这个是看视频笔记 YouTube : https://www.youtube.com/watch?vgkDASVE_Hdg 主要内容是:建立git 库, 保存commit, 建立分支 create branch, 合并分支merge branch,比较 diff,Revert ,history,delete branch, rename branch, t…...

[架构之路-249]:目标系统 - 设计方法 - 软件工程 - 需求工程- 需求开发:如何用图形表达需求,结构化方法的需求分析
目录 一、概述 二、数据模型:E-R图/实体关系图(数据单元之间的结构关系) 三、功能模型:数据流图DFD(逻辑运算,包括输入和输出,实体之间的关系):输入》处理 》 输出 四…...

Django之中间件与CSRF_TOKEN
文章目录 一、什么是中间件二、中间件有什么用三、Django自定义中间件中间件中主要方法及作用创建自定义中间件的步骤:process_request与process_response方法process_view方法process_exceptionprocess_template_response(不常用) 四、CSRF_…...

柑橘病害数据集(四类图像分类,没有打yolo标签)
1.文件夹分为训练集和测试集 在这个数据集中,有一类是新鲜柑橘,还有另外三种疾病,溃疡病、黑斑病和绿化病。 2.train文件夹 2.1.blackspot(黑斑病) 文件夹 206张照片 2.2.canker(溃疡病) 文…...
面向对象三大特性:封装,继承,多态;多态的机制;以及多态是如何实现的,实现的必要条件
文章目录 面向对象三大特性2.1.1 封装 继承 多态2.1.2 其中Java 面向对象编程三大特性:封装 继承 多态2.1.3 关于继承如下 3 点请记住:2.1.4 什么是多态机制?Java语言是如何实现多态的?2.1.5 Java实现多态有三个必要条件ÿ…...

Unity-类-Vector
Vector矢量 是一个基本的数学概念,它允许你描述方向和大小。在游戏和应用中,矢量通常用于描述一些基本属性,如角色的位置、物体移动的速度或两个物体之间的距离。 矢量算术是计算机编程很多方面(如图形、物理和动画)的基础,深入了解这一主题对于充分发挥 Unity 的功能很有…...

【腾讯云云上实验室】向量数据库相亲社交应用实践
快速入口 👉向量数据库_大模型知识库_向量数据存储_向量数据检索- 腾讯云 (tencent.com) 文章目录 前言1. 向量数据库概念及原理1.1 向量数据库概念1.2 向量数据库核心原理1.3 向量数据库优缺点1.4 向量数据库与传统数据库的区别 2. 腾讯云向量数据库的基本特性及优…...
SpringCloud Netflix 知识点汇总
目录 SpringCloud概念:1、什么是springcloud?2、SpringCloud有哪些核心组件?3、什么是分布式?4、什么是微服务?5、分布式+微服务+集群6、微服务之间是如何独立通讯的Eureka1、什么是Eureka ?2、为什么使用Eureka?3、什么是Eureka自我保护机制4、Zookeeper 和 Eureka 区别…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

ElasticSearch搜索引擎之倒排索引及其底层算法
文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...

免费PDF转图片工具
免费PDF转图片工具 一款简单易用的PDF转图片工具,可以将PDF文件快速转换为高质量PNG图片。无需安装复杂的软件,也不需要在线上传文件,保护您的隐私。 工具截图 主要特点 🚀 快速转换:本地转换,无需等待上…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...

2.3 物理层设备
在这个视频中,我们要学习工作在物理层的两种网络设备,分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间,需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质,假设A节点要给…...
2025.6.9总结(利与弊)
凡事都有两面性。在大厂上班也不例外。今天找开发定位问题,从一个接口人不断溯源到另一个 接口人。有时候,不知道是谁的责任填。将工作内容分的很细,每个人负责其中的一小块。我清楚的意识到,自己就是个可以随时替换的螺丝钉&…...
Android屏幕刷新率与FPS(Frames Per Second) 120hz
Android屏幕刷新率与FPS(Frames Per Second) 120hz 屏幕刷新率是屏幕每秒钟刷新显示内容的次数,单位是赫兹(Hz)。 60Hz 屏幕:每秒刷新 60 次,每次刷新间隔约 16.67ms 90Hz 屏幕:每秒刷新 90 次,…...