.bak
SQL Server 2005 덤프의 일부 큰 파일이 있습니다.
SQL Server를 사용하지 않고 PostgreSQL, MySQL 또는 플랫 텍스트 파일로 복원 할 수 있습니까?
오픈 소스 솔루션이 가장 유용합니다.
.bak
SQL Server 2005 덤프의 일부 큰 파일이 있습니다.
SQL Server를 사용하지 않고 PostgreSQL, MySQL 또는 플랫 텍스트 파일로 복원 할 수 있습니까?
오픈 소스 솔루션이 가장 유용합니다.
답변:
여기 내가 제안하는 것이 있습니다.
VM에 백업을 보유 할 공간이 충분하지만 복원 할 공간이 충분하지 않은 경우 Red-Gate 제품의 평가판을 동일한 이름으로 사용하여 "가상 복원"을 수행 할 수 있습니다 . 복원 된 것처럼 백업 파일). 그렇지 않으면 정상적인 방법으로 데이터베이스를 복원하십시오 .
데이터베이스가 정상 복원 또는 가상 복원을 통해 사용 가능 해지면 다음과 같은 방식으로 스키마 및 데이터에 대한 스크립트를 생성 할 수 있습니다.
또는 bcp 유틸리티 를 사용하여 데이터를 CSV 파일 또는 이와 유사한 형식으로 추출 하려고 시도 할 수 있지만, 테이블별로이 작업을 수행하거나 영리한 스크립팅 (PowerShell, T-SQL, C # / SMO 등)을 사용해야합니다. )를 사용하여 모든 bcp 명령을 생성하십시오. CSV 파일에 들어가면 Postgres에 데이터를 대량로드하는 것이 쉽지만 테이블을 생성하는 작업은 여전히 남아 있습니다.
마지막 제안으로 .bak 파일이 엄청 나지 않고 데이터가 기밀이 아닌 경우 필요한 형식으로 파일을 기꺼이 생성하려고합니다. 공간이 충분한 Windows VM이 많이 있습니다. 특히 .BAK 파일을 검색 할 수있는 위치로 가져 오는 것이 문제입니다. 특히 대부분의 파일 공유 서비스 지원보다 큰 경우 더욱 그렇습니다.
불행히도 파일 자체의 내부에 대한 깊은 지식없이 .bak 파일의 내용에 액세스 할 수있는 방법이 없습니다. 나는 여기에이 정보에 대한 특권이있는 한 사람을 생각할 수 있지만, 그 사람이 당신에게 정보를 제공하는 방법을 말해 줄 수 있는지에 대해서는 말할 수 없습니다.
따라서 SQL Server 인스턴스를 설치해야합니다. 또한이 인스턴스가 Postgres 서버와 통신 할 수 있는지 확인해야합니다.
첫 번째 경로는 Postgres Windows ODBC 드라이버를 설치하고 pg 서버에 대한 연결을 설정하는 것입니다. 그런 다음 SSIS를 사용하여 데이터 마이그레이션을 스크립팅 할 수 있습니다. 이 경로를 사용하려면 데이터베이스 서버를 설치할 때 SSIS를 설치하는 것이 좋습니다.
다른 옵션에는 ODBC 드라이버 연결도 포함되지만 SQL Server에서 연결된 서버를 만들고 SQL Server를 통해 pg 인스턴스에서 삽입을 실행할 수 있습니다. 나는 여기 에이 정확한 질문에 대답했기 때문에 찾기가 어렵지 않아야합니다.
편집하다
Aaron의 의견을 통합하기 위해 SQL Server를 시작하고 실행하면 다양한 방법으로 데이터를 플랫 파일로 내보낼 수도 있습니다. 이 경로를 선택하면 알려 주시면 몇 가지 방법을 게시하겠습니다.
편집 (2) :
구조를 미리 작성하지 않으면 연결된 서버 프로세스가 최선의 방법이 아닐 수 있습니다. 내가 선호하는 방법이지만 일반적으로 양쪽에 이미 구조가 있습니다.
그것은 Aaron Bertrand의 대답이 최선의 대답으로 남습니다. 데이터 유형 외에도 ( IDENTITY
vs SEQUENCE
, postgres는 NVARCHAR
데이터베이스 자체에 인코딩을 설정 한 이후로 아무것도 알지 못합니다 ). 포스트 그레스의 아무것도 알고 CREATE CLUSTERED INDEX
( CLUSTER
당신을 위해 작동 할 수있다). 마지막으로, 주석에서 공간 데이터를 사용한다는 것을 알았으므로 postgresql은 CREATE SPATIAL INDEX
구문에 대해 아무것도 모릅니다 . INDEXTYPE
공간 인덱스를 만들려면 postgis를 설치하고 키워드를 사용해야합니다 . 마지막으로 스키마를 적절하게 처리해야합니다.
긴 이야기 요약 :