문제

제목은 자기 설명입니다. 그런 종류의 수입을 직접 수행하는 방법이 있습니까?

도움이 되었습니까?

해결책

SQL Server의 .bak 파일은 Microsoft Tape Format (MTF) ref : http://www.fpns.net/willy/msbackup.htm

BAK 파일에는 SQL Server가 데이터베이스를 저장하는 데 사용하는 LDF 및 MDF 파일이 포함됩니다.

이를 추출하려면 SQL Server를 사용해야합니다. 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 웹 데이터 관리자". 함께 이 수출 도구 데이터베이스가 포함 된 SQL 스크립트가 있습니다.

다른 팁

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

대신 BAK 파일을 SQL Server 2008 Express로 가져온 다음 사용했습니다. MySQL 마이그레이션 툴킷.

매력처럼 일했습니다!

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

  1. MySQL 워크 벤치를 엽니 다
  2. "데이터베이스 마이그레이션"을 클릭하십시오 (MySQL 업데이트에서 설치 해야하는 경우 표시되지 않으면).
  3. 간단한 마법사를 사용하여 마이그레이션 작업 목록을 따르십시오.
  1. 로컬 컴퓨터에서 SQL Server Management Studio를 엽니 다.
  2. 데이터베이스 폴더를 마우스 오른쪽 버튼으로 클릭하십시오. 팝업 메뉴에서 새 데이터베이스를 선택하십시오.
  3. 데이터베이스 이름을 입력 한 다음 확인을 클릭하십시오.
  4. 새 데이터베이스 아이콘을 마우스 오른쪽 버튼으로 클릭하십시오. 팝업 메뉴에서 작업 -> 복원 -> 데이터베이스를 선택하십시오.
  5. From Device 옵션을 선택한 다음 찾아보기 버튼을 클릭하십시오.
  6. 추가를 클릭하고 해당 파일로 이동합니다. 확인을 클릭하십시오.
  7. 복원 데이터베이스 창에서 BAK 파일 옆에있는 확인란을 선택하십시오.
  8. 옵션 페이지로 전환하십시오. 기존 데이터베이스 확인란을 덮어 쓰는 것을 선택하십시오. 확인을 클릭하십시오.
  9. 현재 로컬 컴퓨터에서 활성화 된 데이터베이스의 내용을 확인하십시오.

내 MySQL 배경은 제한되어 있지만, 당신이 그렇게하는 일이 많지 않다고 생각합니다. 그러나 DB를 MSSQL 서버로 복원 한 다음 SSIS 또는 DTS 패키지를 작성하여 테이블과 데이터를 MySQL 서버로 보냅니다.

도움이 되었기를 바랍니다

나는 그것을 의심합니다. Levi가 말한 것처럼 DTS/SSI를 사용하여이를 수행 할 수 있습니다. 한 사람은 실제로 데이터를 가져 오지 않고 프로세스를 시작하는 것입니다. 기본 테이블 구조를 함께 얻을 수있을만큼 충분합니다. 그런 다음 결과 테이블 구조를 중심으로 바꾸고 싶을 것입니다.

이를 한 단계 더 발전시키고 모든 데이터 첫 NA 문자열 (Varchar) 양식을 취하는 스테이징 영역을 만들어야 할 수도 있습니다. 그런 다음 두 데이터베이스가 특히 날짜를 다룰 때 항상 잘 작동하지 않기 때문에 유효성 검사 및 변환을 수행하는 스크립트를 만들 수 있습니다.

내가 사용한 방법에는 Richard Harrison의 방법의 일부가 포함되었습니다.

따라서 SQL Server 2008 Express Edition을 설치하고

이를 위해서는 웹 플랫폼 설치 프로그램 "WPILAUNCHER_N.EXE"의 다운로드 데이터베이스 선택을 클릭하면 프레임 워크 및 runtimes를 다운로드해야합니다).

설치 후 Windows 명령 프롬프트로 이동하여 :

sqlcmd -s sqlexpress 사용 (관리자로 로그인하는 동안)

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

디스크에서 filleistonly를 복원합니다 = 'c : temp mydbname-2009-09-29-v10.bak'; 이렇게하면 백업의 내용이 나열됩니다. 필요한 것은 논리적 이름을 알려주는 첫 번째 필드입니다. 하나는 실제 데이터베이스이고 다른 하나는 로그 파일입니다.

Disk = 'C : temp mydbname-2009-09-29-v10.bak'에서 'c : temp'to 'c : temp mydbname_data.mdf'에서 데이터베이스 mydbname을 복원하십시오. temp mydbname_data.ldf '; 가다

웹 플랫폼 설치 프로그램을 시작했고 새 탭에서 SQL Server Management Studio를 설치하고 DB를 탐색하여 데이터가 있는지 확인했습니다 ...

이 시점에서 나는 MSSQL "SQL 가져 오기 및 내보내기 마법사"에 포함 된 도구를 시도했지만 CSV 덤프의 결과에는 열 이름 만 포함되었습니다 ...

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

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

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

  2. MySQL에 ODBC 연결을 설정 한 다음 DTS를 사용하여 데이터를 전송합니다. Charles Graham이 제안한 것처럼,이 작업을 수행하기 전에 테이블을 만들어야 할 수도 있습니다. 그러나 이것은 SQL Enterprise Manager Windows에서 해당 MySQL 창으로 절단 및 붙여 넣기만큼 쉽습니다.

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

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

2) @"이것은 백업의 내용을 나열합니다. 필요한 것은 논리적 이름을 알려주는 첫 번째 필드입니다" - 파일이 두 개 이상의 헤더를 나열하면 해당 파일과 관련하여 무엇을 해야하는지 설명해야합니다. 복원 데이터베이스 명령. 데이터베이스와 로그 이외의 파일로 무엇을 해야하는지 표시하지 않으면 시스템은 .BAK 파일에 나열된 속성을 사용하려고 시도합니다. 다른 사람의 환경에서 파일을 복원하면 경로에는 잘못된 속성이 있습니다. 디렉토리 여야합니다 (문제의 경로가 컴퓨터에 존재하지 않으므로). 단순히 이동 문을 제공하면이 문제가 해결됩니다.

제 경우에는 세 번째 ftdata 유형 파일이있었습니다. 이동 명령 I가 추가되었습니다.

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

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

SQL Server의 .bak 파일은 해당 데이터베이스 방언에만 해당되며 MySQL과 호환되지 않습니다.

사용해보십시오 Etlalchemy SQL Server 데이터베이스를 MySQL로 마이그레이션합니다. 다른 RDBMS 간의 쉬운 마이그레이션을 용이하게하기 위해 만든 오픈 소스 도구입니다.

빠른 설치 및 예제는 여기에 제공됩니다 Github 페이지, 프로젝트의 기원에 대한 자세한 설명을 찾을 수 있습니다. 여기.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top