MySQL--备份恢复

目录

一、备份恢复的工作职责

1.备份的时间周期

2.备份的方式

3.恢复方案

4.检查备份

5.定期恢复演练

6.故障恢复策略

7.迁移升级

二、逻辑备份工具--mysqldump

1.介绍

2.使用场景

3.mysqldump命令的参数介绍

1)全备:

2)单库或多库备份:--常用

3)备份某个库下的单表或多表:--不常用

4)--master-data=2:备份时自动生成当前的binlog位置信息

5)--single-transaction:对于InnoDB表开启一致性快照备份-->不用锁表就可以备份

6)-R  -E  --triggers:特殊对象备份

7)--max-allowed-packet=128M:服务端允许最大传输的数据包

总结全备命令:

全备命令带压缩

三、mysqldump+binlog 生产故障恢复模拟

1.模拟环境

2.全备

3.全备后产生了新的数据变化

4.搞破坏,删库

5.恢复数据

四、物理备份工具--Percona-Xtrabackup

1.使用场景

2.下载安装

3.修改配置文件

4.XBK备份原理解释

5.XBK恢复原理解释

6.XBK全备实际应用模拟

7.XBK增量备份

五、Xtrabackup全备+增量备份生产故障恢复模拟

1.全备:

2.增量数据备份

3.数据损坏

4.数据恢复(全备+周一增量+周二增量+周三binlog日志)


一、备份恢复的工作职责

1.备份的时间周期

        凌晨、每天一备、每周一备

2.备份的方式

        全备、增量、逻辑、物理

3.恢复方案

        制定备份方案,注意备份方案准确性、备份用时

4.检查备份

        检查备份存在性、大小、日志

5.定期恢复演练

6.故障恢复策略

7.迁移升级

二、逻辑备份工具--mysqldump

1.介绍

        基于sql语句(create database,create table,insert into)的备份

        针对InnoDB表可以实现非锁定备份,原理是通过MVCC中的快照技术进行备份

        针对非InnoDB表启用了锁表备份,FTWRL(global read lock,全局锁表禁止写入)

        无需安装,是mysql自带的工具,数据恢复方式和binlog很像

2.使用场景

        100G以内的数据,比较常用逻辑备份

        优点:文本形式存储,便于查看处理,自带工具,不需要单独安装,压缩比高,节省空间

        缺点:备份时间较长,恢复时间更长(是备份时间的4-6倍)

3.mysqldump命令的参数介绍

连接参数:-u -p -s -h -P

备份方式:

1)全备:

        mysqldump -uyizuo -pok -A >/tmp/full.sql

2)单库或多库备份:--常用

        mysqldump -uyizuo -pok -B world >/tmp/mdp2.sql

3)备份某个库下的单表或多表:--不常用

        mysqldump -uyizuo -pok world city >/tmp/mdp3.sql

        注:单表或多表备份,在恢复时需要提前创建库,use到库中再恢复

4)--master-data=2:备份时自动生成当前的binlog位置信息
5)--single-transaction:对于InnoDB表开启一致性快照备份-->不用锁表就可以备份
6)-R  -E  --triggers:特殊对象备份
7)--max-allowed-packet=128M:服务端允许最大传输的数据包
总结全备命令:

         mysqldump -uroot -A --master-data=2 --single-transaction -R -E --triggers --max-allowed-packet=128M > /opt/full_`date +%F`.sql

全备命令带压缩

        mysqldump -uroot -A --master-data=2 --single-transaction -R -E --triggers --max-allowed-packet=128M|gzip > /opt/full_`date +%F`.sql.gz

三、mysqldump+binlog 生产故障恢复模拟

1.模拟环境

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
| world              |
| yizuo              |
+--------------------+
6 rows in set (0.00 sec)

mysql> use yizuo
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+-----------------+
| Tables_in_yizuo |
+-----------------+
| city            |
+-----------------+
1 row in set (0.01 sec)

mysql> select * from city;
+----+--------+----------+------------+--------------+
| id | name   | province | population | district     |
+----+--------+----------+------------+--------------+
|  2 | 盘锦   | 辽宁     | 109万      | 兴隆台区     |
|  4 | 盘锦   | 辽宁     | 109万      | 兴隆台区     |
+----+--------+----------+------------+--------------+
2 rows in set (0.00 sec)

