2013-03-01 2 views
0

가 좋아 내가 읽은이 게시물 :MySQL 데이터베이스를 복원 및 파일 매 30 분 데모 사이트

I need to restore a database (mysql) every 30 minutes using a cron job

을하고 대답했다 :

mysql을 -u 사용자가 databaseName을 </경로를 -ppassword /to/dump.sql

내 질문은 이미 데이터베이스에있는 데이터를 지울 것입니까? 저장된 MySQL 파일을 덮어 써야합니다.

또한 한 디렉토리의 모든 파일을 cron 명령을 사용하여 복원 디렉토리로 덮어 써야합니다.

이것은 joomla 설치를위한 것입니다 ... 나는 30 분마다 새로 고침 데모 사이트를 설정 joomla을위한 2 개의 다른 구성 요소를 시도했지만 그들 중 하나를 얻을 수 없습니다.

누구나 cron 명령으로 디렉토리를 완전히 복원 할 솔루션이 있습니까?

답변

0

.sql 파일을 실행하기 위해 크론 작업을 사용하면 원하는 작업을 수행 할 수 있습니다. 모든 데이터를 바꾸려면 실행중인 파일에 테이블 삭제 및 작성 문을 추가해야합니다. 그러면 특정 데이터를 데이터베이스의 유일한 데이터로 만들게됩니다.

0

가장 빠른 방법은 덤프/가져 오기를 건너 뛰고 디렉토리 만 바꾸는 것입니다. mysql 데이터 디렉토리 전체를 처리하는 한 모든 것이 작동 할 것이다. 마스터/슬레이브 설정이있는 경우는 예외입니다. mysql을 종료하고 mysql 데이터 디렉토리의 복사본을 만든다. 앞으로의 복원 소스가 될 것입니다. 그런 설정은 크론이 수행하는 다음

  1. 는 MySQL의 백업 디렉토리

    은 cp -R mysql.bak mysql.restore

  2. 정지 mysql을

  3. 스왑의 복사본을 만듭니다 복원 디렉토리가있는 현재의 mysql 데이터 디렉토리

    mv mysql mysql.rm mv mysql.restore mysql

  4. 시작 mysql을

  5. 청소 MySQL의 디렉토리 당신은 교환

    RM은 mysql.rm

MySQL은 단지 몇 초 동안 아래로 사용할 수 없게의 크기에 따라 것입니다

InnoDB 테이블.

+0

나는 그것을 수동으로하고 싶지 않다 ... 자동적 일 필요가있다. – user1951915

+0

가져 오기와 마찬가지로 모든 단계를 수행하기위한 쉘 스크립트를 작성할 수 있습니다. 30 분마다 스크립트를 실행하는 설정 cron. –

관련 문제