<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Mysqldba</id>
	<title>Mysqldba - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Mysqldba"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Mysqldba&amp;action=history"/>
	<updated>2026-04-17T11:35:19Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Mysqldba&amp;diff=692&amp;oldid=prev</id>
		<title>Evan：​/* 事务 */</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Mysqldba&amp;diff=692&amp;oldid=prev"/>
		<updated>2021-11-22T13:12:57Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;事务&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==mysqlDBA==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
2）备份：制定和实施数据库备份计划，灾难出现时对数据库信息进行恢复，维护适当介质上的存档或者备份数据。对数据库的备份策略要根据实际要求进行更改，数据的日常备份情况进行监控。备份大概分为两种：一种是定时、计划性的备份，包含全备和增量备份，常用的工具一般为mysqldump以及xtrabackup为代表的第三方备份工具；一种是执行DML时更新和删除的备份，这种备份一般有以下几种备份方式：一种为create tablexxx_mmddhhmm select的方式备份到表中，一种是mysqldump加上条件做备份，还有一种是select into oufile等几种方式，防止执行错误时可以快速的恢复。在日常对数据库的操作中，特别作为一个DBA，永远要给自己留一个后手，保证在需要进行数据恢复的时候可以随手拈来&lt;br /&gt;
&lt;br /&gt;
4）故障处理：&lt;br /&gt;
可以和研发一起制定相应的预案，并且和监控结合，当达到一定的阀值，使用相应的脚本自动处理，这样在一定程度上减少DBA的工作量、提高故障处理效率&lt;br /&gt;
&lt;br /&gt;
6）数据库性能优化：产品对外提供服务最重要的一点是用户体验，用户体验中非常重要的是产品的可用性和响应速度。而如何用最合理的资源支持产品提供高可用和高速度的用户体验，这也是DBA的重要职责。在多年的DBA生涯中，个人对数据库故障的总结为：80%的甚至更高的故障来自变态的SQL语句，10%左右的来自数据库架构方面设计的不合理，10%左右的来自硬件、OS层面。那么基本的优化重点就就是对SQL的优化，这个需要给研发人员进行MySQL开发规范进行培训，制定严格的SQL准入规则，审核每一条上线的SQL语句，在SQL源头上堵住大部分，然后就是对慢SQL的监控分析，定期的发给研发进行整改，并督促研发在限定的时间内整改。这部分的工作较为繁琐平淡，但是执行好了，可以杜绝很多不必要的故障，保证业务的高效、稳定运行，这一部分工作非常考验DBA的基础理论知识，考验DBA的责任性和工作的毅力。&lt;br /&gt;
个 人认为，一个好的DBA所需要具备的基本技能包含：理解数据备份/恢复与灾难恢复、DBA常用工具集的使用、知道如何快速寻找答案、知道如何监控和优化数 据库性能、尽可能实现自动化、容量监控与规划、索引设计、数据库设计、数据库安全性、持续不断地学习和研究新版本、可以单独的编写独立的或者系统的功能脚本。这些技能基本涵盖MySQL基础理论知识、OS层面知识、硬件知识、网络知识、代码编写能力、架构设计规划能力、监控、运维理念、运维自动化等。因此，做一个DBA，不单纯的数据库层面的，基本知识涵盖很多层面，因此可以说DBA综合知识极高的复合型专业人才。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
http://wangwei007.blog.51cto.com/68019/1718311&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; show slave status \G;&lt;br /&gt;
*************************** 1. row ***************************&lt;br /&gt;
               Slave_IO_State: Waiting for master to send event&lt;br /&gt;
                  Master_Host: 192.168.0.72&lt;br /&gt;
                  Master_User: slave&lt;br /&gt;
                  Master_Port: 3306&lt;br /&gt;
                Connect_Retry: 60&lt;br /&gt;
              Master_Log_File: mysql-bin.000003&lt;br /&gt;
          Read_Master_Log_Pos: 122619318&lt;br /&gt;
               Relay_Log_File: dkm-server-relay-bin.000010&lt;br /&gt;
                Relay_Log_Pos: 11910328&lt;br /&gt;
        Relay_Master_Log_File: mysql-bin.000003&lt;br /&gt;
             Slave_IO_Running: Yes&lt;br /&gt;
            Slave_SQL_Running: Yes&lt;br /&gt;
              Replicate_Do_DB: &lt;br /&gt;
          Replicate_Ignore_DB: &lt;br /&gt;
           Replicate_Do_Table: &lt;br /&gt;
       Replicate_Ignore_Table: &lt;br /&gt;
      Replicate_Wild_Do_Table: &lt;br /&gt;
  Replicate_Wild_Ignore_Table: &lt;br /&gt;
                   Last_Errno: 0&lt;br /&gt;
                   Last_Error: &lt;br /&gt;
                 Skip_Counter: 0&lt;br /&gt;
          Exec_Master_Log_Pos: 122619318&lt;br /&gt;
              Relay_Log_Space: 15630329&lt;br /&gt;
              Until_Condition: None&lt;br /&gt;
               Until_Log_File: &lt;br /&gt;
                Until_Log_Pos: 0&lt;br /&gt;
           Master_SSL_Allowed: No&lt;br /&gt;
           Master_SSL_CA_File: &lt;br /&gt;
           Master_SSL_CA_Path: &lt;br /&gt;
              Master_SSL_Cert: &lt;br /&gt;
            Master_SSL_Cipher: &lt;br /&gt;
               Master_SSL_Key: &lt;br /&gt;
        Seconds_Behind_Master: 0&lt;br /&gt;
