main
黄海 7 months ago
parent 6aa0763456
commit 327a71fcac

@ -1,6 +1,6 @@
package com.dsideal.YunXiaoTools.Controller; package com.dsideal.YunXiaoTools.Controller;
import com.dsideal.YunXiaoTools.Utils.MysqlBackupUtil; import com.dsideal.YunXiaoTools.Service.MysqlBackupService;
import com.jfinal.aop.Before; import com.jfinal.aop.Before;
import com.jfinal.core.Controller; import com.jfinal.core.Controller;
import com.jfinal.ext.interceptor.GET; import com.jfinal.ext.interceptor.GET;
@ -14,7 +14,7 @@ public class DataBaseController extends Controller {
// http://10.10.21.20:9008/backupMysql // http://10.10.21.20:9008/backupMysql
@Before({GET.class}) @Before({GET.class})
public void backupMysql() { public void backupMysql() {
MysqlBackupUtil bm = new MysqlBackupUtil(); MysqlBackupService bm = new MysqlBackupService();
String url = bm.doAction(); String url = bm.doAction();
Kv kv = Kv.create(); Kv kv = Kv.create();
kv.set("success", true); kv.set("success", true);

@ -1,6 +1,6 @@
package com.dsideal.YunXiaoTools.Cron4j; package com.dsideal.YunXiaoTools.Cron4j;
import com.dsideal.YunXiaoTools.Utils.MysqlBackupUtil; import com.dsideal.YunXiaoTools.Service.MysqlBackupService;
import com.dsideal.YunXiaoTools.Start; import com.dsideal.YunXiaoTools.Start;
import com.jfinal.plugin.cron4j.ITask; import com.jfinal.plugin.cron4j.ITask;
import lombok.SneakyThrows; import lombok.SneakyThrows;
@ -11,7 +11,7 @@ public class LingDianTask implements ITask {
public void run() { public void run() {
//如果是读取侧 //如果是读取侧
if (Start.DEPLOY_ID == 1) { if (Start.DEPLOY_ID == 1) {
MysqlBackupUtil bm = new MysqlBackupUtil(); MysqlBackupService bm = new MysqlBackupService();
bm.doAction(); bm.doAction();
} }
} }

@ -1,14 +1,16 @@
package com.dsideal.YunXiaoTools.Utils; package com.dsideal.YunXiaoTools.Service;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.dsideal.YunXiaoTools.Utils.CommonUtil;
import com.dsideal.YunXiaoTools.Utils.ObsUtil;
import com.jfinal.kit.PropKit; import com.jfinal.kit.PropKit;
import java.io.*; import java.io.*;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
public class MysqlBackupUtil { public class MysqlBackupService {
//数据库连接串 //数据库连接串
public static String jdbcUrl; public static String jdbcUrl;
//数据库用户名 //数据库用户名

@ -1,12 +1,13 @@
package com.dsideal.YunXiaoTools.Utils; package com.dsideal.YunXiaoTools.Service;
import com.dsideal.YunXiaoTools.Utils.CommonUtil;
import com.jfinal.kit.PropKit; import com.jfinal.kit.PropKit;
import com.obs.services.ObsClient; import com.obs.services.ObsClient;
import java.io.*; import java.io.*;
import java.util.zip.*; import java.util.zip.*;
public class MysqlRestoreUtil { public class MysqlRestoreService {
private final String obsEndpoint; private final String obsEndpoint;
private final String obsAccessKey; private final String obsAccessKey;
private final String obsSecretKey; private final String obsSecretKey;
@ -19,7 +20,7 @@ public class MysqlRestoreUtil {
private final String dbPassword; private final String dbPassword;
private final String dbName; private final String dbName;
public MysqlRestoreUtil() { public MysqlRestoreService() {
// 从配置文件读取配置 // 从配置文件读取配置
this.obsEndpoint = PropKit.get("obs_endpoint"); this.obsEndpoint = PropKit.get("obs_endpoint");
this.obsAccessKey = PropKit.get("obs_accessKeyId"); this.obsAccessKey = PropKit.get("obs_accessKeyId");
@ -44,7 +45,6 @@ public class MysqlRestoreUtil {
String tempDir = System.getProperty("java.io.tmpdir"); String tempDir = System.getProperty("java.io.tmpdir");
String zipFile = tempDir + File.separator + new File(obsKey).getName(); String zipFile = tempDir + File.separator + new File(obsKey).getName();
String sqlFile = null; String sqlFile = null;
try { try {
// 1. 从OBS下载ZIP文件 // 1. 从OBS下载ZIP文件
downloadFromObs(obsKey, zipFile); downloadFromObs(obsKey, zipFile);
@ -123,7 +123,8 @@ public class MysqlRestoreUtil {
"-h" + dbHost, "-h" + dbHost,
"-P" + dbPort, "-P" + dbPort,
"-u" + dbUser, "-u" + dbUser,
"--ssl-mode=DISABLED", //"--ssl-mode=DISABLED",
"--skip-ssl", // 替换为MariaDB兼容的参数
dbName dbName
); );
@ -166,4 +167,9 @@ public class MysqlRestoreUtil {
throw new RuntimeException("还原数据库失败: " + e.getMessage(), e); throw new RuntimeException("还原数据库失败: " + e.getMessage(), e);
} }
} }
public static void main(String[] args) {
MysqlRestoreService mysqlRestoreUtil = new MysqlRestoreService();
mysqlRestoreUtil.restore("dsideal/2023-08-01/2023-08-01_01_01_01.sql.zip");
}
} }
Loading…
Cancel
Save