一.mysql 数据库相关
-
主从原理是什么
从库生成两个线程,一个I/O线程,一个SQL线程;
i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;
主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;
SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;
-
主从原理图解释
-
mysql 用了什么引擎
Innodb引擎
MyIASM引擎
-
主从同步异常怎么解决
设置MySQL双一模式,将需要同步的数据保存到磁盘中。
innodb_flush_log_at_trx_commit
如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。
sync_binlog
sync_binlog 的默认值是0,像操作系统刷其他文件的机制一样,MySQL不会同步到磁盘中去而是依赖操作系统来刷新binary log。
当sync_binlog =N (N>0) ,MySQL 在每写 N次 二进制日志binary log时,会使用fdatasync()函数将它的写二进制日志binary log同步到磁盘中去。
-
主从同步,主服务器宕机怎么处理
可用keepalived做主从,主宕机可以切到优先级高的服务器,让优先级高的服务器做主。
-
数据库完整备份增量备份命令
MySQLdump -uroot -ppassword 1601G > backup.bak
MySQLdump -uroot -ppassword 1601G >> backup.bak
-
数据库备份与还原
mysqldump命令做备份
mysql命令做还原
-
mysql 优化做了哪些
MySQL内核优化
MySQL配置参数优化,此优化需要进行压力测试来进行参数调整
对SQL语句以及表优化