新建乙個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 ...