LVM+Mysql para respaldo en caliente

Entorno del sistema:

novato8.0.6 192.168.111.111

1. Instale mysql y descargue estas aplicaciones.

[root@localhost mysql]# yum list installed | grep mysql
mysql.x86_64                         8.0.26-1.module+el8.4.0+652+6de068a7   @appstream
mysql-common.x86_64                  8.0.26-1.module+el8.4.0+652+6de068a7   @appstream
mysql-errmsg.x86_64                  8.0.26-1.module+el8.4.0+652+6de068a7   @appstream
mysql-server.x86_64                  8.0.26-1.module+el8.4.0+652+6de068a7   @appstream
[root@localhost mysql]# yum list installed | grep mariadb
mariadb-connector-c-config.noarch    3.1.11-2.el8_3                         @appstream

 No se requiere contraseña al ingresar a mysql por primera vez. Por lo tanto, debe establecer su propia contraseña para ingresar a mysql. El código se muestra a continuación:

mysql> use mysql
mysql> alter user 'root'@'localhost' identified by '123456';

 2. Crear LVM

 Fuente de la imagen: explicación detallada de LVM para la administración de discos en Linux y comandos comunes de operación de disco del comando blog-CSDN blog_lvm de lvm_yg@hunter

 1. Agregue un disco a la máquina virtual y particione.

 Como se muestra en la figura siguiente, se agrega un disco sdb y el disco sdb se divide en una partición sdb1.

[root@localhost mysql]# lsblk 
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0   60G  0 disk 
├─sda1        8:1    0    2G  0 part /boot
└─sda2        8:2    0   58G  0 part 
  ├─rl-root 253:0    0   56G  0 lvm  /
  └─rl-swap 253:1    0    2G  0 lvm  [SWAP]
sdb           8:16   0    8G  0 disk 
└─sdb1        8:17   0    8G  0 part 
sr0          11:0    1 1024M  0 ro

 Después de la creación, debe reiniciar o ejecutar "partprobe" para usarlo.

##重启磁盘
[root@localhost mysql]# partprobe

2. Cambie la partición al tipo lvm.

[root@localhost mysql]# fdisk /dev/sdb

 Cambie /dev/sdb al modo LVM de Linux.

 

 3. Cree un volumen físico (pv).

[root@localhost mysql]# pvcreate /dev/sdb1
WARNING: dos signature detected on /dev/sdb1 at offset 510. Wipe it? [y/n]: y
  Wiping dos signature on /dev/sdb1.
  Physical volume "/dev/sdb1" successfully created.

[root@localhost mysql]# pvdisplay 
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               rl
  PV Size               <58.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              14847
  Free PE               0
  Allocated PE          14847
  PV UUID               29vJcC-MIan-Lfc5-Rc5F-e5Um-jPOd-Sktu1f
   
  "/dev/sdb1" is a new physical volume of "<8.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1
  VG Name               
  PV Size               <8.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               CdPpfu-irJu-NkEM-brKk-qp3V-GKbh-P9bpLY

 4. Cree un grupo de volúmenes (VG).

Al crear un grupo de volúmenes, también puede ver las ventajas de LVM. Puede combinar varios discos en un solo espacio.
Supongamos que hay dos particiones: /dev/sda1 y /dev/sdb1, pero estas dos particiones no están en la misma disco. .
Podemos usar vgcreate [nombre] /dev/sda1 /dev/sdb1 para combinar los dos espacios en un solo espacio para que lo use el siguiente volumen lógico (LV).

Y solo tengo un espacio de /dev/sdb1, así que usé uno.

### vgcreate [name] [指定的物理卷]
[root@localhost mysql]# vgcreate vgtest /dev/sdb1
  Volume group "vgtest" successfully created

[root@localhost mysql]# vgdisplay 
  --- Volume group ---
  VG Name               vgtest
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <8.00 GiB
  PE Size               4.00 MiB
  Total PE              2047
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2047 / <8.00 GiB
  VG UUID               K03kGL-RXk8-ZH89-NLFd-sVAV-S0mL-y4PZ6s

5. Cree un volumen lógico (LV)

lvcreate -L [卷的大小] -n [卷的名字] 卷组的名字
[root@localhost mysql]# lvcreate -L 5G -n lvtest vgtest
  Logical volume "lvtest" created.


[root@localhost mysql]# lvdisplay 
  --- Logical volume ---
  LV Path                /dev/vgtest/lvtest
  LV Name                lvtest
  VG Name                vgtest
  LV UUID                DCnBvW-dBcP-tKke-unpZ-y1dT-jpeF-Ht3ujF
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-10-15 19:34:28 +0800
  LV Status              available
  # open                 0
  LV Size                5.00 GiB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