Master_SSL_Verify_Server_Cert: No&lt;br /&gt;
                Last_IO_Errno: 0&lt;br /&gt;
                Last_IO_Error: &lt;br /&gt;
               Last_SQL_Errno: 0&lt;br /&gt;
               Last_SQL_Error: &lt;br /&gt;
  Replicate_Ignore_Server_Ids: &lt;br /&gt;
             Master_Server_Id: 1&lt;br /&gt;
                  Master_UUID: 70ad2da1-f80a-11e6-a44a-623530313666&lt;br /&gt;
             Master_Info_File: /data/apps/mysql/data/master.info&lt;br /&gt;
                    SQL_Delay: 0&lt;br /&gt;
          SQL_Remaining_Delay: NULL&lt;br /&gt;
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it&lt;br /&gt;
           Master_Retry_Count: 86400&lt;br /&gt;
                  Master_Bind: &lt;br /&gt;
      Last_IO_Error_Timestamp: &lt;br /&gt;
     Last_SQL_Error_Timestamp: &lt;br /&gt;
               Master_SSL_Crl: &lt;br /&gt;
           Master_SSL_Crlpath: &lt;br /&gt;
           Retrieved_Gtid_Set: &lt;br /&gt;
            Executed_Gtid_Set: &lt;br /&gt;
                Auto_Position: 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=数据迁移=&lt;br /&gt;
