MySQL数据xtrabackup物理备份方法

目录

  • 一、物理备份的方式
  • 二、xtrabackup物理备份
    • 1.安装xtrabackup
    • 2.完整备份/恢复流程
    • 3.增量备份流程
    • 4.差异备份流程
    • 5.物理备份总结

一、物理备份的方式

1.完整备份

每次对数据进行完整的备份,即对整个数据库的备份、数据库结构和文件结构的备份,保存的是备份完成时刻的数据库,是差异备份与增量备份的基础。
优点:备份与恢复操作简单方便,恢复时一次恢复到位,恢复速度快
缺点:占用空间大,备份速度慢

2.增量备份

每次备份上一次备份到现在产生的新数据,每次都是跟上一次的备份数据作对比
只有那些在上次完全备份或者增量备份后被修改的文件才会被备份。以上次完整备份或上次的增量备份的时间为时间点,仅备份这之间的数据变化。
特点:因而备份的数据量小,占用空间小,备份速度快。但恢复时,需要从上一次的完整备份起按备份时间顺序,逐个备份版本进行恢复,恢复时间长,如中间某次的备份数据损坏,将导致数据的丢失。
假设我们在第一天进行一次完全备份。第二天增量备份时,只会备份第二天和第一天之间的变化数据,第三天增量备份时,只会备份第三天和第二天之间的变化数据,以此类推。
增量备份的优势是每次备份需要备份的数据较少,耗时较短,占用的空间较小。
劣势是数据恢复比较麻烦,进行数据恢复时,就要先恢复完全备份的数据,再依次恢复第一次增量备份的数据、第二次增量备份的数据和第三次增量备份的数据,最终才能恢复所有的数据。
1

3.差异备份

只备份跟完整备份不一样的数据,每次都是跟完整备份作对比
备份那些自从第一次完全备份之后被修改过的所有文件,备份的时间起点是从第一次完整备份起,且以后每次备份都是和第一次完整备份进行比较(注意是【第一次】,不是上一次),备份自第一次完整备份以来所有的修改过的文件。备份数据量会越来越大。
特点:占用空间比增量备份大,比完整备份小,恢复时仅需要恢复第一个完整版本和最后一次的差异版本,恢复速度介于完整备份和增量备份之间。
假设我们在第一天进行一次完全备份。第二天差异备份时,会备份第二天和第一天之间的变化数据,第三天进行差异备份时,仍和第一天的原始数据进行对比,把第二天和第三天所有的变化数据都备份在第二次差异备份中,以此类推。
差异备份既不像完全备份一样把所有数据都进行备份,也不像增量备份在进行数据恢复时那么麻烦,只要先恢复完全备份的数据,再恢复差异备份的数据即可。
不过,随着时间的增加,和完全备份相比,变动的数据越来越多,那么差异备份也可能会变得数据量庞大、备份速度缓慢、占用空间较大。
2

总结

简单的讲,完整备份就是不管三七二十一,每次都把指定的备份目录完整的复制一遍,不管目录下的文件有没有变化;
增量备份就是每次将之前(第一次、第二次、直到前一次)做过备份之后有变化的文件进行备份;
差异备份就是每次都将第一次完整备份以来有变化的文件进行备份。

二、xtrabackup物理备份

Xtrabackup是开源免费的支持MySQL 数据库热备份的软件,在 Xtrabackup 包中主要有 Xtrabackup 和 innobackupex 两个工具。
其中 Xtrabackup 只能备份 InnoDB 和 XtraDB 两种引擎;
innobackupex则是封装了Xtrabackup,同时增加了备份MyISAM引擎的功能。
官网:https://www.percona.com
下载地址:https://www.percona.com/downloads
下载地址:https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm

1.安装xtrabackup

//安装xtrabackup
//5.7版本:https://www.percona.com/downloads/Percona-XtraBackup-2.4/[root@localhost ~]# wget https://downloads.percona.com/downloads/Percona-XtraBackup-2.4/Percona-XtraBackup-2.4.26/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm[root@localhost ~]# yum install percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm  -y

