IT story

원격 SQL Server 데이터베이스를 로컬 드라이브에 어떻게 백업 할 수 있습니까?

hot-time 2020. 4. 21. 08:24
반응형

원격 SQL Server 데이터베이스를 로컬 드라이브에 어떻게 백업 할 수 있습니까?


데이터베이스를 원격 서버에서 로컬 서버로 복사해야합니다. SQL Server Management Studio를 사용하려고했지만 원격 서버의 드라이브에만 백업합니다.

일부 요점 :

  • 파일을 복사 할 수있는 방식으로 원격 서버에 액세스 할 수 없습니다.
  • 서버에 대한 UNC 경로를 설정할 수있는 권한이 없습니다.

이 데이터베이스를 어떻게 복사 할 수 있습니까? 타사 도구를 사용해야합니까?


Microsoft SQL Server Management Studio에서 백업하려는 데이터베이스를 마우스 오른쪽 단추로 클릭하고 태스크-> 스크립트 생성을 클릭하십시오.

그러면 원격 서버에서도 데이터베이스의 적절한 백업을 수행하기 위해 다음을 설정할 수있는 마법사가 열립니다 .

  • 백업하려는 데이터베이스를 선택하고 다음을 누르십시오.
  • 옵션에서 그것은 당신에게 나타납니다 :
    1. 2010 년 : 표 /보기 옵션에서 '스크립트 데이터'및 '스크립트 색인'을 True로 변경하고 다음을 누르십시오.
    2. 2012 년 : '일반'에서 '데이터 유형을 스크립트로'에서 '스키마 만'에서 '스키마 및 데이터'로 변경하십시오.
    3. 2014 년 : "스크립팅 옵션 설정"단계에서 데이터를 스크립팅하는 옵션이 이제 "숨겨집니다", "고급"을 클릭하고 "스크립트 유형의 데이터"를 "스키마 및 데이터"값으로 설정해야합니다.
  • 다음 네 개의 창에서 '모두 선택'을 누른 다음
  • 새 쿼리 창에 스크립팅하도록 선택

작업이 완료되면 백업 스크립트가 준비됩니다. 새 로컬 (또는 원격) 데이터베이스를 작성하고 스크립트에서 첫 번째 'USE'문을 변경하여 새 데이터베이스를 사용하십시오. 안전한 장소에 스크립트를 저장하고 비어있는 새 데이터베이스에 대해 실행하십시오. 이렇게하면 (거의) 중복 로컬 데이터베이스가 생성되어 원하는대로 백업 할 수 있습니다.

당신이 경우 전체 원격 데이터베이스에 대한 액세스를, 당신은 '스크립트의 모든 객체'마법사의 첫 번째 창을 확인하고 다음 창에서 True로 '스크립트 데이터베이스'옵션을 변경 할 수 있습니다. 그러나 스크립트의 데이터베이스 이름을 완전히 검색하고 새 데이터베이스로 바꾸어야하며,이 경우 스크립트를 실행하기 전에 만들 필요가 없습니다. 이렇게하면보다 정확한 복제본이 생성되지만 권한 제한으로 인해 사용하지 못할 수도 있습니다.


데이터와 스키마 만 복사하려면 (저장 프로 시저, 함수 등은 복사하지 않음) SQL Server 가져 오기 및 내보내기 마법사를 사용하고 대상 데이터베이스를 선택할 때 새로 만들기 ... 를 선택하십시오.

데이터베이스> 태스크> 데이터 가져 오기를 마우스 오른쪽 단추로 클릭하십시오.

데이터 소스를 선택하십시오

  • 데이터 소스 : SQL Server Native Client
  • 서버 이름 : 원격 서버
  • 인증 :
  • 데이터베이스 : db 이름

목적지를 선택하십시오

  • 데이터 소스 : SQL Server Native Client
  • 서버 이름 : 로컬 서버
  • 인증 :
  • 데이터베이스 :New...

나머지는 곧장입니다.


먼저 Everyone을 사용하여 컴퓨터의 로컬 경로에 대한 모든 제어 권한을 부여하십시오 (아래 그림 참조). 또는 SQL Server 에이전트 계정에 권한을 부여 할 수도 있습니다.

둘째, 다음을 실행하십시오.

BACKUP DATABASE [dev] TO  DISK = N'\\myMachine\c\dev.bak' WITH COPY_ONLY, INIT;