mysql> 

2.全备

         mysqldump -uroot -A --master-data=2 --single-transaction -R -E --triggers --max-allowed-packet=128M|gzip > /opt/full_$`date +%F`.sql.gz

3.全备后产生了新的数据变化

mysql> use yizuo
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> CREATE TABLE `city_bak` (
    ->   `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
    ->   `name` varchar(100) DEFAULT NULL COMMENT '城市名',
    ->   `province` varchar(100) DEFAULT NULL,
    ->   `population` varchar(100) DEFAULT NULL COMMENT '人口',
    ->   `district` varchar(100) DEFAULT NULL COMMENT '街区',
    ->   PRIMARY KEY (`id`),
    ->   KEY `idx_name` (`name`),
    ->   KEY `idx_nn` (`name`(5)) /*!80000 INVISIBLE */
    -> ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
Query OK, 0 rows affected (0.02 sec)

mysql> show tables;
+-----------------+
| Tables_in_yizuo |
+-----------------+
| city            |
| city_bak        |
+-----------------+
2 rows in set (0.00 sec)

mysql> insert into city_bak(id,name,province,population,district) values(2,'盘锦','辽宁','109万','兴隆台区');
Query OK, 1 row affected (0.01 sec)

 4.搞破坏,删库

        drop database yizuo;

5.恢复数据

        1)全备文件解压缩:gunzip full_\$2024-05-25.sql.gz

        2)检查全备文件:

        3)截取binlog日志

        mysqlbinlog --skip-gtids --include-gtids='518de310-1806-11ef-b5d7-000c2912a662:18-19' binlog.000010  >/opt/bin18-19.sql

        4)恢复全备数据和二进制日志数据

        set sql_log_bin=0;

        source /opt/full_$2024-05-25.sql;

        source /opt/bin18-19.sql

        set sql_log_bin=1;

四、物理备份工具--Percona-Xtrabackup

1.使用场景

        100G-TB级别数据量,一般采用xbk

        优点:备份、恢复速度更快

        缺点:二进制文件方式,不便于查看,可读性差,压缩比低,浪费空间

2.下载安装

        1)安装依赖包

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL libev

        2)下载软件并安装

wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.12/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.12-1.el7.x86_64.rpm

https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.4/binary/redhat/6/x86_64/percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

yum -y install percona-xtrabackup-24-2.4.4-1.el7.x86_64.rpm

        注:安装错版本了,参考官网文件,不同的mysql版本对应不同的xtrabackup版本:

        卸载旧版本:rpm安装方式的卸载

        [root@DB-Server ~]# rpm -qa | grep percona

        percona-xtrabackup-24-2.4.5-1.el7.x86_64

        [root@DB-Server ~]# rpm -ev percona-xtrabackup-24-2.4.5-1.el7.x86_64

        安装正确版本:Use RPM repositories - Percona XtraBackup

3.修改配置文件

4.XBK备份原理解释

InnoDB表

1.XBK备份执行的瞬间,立即触发ckpt检查点,把已经提交的数据脏页,从内存刷写到磁盘,并记录此时的LSN号

2.备份时,拷贝ibd,ibdata,undo,ibtmp1,将备份期间产生的redolog截取拷贝,记录LSN
非InnoDB表1.触发FTWRL全局锁,关闭binlog记录
2.拷贝非InnoDB表数据
3.解锁

        备份数据完成后:记录binlog位置,停止redo拷贝,记录last LSN,记录所有备份日志到指定日志文件中,解锁

5.XBK恢复原理解释

        1)prepare:

                InnoDB表利用ACSR自动故障恢复的功能,使用redo进行前滚,利用undo进行回滚,保证数据一致

                非InnoDB表由于是锁表备份,不会产生新的数据,所以不需要prepare

        2)恢复:

                cp文件至原路径

6.XBK全备实际应用模拟

官方文档:Restore full, incremental, compressed backups - Percona XtraBackup

1)全备命令:xtrabackup --backup --target-dir=/data/3306/backups/

  文件解释xtrabackup_binlog_info:binlog文件的position和gtid位置点

[root@localhost backups]# cat xtrabackup_binlog_info
binlog.000014	196	518de310-1806-11ef-b5d7-000c2912a662:1-20

  文件解释xtrabackup_checkpoints:

[root@localhost backups]# cat xtrabackup_checkpoints
backup_type = full-prepared
from_lsn = 0
to_lsn = 21000068
last_lsn = 21000068
flushed_lsn = 21000068
redo_memory = 0
redo_frames = 0

 文件解释xtrabackup_info:备份信息总览

[root@localhost backups]# cat xtrabackup_info
uuid = 42b032af-1b33-11ef-aad9-000c2912a662
name = 
tool_name = xtrabackup
tool_command = --backup --target-dir=/data/3306/backups/
tool_version = 8.0.35-30
ibbackup_version = 8.0.35-30
server_version = 8.0.20
start_time = 2024-05-26 15:40:19
end_time = 2024-05-26 15:40:44
lock_time = 3
binlog_pos = filename 'binlog.000014', position '196', GTID of the last change '518de310-1806-11ef-b5d7-000c2912a662:1-20'
innodb_from_lsn = 0
innodb_to_lsn = 21000068
partial = N
incremental = N
format = file
compressed = N
encrypted = N

文件解释xtrabackup_logfile:备份期间的redolog文件

2)搞破坏

        pkill mysqld

        rm -rf /data/3306/data/*

3)全备数据恢复

        1)prepare:

                xtrabackup --prepare --target-dir=/data/3306/backups/

        2)恢复:

                xtrabackup --copy-back --target-dir=/data/3306/backups/ --datadir=/data/3306/data

                chown -R mysql.mysql data/*

                重启数据库

7.XBK增量备份

1)增量备份原理:

        XBK自动检查LSN号码的变化,将每天LSN发生变化的数据页备份

2)增量备份必须依赖全备,恢复时必须合并到全备,再由全备文件做数据恢复

五、Xtrabackup全备+增量备份生产故障恢复模拟(mysql8.0.20,Xtrabackup8.0.35)

1.全备:

        xtrabackup --backup --target-dir=/data/3306/backups/

        chown -R mysql.mysql backups/*

2.增量数据备份

第一天数据改动:

        create table city_bak......

        insert into city_bak......

第一天增量备份

        xtrabackup --backup --target-dir=/data/3306/backups/inc1 \
--incremental-basedir=/data/3306/backups/base

第二天数据改动:

        create table city_bak2......

        insert into city_bak2......

第二天增量备份:

        xtrabackup --backup --target-dir=/data/3306/backups/inc2 \
--incremental-basedir=/data/3306/backups/inc1

增量数据给予权限,增量数据检查:(to_lsn,from_lsn)

[root@localhost backups]# ll
总用量 12
drwxr-xr-x 8 root root 4096 5月  26 19:09 base
drwxr-x--- 8 root root 4096 5月  26 19:10 inc1
drwxr-x--- 8 root root 4096 5月  26 19:22 inc2
[root@localhost backups]# cat base/xtrabackup_checkpoints 
backup_type = full-backuped
from_lsn = 0
to_lsn = 21026872 --对应着下一个备份文件的from_lsn
last_lsn = 21026872
flushed_lsn = 21026872
redo_memory = 0
redo_frames = 0
[root@localhost backups]# cat inc1/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 21026872 --对应着上一个备份文件的to_lsn
to_lsn = 21051876 --对应着下一个备份文件的from_lsn
last_lsn = 21052354
flushed_lsn = 21051876
redo_memory = 0
redo_frames = 0
[root@localhost backups]# cat inc2/xtrabackup_checkpoints 
backup_type = incremental
from_lsn = 21051876 --对应着上一个备份文件的to_lsn
to_lsn = 21079740
last_lsn = 21083679
flushed_lsn = 21079740
redo_memory = 0
redo_frames = 0

3.数据损坏

第三天:

        create table city_bak3......

        insert into city_bak3......

让数据损坏:rm -rf data/*

 

4.数据恢复(全备+周一增量+周二增量+周三binlog日志)

1)prepare:

      全备prepare:

              xtrabackup --prepare --apply-log-only --target-dir=/data/3306/backups/base

       合并第一天增量到全备文件:

              xtrabackup --prepare --apply-log-only --target-dir=/data/3306/backups/base \
--incremental-dir=/data/3306/backups/inc1

        合并第二天增量到全备文件:(最后一次合并不需要加--apply-log-only参数)

        xtrabackup --prepare --target-dir=/data/3306/backups/base \
--incremental-dir=/data/3306/backups/inc2

2)备份数据恢复

        xtrabackup --copy-back --target-dir=/data/3306/backups/base/ --datadir=/data/3306/data

        chown -R mysql.mysql data/*

        重启数据库

3)截取binlog日志 

        查看最后一次备份文件的binlog gtid位置点:

        与当前日志位置点进行核对一致

[root@localhost inc2]# cat xtrabackup_binlog_info
binlog.000018	236	518de310-1806-11ef-b5d7-000c2912a662:1-20,583319b5-1b3f-11ef-8916-000c2912a662:1-4
mysql> show binlog events in 'binlog.000018';
+---------------+------+----------------+-----------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Log_name      | Pos  | Event_type     | Server_id | End_log_pos | Info                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
+---------------+------+----------------+-----------+-------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| binlog.000018 |    4 | Format_desc    |        51 |         125 | Server ver: 8.0.20, Binlog ver: 4                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| binlog.000018 |  125 | Previous_gtids |        51 |         236 | 518de310-1806-11ef-b5d7-000c2912a662:1-20,
583319b5-1b3f-11ef-8916-000c2912a662:1-4                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| binlog.000018 |  236 | Gtid           |        51 |         315 | SET @@SESSION.GTID_NEXT= '583319b5-1b3f-11ef-8916-000c2912a662:5'                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| binlog.000018 |  315 | Query          |        51 |         878 | use `world`; CREATE TABLE `city_bak3` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(100) DEFAULT NULL COMMENT '城市名',
  `province` varchar(100) DEFAULT NULL,
  `population` varchar(100) DEFAULT NULL COMMENT '人口',
  `district` varchar(100) DEFAULT NULL COMMENT '街区',
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`),
  KEY `idx_nn` (`name`(5)) /*!80000 INVISIBLE */
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /* xid=180 */          |
| binlog.000018 |  878 | Gtid           |        51 |         957 | SET @@SESSION.GTID_NEXT= '583319b5-1b3f-11ef-8916-000c2912a662:6'                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| binlog.000018 |  957 | Query          |        51 |        1033 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| binlog.000018 | 1033 | Table_map      |        51 |        1106 | table_id: 96 (world.city_bak3)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| binlog.000018 | 1106 | Write_rows     |        51 |        1184 | table_id: 96 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| binlog.000018 | 1184 | Xid            |        51 |        1215 | COMMIT /* xid=181 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| binlog.000018 | 1215 | Gtid           |        51 |        1294 | SET @@SESSION.GTID_NEXT= '583319b5-1b3f-11ef-8916-000c2912a662:7'                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| binlog.000018 | 1294 | Query          |        51 |        1857 | use `world`; CREATE TABLE `city_bak4` (
  `id` int NOT NULL AUTO_INCREMENT COMMENT '编号',
  `name` varchar(100) DEFAULT NULL COMMENT '城市名',
  `province` varchar(100) DEFAULT NULL,
  `population` varchar(100) DEFAULT NULL COMMENT '人口',
  `district` varchar(100) DEFAULT NULL COMMENT '街区',
  PRIMARY KEY (`id`),
  KEY `idx_name` (`name`),
  KEY `idx_nn` (`name`(5)) /*!80000 INVISIBLE */
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci /* xid=198 */          |
| binlog.000018 | 1857 | Gtid           |        51 |        1936 | SET @@SESSION.GTID_NEXT= '583319b5-1b3f-11ef-8916-000c2912a662:8'                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| binlog.000018 | 1936 | Query          |        51 |        2012 | BEGIN                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| binlog.000018 | 2012 | Table_map      |        51 |        2085 | table_id: 97 (world.city_bak4)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| binlog.000018 | 2085 | Write_rows     |        51 |        2163 | table_id: 97 flags: STMT_END_F                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| binlog.000018 | 2163 | Xid            |        51 |        2194 | COMMIT /* xid=199 */                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| binlog.000018 | 2194 | Stop           |        51 |        2217 |                                                                                                                                                                                                                          

        截取binlog日志:

        mysqlbinlog --skip-gtids --include-gtids='583319b5-1b3f-11ef-8916-000c2912a662:5-8' binlog.000018 >/tmp/gtid18.sql

