nacos zookeeper数据迁移
官网:https://nacos.io/zh-cn/docs/nacos-sync-use.html
nacos-sync:https://github.com/nacos-group/nacos-sync
nacos-sync
nacos-sync 支持迁移的数据中心
nacos <==> nacos:支持0.8到1.0及以上版本的nacos数据迁移 nacos <==> consul:只支持spring cloud注册中心数据迁移 nacos <==> euraka:只支持spring cloud注册中心数据迁移 nacos <==> zookeeper:只支持dubbo注册中心数据迁移
下载 nacos-sync,并编译jar包
git clone https://github.com/nacos-group/nacos-sync.git cd nacosSync mvn clean package -U
nacos-sync 配置文件:application.properties
server.port=8083 server.servlet.context-path=/ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.show_sql=false spring.cloud.discovery.enabled=false spring.datasource.url=jdbc:mysql://localhost:3306/nacos_sync?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always
数据库建表sql:nacosSync.sql(一般会自动创建,不需要手动创建)
CREATE TABLE `cluster` ( `id` int(11) NOT NULL AUTO_INCREMENT, `cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `cluster_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `cluster_type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `connect_key_list` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `user_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `password` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; CREATE TABLE `system_config` ( `id` int(11) NOT NULL AUTO_INCREMENT, `config_desc` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `config_key` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `config_value` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin; CREATE TABLE `task` ( `id` int(11) NOT NULL AUTO_INCREMENT, `dest_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `group_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `name_space` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `operation_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `service_name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `source_cluster_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `task_id` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `task_status` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `version` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, `worker_ip` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
nacos-sync 启动
创建mysql,并创建nacos_sync数据库
# 创建mysql容器 docker run -it -d --net fixed --ip 172.18.0.10 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql2 mysql # 创建nacos_sync数据库 mysql> create database nacos_sync; Query OK, 1 row affected (0.01 sec)
nacos-sync配置文件:修改数据库配置
# 端口默认为8083 server.port=8083 server.servlet.context-path=/ spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.show_sql=false spring.cloud.discovery.enabled=false # 数据库地址、用户名、密码 spring.datasource.url=jdbc:mysql://localhost:3307/nacos_sync?characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true spring.datasource.username=root spring.datasource.password=root management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always
启动nacos-sync
huli@bogon nacosSync.0.4.7 % cd nacosSync huli@bogon nacosSync % ls LICENSE bin logs NOTICE conf nacosSync-server.jar # 启动nacos-sync huli@bogon nacosSync % bin/startup.sh start =============JAVA_HOME:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home =============base_DIR:/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync =============JAVA:/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java nacossync is starting,you can check the /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/logs/nacossync_start.out
查看启动日志
huli@bogon nacosSync % cat logs/nacossync_start.out
/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:metaspaceSize=256m -XX:MaxmetaspaceSize=512m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumponOutOfMemoryError -XX:HeapDumpPath=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacossync_java_heapdump.hprof -XX:-UseLargePages -Dspring.config.location=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/conf/application.properties -DnacosSync.home=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync -Xlog:gc*:file=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/logs/nacossync_gc.log:time,tags:filecount=10,filesize=102400 -jar /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacosSync-server.jar --logging.config=/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/conf/logback-spring.xml
_ _ _____
| | | / ___| Nacos-Sync 0.4.7
| | | __ _ ___ ___ ___ _____ `--. _ _ _ __ ___ Port: 8083
| . ` |/ _` |/ __/ _ / __|______`--. | | | | '_ / __| Pid: 1296
| | | (_| | (_| (_) __ /__/ | |_| | | | | (__ Console: http://127.0.0.1:8083
_| _/__,_|______/|___/ ____/ __, |_| |_|___|
__/ |
|___/
2022-03-15 10:33:17.639 [background-preinit] INFO org.hibernate.validator.internal.util.Version - HV000001: Hibernate Validator 6.1.7.Final
2022-03-15 10:33:17.653 [main] INFO com.alibaba.nacossync.NacosSyncMain - Starting NacosSyncMain v0.4.7 using Java 17.0.2 on bogon with PID 1296 (/Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync/nacosSync-server.jar started by huli in /Users/huli/mysql/nacos/nacos-sync/nacossync-distribution/target/nacosSync.0.4.7/nacosSync)
2022-03-15 10:33:17.654 [main] INFO com.alibaba.nacossync.NacosSyncMain - No active profile set, falling back to default profiles: default
2022-03-15 10:33:19.597 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2022-03-15 10:33:19.934 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 321 ms. Found 3 JPA repository interfaces.
2022-03-15 10:33:20.296 [main] INFO o.springframework.cloud.context.scope.GenericScope - BeanFactory id=90b9c9aa-25e5-34da-92af-68692576cbac
2022-03-15 10:33:20.958 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8083 (http)
2022-03-15 10:33:20.976 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8083"]
2022-03-15 10:33:20.976 [main] INFO org.apache.catalina.core.StandardService - Starting service [Tomcat]
2022-03-15 10:33:20.977 [main] INFO org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.45]
2022-03-15 10:33:21.076 [main] INFO o.a.c.core.Containerbase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
2022-03-15 10:33:21.077 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 3348 ms
2022-03-15 10:33:21.532 [main] INFO org.hibernate.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
2022-03-15 10:33:21.662 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 5.4.30.Final
2022-03-15 10:33:21.910 [main] INFO org.hibernate.annotations.common.Version - HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2022-03-15 10:33:22.107 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
2022-03-15 10:33:22.474 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
2022-03-15 10:33:22.505 [main] INFO org.hibernate.dialect.Dialect - HHH000400: Using dialect: org.hibernate.dialect.MySQL5Dialect
2022-03-15 10:33:23.469 [main] INFO o.h.e.t.jta.platform.internal.JtaPlatformInitiator - HHH000490: Using JtaPlatform implementation: [org.hibernate.engine.transaction.jta.platform.internal.NoJtaPlatform]
2022-03-15 10:33:23.479 [main] INFO o.s.orm.jpa.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
2022-03-15 10:33:24.518 [main] WARN o.s.b.a.o.j.JpabaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2022-03-15 10:33:24.815 [main] INFO o.s.b.actuate.endpoint.web.EndpointlinksResolver - Exposing 16 endpoint(s) beneath base path '/actuator'
2022-03-15 10:33:24.972 [main] INFO o.s.b.a.web.servlet.WelcomePageHandlerMapping - Adding welcome page: class path resource [static/index.html]
2022-03-15 10:33:25.198 [main] INFO o.s.c.n.e.c.DiscoveryClientOptionalArgsConfiguration - Eureka HTTP Client uses RestTemplate.
2022-03-15 10:33:25.299 [main] WARN o.s.c.l.c.LoadBalancerCacheAutoConfiguration$LoadBalancerCaffeineWarnLogger - Spring Cloud LoadBalancer is currently working with the default cache. You can switch to using Caffeine cache, by adding it and org.springframework.cache.caffeine.CaffeineCacheManager to the classpath.
2022-03-15 10:33:25.321 [main] INFO org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8083"]
2022-03-15 10:33:25.350 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8083 (http) with context path ''
2022-03-15 10:33:25.776 [main] INFO com.alibaba.nacossync.NacosSyncMain - Started NacosSyncMain in 9.311 seconds (JVM running for 10.243)
localhost:8083
数据迁移