원격 서버에서 로컬 디스크로 백업을 만들 는 없습니다 .이를 수행 할 방법은 없습니다. 그리고 내가 아는 한, 타사 도구도 없습니다.

원격 서버 시스템에서 백업을 작성하고 누군가가 압축하여 사용자에게 보내도록 할 수 있습니다.


나는 이것이 늦게 답이라는 것을 알고 있지만 SSMS에서 스크립트 생성 옵션을 사용한다고 말하는 대부분의 투표 응답에 대해 의견을 말해야합니다.

문제는이 옵션이 의존성을 고려하지 않기 때문에 반드시 올바른 실행 순서로 스크립트를 생성하지는 않는다는 것입니다.

작은 데이터베이스의 경우 문제가되지 않지만 큰 데이터베이스의 경우 스크립트를 수동으로 다시 정렬해야하기 때문입니다. 500 개체 데이터베이스에서 시도해보십시오.)

불행히도이 경우 유일한 솔루션은 타사 도구입니다.

비슷한 작업에 ApexSQL (Diff 및 Data Diff)의 비교 도구를 성공적으로 사용 했지만 여기에 언급 된 다른 항목, 특히 Red Gate에는 문제가 없습니다.


SQLBackupAndFTP 를 시도 할 수 있습니다 . 데이터베이스의 모든 개체와 테이블의 모든 행에 대한 INSERT 문을 만드는 스크립트를 만듭니다. 모든 데이터베이스에서이 스크립트 파일을 실행할 수 있으며 전체 데이터베이스가 다시 작성됩니다.


원격 데이터베이스를 복사하는 방법에 대한 설명은이 블로그를 참조하십시오.

공유 호스팅 환경에서 SQL Server 2008 데이터베이스 백업


원격 SQL 서버에서 로컬 PC로 bak 파일을 얻는 99 % 솔루션이 있습니다. 내 게시물 http://www.ok.unsode.com/post/2015/06/27/remote-sql-backup-to-local-pc 에 설명했습니다 .

일반적으로 다음과 같습니다.

  • SQL 스크립트를 실행하여 BAK 파일 생성

  • SQL 스크립트를 실행하여 각 bak 파일을 varbinary 필드 유형의 임시 테이블에 삽입 하고이 행을 선택하고 데이터를 다운로드하십시오.

  • 이전을 반복하십시오. bak 파일만큼 많은 시간을 보냄

  • SQL 스크립트를 실행하여 모든 임시 리소스를 제거하십시오.

그게 다야, 로컬 PC에 bak 파일이 있습니다.


데이터베이스 복사를 사용할 수 있습니다. 원격 데이터베이스를 마우스 오른쪽 버튼으로 클릭하고 작업을 선택하고 데이터베이스 복사를 사용하십시오. 소스 서버와 대상 서버에 대해 묻습니다. 소스는 원격이고 대상은 SQL 서버의 로컬 인스턴스입니다.

그것은 쉽다


AppHarbor 갱은이 문제로 어려움을 겪고 있으며 SQL Server 관리 개체와 SqlBulkCopy를 사용하여 임시 솔루션을 개발했습니다.

블로그 게시물을 확인 하거나 코드바로 이동하십시오 .

그들은 AppHarbor에서만 테스트했지만 체크 아웃 할 가치가 있습니다.


위의 답변은 정확하지 않습니다. 데이터가있는 SQL 스크립트는 백업이 아닙니다. 백업은 indizes를 포함하여 현재 구조로 전체 데이터베이스를 포함하는 BAK 파일입니다.

물론 BAK 파일에는 모든 데이터가 포함 된 전체 백업이 포함되어 있으며 원격 SQL Server 데이터베이스의 인스턴스는 로컬 시스템에서 검색 할 수 있습니다.

이것은 예를 들어, 로컬 컴퓨터에 백업 BAK 파일 저장에 직접, 상용 소프트웨어와 함께 할 수있는 이 사람은 직접 로컬 컴퓨터에 원격 SQL DB에서 백업을 생성합니다.


Martin Smith가 말했듯이 컴퓨터 나 파일 시스템에 액세스 할 수없는 경우 소스 및 대상 시스템을 비교하려면 Red Gate 또는 Adept와 같은 타사 도구를 사용해야합니다. Red Gate 도구를 사용하면 객체와 스키마 및 데이터를 복사 할 수 있습니다.


