mysql优化之linux基础预习课
linux基础预习课
目录
课程内容
Linux内核
Linux体系结构
内核 : 管理软件数据I/O
系统调用接口
a.提供一些机制从用户空间到内核的函数调用;
b.是一个非常有用的函数调用多付用和多路分辨服务;
文件管理
a.Linux里面有大量物理内存消耗,管理方式 : "虚拟内存"
b.Linux会将比较容易处理"内存页"(对于大部分体系结构4kb)
c.Linux的管理方式,以及物理内存和虚拟映射所有的硬件机制
进程管理
通俗理解 : 系统会给每一个程序(如:qq,qq课堂,微信,qq音乐)或系统服务,分配一片空间,这个空间叫内存;
运行程序(如:qq,qq课堂,微信,qq音乐)或系统服务期间叫做进程;
每过一段时间系统会自动切换程序或者系统服务的过程叫做进程调度;
每个进程都会单独的运行地址空间,这样就使操作系统就避免了进程相互干扰以及"坏"程序对操作系统造成的危害
内核通过SCI提供一个应用程序接口来创建应用进程
文件系统
window文件系统
C盘;D盘;E盘等等
Linux文件系统(树状结构,如下图)
ext2文件系统
Linux会支持很多文件系统.如 : 虚拟文件系统(简称VFS) , SCI : 系统调用接口
设备运行程序
设备驱动程序会因为环境原因导致系统崩坏
主要是控制操作系统与硬件交互
网络接口程序
主要是提供各种网络的存取和网络硬件的支持
网络接口 : 网络协议(主要是负责网络传输协议,如TCP/IP)和网络驱动程序(主要负责与硬件设备通讯)
shell脚本
就是一种脚本程序 Shell Script
运行环境要求 : 一个能编写文本编辑器,一个能解释执行的解释器
代码示例1
运行结果
代码示例2
运行结果
mysql定时备份
需求
1.可以自定义每天什么时候来执行
2.给出备份开始和备份结束相应信息 echo "备份开始"
3.备份后的文件要求以时间命名.例如:2020-03-02.tar.gz
4.在备份的同时,检查是否有大于10天的文件
mysql备份数据工具 : mysqldump
shell脚本
echo "===开始备份==="
BACKUP=/home
DATETIME=$(date +%Y-%m-%d)
echo "===备份的路径是:$BACKUP/$DATETIME/$DATETIME.tar.gz"
#主机
HOST=127.0.0.1
#用户名
DB_USER=root
#密码
DB_PWD=root
#备份数据库名
DATABASE=test
#创建备份的路径
#如果备份的路径文件夹存在,就使用,否则就创建
[ ! -d "$BACKUP/$DATETIME" ] && mkdir -p "$BACKUP/$DATETIME"
#执行mysql的备份数据库的指令
mysqldump -u${DB_USER} -p${DB_PWD} --host=$HOST $DATABASE | gzip > $BACKUP/$DATETIME/$DATETIME.sql.gz
#打包备份文件
cd $BACKUP
tar -zcvf $DATETIME.tar.gz $DATETIME
#删除临时目录
rm -rf $BACKUP/$DATETIME
#删除10天前的备份文件
find $BACKUP -mtime +10 -name "*.tar.gz" -exec rm -rf {} \;
echo "===备份文件成功==="
设置每天4点备份mysql数据
#创建定时任务
crontab –e
0 4 * * * /data/dbdata/backup_mysql.sh