2012-01-27 2 views
1

원격 서버에 하나의 데이터베이스와 다른 로컬에 두 개의 데이터베이스가 있습니다. (SQL Server 2008)SQL Server 데이터베이스 원격 전송 - 가장 좋은 방법

내 로컬 서버의 데이터베이스에는 전체 구조 설정이 있지만 데이터가 없습니다. 원격 서버의 데이터를 서버에 복사하고 싶습니다.이 작업을 수행하는 가장 좋은 방법이 궁금합니다.

내가 겪고있는 주요 문제는 원격 데이터베이스에 대한 사용자의 사용 권한이 제한되어 있다는 것입니다. 저장 프로 시저, 사용자 정의 함수를 읽을 수 없으므로 가져 오기/내보내기 마법사를 사용할 때 스키마 등을 얻지 못합니다. 따라서 기본 덤프/외부 키가없는 테이블을 복원 할 때 일반 덤프/복원이 작동하지 않습니다. 저장 프로 시저 나는이 일을하고 싶습니다

,

INSERT INTO localtable SELECT * FROM remotedb.table 

나는 때문에 IDENTITY 분야의 문제가 있었고, 난 명시 적으로 모든 열 이름을했다. 또한 SQL Server Management Studio에서 두 가지 다른 데이터베이스 (원격 및 로컬)를 사용할 수 있는지 확신 할 수 없으므로 조언을 구하고 있습니다.

또한 SQL FTP 및 백업과 같은 응용 프로그램을 사용해 보았는데 메모리가 부족하여 (컴퓨터에 16GB의 메모리가 있고 DB가 4GB와 비슷하기 때문에) 실패합니다. 또한 SQL Server 가져 오기/내보내기 마법사를 사용할 수 있지만 스키마 정보를 가져 오지 못합니다. 레드 게이트 (Red Gate)에서 SQL Compare를 시도해 보았고 사용 권한 문제가 발생했습니다. 불행히도 새로운 사용자를 요청하고 액세스 할 시간이 없으므로 누군가가 창의적인 아이디어를 얻길 바랍니다.

+1

레드 게이트가 그렇게 할 수 없다면 RG가 슈퍼 쉽기 때문에 아마 곤경에 처할 것입니다. 다음을 고려할 수 있습니다. 백업을 수행하고 백업에서 데이터를 검색하기 위해 RG의 기능을 사용할 수 있습니다. – Hogan

+1

메타 데이터에 액세스 할 수있는 권한이없는 경우 연결된 서버를 설정하고 삽입 쿼리를 작성하는 것이 유일한 옵션입니다. – JNK

+0

그럼 내가 지금하고있는 것은 – Skylude

답변

1
  1. SQL Server 백업을 확실히 사용할 수 있습니다. 그것은 메모리가 부족하지 않습니다. 그럴 경우 메시지를 말하십시오 (오해 할 가능성이 있기 때문에). 이것은 가장 빠르며 가장 완벽한 솔루션입니다.
  2. 또한 내보내기 마법사에서 스키마를 스크립팅하도록 지시 할 수 있습니다. 그것은 어딘가에 (끔찍한 UI) "고급"아래에 숨겨져 있습니다. 그러나 스크립트는 매우 커질 것이고 그것을 실행할 방법이 없다는 것을 알고 있습니다.
  3. 대상 데이터베이스에서 PK를 제외한 모든 스키마 개체를 삭제할 수 있습니다. 그런 다음 원격 쿼리를 사용하여 모든 데이터를 복사 할 수 있습니다. 사전에 삭제하면 외래 키 및 ID 열에 문제가 발생하지 않습니다. 끝나면 모든 객체를 다시 만들 수 있습니다. 특정 시점에서 일관된 소스 데이터를 얻으므로 모든 트랜잭션에 사용하는 것이 가장 좋습니다.
+0

비교해 보면 - 나는 주 개인 데이터베이스 (약 800GB, 절반 전체)를 매일 백업하고 있으며 서버는 16GB 메모리 만 가지고 있습니다. – TomTom

+0

예. 백업은 상당한 양의 메모리를 차지하지 않습니다. – usr

+0

내 사용자에게 BACKUP_DATABASE 권한이 없습니다. D – Skylude

관련 문제