mycat

Acerca de la instalación de mysql: https://blog.csdn.net/weixin_44001681/article/details/105465704
Acerca de la configuración de mysql maestro y esclavo: https://blog.csdn.net/weixin_44001681/article/details/105470049

Las reglas de fragmentación de Mycat son: varias reglas de fragmentación compatibles con myCat se definen en rule.xml.
Módulo mod-largo
natural mensual fragmentación por mes
fragmentación por fecha división por fecha fragmentación de
acuerdo con un
acuerdo de intervalo de fragmentación por hora de un solo mes , planifique un campo de fragmentación por adelantado fragmentos que, auto-sharding-largo
rango de módulo azulejo
modulo restricción de rango sharding-por-patrón
enumeración azulejo sharding-por-intfile
fija Hash Algorithm rebanada
tomada de hash determinación sharding-por-stringhash digital de
consistencia de hash
fecha El rango hash sharding rangeDateHash
intercepta el número y hace que la restricción de rango del módulo se
especifique en la aplicación sharding-by-prefixpattern . En la etapa de ejecución, la aplicación decide de forma independiente la ruta a ese fragmento . fragmentación por subcadena
fragmentación de datos calientes y fríos fragmentación por fecha (a diferencia de la función de dividir por fecha)
algoritmo de
fragmentación con estado algoritmo de fragmentación crc32slot

Antes de fragmentar, asegúrese de que las bases de datos maestra y esclava estén abiertas al puerto 3306 y que mycat pueda acceder a ellas

grant all privileges on *.* to 'root'@'%' identified by 'password' with grant option;

Antes del algoritmo de fragmentación, primero configure el nombre de la biblioteca y la contraseña de inicio de sesión de esta base de datos lógica, ingrese la configuración del archivo server.xml

vim /usr/local/mycat/conf/server.xml

Inserte la descripción de la imagen aquí
Hay tres lugares en la imagen, el primer lugar es la contraseña para iniciar sesión en la base de datos lógica, y el segundo y tercer lugar es el nombre de la base de datos lógica.
Inserte la descripción de la imagen aquí
Además, desde el archivo de comentarios, sé que el puerto predeterminado de mycat es 8066, así que vaya a iptables y abra el puerto 8066.

Luego configure
los fragmentos Configure el archivo schema.xml en el archivo conf de mycat

cd /usr/local/mycat/conf
vim schema.xml

Contenido de la configuración

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
	<schema name="ego" checkSQLschema="false" sqlMaxLimit="100">
		<table name="test_1" dataNode="dn1,dn2,dn3" rule="crc32slot" />
		<table name="test_2" dataNode="dn1,dn2,dn3" rule="crc32slot1"/>
		
	</schema>

	<dataNode name="dn1" dataHost="localhost1" database="db1" />
	<dataNode name="dn2" dataHost="localhost1" database="db2" />
	<dataNode name="dn3" dataHost="localhost1" database="db3" />

	<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
			  writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>

		<writeHost host="hostM1" url="192.168.17.132:3306" user="root"
				   password="password">

			<readHost host="hostS2" url="192.168.17.133:3306" user="root" password="password" />
		</writeHost>

	</dataHost>

</mycat:schema>

El archivo de configuración necesita conocer los siguientes conceptos:
biblioteca lógica: una
tabla lógica de base de datos lógica (base de datos mycat) que contiene todas las bases de datos : un
host de datos de tabla lógica (tabla mycat) que contiene todas las tablas : el software de la base de datos está instalado en En qué servidor
Nodo de datos:
Reglas de particionamiento de la base de datos en el software de la base de datos : de manera predeterminada, los datos en cada tabla son los mismos
Host de lectura: qué base de datos se usa para la operación de lectura
Host de escritura: qué datos se usan para la operación de escritura

Debe tenerse en cuenta que la tabla Regla de cada tabla no se puede repetir, y debe configurar la regla para cada tabla por separado

Luego defina las reglas de fragmentación en rule.xml de la siguiente manera, dividida en dos partes, la definición de tableRule incluye la selección de la columna de clave primaria y la selección del algoritmo de fragmentación, y la función del algoritmo y los datos de la fragmentación se dan a continuación El número de nodos.

<tableRule name="crc32slot">
	<rule>
		<columns>id</columns>
		<algorithm>crc32slot</algorithm>
	</rule>
</tableRule>
<tableRule name="crc32slot1">
	<rule>
		<columns>id</columns>
		<algorithm>crc32slot</algorithm>
	</rule>
</tableRule>


<function name="crc32slot"	class="io.mycat.route.function.PartitionByCRC32PreSlot">
		<property name="count">3</property><!-- 要分片的数据库节点数量,必须指定,否则没法分片 -->
</function>


En este momento, se necesita hacer un paso más: una vez que se proporciona la cantidad de fragmentos en el algoritmo crc32Slot, MyCat guardará la cantidad de fragmentos y el rango de valores de slor en el archivo. Cuando el número de fragmentos se modifica nuevamente, no tendrá efecto y el archivo debe eliminarse. La ubicación del archivo está en el directorio ruledata en el directorio conf.
(Este paso me enfrenté durante mucho tiempo, y finalmente lo encontré así, con un enlace de referencia adjunto)

Abrir mycat

./mycat start

Después de crear la base de datos, cree tres bases de datos nuevas llamadas db1, db2, db3 en el host de escritura configurado en el archivo schema.xml (igual que la configuración en el archivo de esquema), luego estas tres bases de datos también están en el host de lectura. Luego vaya al software de administración de la base de datos y ejecute el archivo sql para agregar datos a la tabla. Puede ver que la tabla se ha dividido con éxito y los datos se distribuyen en tres tablas.

Enlace de referencia: https://www.cnblogs.com/cxydmx/p/11740721.html

Publicado 66 artículos originales · ganado elogios 5 · Vistas 3492

Supongo que te gusta

Origin blog.csdn.net/weixin_44001681/article/details/105448957
Recomendado
Clasificación