AE86 2 years ago
parent
commit
6c40808ecf

+ 5 - 2
dbsyncer-storage/src/main/java/org/dbsyncer/storage/binlog/BinlogContext.java

@@ -89,11 +89,12 @@ public class BinlogContext implements Closeable {
         if (!binlogFile.exists()) {
             // 过期/误删
             logger.warn("The binlog file '{}' is expired or deleted.", binlog.getBinlog());
-            write(binlogFile, "", false);
 
+            // binlog.000002
             binlog = new Binlog().setBinlog(createNewBinlogName(getBinlogIndex(binlog.getBinlog())));
-            write(indexFile, binlog.getBinlog() + LINE_SEPARATOR, true);
             binlogFile = new File(path + binlog.getBinlog());
+            write(binlogFile, "", false);
+            write(indexFile, binlog.getBinlog() + LINE_SEPARATOR, true);
         }
 
         // read index
@@ -170,6 +171,8 @@ public class BinlogContext implements Closeable {
      * @throws IOException
      */
     public void flush() throws IOException {
+        binlog.setBinlog(pipeline.getBinlogName());
+        binlog.setPos(pipeline.getOffset());
         FileUtils.writeStringToFile(configFile, JsonUtil.objToJson(binlog), DEFAULT_CHARSET);
     }
 

+ 6 - 0
dbsyncer-storage/src/main/java/org/dbsyncer/storage/binlog/BinlogPipeline.java

@@ -17,8 +17,10 @@ public class BinlogPipeline implements Closeable {
     private final byte[] h = new byte[1];
     private byte[] b;
     private long offset;
+    private File binlogFile;
 
     public BinlogPipeline(File binlogFile, long pos) throws IOException {
+        this.binlogFile = binlogFile;
         this.raf = new BufferedRandomAccessFile(binlogFile, "r");
         this.out = new FileOutputStream(binlogFile, true);
         raf.seek(pos);
@@ -46,6 +48,10 @@ public class BinlogPipeline implements Closeable {
         return offset;
     }
 
+    public String getBinlogName() {
+        return binlogFile.getName();
+    }
+
     @Override
     public void close() {
         IOUtils.closeQuietly(out);