&lt;br /&gt;
[https://cloud.tencent.com/developer/article/1644917 数据迁移的几种方式 - MySQL数据库]&lt;br /&gt;
&lt;br /&gt;
=日常=&lt;br /&gt;
&lt;br /&gt;
好像除去jenkins 有一个可以来让别人方便 sql的东西  在运维规划里面有说到么 ?&lt;br /&gt;
&lt;br /&gt;
 mysqldump: Error: &amp;#039;Access denied; you need (at least one of) the PROCESS privilege(s) for this operation&amp;#039; when trying to dump tablespaces&lt;br /&gt;
&lt;br /&gt;
[https://ruby-china.org/topics/21663  新手问题 批量执行 SQL 语句脚本 求指教 ]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
报错原因：&lt;br /&gt;
&lt;br /&gt;
缺少process权限导致&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
解决办法：&lt;br /&gt;
&lt;br /&gt;
授权&lt;br /&gt;
&lt;br /&gt;
    mysql&amp;gt; grant process on *.* to &amp;#039;backup&amp;#039;@&amp;#039;localhost&amp;#039;;&lt;br /&gt;
    Query OK, 0 rows affected, 1 warning (0.00 sec)&lt;br /&gt;
     &lt;br /&gt;
    mysql&amp;gt; flush privileges;&lt;br /&gt;
    Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
== 日常shell==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
方法一 使用mysql参数的方法 看起来不成效 &lt;br /&gt;
&lt;br /&gt;
mysql -u$user -p$pass -D $db -e &amp;quot;select host from user;&amp;quot;|grep -v &amp;quot;Warning: Using a password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
当然，可以通过将传参的方式来传递 -e 后面的语句。&lt;br /&gt;
&lt;br /&gt;
方法二  重定向  暂时最好是这个拉&lt;br /&gt;
去掉消除 重定向&lt;br /&gt;
mysql: [Warning] Using a password on the command line interface can be insecure.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
mysql -ucore -h172.1.10.6 -p`cat /home/eva` -e &amp;quot;`cat $1`;&amp;quot;  2&amp;gt;/dev/null &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
方法三 &lt;br /&gt;
touch /etc/my.password&lt;br /&gt;
&lt;br /&gt;
[client]&lt;br /&gt;
user=root&lt;br /&gt;
password=密码&lt;br /&gt;
&lt;br /&gt;
mysql --defaults-extra-file=/etc/my.password&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 事务==&lt;br /&gt;
MySQL开启事务的两种方式&lt;br /&gt;
&lt;br /&gt;
方式 1&lt;br /&gt;
&lt;br /&gt;
START TRANSACTION 或 BEGIN 开始新的事务 COMMIT 提交当前事务 ROLLBACK 回滚当前事务&lt;br /&gt;
&lt;br /&gt;
这是大家熟知的一种方式，其中开启事务的方式 start transaction 和 begin 是相同的。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mysql&amp;gt; use evan;&lt;br /&gt;
Reading table information for completion of table and column names&lt;br /&gt;
You can turn off this feature to get a quicker startup with -A&lt;br /&gt;
&lt;br /&gt;
Database changed&lt;br /&gt;
mysql&amp;gt; BEGIN;&lt;br /&gt;
Query OK, 0 rows affected (0.00 sec)&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; update policy as a,policy_recognizee_policy as b set b.relation =999 where a.id =b.policy_id and a.sales_platform=&amp;#039;qixin&amp;#039; and b.relation =4;&lt;br /&gt;
Query OK, 1466 rows affected (0.55 sec)&lt;br /&gt;
Rows matched: 1466  Changed: 1466  Warnings: 0&lt;br /&gt;
&lt;br /&gt;
mysql&amp;gt; COMMIT;&lt;br /&gt;
Query OK, 0 rows affected (0.02 sec)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://blog.csdn.net/linuxprobe18/article/details/118544564  简单介绍MySQL开启事务的两种方式]&lt;br /&gt;
&lt;br /&gt;
=see also=&lt;br /&gt;
&lt;br /&gt;
[http://blog.itpub.net/31556440/viewspace-2669409/ MySQL数据库之互联网常用架构方案（全）]&lt;br /&gt;
&lt;br /&gt;
[https://database.51cto.com/art/201806/576300.htm MySQL到底有多少种日志类型需要我们记住的]&lt;br /&gt;
https://database.51cto.com/&lt;br /&gt;
&lt;br /&gt;
[https://database.51cto.com/art/201910/604336.htm 10大DBA必备的免费数据库监控和查询工具]&lt;br /&gt;
&lt;br /&gt;
[[category:mysql]] [[category:devops]] [[category:dba]]&lt;/div&gt;</summary>
		<author><name>Evan</name></author>
	</entry>
</feed>