k8s运维管理平台,k8s运维日常巡检
Mysql命令行执行存储过程。登录到远程数据库,查看具有指定名称的存储过程是否存在。如果它不存在,请创建一个新的存储过程。
显示过程状态,其中name=“存储过程名称”;
vim /opt/proc.sql
CREATE PROCEDURE存储过程名(IN name VARCHAR(30))
开始
SELECT student _ score FROM TB _ students _ score其中student _ name=name
通过END命令行#修改行分隔符创建一个存储过程
分隔符;
#执行存储过程(行尾无;)
source /opt/proc.sql
#恢复行分隔符;(vim proc.sql在linux时,esc shift G光标跳到最后一行,gg光标定位到第一行)
使用gitlab-runner遇到的问题安装gitlab-runner这一部分是对gitlab-runner在自动化运维环境搭建过程和自动化运维环境快速搭建中描述的补充。
#检查gitlab-runner服务是否存在
systemctl状态gitlab-runner.service -l
ps -efgrep gitlab
#停止gitlab-runner服务
system CTL stop git lab-runner . service-l
#卸载服务服务。/gitlab-runner-linux-amd64卸载
#作为服务安装服务。/git lab-runner-Linux-amd64 install-u root
#启动gitlab-runner。/git lab-runner-Linux-amd64 start
或者
Systemctl启动gitlab-runner.service安装gitlab-runner后,检查启动状态。
- working-directory这是数据目录,存储项目的源代码和编译后的内容。
-config/etc/git lab-runner/config . toml这是默认的配置文件,其中存储了已注册的运行程序。
在gitlab上注册一个gitlab-runner。
注册成功后,可以在gitlab runner页面看到。
然后给它建立一个项目,
项目提交后,会自动触发服务部署的流程,这里可能会出现这样的问题,
这一步在git克隆项目的源代码里(第一次克隆一个完整的项目,项目大的话会比较慢),但是一直卡在这里,在git pull下手动去服务器也比较慢。
这里配置的项目地址是一个域名。从公网下载一个大项目很慢是正常的。
如果gitlab runner所在的服务器和gitlab在同一个内网环境,可以在这里配置内网ip,这样会很快。第一次下载项目到服务器后,后期更新会很快。
Gitlab-ruuner在Gitlab上注册。为什么项目的git地址是这个域名?这是因为这个域名是在k8s gitlab中配置的。
在创建视图或存储过程时,mysql sql执行权限需要定义一个安全验证方法(即安全sql安全),其值可以是definer或invoker,表示在执行过程中使用谁的权限执行。
定义者:由定义者指定的用户授权执行,
定义为定义者时,定义者指定的用户必须存在于数据库中,并且该用户具有相应的操作权限,才能成功执行。不管当前用户是否有权限。
Invoker:由调用这个视图(存储过程)的用户的权限执行,
定义为调用者时,只要执行者有执行权限,就可以成功执行。
mysql 1如何查询锁表?检查表格是否被锁定:
(1)直接在mysql命令行上执行show engine innodb status\G。
具体的分析过程可以在MySQL底层原理2的锁机制中找到。
(2)检查导致死锁的sql语句,分析索引情况,然后优化sql。
(3)然后显示进程列表
检查进程状态,sql正在等待该命令锁定该进程。
(4)显示类似“%锁定%”的状态
获取锁时间、锁引起其他线程的等待时间以及锁等待时间信息,
当Table_locks_waited与Table_locks_immediate的比值较大时,说明表锁造成的阻塞比较严重,可能需要调整查询语句或业务逻辑。
Innodb_row_lock_waits数量多说明Innodb的行锁比较严重,影响了其他线程的正常处理。Innodb行锁严重的原因可能是查询语句使用的索引不够合理(Innodb的行锁是基于索引锁定的),导致gap锁过大。
2.检查表格的锁定状态和结束死锁的步骤:
(1)检查表的锁定状态:显示打开的表,其中In_use该语句记录表的当前锁定状态。
检查哪些表正在使用中。In_use列指示有多少线程正在使用某个表,Name_locked指示表名是否被锁定。这通常发生在Drop或Rename命令操作这个表的时候,所以这个命令不能帮助回答这些问题:当前某个表是否存在死锁,谁拥有这个表上的锁等等。
(2)查询进程:显示进程列表查询表锁定的进程;查询相应进程的killid
(3)分析锁表的SQL:分析对应的SQL,索引表,索引公共字段,索引表的关联字段。
(4)检查被锁定的事务:select * from information _ schema . innodb _ locks
(5)查看等待锁的事务:select * from information _ schema . innodb _ lock _ waits
(6)通过navicat kill进程
打开mysql服务器监控
选择一些要终止的进程
kill之后需要重启相应应用的进程,因为应用和数据库的连接已经断开。如果没有重新连接机制,则需要重新启动应用程序并重新建立与数据库的连接。
版权归作者所有:原创作品来自博主小二上九8,转载请联系作者取得转载授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。