IT

sqlite 데이터베이스를 백업하는 방법은 무엇입니까?

lottoking 2020. 10. 10. 10:24

sqlite 데이터베이스를 백업하는 방법은 무엇입니까?


이를 수행하는 적절한 방법은 무엇입니까? .sq3 파일 만 복사 복사?

사이트에 사용자가있는 파일이 복사되는 동안 기록되는 동안 기록됩니까?


sqlite3 명령 줄 도구에는 .backupdot 명령이 있습니다.

다음을 사용하여 데이터베이스에 있습니다.

sqlite3 my_database.sq3

다음을 사용하여 backup dot 명령을 실행하십시오.

.backup backup_file.sq3

데이터베이스에 대한 대화식 연결 대신 백업을 수행하고 나중에 연결을 닫을 수도 있습니다.

sqlite3 my_database.sq3 ".backup 'backup_file.sq3'"

어느 쪽이든 결과는 backup_file.sq3데이터베이스의 이름 지정된 복사본 my_database.sq3입니다.

현재 데이터베이스에서 작업하는 모든 사용자를 처리하는 많은 인 파일 복사와 처리합니다. 데이터베이스에 잠금 적절한이 설정되어 있으므로 백업이 독점적으로 수행됩니다.


.backup이 가장 좋은 방법입니다.

sqlite3 my_database .backup my_database.back

.dump 명령을 시도 할 수도 있고 전체 데이터베이스 또는 테이블을 텍스트 파일로 알림 기능을 제공합니다. TABLE이 지정된 경우 LIKE 패턴 TABLE과 일치하는 테이블만이 지정됩니다.

sqlite3 my_database .dump > my_database.back

보관 및 저장을 사용하여 보관 복사본을 만드는 좋은 방법은 나중에 데이터베이스를 구성합니다.

sqlite3 my_database .dump | gzip -c > my_database.dump.gz
zcat my_database.dump.gz | sqlite3 my_database

또한이 질문을 확인하십시오 . SQLite3 .backup 및 .dump 명령이 데이터베이스를 잠그나요?


try {
    final String inFileName = "/data/data/your app package/databases/db";
    File dbFile = new File(inFileName);
    FileInputStream fis = new FileInputStream(dbFile);
    String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/CALC/Backup";
    File dir = new File(path);
    if (!dir.exists()) dir.mkdirs();
    String outFileName = path + "/filename"; // output file name
    // Open the empty db as the output stream
    OutputStream output = new FileOutputStream(outFileName);

    // Transfer bytes from the inputfile to the outputfile
    byte[] buffer = new byte[1024];
    int length;
    while ((length = fis.read(buffer)) > 0) {
        output.write(buffer, 0, length);
    }
    Toast.makeText(getActivity(), "Backup Successfully", 2).show();
    // Close the streams
    output.flush();
    output.close();
    fis.close();
} 
catch (Exception e) {
    e.printStackTrace();
}

참고 URL : https://stackoverflow.com/questions/25675314/how-to-backup-sqlite-database