6. Formatear LV

[root@localhost mysql]# mkfs.
mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs     
[root@localhost mysql]# mkfs.ext4 /dev/vgtest/lvtest 
mke2fs 1.45.6 (20-Mar-2020)
创建含有 1310720 个块(每块 4k)和 327680 个inode的文件系统
文件系统UUID:87851c60-c35b-4db2-b4c3-fc6765973a62
超级块的备份存储于下列块: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736

正在分配组表: 完成                            
正在写入inode表: 完成                            
创建日志(16384 个块)完成
写入超级块和文件系统账户统计信息: 已完成

Se pueden ver las diferencias entre cada tipo de formato:

La diferencia entre la partición xlf de Linux y la partición ext4, explicación detallada de los tipos de partición de Linux EXT2, EXT3, EXT4_weixin_39907526 blog-CSDN blog

7. montar

### 这个/mnt/mysql_lv将是我们数据库数据放的目录
[root@localhost mnt]# mount -t ext4 /dev/vgtest/lvtest /mnt/mysql_lv/
[root@localhost mnt]# lsblk 
NAME              MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                 8:0    0   60G  0 disk 
├─sda1              8:1    0    2G  0 part /boot
└─sda2              8:2    0   58G  0 part 
  ├─rl-root       253:0    0   56G  0 lvm  /
  └─rl-swap       253:1    0    2G  0 lvm  [SWAP]
sdb                 8:16   0    8G  0 disk 
└─sdb1              8:17   0    8G  0 part 
  └─vgtest-lvtest 253:2    0    5G  0 lvm  /mnt/mysql_lv
sr0                11:0    1 1024M  0 rom  
[root@localhost mnt]# df -h
文件系统                   容量  已用  可用 已用% 挂载点
devtmpfs                   324M     0  324M    0% /dev
tmpfs                      343M     0  343M    0% /dev/shm
tmpfs                      343M  5.0M  338M    2% /run
tmpfs                      343M     0  343M    0% /sys/fs/cgroup
/dev/mapper/rl-root         56G  2.6G   54G    5% /
/dev/sda1                  2.0G  191M  1.9G   10% /boot
tmpfs                       69M     0   69M    0% /run/user/0
/dev/mapper/vgtest-lvtest  4.9G   20M  4.6G    1% /mnt/mysql_lv

Este es un montaje temporal. El montaje desaparecerá la próxima vez que reinicie el servidor, por lo que deberá montarlo permanentemente.

8. Montar permanentemente.

[root@localhost mnt]# cat /etc/fstab 

#
# /etc/fstab
# Created by anaconda on Tue Jun 28 13:43:47 2022
#
# Accessible filesystems, by reference, are maintained under '/dev/disk/'.
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=47f5a72c-9eb0-427a-9636-d80cf01eec7f /boot                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0
/dev/vgtest/lvtest /mnt/mysql_lv                ext4    defaults        0 0

9. Modifique el propietario y el grupo de /mnt/mysql_lv.

[root@localhost mnt]# chown -R mysql:mysql /mnt/mysql_lv/
[root@localhost mnt]# ll
总用量 4
drwxr-xr-x. 2 root  root     6 6月  28 21:45 hgfs
drwxr-xr-x  3 mysql mysql 4096 10月 15 19:40 mysql_lv

10. Migre los datos de la base de datos a /mnt/mysql_lv.

## 在迁移之前和修改默认文件之前,我希望你都可以备份一下原文件,养成好习惯。

mv  /var/lib/mysql/* /mnt/mysql_lv/

##因为我的mysql是8.0.26版本的,所以修改默认配置文件可能不一样,不过修改的内容都一样。

[root@localhost my.cnf.d]# pwd
/etc/my.cnf.d
[root@localhost my.cnf.d]# cat client.cnf 
[client]
port=3306
socket=/mnt/mysql_lv/mysql.sock
[client-mariadb]

[root@localhost my.cnf.d]# cat mysql-server.cnf
[mysqld]
#datadir=/var/lib/mysql
datadir=/mnt/mysql_lv
#socket=/var/lib/mysql/mysql.sock
socket=/mnt/mysql_lv/mysql.sock
#log-error=/var/log/mysql/mysqld.log
log-error=/mnt/mysql_lv/mysqld.log
#pid-file=/run/mysqld/mysqld.pid
pid-file=/mnt/mysql_lv/mysqld.pid

## 另一个文件不用改

reiniciar mysql

systemctl restart mysqld

10. Luego termina

Supongo que te gusta

Origin blog.csdn.net/qq_48480384/article/details/127338920
Recomendado
Clasificación