#msyql 5.6 Proceso de recuperación de fallas maestro-esclavo
################## simulación de ault ### 主 库 # 1 construir base de datos y construir tabla mysql -e " soltar clase de base de datos; crear clase de base de datos; clase de USO; crear tabla estudiante ( nombre Char ( 20 es ) no nulo , Edad int ( 2 ) no nulo ); " ## 2 insertada en los datos # sin ejecutar la orden, etc., el golpe en el elemento de transporte 3 puede ser realizado en el comando de la biblioteca para I en { 1 .. 10 }; do mysql -e " USE clase; inserte en los valores del alumno ('aaabbb $ i', $ i); "; hecho mysql -e " select * from class.student; " /etc/init.d/ mysqld stop #### 3 ejecuta mysql -e ' stop slave; muestra el estado del esclavo \ G; ' | grep Slave ## ## Después de ejecutar la biblioteca principal, ejecute el siguiente comando mysql -e ' show status esclavo \ G; ' | grep Slave ######################### ###### 从 升 主 操作 程 ## 1 ## Ver el archivo master.info y comparar y elegir el que tenga la posición más grande como la nueva base de datos maestra mysql -e ' mostrar estado esclavo \ G; ' | grepRead_Master_Log_Pos head / usr / local / mysql / data / master Información ### Directorio de la base de datos, elimine los archivos master.info y relay -log.info, configure el archivo my.cnf, abra log-bin, si hay log-slaves-updates Y solo lectura debe comentarse, ejecute reset master mv -f / usr / local / mysql / data / master. Info {, bak} mv -f / usr / local / mysql / data / relay-log. Info {, bak} mysql -e " concede esclavo de replicación en *. * a 'repl' @ '%' identificado por 'replpwd'; privilegios de vaciado ; seleccione Usuario, Host de mysql.user; " sed -i ' s / ^ log-slave -updates = / # log-slave-updates = / g ' / etc / my.cnf sed -i ' s / ^ solo lectura = / # solo lectura = / g ' / etc / my.cnf egrep -v ' ^ # | ^ $ ' / etc / my.cnf /etc/init.d/ mysqld reiniciar mysql -e " detener esclavo; restablecer esclavo; restablecer maestro; " mysql -e " mostrar estado maestro \ G " ############### ##########其它 从 库 上 操作 更新 mysql -e " detener esclavo; restablecer esclavo; CAMBIAR MAESTRO A MASTER_HOST = ' 192.168.11.41 ' , MASTER_USER = ' repl ' , MASTER_PASSWORD = ' replpwd ' , MASTER_PORT = 3306 , MASTER_LOG_FILE = ' mysql-bin.000001 ' , MASTER_LOG_POS = 149976 , MASTER_CONNECT_RETRY = 10 ; iniciar esclavo; " mysql -e ' mostrar estado esclavo \ G; ' | grep Slave ############################################## ############# Restaurar datos a través de binlog en la antigua biblioteca principal #################1 . Primero encuentre el archivo antiguo / usr / local / mysql / data / master.info en la nueva biblioteca principal para encontrar el nombre del archivo binlog y el valor de MASTER_LOG_POS debe ser la segunda y tercera línea del encabezado del archivo / usr / local / mysql / data / master . info # 23 #mysql -bin. 000002 # 65428 # 192.168 . 11.43 #repl #replpwd # 3306 # 10 # 0 # ########## 2. Use el comando mysqlbinlog para extraer los datos en el archivo sql, Y sincronice con la nueva biblioteca principal ## - b test1 es el nombre de la base de datos mysqlbinlog -b test1 --start-position = 65428 mysql-bin. 000002 > test.sql scp test.sql root @ 192.168 . 11.41 : ~ / ########### 3. Importe el archivo test.sql en la nueva biblioteca principal msyql -e " source /root/test.sql " ### ####### Verifique la situación de recuperación de datos mysql -e " seleccione * de test.student; " ####################### 机 机主 库Restaurar ### 1 . mysql -e " detener esclavo; restablecer esclavo; restablecer maestro; " ##### 2 . #### Agregue una línea debajo de /etc/my.cnf [mysqld] solo lectura = 1 sed -i '/ \ [mysqld \] / a solo lectura = 1 ' / etc / my.cnf /etc/init.d/ mysqld restart ######### 3 ## MASTER_LOG_FILE = ' mysql-bin.000001 ' , MASTER_LOG_POS = 149976 , para los archivos y nodos encontrados en la nueva biblioteca principal mysql -e " detener esclavo; restablecer esclavo; CAMBIAR MAESTRO A MASTER_HOST = ' 192.168.11.41 ' , MASTER_USER = ' repl ' , MASTER_PASSWORD = ' replpwd ' , MASTER_PORT = 3306, MASTER_LOG_FILE = ' mysql-bin.000001 ' , MASTER_LOG_POS = 149976 , MASTER_CONNECT_RETRY = 10 ; iniciar esclavo; " mysql -e ' muestra el estado del esclavo \ G; ' | grep Esclavo