|
地址:5号服务器--VIP资料下载八区\数据库专区
企业级Mysql DBA实战晋级之路(mariaDB DBA)有完整47讲,这是目前最好的也是最牛逼的Mysql DBA课程了!价值7000多,无论广度和深度都远超过了男孩的MySql DBA培训),我就是想学大牛的,我看他的博客,发现他讲的全是干货,碰到一个什么问题,开始解决,从哪个地方开始解决 ,思路是什么,用哪些命令,看哪些点,最终得出一个什么样的结论,问题解决!
现在要是DBA出去面试,10个电话占8个是Mysql 数据的,Mysql 之所以被oracle收购,一个很大的原因就是innodb引擎越来越强大了。几乎跟oracle一样,现在企业是这样有几个很厉害的DBA,其他的要点打杂的就行了,这是针对oracle而言.至于Mysql 吗,北京现在是需求量最大的,所以我总结了,玩oracle也要学习Mysql ,学习Oracle不知道啥时候才出头,学习Mysql 吗,完全不一样的 !
新版Mysql 优化调优班将另行发帖子!
船长问1.对于mysql初学或使用者,您觉得重点是什么?
Xq:对于mysql初学者我认为应该先了解mysql的大体结构、维护mysql需要的常用操作。刚开始接触mysql应该从头到尾读一本稍微全面的书籍,对于不太理解的内容可以先略过,以后工作中遇到了知道到哪里去查就可以了。我认为学习任何东西都应该先学习其基础内容,就像学写作要先去识字一样。平时多看看别人写的博客、微博;多关注技术论坛,学会用官方文档查资料,整理一些有用的的文档以便以后查阅。要敢于尝试,但在操作线上数据库之前一定要做好测试,必要时操作前先做好备份(备份是数据库出现问题时DBA的后路),总的来说就是胆大心细。运维相关的知识也要去学习,一个优秀的DBA也应该是一个优秀的运维工程师,工作时间长了我们会发现在排查故障的过程中需要我们去了解运维相关的知识。
要看怎么样的水平了,其实很简单的一个道理,mysql原理就那么点,主从方面的知识,就gtid,多线程复制,异步,半同步,平时备份,擅长使用以下explain,对系统也熟悉点,可以写写shell就可以了,剩下的是经验。
先把SHELL,过一遍,再学习Linux群集技术,同时学习C语言---PYTHON --MYSQL,dba运维开发-->服务器开发-->全栈!DBA 有机会的话,从运维型DBA开始。熟练SQL编程,什么主从, 一主多从,双主, 高可用,备份恢复,异地备份,高性能,这些HOLD住了,可以开始做开发型DBA了。
特别需要学习SQL编程,SQL编程需要掌握的知识远比想象的多,建议一定要看这个SQL编程技术内幕
船长问2.对了哥们Mysql查询5万行数据时,全部的在100万数据中,数据库直接挂了,是啥原因呀?
Xq: mysql 一查询就挂?你执行show full processlist;看看,然后排序一下时间。
一般来说耗时时间最长的那个session就是有问题的,然后定位这个id。一般是sql有问题,开发那里的问题。
innodb引擎对吧?
mysql>show processlist;
出来哗啦啦好几屏幕的, 没有一千也有几百条, 查询语句把表锁住了, 赶紧找出第一个Locked的thread_id, 在mysql的shell里面执行。
我写一个脚本给你:
#!/bin/bash
mysql -u root -proot -e "show processlist" | grep -i "Locked" >> locked_log.txt
for line in `cat locked_log.txt | awk '{print $1}'`
do
echo "kill $line;" >> kill_thread_id.sql
done
船长 这个获取有问题的id是吧
船长问3:请问maxscale 怎么设置字符集?现在中文显示乱码?
Xq: 操作系统,数据库,web端,db端,都要改。
把操作系统的字符集改成中文
vim /etc/sysconfig/i18n
LANG="zh_CN.UTF-8"
SYSFONT="latarcyrheb-sun16"
vim /etc/profile
全局环境变量
export LC_ALL=zh_CN.UTF-8
你懂得,然后
. /etc/profile
OK了。
另外数据库的字符集也要改
运行 show variables like 'character%'
这里改成all
建议这个值生产环境设置为use_sql_variables_in=all意思为,程序带有变量的时候,也会在从库上执行。
比如discuz论坛,每次查询的时候,程序都会执行set names utf8,如果从库上不执行的话,会出现乱码。
[maxscale]
threads=4
[MySQL Monitor]
type=monitor
module=mysqlmon
servers=server1,server2,server3,server5
user=admin
passwd=404179CF3D67E1C08FB3D5F5C0FC71AC
monitor_interval=10000
detect_stale_master=1
detect_replication_lag=1
[RW Split Router]
type=service
router=readwritesplit
servers=server1,server2,server3,server5
user=magentouser
passwd=404179CF3D67E1C08FB3D5F5C0FC71AC
max_slave_replication_lag=5
max_slave_connections=100%
weightby=serv_weight
use_sql_variables_in=all
enable_root_user=1
[CLI]
type=service
router=cli
[RW Split Listener]
type=listener
service=RW Split Router
protocol=MySQLClient
port=3306
[CLI Listener]
type=listener
service=CLI
protocol=maxscaled
port=6603
船长问4:MySQL主从同步做完了,发现有一张表的数据不一致,我想再单独同步一下这张表怎么做?
Xq: 最简单的方式是用pt工具,具体的可以看一下我们发的相关课程怎么使用。另外也可以这样:
mysqldump -uroot -p密码 -q --single-transaction --master-data=2 数据库 你的表 >/.导出表.sql
后面你懂的,里面你自己看具体的pos位置,理论上也可以同步。
船长问5:发现第34课的pdf缺失,第9课没有录音,第20课SQL基础5、MySQL复制1也没录音。第9课讲的监控缺失也没什么了,但是20课真的很重要,也缺失了,34课MySQL备份恢复也很重要的,请尽快修正!
Xq: 厉害你都看了,看了果然存在问题。第34课PDF补充了,第9课第20课录音也补充上了。
另外增加了4个重要的视频:haproyx+pxc讲解-吴炳锡.mp4、keepalived+lvs双主+从2-吴炳锡.mp4、基于keepalived高级进阶1-吴炳锡.mp4、抓包演示.mp4!
修正1)第十二课在“20:35:12”有一个公式显示不完整?
完整公式是:innodb_buffer_pool_size + innodb_log_buffer_size + innodb_additional_mem_pool_size + 812/16384 * innodb_buffer_pool_size + OS_THREADS * 368(152 + 216)
修正2)MySQL HA安装视频+软件与脚本 "精通MySQL 5.7 keepalived + haproxy + MHA 高可用自动容灾部署与运维"
|
|