JAVA 로 서로 통신 할 수 없 는 두 대의 컴퓨터 간 증분 백업 을 실현 하 다.
두 단계 로 나 누 어 이 루어 집 니 다. 먼저 증분 백업 기능 을 수 동 으로 실현 한 다음 자바 프로그램 을 통 해 cmd 명령 을 호출 하여 자동 으로 실 행 됩 니 다.실현 과정 에서 아래 링크 를 참조 하 십시오. 가장 중요 한 것 은 자바 호출 시 my sql 환경 변 수 를 설정 하지 않 았 습 니 다.
http://www.jb51.net/article/27919.htm
1. my. ini 또는 my. cnf 설정 (바 이 너 리 로그 기능 오픈)
C:\ProgramFiles\MySQL\MySQL Server 5.0\my.ini
오픈 후 [my sqld] 구간 을 찾 고 log 를 추가 합 니 다.bin 매개 변 수 는 Binary Log 의 저장 위 치 를 지정 합 니 다 ("거래 기록 파일" 과 유사).
[mysqld]
log_bin="d:\Backup\mysqllog\mysql-bin.log"
2. my sql 환경 변 수 를 설정 합 니 다 (수 동 으로 증분 백업 을 실현 할 때 이 항목 을 설정 할 필요 가 없습니다. 자바 프로그램 으로 명령 을 호출 할 때 이 항목 을 설정 하면 매우 편리 합 니 다)
데스크 톱 에 있 는 내 컴퓨터 / 속성 / 고급 / 환경 변수 / 시스템 변수 / path 를 오른쪽 클릭 하여 C: \ ProgramFiles \ \ MySQL \ \ MySQL Server 5.0 \ bin 을 추가 합 니 다.
3. 오류 가 발생 하지 않도록 my sqldump 로 백업 합 니 다.
cardmsdb 라 이브 러 리 만 백업
C:\ProgramFiles\MySQL\MySQL Server 5.0\bin>mysqldump -uroot -proot cardmsdb>d:\Backup\mysqllog\cardmsdb.sql
모든 데이터베이스 백업
C:\ProgramFiles\MySQL\MySQL Server 5.0\bin>mysqldump -uroot -proot--single-transaction --flush-logs --master-data=2 --all-databases -r MySQLFull.sql
4. 바 이 너 리 파일 은 시간 에 따라 데이터 베 이 스 를 sql 파일 로 변환 합 니 다 (그 중 "> > 원본 파일 뒤에 계속 추가 합 니 다")
C:\ProgramFiles\MySQL\MySQL Server 5.0\bin>mysqlbinlog --start-datetime="2013-01-2316:40:00" --stopdatetime="2013-01-24 00:00:00"--database=cardmsdbd:\Backup\mysqllog\mysqlbin.000001>d:\Backup\mysqllog\mysqlbin000001.sql
5. 다른 통신 하지 않 는 기계 에서 sql 파일 을 실행 합 니 다 (오류 가 발생 하면 세 번 째 단계 의 my sql Full. sql 을 실행 합 니 다)
Mysqlclient 에 들 어가 기
mysql>sourced:/Backup/mysqllog/mysqlbin000001.sql
데이터베이스 조회, 도입 문 실행 도 가능 합 니 다.
6. 자바 를 통 해 위의 문 구 를 실행 합 니 다 (my sqldump 를 예 로 들 면 source 명령 은 my sql 명령 으로 변 합 니 다)
String str = "cmd /c mysqldump -h localhost -uroot -proot cardmsdb > "+filePath+"\\"+dataString+"fullBack.sql";
String str = "cmd /c mysql -h 192.168.0.168 -uroot -proot cardmsdb < "+filePath; //소스 명령
Runtime rt = Runtime.getRuntime();
System.out.println(str);
Process pcs;
try {
pcs = rt.exec(str);
BufferedReader br = new BufferedReader(new InputStreamReader(pcs.getErrorStream()));
String line = new String();
while ((line = br.readLine()) != null) {
System.out.println(line);
}
try {
pcs.waitFor();
} catch (InterruptedException a) {
System.err.println("processes was interrupted");
}
br.close();
pcs.exitValue();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.