//查看安装情况[root@localhost ~]# rpm -qa | grep xtrabackup
percona-xtrabackup-24-2.4.26-1.el7.x86_64

//查看版本:[root@localhost ~]# xtrabackup --version
xtrabackup version 2.4.26 based on MySQL server 5.7.35 Linux (x86_64) (revision id: 19de43b)

//注意:my.cnf需要确认配置文件内有数据目录的指定[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir = /usr/local/mysql/data

2.完整备份/恢复流程

完整备份
语法:innobackupex --user=root --password='口令' /备份目录

//创建备份目录:[root@localhost ~]# mkdir /xtrabackup/full -p
//创建数据库、数据表,并插入数据
mysql> create database company;   
mysql> use company;
//创建一个测试表
mysql> \e
    CREATE TABLE company.employee5(
     id int primary key AUTO_INCREMENT not null,
     name varchar(30) not null,
     sex enum('male','female') default 'male' not null,
     hire_date date not null,
     post varchar(50) not null,
     job_description varchar(100),
     office int,
     dep_id int
     )
-> ;
Query OK, 0 rows affected (0.01 sec)
//插入数据:
mysql> \e
    insert into company.employee5(name,sex,hire_date,post,job_description,office,dep_id) values 
    ('jack','male','20180202','instructor','teach',501,100),
    ('harry','male','20180202','hr',NULL,502,101),
    ('lili','female','20180206','sale','salecc',503,102),
 ('xiaoguo','male','20180205','sale','',503,102)
    -> ;
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0
//备份:[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' /xtrabackup/full
​[root@localhost ~]# cd /xtrabackup/full/[root@localhost full]# ls
2022-06-08_10-03-34[root@localhost full]# du -sh *
26M     2022-06-08_10-03-34

完整备份的恢复

1.停止数据库;
2.清理环境;
3.重演回滚-> 恢复数据;
4.修改权限;
5.启动数据库

重演binlog语法:innobackupex --apply-log /备份目录/完整备份目录(年月日时分秒)
恢复数据语法:innobackupex --copy-back /备份目录/完整备份目录(年月日时分秒)

//为了实验效果,首先将数据库给删掉,看看数据是否能恢复成功[root@localhost ~]# mysql -uroot -p'JiannLt@123'
mysql> drop database company;
Query OK, 1 row affected (0.00 sec)

1、关闭数据库:

[root@localhost ~]# systemctl stop mysqld
//注意:数据库目录必须为空,MySQL服务不能启动[root@localhost ~]# rm -rf /usr/local/mysql/data/ *

2、重演回滚:

[root@localhost ~]# innobackupex --apply-log /xtrabackup/full/2019-08-20_11-47-49
……
InnoDB: Shutdown completed; log sequence number 2772008
230706 10:19:29 completed OK!

3、确认数据库目录:

//恢复之前需要确认配置文件内有数据库目录指定,不然xtrabackup不知道恢复到哪里[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir = /usr/local/mysql/data

4、恢复数据:

[root@localhost ~]# innobackupex --copy-back /xtrabackup/full/2019-08-20_11-47-49
………………
230706 10:22:02 [01] Copying ./ibtmp1 to /usr/local/mysql/data/ibtmp1
230706 10:22:02 [01]        ...done
230706 10:22:02 completed OK!

5、修改权限:

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/

//启动数据库:[root@localhost ~]# systemctl start mysqld
​[root@localhost ~]# netstat -ntlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp6       0      0 :::3306                 :::*                    LISTEN      3687/mysqld
​[root@localhost ~]# cd /usr/local/mysql/data/     //看一下data目录下是否有文件,就能看出是否恢复成功了[root@localhost data]# ls
auto.cnf          client-cert.pem  ibdata1      mysql               private_key.pem  sys
binary-mysql.pid  client-key.pem   ib_logfile0  mysql.sock          public_key.pem   xtrabackup_binlog_pos_innodb
ca-key.pem        company          ib_logfile1  mysql.sock.lock     server-cert.pem  xtrabackup_info
ca.pem            ib_buffer_pool   ibtmp1       performance_schema  server-key.pem   xtrabackup_master_key_id

