it-swarm-ko.com

SQL Server .bak 파일을 MySQL로 가져 오는 방법은 무엇입니까?

제목은 자명하다. 이러한 종류의 가져 오기를 직접 수행하는 방법이 있습니까?

59
Marcel

SQL Server의 .BAK 파일은 MTF (Microsoft Tape Format) 참조입니다. http : //www.fpns.net/willy/msbackup.htm

Bak 파일에는 SQL Server가 데이터베이스를 저장하는 데 사용하는 LDF 및 MDF 파일)이 포함되어있을 것입니다.

이를 추출하려면 SQL 서버를 사용해야합니다. SQL Server Express는 무료이며 작업을 수행합니다.

따라서 SQL Server Express Edition을 설치하고 SQL Server Powershell을 엽니 다. sqlcmd -S <COMPUTERNAME>\SQLExpress (관리자로 로그인 한 상태)

다음 명령을 발행하십시오.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

여기에는 백업 내용이 나열됩니다. 필요한 것은 논리적 이름을 알려주는 첫 번째 필드입니다. 하나는 실제 데이터베이스이고 다른 하나는 로그 파일입니다.

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

이 시점에서 데이터베이스를 추출한 다음 Microsoft의 "Sql Web Data Administrator"를 설치하십시오이 내보내기 도구 와 함께 SQL 스크립트가 생성됩니다. 데이터베이스를 포함합니다.

65
Richard Harrison

MySql에는 Microsoft SQL에서 DB를 가져 오는 응용 프로그램이 있습니다. 단계 :

  1. MySql Workbench 열기
  2. "데이터베이스 마이그레이션"을 클릭하십시오 (표시되지 않으면 MySql 업데이트에서 설치해야합니다).
  3. 간단한 마법사를 사용하여 마이그레이션 작업 목록을 따르십시오.
8
AutoCiudad

직접 할 수있는 방법을 찾지 못했습니다.

대신 bak 파일을 SQL Server 2008 Express로 가져 와서 MySQL Migration Toolkit 을 사용했습니다.

매력처럼 일했다!

8
Marcel
  1. 로컬 컴퓨터에서 SQL Server Management Studio를 엽니 다.
  2. 데이터베이스 폴더를 마우스 오른쪽 단추로 클릭하십시오. 팝업 메뉴에서 새 데이터베이스를 선택하십시오.
  3. 데이터베이스 이름을 입력 한 다음 확인을 클릭하십시오.
  4. 새 데이터베이스 아이콘을 마우스 오른쪽 단추로 클릭하십시오. 팝업 메뉴에서 태스크-> 복원-> 데이터베이스를 선택하십시오.
  5. 장치에서 옵션을 선택한 다음 찾아보기 단추를 클릭하십시오.
  6. 추가를 클릭하고 적절한 파일로 이동하십시오. 확인을 클릭하십시오.
  7. 데이터베이스 복원 창에서 BAK 파일 옆에있는 확인란을 선택하십시오.
  8. 옵션 페이지로 전환하십시오. 기존 데이터베이스 덮어 쓰기 확인란을 선택하십시오. 확인을 클릭하십시오.
  9. 로컬 컴퓨터에서 활성화 된 데이터베이스의 내용을 확인하십시오.
3
RollerCosta

내 MySQL 배경이 제한되어 있지만 그렇게하는 것이 운이 좋지 않다고 생각합니다. 그러나 db를 MSSQL 서버로 복원 한 다음 SSIS 또는 DTS 패키지를 만들어 테이블과 데이터를 MySQL 서버로 보내서 모든 데이터를 마이그레이션 할 수 있어야합니다.

이것이 도움이되기를 바랍니다.

2
Levi Rosol

SQL Server의 .bak 파일은 해당 데이터베이스 언어와 관련이 있으며 MySQL과 호환되지 않습니다.

etlalchemy 를 사용하여 SQL Server 데이터베이스를 MySQL로 마이그레이션하십시오. 다른 RDBMS간에 쉽게 마이그레이션 할 수 있도록 만든 오픈 소스 도구입니다.

빠른 설치 및 예제는 여기 github 페이지 에 제공되며 프로젝트 원점에 대한 자세한 설명은 여기 에서 찾을 수 있습니다.

1
The Aelfinn

위의 Richard의 솔루션을 시도하는 사람들을 위해 일반적인 오류를 탐색하는 데 도움이되는 몇 가지 추가 정보가 있습니다.

