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

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

@ -1,6 +1,6 @@
package com.dsideal.YunXiaoTools.Cron4j;
import com.dsideal.YunXiaoTools.Utils.MysqlBackupUtil;
import com.dsideal.YunXiaoTools.Service.MysqlBackupService;
import com.dsideal.YunXiaoTools.Start;
import com.jfinal.plugin.cron4j.ITask;
import lombok.SneakyThrows;
@ -11,7 +11,7 @@ public class LingDianTask implements ITask {
public void run() {
//如果是读取侧
if (Start.DEPLOY_ID == 1) {
MysqlBackupUtil bm = new MysqlBackupUtil();
MysqlBackupService bm = new MysqlBackupService();
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.util.ZipUtil;
import com.dsideal.YunXiaoTools.Utils.CommonUtil;
import com.dsideal.YunXiaoTools.Utils.ObsUtil;
import com.jfinal.kit.PropKit;
import java.io.*;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class MysqlBackupUtil {
public class MysqlBackupService {
//数据库连接串
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.obs.services.ObsClient;
import java.io.*;
import java.util.zip.*;
public class MysqlRestoreUtil {
public class MysqlRestoreService {
private final String obsEndpoint;
private final String obsAccessKey;
private final String obsSecretKey;
@ -19,7 +20,7 @@ public class MysqlRestoreUtil {
private final String dbPassword;
private final String dbName;
public MysqlRestoreUtil() {
public MysqlRestoreService() {
// 从配置文件读取配置
this.obsEndpoint = PropKit.get("obs_endpoint");
this.obsAccessKey = PropKit.get("obs_accessKeyId");
@ -44,7 +45,6 @@ public class MysqlRestoreUtil {
String tempDir = System.getProperty("java.io.tmpdir");
String zipFile = tempDir + File.separator + new File(obsKey).getName();
String sqlFile = null;
try {
// 1. 从OBS下载ZIP文件
downloadFromObs(obsKey, zipFile);
@ -123,7 +123,8 @@ public class MysqlRestoreUtil {
"-h" + dbHost,
"-P" + dbPort,
"-u" + dbUser,
"--ssl-mode=DISABLED",
//"--ssl-mode=DISABLED",
"--skip-ssl", // 替换为MariaDB兼容的参数
dbName
);
@ -166,4 +167,9 @@ public class MysqlRestoreUtil {
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