2017-10-10 18 views
0

mnesia를 ejabberd에서 mysql으로 마이그레이션해야합니다.Mnesia : ejabberd : 모든 테이블을 SQL 쿼리로 파일로 내보내기

  • 나는 여러 가지 방법을 시도해 보았다 : ui에서 노드가있다. 노드를 선택할 때 많은 옵션 중 하나가 백업 옵션입니다. 해당 페이지에 Export all tables as SQL queries to a file: host(0.0.0.0)의 옵션이, 나는 SQL 백업을 수행하기 위해 시도했지만 파일 나는 또한이 명령 시도

  • 비어 :
    ejabberdctl export2odbc localhost /var/lib/ejabberd/new_file.sql합니다. 또한 오류가없는 빈 파일입니다. :
    ejabberdctl export2sql localhost /tmp/sql /var/lib/ejabberd/new.sql. export2sql이 존재하지 않으므로이 명령은 실행되지 않습니다.

Mnesia

버전에서 SQL 덤프를 수행 할 다른 방법이 있나요 : ejabberd 16.01 MySQL의는 SQL 내보내기 명령은 16.04에서 추가되었다 5.6.xx

+0

어떤 ejabberd 버전을 사용하고 어떤 sql 데이터베이스를 사용합니까? –

+0

안녕하세요 @ LamteiW : 나는 그 질문을 우습게 만들었습니다. 나는 여전히 해결책을 찾고있다. 정말 가능합니까? –

답변

1

라는 이름이 export_sql로 지정하고 나중에 16.06에서 export2sql로 이름을 바꿉니다. 그래서이 직접 덤프를 취할 수있는 방법은 없습니다,하지만 당신은 두 가지 대안이 : 당신은 서버를 업그레이드 ejabberd, 다음의 정직을 업그레이드 SQL의 덤프를 취할 수있는 경우

  • 합니다.

    • 가 최신 버전으로 서버 또는 이상 버전 17.07 업그레이드

      등 데이터베이스/스풀 디렉토리, config 디렉토리처럼, 해당 폴더의 백업을 받아 (그 이유는 버전 17.06 이후 인 테이블의 대부분은 SQL 파일로 내보내지만, 17.03-17.06는 bug을 앓고 할 수 있습니다.

    • 구성 ejabberd는 백엔드 데이터베이스로 MySQL을 사용 할 수 있습니다. 다음 모듈이 db_type: sql 옵션이 있는지 확인합니다.

      mod_announce, mod_caps는 mod_irc는 mod_last는 mod_muc는 mod_offline는 mod_privacy는 mod_private는 mod_pubsub는 mod_roster는 mod_shared_roster는 mod_vcard는

    • 스풀 디렉토리를 복원하고 모든 파일에 대해 동일한 권한 이 있는지 확인 mod_vcard_xupdate 및 이전과 같이 하위 디렉토리.

    을 매개 변수로 호스트와 ejabberd2sql와 SQL 파일 이름을 실행 만 필요한 경우 SQL은 덤프 후 구성을 다시 복귀 할 수 있습니다 덤프.

  • 서버를 업그레이드 할 수없는 경우 다른 컴퓨터에 최신 버전의 ejabberd를 설치하고 데이터베이스 디렉토리를 복사 한 다음 위와 동일한 절차를 수행하면 sql의 덤프를 얻을 수 있습니다.