다음 조건이 충족되면 원격 SQL Server 인스턴스에서 로컬 드라이브로 백업을 수행 할 수 있습니다.

  1. 로컬 드라이브에 공유 폴더가 있습니다.
  2. 공유 폴더는 SQL Server 상자에서 액세스 할 수 있습니다.

이제 backup 명령을 지정할 때 디스크 옵션을 지정할 때 공유 폴더 경로를 사용하십시오.


그냥 이것을 시도하십시오 :

1) 컴퓨터에서 모든 권한을 가진 폴더를 공유

2) SQL 서버에서 : 제어판-> 관리 도구-> 서비스-> 모든 SQL 서비스를 마우스 오른쪽 버튼으로 클릭하십시오.

로그온 탭은 도메인 관리자로 시작해야합니다.

3) SQL Server의 유지 관리 마법사에서 백업 위치와 폴더를 저장하십시오 (\ yourcomputername \ sharedfoldernam)

우리 회사에서 SQL Server 2008의 8 서버에서 원격 백업을 수행했습니다.


나는 아무도가 제공하는 스크립트 백업 솔루션 언급되지 것을 놀라게 해요 올라 Hallengren 절대적 않습니다 실제로 I 타입으로 사용하고 무료로 네트워크의 UNC 경로에 원격 서버 (에서 백업에 DB를 당신을 허용을 SSMS를 통해 내 dev PC의 공유에 대한 원격 액세스가없는 dev 서버에서 DB를 백업하는 경우). 2008 년부터 사용 가능하며 SQL Server 2005에서 2014까지 작동합니다.

설정 한 공유에 충분한 액세스 권한이 있는지 확인해야합니다. 백업 프로세스가 진행되는 동안 '모든 사람'AD 그룹에 대한 전체 읽기 / 쓰기를 허용하는 경향이 있습니다. 개인적인 선택.

잘 사용하고 잘 문서화되어 있으며 매우 유연합니다. 나는 procs와 로깅 테이블을 작은 유틸리티 데이터베이스에 넣은 다음 실행하는 경향이 있습니다. 모든 것이 AD 도메인에 있고 공존 서버 또는 다른 서버에 있다는 의미에서 원격이 아니라면 매우 효과적입니다.

아주 오래된 스레드에 추가하는 것에 대한 사과가 있지만 다른 것을 찾을 때이 문제를 발견 하고이 주제를 찾는 사람에게는 가치있는 추가 기능이라고 생각했습니다.


한 번만 할 수 있습니다 ...이 작업을 수행하려면 원격 서버에서 공유를 열어야합니다. 기본 위치보다 공유 자체에 백업을 직접 배치 할 수 있습니다.

일반적으로 관리자는 백업을 가져 와서 일부 공유 폴더에서 공유합니다. 거기에 백업을 배치하면 작동하는지 시도했습니다. 효과가있었습니다.


SSMS에서 스크립트 생성을 사용하는 경우 고급 단추를 클릭하십시오. '종속 개체에 대한 스크립트 생성'옵션에서 True를 클릭하십시오. 클릭하면 각 개체의 종속성이 올바른 순서로 스크립트됩니다.


일부 타사 백업 프로그램에서는 특정 네트워크 권한으로 파일 전송을 설정할 수 있습니다. SQL Server 서비스가 제한된 계정으로 실행되고 있고 네트워크 권한이 충분하지 않을 때 매우 유용합니다. 이 작업을 해결 하는 EMS SQL 백업사용해보십시오 .


내가 사용하는 레드 게이트 백업 프로 7 이 목적을 위해 도구를. 다른 위치에 타일을 만들 때 백업 파일에서 미러를 만들 수 있습니다. 네트워크 및 호스트 스토리지에서 생성 한 후 백업 파일을 자동으로 복사 할 수 있습니다.


로컬 네트워크에있는 경우 로컬 머신의 폴더를 공유하고이를 백업 대상 폴더로 사용할 수 있습니다.

예:

  • 로컬 폴더 :

    C:\MySharedFolder -> URL: \\MyMachine\MySharedFolder

  • 원격 SQL Server :

    Select your database -> Tasks -> Back Up -> Destination -> Add -> Apply '\\MyMachine\MySharedFolder'

참고 URL : https://stackoverflow.com/questions/3942207/how-can-i-backup-a-remote-sql-server-database-to-a-local-drive

반응형