2011-01-21 10 views
0

새 테이블을 추가하여 실제 데이터베이스를 업데이트하는 중입니다.mysql 데이터베이스 복원

업데이트가 잘못되면 원본을 복원 할 수있는 방법이 있습니까?

감사합니다.

+0

새 테이블을 추가하는 것 외에 다른 작업을 수행하지 않으면 해당 테이블을'DROP '할 수 있어야합니다. 물론 백업 복사본이 너무 많으면 큰 문제는 아니지만 너무 적어서 끔찍한 일입니다. –

답변

3

당신이 다음 정말 당신이 어떤 전면 액세스를 제거했습니다 이상적 후에는를 시작하기 전에 백업을 할 필요가 라이브 데이터베이스를 변경 할 거라면 최종 웹 사이트, 등 "활성화 된"데이터베이스 활동이 없습니다. (MyISAM 테이블보다는 InnoDB를 사용하면 문제가 적다.) 또한 변경을 수행하는 동안 데이터베이스에 대한 모든 액세스를 차단해야한다. 그렇지 않으면 변경 사항이 손실 될 수있다. 데이터베이스를 이전 상태로 롤백하십시오.

백업을 생성하는 가장 쉬운 방법은 MySQL에 번들로 제공되는 mysqldump 명령 줄 도구를 사용하는 것입니다. 이렇게하면 데이터베이스를 원래 상태로 복원 할 수있는 텍스트 파일이 생성됩니다.

힌트로 "--add-drop-table"옵션을 특별히주의해야 할 수도 있습니다. 백업 파일의 내용을 무엇이든 밟고 싶을 때 유용하기 때문입니다. (주의 : 물론이 뜻 ALL "현재"데이터를 닦아냅니다.)

마지막으로, 당신은 어떤 중요한 변경을 할 거라면 당신이 정말로 원하는 :

  1. 만들기 필요한 모든 변경 등을 수행하는 스크립트

  2. 사용 mysqldump 데이터베이스의 현재 내용을 덤프 (그런 다음. "mysql < [text file name]"를 통해 명령 줄에서 스크립트를 실행할 수 있습니다) 다음 을 설정 테스트 데이터베이스를이 데이터와 함께 사용하면 변경 사항이 실제로 예상대로 작동하는지 확인할 수 있습니다.

+0

나는 'mysqldump -u root -ppassword live_db | mysqldump'를 사용하여 데이터베이스를 먼저 백업하려고 생각했다. mysql -u root -ppassword backup_db '를 실행하십시오. 나는 현재 어떤 데이터도 지우고 싶지 않다. 라이브 DB에 4 개의 테이블을 추가 할 것입니다. 그래서 무언가가 고장 나면 DB를 복원하기 전에 DB를 복원해야합니다. – terrid25

+0

괜찮아. 나는 4 개의 새로운 테이블 등 CREATE 테이블 등으로 SQL 스크립트를 가지고있다. 나는 또한 DB의 백업을 가지고 있고 Dscript를 테스트했다. Dscript는 4 개의 테이블을 추가했다. 내 걱정은, 라이브 DB는 1GB라고 생각합니다. 그래서 나는 그것을 복사하는 동안 DB를 비활성화해야한다고 생각합니다 ... – terrid25

+0

@ terrid25 - 기존 테이블을 변경하지 않고 새 테이블을 추가하는 것이고 백업에서 정상적으로 작동하면 생방송 DB에서 바로 사용하십시오. 그렇지 않으면, 나는 내 대답에 따라 백업/업데이트를하는 동안 프론트 엔드를 오프 라인으로 유인하고 싶다. –

5

예. 백업 을 .. 이렇게함으로써

+2

+1 저에게서. ("첫 번째"사과에 대한 강조에 저항 할 수 없었습니다.) :-) –

+0

** 강력히 강조하기 위해 @middaparka에 +1 및 추가 크레딧을 제공합니다. – BoltClock

+0

@middaparka : 사과 할 필요가 없습니다. : D – Mchl