4)binlog数据恢复

        set sql_log_bin=0;

                source /tmp/gtid18.sql;

        set sql_log_bin=1;

5.清空binlog日志,从新开始记

        reset master;

mysql> reset master;
Query OK, 0 rows affected (0.02 sec)

mysql> show master status;
+---------------+----------+--------------+------------------+-------------------+
| File          | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000001 |      156 |              |                  |                   |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)
[root@localhost binlog]# ll
总用量 8
-rw-r----- 1 mysql mysql 156 5月  26 20:32 binlog.000001
-rw-r----- 1 mysql mysql  32 5月  26 20:32 binlog.index
[root@localhost binlog]# 

6.恢复成功后再重新发起全备

        xtrabackup --backup --target-dir=/data/3306/backups/base

                

        

        

                

        

        

        

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648142.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

四轮麦轮平衡车四个轮子安放位置要求,以及编码器测速注意事项(强调,否则无法正常平移)——基于STM32F103ZET6

轮子推荐ABBA,当然BAAB也可以 如图安放: 这两种安防位置可以实现平移效果 若要实现平移则需要先实现PID控制平衡,这里用到520编码电机,相较于370电机他的动力更足,在调节PID时能节约不少时间而且更加容易。 需要注意…

基于离散小波变换(DWT)的心电信号伪影去除及心电信号PQRST波检测(MATLAB R2018)