1) 복원 파일 목록 만 실행하면 운영 체제 오류 5 (액세스 거부)가 발생할 수 있습니다. 이 경우 SQL Server 구성 관리자를 열고 SQLEXPRESS의 로그인을 로컬 쓰기 권한이있는 사용자로 변경하십시오.

2) @ "이것은 백업의 내용을 나열합니다-필요한 것은 논리적 이름을 알려주는 첫 번째 필드입니다."-파일에 헤더가 두 개 이상 나열되면 해당 파일로 수행 할 작업을 설명해야합니다. RESTORE DATABASE 명령 데이터베이스 및 로그 이외의 파일로 수행 할 작업을 표시하지 않으면 시스템은 .bak 파일에 나열된 속성을 사용하려고합니다. 다른 사람의 환경에서 파일을 복원하면 '경로에 잘못된 속성이 있습니다. 해당 경로가 시스템에 없기 때문에 디렉토리 여야합니다. ' MOVE 문만 제공하면이 문제가 해결됩니다.

제 경우에는 세 번째 FTData 형식 파일이있었습니다. 내가 추가 한 MOVE 명령 :

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

필자의 경우 실제로 세 번째 파일의 새 디렉토리를 만들어야했습니다. 처음에 .mdf 파일과 동일한 폴더로 보내려고했지만 복원을 실행할 때 세 번째 FTData 파일에서 '정확하게 초기화하지 못했습니다'오류가 발생했습니다.

0
Andrew

내가 사용한 방법은 Richard Harrison의 방법 중 일부를 포함했습니다.

따라서 SQL Server 2008 Express Edition을 설치하십시오.

Web Platform Installer "wpilauncher_n.exe"를 다운로드해야합니다. 일단 설치 한 후에는 데이터베이스 선택을 클릭하십시오 (프레임 워크 및 런타임도 다운로드해야 함).

설치 후 windows 명령 프롬프트로 이동하여 다음을 수행하십시오.

sqlcmd -S\SQLExpress 사용 (관리자로 로그인 한 상태)

다음 명령을 발행하십시오.

disk = 'c :\temp\mydbName-2009-09-29-v10.bak'에서 파일 목록 만 복원; GO 백업 내용을 나열합니다. 필요한 것은 논리적 이름을 알려주는 첫 번째 필드입니다. 하나는 실제 데이터베이스이고 다른 하나는 로그 파일입니다.

데이터베이스 복원 mydbName FROM disk = 'c :\temp\mydbName-2009-09-29-v10.bak' 'mydbName'을 'c :\temp\mydbName_data.mdf'로 이동하고 'mydbName_log'를 'c : \로 이동합니다. temp\mydbName_data.ldf '; 가기

Web Platform Installer를 시작하고 새로운 기능 탭에서 SQL Server Management Studio를 설치하고 데이터베이스를 탐색하여 데이터가 있는지 확인했습니다 ...

그 시점에서 MSSQL "SQL Import and Export Wizard"에 포함 된 도구를 사용해 보았지만 csv 덤프의 결과에는 열 이름 만 포함되었습니다 ...

대신 SQL Server Management Studio에서 "select * from users"와 같은 쿼리 결과를 내보냈습니다.

0
Traveling_Monk

나는 그것을 의심한다. Levi가 말한 것처럼 DTS/SSIS를 사용하여이 작업을 수행 할 수 있습니다. 실제로 데이터를 가져 오지 않고 프로세스를 시작하는 것이 좋습니다. 기본 테이블 구조를 함께 얻기에 충분합니다. 그런 다음 생성되는 테이블 구조를 변경하려고 할 것입니다.

또한 한 단계 더 나아가서 모든 데이터를 먼저 문자열 (varchar) 형식으로 사용하는 준비 영역을 만들어야 할 수도 있습니다. 그런 다음 유효성 검사 및 변환을 수행하여 "실제"데이터베이스로 가져 오는 스크립트를 만들 수 있습니다. 두 데이터베이스는 특히 날짜를 처리 할 때 항상 제대로 작동하지 않기 때문입니다.

0
Charles Graham

SQL Server 데이터베이스는 Microsoft 소유입니다. 내가 생각할 수있는 두 가지 옵션은 다음과 같습니다.

  1. 데이터베이스를 CSV, XML 또는 유사한 형식으로 덤프 한 다음 MySQL에로드하십시오.

  2. 설치 ODBC MySQL에 연결 한 다음 DTS 데이터 전송 사용) Charles Graham이 제안했듯이이 작업을 수행하기 전에 테이블을 작성해야 할 수도 있습니다. SQL Enterprise Manager 창에서 해당 MySQL 창으로 잘라 붙여 넣기만큼 쉽습니다.

0
CyberFonic