备份类型
完全备份、增量备份、差异备份
完全备份:整个数据集都备份
增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂。
差异备份:对比前一次备份,备份多出来的或者前一次备份有差异的数据。仅备份最近一次完全备份以来变化的数据或者增长的数据,备份较慢,还原简单。直接还原最新备份。
备份数据
cp,tar等复制归档工具:物理备份工具,适用所有存储引擎;只支持冷备,完全和部分备份
LVM的快照:先加读锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
mysqldump:逻辑备份工具,使用所有存储引擎,对MyISAM存储引擎进行温备;支持完全或部分备份;对innodb存储引擎支持热备,结合binlog的增量备份。
二进制日志文件不应该与数据文件放在同一磁盘冷、温、热备份。
冷备:读、写操作均不可进行,数据库停止服务
温备:读操作可执行,但写操作不可执行
热备:读、写操作均可执行,不影响事务
MyISAM:温备,不支持热备,不支持事务。Innodb:都支持
物理冷备份:备份方式:冷备份,一定要先关闭数据库。
先关闭数据库stop,再把/var/lib/mysql使用scp拷贝到其他主机上,再删库,rm -rf /var/lib/mysql。如果重启start相当于格式化,需要重新过滤密码grep password /var/log/mysqld.log复制密码,登录,但是数据库中都没有自建的数据库了,只有默认的数据库。关闭stop数据库,把新生成的数据删除rm -rf /var/lib/mysql,把拷贝过去的mysql再拷回来,指定属主和属组chown。再登录就可以了。
yum安装mysql这里不再实验演示
本地源:
vim /etc/yum.repo.d/mysql.repo
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/x86_64/
enabled=1
gpgcheck=0
下载社区办
yum install -y mysql-community-server
#Node1主机上启动,主机Node2上安装好先不启动。
systemctl start mysqld
启动后就会有日志文件,通过password过滤密码。登录数据库
grep password /var/log/mysql.log #最后面的就是密码,各种特殊符号都是密码的一部分。
登录mysql
mysql -uroot -p'密码'
写入密码策略,改密码,添加两条。目的是不需要遵守密码复杂度要求
set global validate_password_policy=0;
set global validate_password_length=1;
将密码改成abc123
alter user root@'localhost' identified by 'abc123';
ctrl + D退出。
数据库安装成功!
登录:mysql -uroot -pabc123
退出:ctrl + D
有一个数据库hellodb。有以下表;
主机Node1和主机Node2上测试物理冷备份。把主机1的数据库文件复制到主机2上
删除主机1的数据库文件。
物理冷备份
现有的数据库:hellodb和test。
拷贝到主机2上;
[root@Node1 ~]#:scp -r /var/lib/mysql 192.168.114.20:/data/
加-r是将数据库文件整个打包
破坏数据:
[root@Node1 ~]#:rm -rf /var/lib/mysql
如果再重启数据库。那么就不再是原来的数据库文件了。并且密码也需要重新修改。
systemctl start mysqld