//登录数据库,查看数据[root@localhost data]# mysql -uroot -p'JiannLt@123'
mysql> select id,name from company.employee5;
+----+---------+
| id | name    |
+----+---------+
|  1 | jack    |
|  2 | harry   |
|  3 | lili    |
|  4 | xiaoguo |
+----+---------+
4 rows in set (0.00 sec)

3.增量备份流程

原理:每次备份上一次备份到现在产生的新数据
在数据库上面创建一个测试的库和表,并往里面写入数据

mysql> create database testdb;
Query OK, 1 row affected (0.01 sec)

mysql> create table testdb.t1(id int);
Query OK, 0 rows affected (0.01 sec)

mysql> insert into testdb.t1 values(1);
Query OK, 1 row affected (0.01 sec)

mysql> select * from testdb.t1;
+------+
| id   |
+------+
|    1 |
+------+
1 row in set (0.00 sec)

增量备份流程(重要)
1、进行完整备份
完整备份语法:innobackupex --user=root --password='口令' /备份目录/increment/
2、添加数据以后增量备份
增量备份语法:innobackupex --user=root --password='口令' --incremental /备份目录/increment/ --incremental-basedir=/xtrabackup/increment/上一备份目录(基于前一天)
–incremental 后面跟的是本次备份文件的存放路径
–incremental-basedir 后面跟的是基于哪次备份做数据备份?接的是上一次备份成功的目录

1.完整备份:周一

[root@localhost ~]# rm -rf /xtrabackup/ *[root@localhost ~]# mkdir /xtrabackup/increment

//完整备份[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' /xtrabackup/increment
​[root@localhost ~]# cd /xtrabackup/increment
​[root@localhost increment]# ls
2019-08-20_14-51-35[root@localhost increment]# cd 2019-08-20_14-51-35/[root@localhost 2019-08-20_14-51-35]# ls
backup-my.cnf  ib_buffer_pool  mysql               sys   testdb                  xtrabackup_info
company        ibdata1         performance_schema  test  xtrabackup_checkpoints  xtrabackup_logfile

2.增量备份:周二~周三

