mysql的一些特殊功能, 基本上都是8.0才有的 (5.7都停止维护了…)
禁用REDO LOG
8.0.21 才支持
ALTER INSTANCE {ENABLE | DISABLE} INNODB REDO_LOG
This action enables or disables InnoDB redo logging. Redo logging is enabled by default. This feature is intended only for loading data into a new MySQL instance. The statement is not written to the binary log. This action was introduced in MySQL 8.0.21.
ALTER INSTANCE DISABLE INNODB REDO_LOG;
基本上没啥用, 也不建议使用…
设置单个库只读
8.0.22 才支持的
alter database db1 read only 1;
之前迁移同步, 目标环境还有其它库(非本次迁移的库), 切换的时候 就可以只设置某个库只读. (可惜当时的版本是8.0.18)
设置MYSQL不被OOM
这其实是OS的功能
如果数据库服务器还有其它应用占用内存, 服务器内存不足时, 就可能会把mysqld干掉, 这是我们不希望的.
所以可以设置Mysqld在内存不足时,不被选为被kill的对象(通常是kill内存多的进程)
方法1:
echo -17 > /proc/`pidof mysqld`/oom_adj
/usr/include/linux/oom.h 定义的OOM_DISABLE
方法2:
mysqld --memlock #要求root账号启动
这个不一定所有的服务器都支持, 可以使用grep mlockall /usr/include/sys/mman.h
查看是否支持