心电信号是心脏神经,肌肉组织电化学活动的表现形式。这些电化学活动使心脏内部产生一系列非常协调的电刺激脉冲,分别使心房,心室的肌肉细胞兴奋,从而有节律的舒张和收缩。这些生物电活动在体表的不同部位形成不同的电位差变化&…

622.设计循环队列

typedef struct {int* a;int head;int tail;int k; } MyCircularQueue;bool myCircularQueueIsEmpty(MyCircularQueue* obj); bool myCircularQueueIsFull(MyCircularQueue* obj);//初始化 MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj(MyCircularQue…

ARM+FPGA+NVIDIA AI摄像头软硬件定制

拥有资深ISP图像技术团队,是英伟达、地平线等合作伙伴,我们的团队掌握目前市面上大部分车载平台的ISP图像画质服务能力,能自主开发图像ISP和增强算法。我们具有多名经验丰富光学设计专家,掌握车载模组光学设计能力,资深…

Mac上如何安装低版本chrome浏览器

背景 为了排查项目上使用chrome低版本的兼容性问题,需要在本机【mac系统】上安装一个低版本的chrome浏览器。 不同版本的chrome下载地址 https://www.slimjet.com/chrome/google-chrome-old-version.php 下载后要记得你下载的旧版本的版本号,后面修改…

