mysql lvm管理 mysql備份之lvm

2021-10-18 03:32:57 字數 2837 閱讀 7308

新建乙個lvm磁碟,這裡我建的lv為mydatalv,掛載到了/data下

[root@localhost ~]# lvs

lv vg attr lsize pool origin data% meta% move log cpy%sync convert

mydatalv mydata -wi-ao---- 1.00g

[root@localhost ~]# df -h

檔案系統 容量 已用 可用 已用% 掛載點

將原資料庫檔案複製到/data目錄下

[root@localhost ~]# cp -a /var/lib/mysql /data/

修改配置檔案,將mysql資料庫檔案放在lvm盤中,二進位制檔案放在非lvm盤的/var/lib/mysql/目錄下

[root@ns1 ~]# vim /etc/my.cnf

[mysqld]

log_bin=/var/lib/mysql/mysql-bin

datadir=/data/mysql

[root@localhost ~]# service mariadb restart

[root@localhost ~]# ls /data/mysql

aria_log.00000001 ibdata1 ib_logfile1 mysql-bin.000001 mysql-bin.000003 performance_schema

aria_log_control ib_logfile0 mysql mysql-bin.000002 mysql-bin.index test

可以看到重啟後資料庫檔案已存放在了/data/mysql目錄中了

對mysql進行鎖表備份

[root@localhost ~]# mysql -e 'flush tables with read lock;' 鎖表

[root@localhost ~]# mysql -e 'flush logs;' 對日誌進行滾動,

[root@localhost ~]# mysql -e 'show master status;' > /root/back.$(date +%f+%t)

[root@localhost ~]# ls

back.2016-07-13+10:14:29

對lv建立快照

[root@localhost ~]# lvcreate -l 1g -n mysqlback -p r -s /dev/mydata/mydatalv

釋放鎖[root@localhost ~]# mysql -e 'unlock tables;'

在別的磁碟上建立備份目錄,唯讀掛載快照後備份至備份目錄

[root@localhost ~]# mkdir /myback

[root@localhost ~]# mount -r /dev/mydata/mysqlback /mnt

[root@localhost ~]# cp -a /mnt/mysql /myback

修改表內容,然後刪除掉資料庫檔案內容即/data/mysql中的內容

[root@localhost ~]# mysql

mariadb [hellodb]> use hellodb;

mariadb [hellodb]> insert into classes (class,numofstu) values ('xxoo',39);

[root@localhost ~]# rm -rf /data/*

修改配置檔案中二進位制日誌和資料庫檔案的位置

[root@localhost ~]# vim /etc/my.cnf

[mysqld]

log_bin=/data/mysql/mysql-bin

datadir=/data/mysql 利用/myback/中的內容還原

[root@localhost ~]# cp -a /myback//data/

[root@localhost ~]# service mariadb restart

利用二進位制日誌還原快照後的操作,由下面這個檔案來檢視快照執行時二進位制日誌的位置

[root@localhost ~]# cat back.2016-07-13+10\:14\:29

file position binlog_do_db binlog_ignore_db

mysql-bin.000014 245

將000014中245之後的操作做成sql檔案,進行還原

[root@localhost ~]# mysqlbinlog --start-position=245 /var/lib/mysql/mysql-bin.000014 > binlog.sql

[root@localhost ~]# mysql < /root/binlog.sql

檢視恢復情況

[root@localhost ~]# mysql

mariadb [(none)]> use hellodb;

mariadb [hellodb]> select from classes;

| classid | class | numofstu |

| 1 | shaolin pai | 10 |

| 2 | emei pai | 7 |

| 3 | qingcheng pai | 11 |

| 4 | wudang pai | 12 |

| 5 | riyue shenjiao | 31 |

| 6 | lianshan pai | 27 |

| 7 | ming jiao | 27 |

| 8 | xiaoyao pai | 15 |

| 9 | xxoo | 39 |

9 rows in set (0.00 sec)

mysql 管理 MySQL管理

執行和關閉mysql伺服器 首先檢查mysql伺服器正在執行與否。在linux系統下可以使用下面的命令來檢查 ps ef grep mysqld 如果mysql正在執行,那麼會看到列出來的 mysqld 程序。如果伺服器沒有執行,那麼可以使用下面的命令來啟動它 root host cd usr bi...

mysql管理位址 MySQL 管理

mysql 管理 啟動及關閉 mysql 伺服器 首先,我們需要通過以下命令來檢查mysql伺服器是否啟動 ps ef grep mysqld 如果mysql已經啟動,以上命令將輸出mysql程序列表,如果mysql未啟動,你可以使用以下命令來啟動mysql伺服器 root host cd usr ...

mysql 管理指令碼 MySQL 管理

mysql 管理 啟動及關閉 mysql 伺服器 首先,我們需要通過以下命令來檢查mysql伺服器是否啟動 ps ef grep mysqld 如果mysql已經啟動,以上命令將輸出mysql程序列表,如果mysql未啟動,你可以使用以下命令來啟動mysql伺服器 root host cd usr ...