2013-11-01 6 views
8

을 복원하려고 나는 13G 큰하는 SQL 덤프 파일을 복원하려합니다. 처음에는 xampp에서 phpAdmin을 사용했는데 크기가 너무 큽니다. 그런 다음 큰 덤프를 사용했지만 여전히 "xx.sql을 찾을 수 없습니다"라는 오류 메시지가 나타납니다. 온라인에서 파일이 너무 큽니다. 그런 다음 명령 줄을 사용하기 시작합니다. mysql을 -u 사용자 이름 -p 데이터베이스 < 위치 /에/당신의/dump.sql 내가 암호를 가지고 있지 않기 때문에 입력이 암호를 묻는 메시지가 있기 때문에 노력하고, 내가 직접 누를 것 같다. 그리고 지금은 "_"이 깜박임을 볼 수 있습니다, 나는 그것이 작동하고 있다는 것을 의미한다고 가정하고 있습니다. 내가 확인하기 위해 확인할 수있는 방법이 없다. 이미 오래 걸린다.10보다 SQL 덤프 파일 큰 GB

가 작동하는지 확인하는 방법이 있나요? 도와 주셔서 정말 고맙습니다 !! TJ

답변

0

내가 복원 비슷한 크기의 파일

  1. 하는 저에게 4-5 시간이 소요, 더 키와는
  2. 당신은 항상 볼 수있는 프로세스 목록을 확인할 수있는 제약의 성격에 따라 할 수있다 작동한다면.
  3. tail -f mysql 일반 로그이며, 쿼리를 기록하는지 확인하십시오. 이것이 작동하는지 여부를 확인하는 가장 쉬운 방법입니다. 주의해야 할 점은,이 모든 것이 100 % +
+0

귀하의 빠른 응답 주셔서 감사합니다! 프로세스 목록을 확인했는데 명령 줄 프로그램이 프로세스 목록에 있지만 CPU를 사용하지 않습니다. –

+0

하지만 제 3의 팁을 이해하지 못합니다. 로그를 어떻게 확인합니까? 고마워요. –

7

mysql 명령 행 클라이언트를 사용하여 파일을 복원하는 또 다른 방법으로, 더욱 둔화는 다음과 같이이다 :

$ mysql -u username -p database 
Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 2933685 
--8<-- snip --8<-- 

mysql> source location/to/your/dump.sql 

source 명령은 덤프를 읽 파일을 서버에 적용하고 < 리디렉션 연산자와 비슷하지만 두 가지 차이점이 있습니다. 진행중인 "x rows affected"메시지가 스크롤되어 실제 진행 상황을 알 수 있습니다. 이 방법의 아래 쪽은 덤프 파일에 오류가 있는지 < 리디렉션을 사용하는 방법과는 달리, 명령 행 클라이언트는 단지 당신이 원하는 것을 항상하지 않은, 계속 시도합니다 점이다. 여전히 실용적인 접근 방식 일 수 있습니다.

또는 ... 당신이 Sleep의 값을 확인하십시오 PROCESSLIST에서 연결을 볼 수있는 경우에 당신이 지금하고있는 방법입니다. 값이 계속 0이면 일종의 활동이 발생하고 있습니다.

+1

이것은 나를 위해 잘 작동했습니다. 데이터베이스가 몇 개 있으며 1GB 백업이 모두 있습니다. 내 최대 규모는 12GB입니다. 이 방법은 15 분 이내에 데이터를 매우 빠르게 가져 왔습니다. 전에는 MySQL -u 루트 -p 데이터베이스 user1794918

0

모든 인덱스를 찾기 위해 쿼리를 생성 DB를 테이블 스키마, 절차 및 소스의 기능을 만들 수

  • 생성 ... 원격 MySQL 데이터베이스에 연결 한 후
  • 를 쿼리를이 기술

    시도 - 소스 DB의 외래 키 제약 조건을 제외한 모든 테이블의 쿼리

  • 2 단계에서 찾은 모든 인덱스를 삭제하는 쿼리 생성
  • 생성 쿼리를 사용하여 원본 데이터베이스의 모든 데이터를 삽입하십시오.
  • 2 단계에서 찾은 모든 인덱스를 생성하는 쿼리 생성
  • 위의 순서로 모든 쿼리를 새 MySql 백업 파일 인 .sql 파일에 작성하십시오. LZ4 압축을 사용하여 압축하십시오.
  • 지금 바로 정상은 MySQL을 복원 유틸리티를 사용하여이 파일에서 DB를 복원합니다.

참조 : http://axiomnext.com/blog/how-to-restore-large-mysql-database-faster/