¡Increíble! ¡Recomiendo una herramienta de operación y mantenimiento automatizado MySQL!
收录于话题
#MySQL从入门到放弃
26个
Haga clic en la "Ruta técnica de los trabajadores migrantes" arriba, seleccione "Establecer como estrella" y
responda "1024" para obtener materiales de aprendizaje exclusivos.
Antes de eso, el trabajador migrante también introdujo una herramienta de administración SQL de código abierto: finalización automática, reversión. Introducir una herramienta de diagnóstico visual de SQL.
Hoy, el trabajador migrante recomienda otra herramienta de auditoría SQL: goinception.
Introducción a goinception
goInception es una herramienta de operación y mantenimiento de MySQL que integra auditoría, ejecución, respaldo y generación de declaraciones de reversión. A través del análisis gramatical de SQL ejecutado, devuelve resultados de auditoría basados en reglas personalizadas, y proporciona ejecución, respaldo y generación de declaraciones de reversión. Caracteristicas.
dirección de github: https://github.com/hanchuanchuan/goInception
Documento: https://hanchuanchuan.github.io/goInception/
arquitectura de inicio
instalación goinception
El funcionario proporciona varios métodos de instalación, como sigue.
- 1. Instalación del
código fuente La instalación del código fuente requiere un entorno de go V1.2 o superior, y use go mod para la gestión de dependencias.
[root@centos7 ~]# git clone https://github.com/hanchuanchuan/goInception.git
[root@centos7 ~]# cd goInception
[root@centos7 ~]# make parser
[root@centos7 ~]# go build -o goInception tidb-server/main.go
- 2. camino de la ventana acoplable
[root@centos7 ~]# docker pull hanchuanchuan/goinception
- 3. Instalación binaria (recomendada)
diríjase directamente a la dirección oficial: https://github.com/hanchuanchuan/goInception/releases/download/ para descargar el archivo de versión correspondiente, una vez completada la descarga, simplemente descomprímalo y ejecútelo .
[root@centos7 ~]# mkdir goinception
[root@centos7 ~]# tar zxf goInception-linux-amd64-v1.2.3.tar.gz -C ./goinception/
[root@centos7 ~]# cd goinception/
[root@centos7 goinception]# ll
total 38476
drwxr-xr-x 2 root root 33 Aug 30 03:48 config
-rwxr-xr-x 1 501 games 39399424 May 22 07:45 goInception
Una vez completada la descompresión, verá un archivo de configuración predeterminado en el directorio de configuración: config.toml.default, puede modificarlo de acuerdo con la situación real.
goInception utiliza la reconstrucción del código fuente de TiDB, por lo que algunos parámetros pueden hacer referencia a documentos relacionados con TiDB
El archivo config.toml consta de varias partes, que son la configuración más externa, como host, puerto, etc., y cada grupo, como [inc], [log], etc. Ejemplo (Este ejemplo solo muestra la estructura del archivo config.toml, consulte los parámetros detallados): https://github.com/hanchuanchuan/goInception/blob/master/config/config.toml.default
host = "0.0.0.0"
port = 4000
path = "/tmp/tidb"
[log]
# 日志参数
level = "info"
format = "text"
[log.file]
# 日志文件参数
filename = ""
max-size = 300
[inc]
# 审核选项
enable_nullable = true
enable_drop_table = false
check_table_comment = false
check_column_comment = false
# 等等...
[osc]
# pt-osc参数
osc_on = false
osc_min_table_size = 16
[ghost]
# gh-ost参数
ghost_allow_on_master = true
Una vez completada la modificación de la configuración, se puede iniciar normalmente.
[root@centos7 goinception]# ./goInception -config=config/config.toml
[root@centos7 ~]# netstat -lntp|grep 4000
tcp6 0 0 :::4000 :::* LISTEN 1250/./goInception
Caso de uso
/*--user=root;--password=root;--host=127.0.0.1;--check=1;--port=3306;*/
inception_magic_start;
use test;
create table t1(id int primary key);
inception_magic_commit;
Otra introducción
1. Información de resultado
Hay dos tipos de información devuelta a los usuarios,
- Una es que hay errores en la información básica enviada a goInception, como información de fuente incompleta o errores en la información de fuente. En este caso, informe directamente las excepciones, incluidos códigos de error y mensajes de error, que son los mismos que los del servidor MySQL. Se puede manipular normalmente en el exterior.
- En segundo lugar, si no existe tal problema, se informará al cliente del resultado de la verificación en forma de un conjunto de resultados. Consistente con el conjunto de resultados nativo de mysql. En el conjunto de resultados devuelto, cada fila de datos es una declaración SQL enviada. GoInception desensambla internamente todos los bloques de declaraciones enviados uno por uno y los devuelve en forma de conjunto de resultados. Para cada declaración, ¿cuál es el problema o el estado? Los resultados son claros de un vistazo.
Nota: Si hay un error gramatical en la declaración, no puede continuar, porque goInception ya no puede separar las declaraciones restantes. En este momento, las múltiples filas que se han verificado normalmente antes se devuelven con múltiples conjuntos de resultados. La siguiente declaración de error es Se devuelve una línea, por supuesto, el mensaje de error es un error de sintaxis.
2. Viene con función de respaldo
Con su propia función de respaldo, primero configure config.toml cuando se inicie el servicio (ubicado en la sección [inc])
参数 默认
可选范围
说明
backup_host "" string 备份数据库IP地址
backup_port 0 int 备份数据库端口
backup_user "" string 备份数据库用户名
backup_password "" string 备份数据库密码
并且在执行sql时,添加 --backup=true 或 --backup=1 选项。
3. Reglas de auditoría
Para obtener información detallada sobre las reglas de auditoría relacionadas y las opciones de auditoría, consulte: https://hanchuanchuan.github.io/goInception/rules.html
Comparar Inception
1. Comparación de funciones
2. Velocidad
3. Utilice
Este tipo de herramienta libera las manos del DBA hasta cierto punto y también puede evitar errores en gran medida, asegurando así la tasa correcta de ejecución de SQL. Al mismo tiempo, también proporciona la función de reversión de SQL para revertir en caso de error. Seguridad e integridad de los datos.
Lectura recomendada ¡Haga clic en el título para saltar al
error! Redis 6.0.8 se lanza con urgencia, ¡actualice lo antes posible!
Los primeros en adoptar el sistema operativo Huawei Hongmeng, mi primer "hola mundo" es el
mapa mental de aprendizaje de Linux / C / C ++ más completo, ¡recójalo!
¡Solo un paso, prostituta permanente! ¡Úselo de forma discreta!
Conceptos básicos de la red de contenedores de Docker
¿Por qué HTTPS es seguro?
¿Se puede usar SSH solo en hosts remotos de Linux? ¡Eso significa que eres demasiado joven!
Incluido en el tema #MySQL desde la entrada para renunciar a
26
Ge