//模拟周二的生产数据
mysql -uroot -p'JiannLt@123' -e 'insert into testdb.t1 values(2);'
//查询数据
mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;' 
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
//周二增量备份
[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' --incremental /xtrabackup/increment/ --incremental-basedir=/xtrabackup/increment/2019-08-20_14-51-35/
//--incremental-basedir:基于哪个增量
[root@localhost ~]# cd /xtrabackup/increment/
[root@localhost increment ]# ls
2019-08-20_14-51-35  2019-08-20_15-04-29        //相当于周二的增量备份

//模拟周三的生产数据
mysql -uroot -p'JiannLt@123' -e 'insert into testdb.t1 values(3);'
//查询数据
mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;' 
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
//周三增量备份
[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' --incremental /xtrabackup/increment --incremental-basedir=/xtrabackup/increment/2019-08-20_15-04-29/    //基于前一天的备份为目录
//查看一下备份目录:
[root@localhost ~]# ls /xtrabackup/increment/
2019-08-20_14-51-35  2019-08-20_15-04-29  2019-08-20_15-10-56
    全备周一             增量周二               增量周三
//后面周四到周日都是这种方式来增量备份    

增量备份恢复流程(重要)

1.停止数据库;
2.清理环境;
3.依次重演回滚redo log-> 恢复数据;
4.修改权限;
5.启动数据库

重演回滚语法:

  • innobackupex --apply-log --redo-only /xtrabackup/increment/全量目录
  • innobackupex --apply-log --redo-only /xtrabackup/increment/全量目录 --incremental-dir=/xtrabackup/increment/增量1目录
  • innobackupex --apply-log --redo-only /xtrabackup/全量目录 --incremental-dir=/xtrabackup/increment/增量2目录
    –apply-log --redo-only参数的作用是
    仅应用指定的增量备份redo log到全量备份上,不做数据恢复。
    通俗地说,就相当于将增量备份的修改应用到全量备份上,产生一个新的全量备份。

恢复数据语法:innobackupex --copy-back /xtrabackup/increment/全量目录

//为了实验效果,先将testdb库给删掉
[root@localhost increment]# mysql -uroot -p'JiannLt@123' -e 'drop database testdb;'                           
[root@localhost increment]# mysql -uroot -p'JiannLt@123' -e 'show databases;'
+--------------------+
| Database           |
+--------------------+
| information_schema |
| company            |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
//停止服务,并清理数据目录
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# rm -rf /usr/local/mysql/data/ *

//依次重演回滚redo log:
[root@localhost ~]# innobackupex --apply-log --redo-only /xtrabackup/increment/2019-08-20_14-51-35    //重演回滚全量备份目录
[root@localhost ~]# innobackupex --apply-log --redo-only /xtrabackup/increment/2019-08-20_14-51-35 --incremental-dir=/xtrabackup/increment/2019-08-20_15-04-29
// /xtrabackup/2019-08-20_14-51-35:全量目录
// /xtrabackup/increment/2019-08-20_15-04-29:增量1目录
[root@localhost ~]# innobackupex --apply-log --redo-only /xtrabackup/increment/2019-08-20_14-51-35 --incremental-dir=/xtrabackup/increment/2019-08-20_15-10-56/
// /xtrabackup/2019-08-20_14-51-35:全量目录
// /xtrabackup/increment/2019-08-20_15-10-56:增量2目录

//恢复数据:
[root@localhost ~]# innobackupex --copy-back /xtrabackup/increment/2019-08-20_14-51-35/
/xtrabackup/2019-08-20_14-51-35/:全量目录

//修改权限
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost ~]# systemctl start mysqld
//执行sql语句看看库和表是否恢复成功
[root@localhost ~]# mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;'
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+

4.差异备份流程

差异备份流程(重要)
1、完整备份
语法:innobackupex --user=root --password='口令' /备份目录/
2、增加数据后进行差异备份
语法:innobackupex --user=root --password='口令' --incremental /备份目录/ --incremental-basedir=/xtrabackup/第一次完全备份目录

//清理备份的环境
[root@localhost ~]# rm -rf /xtrabackup/ *
//登陆数据库,准备环境
mysql -uroot -p'JiannLt@123'
mysql> delete from testdb.t1;
mysql> insert into testdb.t1 values(1);    //插入数据1,模拟周一
mysql> select * from testdb.t1;
+------+
| id   |
+------+
|    1 |
+------+
mysql> \q

1.完整备份:周一

[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' /xtrabackup

2.差异备份:周二~周三

[root@localhost ~]# innobackupex --user=root --password=888 --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/    //完全备份目录(周一)

3.模拟周二,插入数据2:

[root@localhost ~]# mysql -uroot -p'JiannLt@123' -e 'insert into testdb.t1 values(2);'    //插入数据2,模拟周二
[root@localhost xtrabackup]# mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;'
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
//差异备份周二的数据
[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/  //备份目录基于周一的完整备份

4.再次插入周三的数据

[root@localhost ~]# mysql -uroot -p'JiannLt@123' -e 'insert into testdb.t1 values(3);'    //插入数据3,模拟周三
[root@localhost xtrabackup]# mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;'
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
//再次差异备份
[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/  //还是基于周一的完整备份

5.延申到周四的数据

[root@localhost ~]# mysql -uroot -p'JiannLt@123' -e 'insert into testdb.t1 values(4);'    //插入数据4,模拟周四
[root@localhost xtrabackup]# mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1;'
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
|    4 |
+------+
//差异备份周四
[root@localhost ~]# innobackupex --user=root --password='JiannLt@123' --incremental /xtrabackup --incremental-basedir=/xtrabackup/2019-08-20_15-42-02/    //还是基于周一的备份

6.查看一下备份目录

[root@localhost ~]# ls /xtrabackup/
2019-08-20_15-42-02  2019-08-21_15-46-53  2019-08-22_15-51-15  2019-08-23_15-53-28
   周一完整备份        周二差异备份           周三差异备份           周四差异备份

差异备份恢复流程(重要)

1.停止数据库;
2.清理环境;
3.重演回滚redo log(周一,某次差异)-> 恢复数据;
4.修改权限;
5.启动数据库

差异恢复重演回滚redo log恢复数据(重要)
1、恢复全量的redo log
语法:innobackupex --apply-log --redo-only /xtrabackup/全量目录
2、恢复差异的redo log(任意差异点,选择任意差异点恢复,那数据也就会恢复到当天的)
语法:innobackupex --apply-log --redo-only /xtrabackup/全量目录 --incremental-dir=/xtrabackup/某个差异备份目录
3、恢复数据
语法:innobackupex --copy-back /xtrabackup/完全备份目录

//为了实验效果,将testdb库给删除掉,看看通过差异恢复的方式数据能否恢复成功
[root@localhost ~]# mysql -uroot -p'JiannLt@123' -e 'drop database testdb;'
//停止数据库,删除数据目录下所有的文件/目录
[root@localhost ~]# systemctl stop mysqld
[root@localhost ~]# rm -rf /usr/local/mysql/data/ *

1.恢复全量的redo log

[root@localhost ~]# innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_15-42-02/

2.恢复差异的redo log

//这里我们恢复周三的差异备份
[root@localhost ~]# innobackupex --apply-log --redo-only /xtrabackup/2019-08-20_15-42-02/ --incremental-dir=/xtrabackup/2019-08-22_15-51-15/

3.恢复数据

[root@localhost ~]# innobackupex --copy-back /xtrabackup/2019-08-20_15-42-02/

//修改权限:
[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql/
[root@localhost ~]# systemctl start mysqld
//查看数据是否恢复成功(只有123;因为我们恢复的是周三的差异备份。)
[root@localhost xtrabackup]# mysql -uroot -p'JiannLt@123' -e 'select * from testdb.t1'
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+

5.物理备份总结

优先使用:完整,差异

完整备份
完整备份语法:innobackupex --user=root --password='口令' /备份目录

完全备份恢复流程
1.停止数据库;
2.清理环境;
3.重演回滚-> 恢复数据;
4.修改权限;
5.启动数据库
重演回滚语法:innobackupex --apply-log /备份目录/完整备份目录(年月日时分秒)
恢复数据语法:innobackupex --copy-back /备份目录/完整备份目录(年月日时分秒)

增量备份流程
1.进行完整备份;
完整备份语法:innobackupex --user=root --password='口令' /备份目录
2.添加数据以后增量备份:
增量备份语法:innobackupex --user=root --password='口令' --incremental /备份目录/ --incremental-basedir=/xtrabackup/上一备份目录

增量恢复流程
1.停止数据库;2. 清理环境;3. 增量重演回滚redolog->恢复数据;4. 修改权限;5. 启动数据库
增量重演回滚语法:
a.innobackupex --apply-log --redo-only /xtrabackup/全量目录
b.innobackupex --apply-log --redo-only /xtrabackup/全量目录 --incremental-dir=/xtrabackup/增量1目录
c.innobackupex --apply-log --redo-only /xtrabackup/全量目录 --incremental-dir=/xtrabackup/增量2目录
恢复数据:innobackupex --copy-back /xtrabackup/全量目录

差异备份流程(重要)
1.完整备份
完整备份语法:innobackupex --user=root --password='口令' /备份目录
2.增加数据后进行差异备份:
差异备份语法:innobackupex --user=root --password='口令' --incremental /备份目录 --incremental-basedir=/xtrabackup/第一次完全备份目录

差异恢复流程
1.停止数据库;2.清理环境;3.差异重演回滚redo log->恢复数据;4.修改权限;5.启动数据库
差异重演回滚语法:
a.恢复全量的redo log
innobackupex --apply-log --redo-only /xtrabackup/完全备份目录
b.恢复差异的redo log(任意差异点)
innobackupex --apply-log --redo-only /xtrabackup/完全备份目录 --incremental-dir=/xtrabacku/某个差异备份目录
恢复数据语法:innobackupex --copy-back /xtrabackup/完全备份目录

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

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

相关文章

Docker:创建主从复制的Redis集群

一、Redis集群 在实际项目里,一般不会简单地只在一台服务器上部署Redis服务器,因为单台Redis服务器不能满足高并发的压力,另外如果该服务器或Redis服务器失效,整个系统就可能崩溃。项目里一般会用主从复制的模式来提升性能&#x…

指针相关面试题目

数组名的意义: 1. sizeof( 数组名 ) ,这里的数组名表示整个数组,计算的是整个数组的大小。 2. & 数组名,这里的数组名表示整个数组,取出的是整个数组的地址。 3. 除此之外所有的数组名都表示首元素的地址。 下…

发卡系统微信小程序源码/云盘发卡系统源码带PC端/自动发卡小程序源码(开源)

源码介绍: 最新开源的发卡系统微信小程序源码,这是一款云盘发卡系统源码,还带了电脑PC端。它是一款实用方便操作自动发卡小程序源码,它使用ERMEB云盘发卡,能为用户提供便捷的发卡服务。 源码框架: 系统采…

软考高级之系统架构师之数据流图和流程图

数据流图 概述 数据流图,DFD,用于表示业务信息系统中的数据流,它表达系统中的据传从输入到存储间所涉及的程序。采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具…

python 查找波峰和波谷

import numpy as np import matplotlib.pyplot as plt from scipy.signal import find_peaks# 生成示例信号 x np.array([1, 3, 7, 1, 2, 6, 0, 4, 3, 2, 5, 1])# 寻找波峰 peaks, _ find_peaks(x)# 寻找波谷(使用信号的负数形式) valleys, _ find_pe…

【html】图片多矩形框裁剪

说明 由于项目中需要对一个图片进行多选择框进行裁剪&#xff0c;所以特写当前的示例代码。 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><base href"/"><title>图片裁剪</tit…

第1篇 目标检测概述 —(3)目标检测评价指标

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。目标检测评价指标是用来衡量目标检测算法性能的指标&#xff0c;主要包括几个指标&#xff1a;精确率&#xff08;Precision&#xff09;、召回率&#xff08;Recall&#xff09;、交并比&#xff08;IoU&#xff09;、平均…

GitLab升级16.5.0后访问提示502

系统是兼容CentOS8的TencentOS3.1 GitLab原来的版本是16.4.1 使用yum升级时发现GitLab有新版本,决定升级。 升级过程无异常,出现升级成功的提示。 可是意外的时,访问站点时提示502. GitLab比较吃资源,启动的服务较多。之前也有等会就正常的情况。 这次没那么幸运,一…

js创建 ajax 过程

目录 前言&#xff1a;AJAX 技术的重要性 详解&#xff1a;创建 AJAX 请求的步骤 1. 创建 XMLHttpRequest 对象 2. 配置请求 3. 处理响应 4. 发送请求 5. 处理异步请求 解析&#xff1a;AJAX 请求的重要性和限制 总结&#xff1a; 前言&#xff1a;AJAX 技术的重要性 …

FastAPI 快速学习之 Flask 框架对比

目录 一、前言二、FastAPI 优势三、Hello World四、HTTP 方法五、URL 变量六、查询字符串七、POST 请求八、文件上传九、表单提交十、Cookies十一、模块化视图十二、数据校验十三、自动化文档Swagger 风格ReDoc 风格 十四、CORS跨域 一、前言 本文主要对 FastAPI 与 Flask 框架…

驱动开发5 阻塞IO实例、IO多路复用

1 阻塞IO 进程1 #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/ioctl.h> #include <fcntl.h> #include <unistd.h> #include <string.h>int main(int argc, char co…

【2021集创赛】Arm杯三等奖:基于FPGA的人脸检测SoC设计

本作品参与极术社区组织的有奖征集|秀出你的集创赛作品风采,免费电子产品等你拿~活动。 团队介绍 参赛单位&#xff1a;合肥工业大学 队伍名称&#xff1a;芯创之家 指导老师&#xff1a;邓红辉、尹勇生 参赛杯赛&#xff1a;Arm杯 参赛人员&#xff1a;王亮 李嘉燊 金京 获奖情…

【WinForm详细教程一】WinForm中的窗体、Label、TextBox及Button控件、RadioButton和CheckBox、ListBox

文章目录 1.WinForm文件结构2. 窗体的常用属性、方法与事件2.1 常用属性&#xff08;可直接在属性中设置&#xff09;2.2 常用方法2.3 常用事件 3.Label、TextBox及Button控件4.RadioButton和CheckBox5.ListBox&#xff08;列表框&#xff09; 1.WinForm文件结构 .sln文件 &am…

Hadoop分布式安装

首先准备好三台服务器或者虚拟机&#xff0c;我本机安装了三个虚拟机&#xff0c;安装虚拟机的步骤参考我之前的一篇 virtualBox虚拟机安装多个主机访问虚拟机虚拟机访问外网配置-CSDN博客 jdk安装 参考文档&#xff1a;Linux 环境下安装JDK1.8并配置环境变量_linux安装jdk1.8并…

干货很干:5个有效引流方法,让客户找上门

如何才能把用户引流到私域&#xff1f;是很多老板&#xff0c;店主&#xff0c;线上创业者的卡点&#xff0c;今天分享5个实用方法&#xff1a; ✅线下导流 ✅巧用搜索 ✅同行互推 ✅社群引流 ✅内容输出 所以引流不仅需要知道方法&#xff0c;还需要知道底层逻辑&#xff0c;也…

uniapp开发微信小程序的巨坑

1、不能使用v-show 2、关于插槽的巨坑 这里我真的是摸索了好久。 小程序版本&#xff1a; hbuilderx版本&#xff1a; 其他版本不知道会不会出现以下情况。 如果组件中带有插槽&#xff0c;那么使用插槽时有以下要注意&#xff1a; 1、如果子组件通过slot&#xff0c;向外…

SQL sever中的函数(基础)

目录 一、聚合函数 1.1聚合函数概述 1.2SUM(求和)函数 1.3AVG(平均值)函数 1.4MIN(最小值)函数 1.5MAX(最大值)函数 1.6COUNT(统计)函数 1.6.1COUNT函数用法分类 1.6.2COUNT函数用法示例 1.7DISTINCT(取不重复记录)函数 1.8查询重复记录 二、数学函数 2.1数学函数…

ELK概述部署和Filebeat 分布式日志管理平台部署

ELK概述部署、Filebeat 分布式日志管理平台部署 一、ELK 简介二、ELK部署2.1、部署准备2.2、优化elasticsearch用户拥有的内存权限2.3、启动elasticsearch是否成功开启2.4、浏览器查看节点信息2.5、安装 Elasticsearch-head 插件2.6、ELK Logstash 部署&#xff08;在 Apache 节…

中国密码算法与NIST标准对比

1. 引言 NIST定义AES为标准的对称密钥加密算法。但NIST被指出可能在加密算法中添加NSA后门。为此&#xff0c;在中国&#xff0c;ShāngM (SM) 系列密码算法&#xff0c;作为TLS 1.3集成和无线认证的备选方案&#xff1a; SM2&#xff1a;定义了认证&#xff08;签名&#xf…

cuda卸载

去查看你的电脑显卡对应的cuda版本&#xff0c;不然还是一整个用不到gpu的情况嘿嘿. 啊啊啊啊打开控制面板看一下&#xff0c;驱动不要乱卸载&#xff1a; 这些东西不能全部卸载了哦&#xff0c;只能卸载含有“CUDA”的那几个&#xff08;其实其他的可能也没有用 但是不懂的哇 …