2010-12-19 5 views
0

동일한 정의가있는 2 개의 테이블이 있다면 매일 데이터를 어떻게 백업합니까? 이 일부 변경이 만들어 질 것으로 증분 백업 인 경우 수 있습니까 그것은 바람직 할 것이다 하나의 테이블에서 다른 테이블로 매일 백업

  • 을 backup_table하기 위해,이

    • 오전 12시 매일 같은 일을 수행하기 위해 MySQL의 관리자를 사용 main_table에서 모든 행을 복사 backup_table에서 reccords하고 새로운 백업이 변경 사항을 없애고 싶지 않습니다.

    감사

  • 답변

    2

    다음과 같이 시작하겠습니다. 같은 서버의 한 테이블에서 다른 테이블로 데이터를 복사하는 것이 백업이 아닙니다.

    이제 MySQL 5.1.6 이상인 경우 이벤트 스케줄러를 사용하여 이러한 작업을 예약 할 수 있습니다. 그것은이

    INSERT INTO 
        secondarydatabase.tableName 
    SELECT pr.* FROM 
        primarydatabase.tableName AS pr 
    LEFT JOIN 
        secondarydatabase.tableName AS sec 
    USING(primaryKeyColumn) 
    WHERE sec.primaryKeyColumn IS NULL 
    

    같은 쿼리를 실행하는 것만 큼 간단해야한다

    http://dev.mysql.com/doc/refman/5.1/en/events.html

    (이 새로운 행을 복사 한 것, 이미 기존 행의 변화는 복사되지 않습니다) 실제 백업에 대한 내용은 다음을 참조하십시오.

    http://dev.mysql.com/doc/refman/5.1/en/backup-methods.html

    +0

    +1 이벤트 스케줄러 용. – rkg

    0

    예, 당신은 확실히 그렇게 할 수 있습니다. 이 페이지를 보시오 : http://dev.mysql.com/doc/refman/5.0/en/batch-mode.html

    테이블을 삭제하지 않고 데이터 손실에 대해 걱정할 필요가없는 새로운 행을 삽입하기 위해 스크립트를 신중하게 작성하는 경우. 테이블의 각 행에 타임 스탬프가 저장되어 있으면 작업이 훨씬 쉬워집니다. 타임 스탬프를 사용하여 마지막 배치 실행 이후에 변경되었거나 추가 된 새 행을로드/업데이트 할 수 있습니다.

    그러나 삽입하기 전에 항상 현재 테이블을 백업하는 것이 좋습니다. 임포트가 성공하면 백업 테이블을 정리할 수 있습니다.

    관련 문제