Neural Filters:着色

Ps菜单:滤镜/Neural Filters/颜色/着色 Neural Filters/COLOR/Colorize 着色 Colorize滤镜可以对黑白照片自动着色,也为彩色照片简化色彩提供了有力的支持。 “着色”滤镜利用深度学习技术,对输入的黑白或彩色照片进行分析,识别图…

【云原生】kubernetes声明式管理-----YAML文件

目录 引言 一、声明式管理简介 (一)什么是声明式管理 (二)支持格式 二、YAML文件 (一)YAML文件基本格式 (二)YAML文件实践 三、YAML文件创建方式 (一&#xff0…

rk3568_spinlock

文章目录 前言1、spinlock是什么?2、自旋锁实验2.1源码2.2 结果图总结前言 本文记录在rk3568开发板做的自旋锁实验。通过自旋锁控制state变量来限制只有一个应用程序来打开驱动设备。 1、spinlock是什么? spinlock称为自旋锁,如果获取不到资源,就只能一直傻傻地等待资源被…

B树与B+树区别

B树和B树是常见的数据库索引结构,都具有相较于二叉树层级较少,查找效率高的特点,它们之间有以下几个主要区别: 1.节点存储数据的方式不同 B树的叶子结点和非叶子节点都会存储数据,指针和数据共同保存在同一节点中B树…

一文教你使用stream流轻松解决java项目数据枚举显示问题

本篇文章主要讲解java枚举、vo实体类通过stream流形式输出枚举参数的方法。 日期:2024年5月26日 作者:任聪聪 本文代码实例附件:https://download.csdn.net/download/hj960511/89361611 实际效果 可以看到在枚举参数的基础上,我们…

这或许是国产游戏出海的最佳时机

《刺客信条:影》过于政治正确的选角激怒了全球玩家,而社交媒体上有玩家讨论育碧是否应该因为刻意加入DEI(多元化)而延期《刺客信条:影》时,没想到这得到了X拥有人埃隆马斯克的回复。马斯克表示“DEI&#x…

【Chrono Engine学习总结】6-创建自定义场景-6.2-chrono中的光线设置

由于Chrono的官方教程在一些细节方面解释的并不清楚,自己做了一些尝试,做学习总结。 上一篇文章中,自己【用sketchup重建了三维场景】,但导入chrono中颜色很不正确,几乎都是白色的,但也不是完全白色。经过…

宿舍管理系统代码详解(操作界面)

目录 一、前端代码 1.样式展示 2.代码详解 <1>主页面列表部分 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <2>新增页面 &#xff08;1&#xff09;template部分 &#xff08;2&#xff09;script部分 <3>修改页面…

Mongodb介绍及springboot集成增删改查

文章目录 1. MongoDB相关概念1.1 业务应用场景1.2 MongoDB简介1.3 体系结构1.4 数据模型1.5 MongoDB的特点 2. docker安装mongodb3. springboot集成3.1 文件结构3.2 增删改查3.2.1 增加insert3.2.2 保存save3.2.3 更新update3.2.4 查询3.2.5 删除 1. MongoDB相关概念 1.1 业务…

vue3快速入门(局部使用)

目录 前置知识JavaScript-导入导出 入门操作 变量渲染页面 局部使用vue的实现步骤 vue指令 v-for v-bind v-if v-show v-on v-model 生命周期 前置知识JavaScript-导入导出 正常情况在html导入js文件是全部导入&#xff0c;这样会导致性能上的损失 。 JS提供的…

上位机图像处理和嵌入式模块部署(f103 mcu运行freertos)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 mcu一般有两个用途,一个是控制,一个是非控制。控制类的应用一般要求实时性比较高,什么时候做什么,都是有严格的时间要求的。而非控制类的应用,则要求实现尽可能多的功能,比如…

构建智慧城市公共服务系统的功能架构设计

随着城市化进程的加速&#xff0c;城市公共服务系统在保障居民生活品质、提升城市管理水平方面扮演着愈发重要的角色。构建智慧城市公共服务系统的功能架构设计至关重要&#xff0c;它不仅需要充分考虑居民需求与城市管理的实际情况&#xff0c;还需要整合先进的科技手段&#…

冷冻式压缩空气干燥机常见几种系统原理图

冷冻式压缩空气干燥机 我们以两种典型的设计流程图为例 1.干式蒸发型&#xff0c;这类冷干机是我们最为常见的设计型式。下图为deltech公司的典型流程图 此类设备各家设计不同的最大区别基本就是在换热器的结构型式上有比较大的区别。换热器主要有&#xff1a;管壳式、铝板换、…

echarts饼图图例右侧纵向排列

如图所示&#xff0c;一开始&#xff0c;我设置了图例的right和top值&#xff0c;还有orient&#xff0c;但图例始终不能纵向排成一排&#xff0c;要么上面两个一行&#xff0c;要么最后两个一行&#xff0c;最后我发现同时设置一下left的值就可以了&#xff0c;如下所示&#…

51单片机-实机演示(按键)

书接上回。http://t.csdnimg.cn/4wSSW 目录 一.按下灭&#xff0c;松开亮 二.两个按键控制两个灯 三.点一下灯开&#xff0c;在按一下关 四。优化按键消抖 1.加入bit变量 一.按下灭&#xff0c;松开亮 代码 #include <reg52.h> //此文件中定义了单片机的一些特…