다른 방법으로 SQL Server 데이터 가져오기 및 내보내기 - Amazon Relational Database Service

다른 방법으로 SQL Server 데이터 가져오기 및 내보내기

다음으로, 스냅샷을 사용하여 Microsoft SQL Server 데이터를 Amazon RDS로 가져오는 방법에 대한 정보를 찾을 수 있습니다. 스냅샷을 사용하여 SQL Server를 실행 중인 RDS DB 인스턴스에서 데이터를 내보내는 방법에 대한 정보도 찾을 수 있습니다.

이 방법이 가능한 시나리오라면 기본 백업 및 복원 기능을 사용하여 Amazon RDS 안팎으로 데이터를 옮기는 것이 더 쉽습니다. 자세한 내용은 기본 백업 및 복원 기능을 사용하여 SQL Server 데이터베이스 가져오기 및 내보내기 단원을 참조하십시오.

참고

Amazon RDS for Microsoft SQL Server는 msdb 데이터베이스로 데이터 가져오기를 지원하지 않습니다.

스냅샷을 사용하여 RDS for SQL Server로 데이터 가져오기

스냅샷을 사용하여 SQL Server DB 인스턴스로 데이터를 가져오려면
  1. DB 인스턴스를 만듭니다. 자세한 내용은 Amazon RDS DB 인스턴스 생성 섹션을 참조하세요.

  2. 애플리케이션이 대상 DB 인스턴스에 액세스하지 못하게 차단합니다.

    데이터를 가져오는 동안 DB 인스턴스에 대한 액세스를 금지하면 데이터 전송이 더 빨라집니다. 또한, 다른 애플리케이션이 DB 인스턴스에 동시에 쓸 수 없는 경우 데이터가 로드되는 동안 충돌에 대해 걱정할 필요가 없습니다. 뭔가 잘못되어 이전의 데이터베이스 스냅샷으로 롤백해야 할 때 잃게 되는 유일한 변경 내용은 가져온 데이터입니다. 문제를 해결한 후 이 데이터를 다시 가져올 수 있습니다.

    DB 인스턴스 액세스 제어에 대한 자세한 정보는 보안 그룹을 통한 액세스 제어을(를) 참조하십시오.

  3. 대상 데이터베이스의 스냅샷을 만듭니다.

    대상 데이터베이스가 이미 데이터로 채워져 있으면 데이터베이스의 스냅샷을 만든 후에 데이터를 가져오는 것이 좋습니다. 데이터 가져오기에 문제가 있거나 변경 내용을 취소하려는 경우 스냅샷을 사용하여 데이터베이스를 이전 상태로 복원할 수 있습니다. 데이터베이스 스냅샷에 대한 자세한 정보는 Amazon RDS의 단일 AZ DB 인스턴스에 대한 DB 스냅샷 생성을(를) 참조하십시오.

    참고

    데이터베이스 스냅샷을 만들 때, 백업이 진행되는 동안 데이터베이스에 대한 I/O 작업이 잠시(밀리초) 중단됩니다.

  4. 대상 데이터베이스에서 자동 백업을 비활성화합니다.

    자동 백업이 비활성화되어 있을 때는 Amazon RDS가 트랜잭션을 로그에 기록하지 않기 때문에 대상 DB 인스턴스에서 자동 백업을 비활성화하면 데이터를 가져오는 동안 성능이 향상됩니다. 하지만 몇 가지 고려해야 할 사항이 있습니다. 특정 시점으로 복구를 수행하려면 자동 백업이 필요합니다. 따라서 데이터를 가져오는 동안 데이터베이스를 특정 시점으로 복원할 수 없습니다. 또한 보관을 선택하지 않을 경우 DB 인스턴스에서 생성된 자동 백업 데이터가 지워집니다.

    자동 백업을 유지하도록 선택하면 실수로 데이터가 삭제되는 것을 방지할 수 있습니다. 또한 Amazon RDS는 데이터베이스 인스턴스 속성을 각 자동 백업과 함께 저장하여 쉽게 복구할 수 있도록 지원합니다. 이 옵션을 사용하면 데이터베이스 인스턴스가 삭제된 이후에도 백업 보존 기간 중 특정 시점까지 데이터베이스 인스턴스를 복원할 수 있습니다. 자동 백업은 활성 데이터베이스 인스턴스에서와 마찬가지로 지정된 백업 기간이 종료되면 자동으로 삭제됩니다.

    또한 이전 스냅샷을 사용하여 데이터베이스를 복구할 수 있고, 지금까지 만든 스냅샷은 전부 그대로 사용할 수 있습니다. 자동 백업에 대한 자세한 내용은 백업 소개 단원을 참조하십시오.

  5. 해당될 경우 외래 키 제약 조건을 비활성화합니다.

    외래 키 제약 조건을 비활성화할 필요가 있는 경우 다음 스크립트로 비활성화할 수 있습니다.

    --Disable foreign keys on all tables DECLARE @table_name SYSNAME; DECLARE @cmd NVARCHAR(MAX); DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables; OPEN table_cursor; FETCH NEXT FROM table_cursor INTO @table_name; WHILE @@FETCH_STATUS = 0 BEGIN SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' NOCHECK CONSTRAINT ALL'; EXEC (@cmd); FETCH NEXT FROM table_cursor INTO @table_name; END CLOSE table_cursor; DEALLOCATE table_cursor; GO
  6. 해당될 경우 인덱스를 삭제합니다.

  7. 트리거가 있는 경우 비활성화합니다.

    트리거를 비활성화해야 하는 경우 다음 스크립트로 비활성화할 수 있습니다.

    --Disable triggers on all tables DECLARE @enable BIT = 0; DECLARE @trigger SYSNAME; DECLARE @table SYSNAME; DECLARE @cmd NVARCHAR(MAX); DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name, table_object.name table_name FROM sysobjects trigger_object JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id WHERE trigger_object.type = 'TR'; OPEN trigger_cursor; FETCH NEXT FROM trigger_cursor INTO @trigger, @table; WHILE @@FETCH_STATUS = 0 BEGIN IF @enable = 1 SET @cmd = 'ENABLE '; ELSE SET @cmd = 'DISABLE '; SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' '; EXEC (@cmd); FETCH NEXT FROM trigger_cursor INTO @trigger, @table; END CLOSE trigger_cursor; DEALLOCATE trigger_cursor; GO
  8. 원본 SQL Server 인스턴스에서 대상 DB 인스턴스로 가져오려는 로그인을 쿼리합니다.

    SQL Server는 master 데이터베이스에 로그인과 암호를 저장합니다. Amazon RDS는 master 데이터베이스에 액세스 권한을 부여하지 않기 때문에, 로그인 정보와 암호를 대상 DB 인스턴스로 직접 가져올 수는 없습니다. 대신, 원본 SQL Server 인스턴스에서 master 데이터베이스를 쿼리하여 DDL(데이터 정의 언어) 파일을 생성해야 합니다. 이 파일에는 대상 DB 인스턴스에 추가하려는 모든 로그인 정보와 암호가 포함되어야 합니다. 이 파일에는 전송하려는 역할 멤버십 및 권한도 포함되어야 합니다.

    master 데이터베이스 쿼리에 대한 자세한 정보는 Microsoft 기술 자료의 SQL Server 인스턴스 간에 로그인 및 암호 전송을 참조하세요.

    스크립트의 출력은 대상 DB 인스턴스에서 실행할 수 있는 또 다른 스크립트입니다. 기술 자료 문서에 있는 스크립트에 다음 코드가 있을 경우

    p.type IN

    p.type이 나타나는 곳에서는 모두 다음 코드를 대신 사용합니다.

    p.type = 'S'
  9. 데이터 가져오기의 방법을 사용하여 데이터를 가져옵니다.

  10. 애플리케이션에 대상 DB 인스턴스에 대한 액세스 권한을 부여합니다.

    데이터 가져오기가 완료되면 가져오기 중에 차단한 애플리케이션에 DB 인스턴스 액세스 권한을 부여할 수 있습니다. DB 인스턴스 액세스 제어에 대한 자세한 정보는 보안 그룹을 통한 액세스 제어을(를) 참조하십시오.

  11. 대상 DB 인스턴스에서 자동 백업을 활성화합니다.

    자동 백업에 대한 자세한 내용은 백업 소개 단원을 참조하십시오.

  12. 외래 키 제약 조건을 활성화합니다.

    앞서 외래 키 제약 조건을 비활성화한 경우 다음 스크립트로 활성화할 수 있습니다.

    --Enable foreign keys on all tables DECLARE @table_name SYSNAME; DECLARE @cmd NVARCHAR(MAX); DECLARE table_cursor CURSOR FOR SELECT name FROM sys.tables; OPEN table_cursor; FETCH NEXT FROM table_cursor INTO @table_name; WHILE @@FETCH_STATUS = 0 BEGIN SELECT @cmd = 'ALTER TABLE '+QUOTENAME(@table_name)+' CHECK CONSTRAINT ALL'; EXEC (@cmd); FETCH NEXT FROM table_cursor INTO @table_name; END CLOSE table_cursor; DEALLOCATE table_cursor;
  13. 인덱스가 있는 경우 인덱스를 활성화합니다.

  14. 트리거가 있는 경우 트리거를 활성화합니다.

    앞서 트리거를 비활성화했다면 다음 스크립트로 활성화할 수 있습니다.

    --Enable triggers on all tables DECLARE @enable BIT = 1; DECLARE @trigger SYSNAME; DECLARE @table SYSNAME; DECLARE @cmd NVARCHAR(MAX); DECLARE trigger_cursor CURSOR FOR SELECT trigger_object.name trigger_name, table_object.name table_name FROM sysobjects trigger_object JOIN sysobjects table_object ON trigger_object.parent_obj = table_object.id WHERE trigger_object.type = 'TR'; OPEN trigger_cursor; FETCH NEXT FROM trigger_cursor INTO @trigger, @table; WHILE @@FETCH_STATUS = 0 BEGIN IF @enable = 1 SET @cmd = 'ENABLE '; ELSE SET @cmd = 'DISABLE '; SET @cmd = @cmd + ' TRIGGER dbo.'+QUOTENAME(@trigger)+' ON dbo.'+QUOTENAME(@table)+' '; EXEC (@cmd); FETCH NEXT FROM trigger_cursor INTO @trigger, @table; END CLOSE trigger_cursor; DEALLOCATE trigger_cursor;

데이터 가져오기

Microsoft SQL Server Management Studio는 Express Edition을 제외한 모든 Microsoft SQL Server 버전에 포함되는 그래픽 SQL Server 클라이언트입니다. SQL Server Management Studio Express는 Microsoft에서 무료 다운로드로 사용할 수 있습니다. 다운로드에 관해서는 Microsoft 웹 사이트을(를) 참조하십시오.

참고

SQL Server Management Studio는 Windows 기반 애플리케이션으로만 사용할 수 있습니다.

SQL Server Management Studio에는 SQL Server DB 인스턴스로 데이터를 가져오는 데 유용한 다음 도구가 포함됩니다.

  • 스크립트 생성 및 게시 마법사

  • 가져오기 및 내보내기 마법사

  • 대량 복사

스크립트 생성 및 게시 마법사

스크립트 생성 및 게시 마법사는 데이터베이스의 스키마, 데이터 자체 또는 두 가지를 모두 포함한 스크립트를 만듭니다. 로컬 SQL Server 배포에서 데이터베이스에 대한 스크립트를 생성할 수 있습니다. 그런 다음, 포함된 정보를 Amazon RDS DB 인스턴스로 전송하는 스크립트를 실행할 수 있습니다.

참고

1GiB 이상의 데이터베이스인 경우, 데이터베이스 스키마만 스크립팅하는 것이 더 효율적입니다. 그런 다음 가져오기 및 내보내기 마법사 또는 SQL Server의 대량 복사 기능을 사용하여 데이터를 전송합니다.

스크립트 생성 및 게시 마법사에 대한 자세한 정보는 Microsoft SQL Server 문서을(를) 참조하십시오.

마법사에서는 특히 [스크립팅 옵션 설정] 페이지의 고급 옵션에 주의하여 스크립트에 포함하려는 모든 것이 선택되어 있는지 확인하십시오. 예를 들어 데이터베이스 트리거는 기본적으로 스크립트에 포함되지 않습니다.

스크립트가 생성되고 저장되면 SQL Server Management Studio를 사용하여 DB 인스턴스에 연결한 후 스크립트를 실행할 수 있습니다.

가져오기 및 내보내기 마법사

가져오기 및 내보내기 마법사는 특별한 통합 서비스 패키지를 만드는데, 이 패키지를 사용하여 로컬 SQL Server 데이터베이스에서 대상 DB 인스턴스로 데이터를 복사할 수 있습니다. 이 마법사에서는 대상 DB 인스턴스로 어떤 테이블, 심지어 테이블 내에 있는 어떤 튜플을 복사할지 필터링할 수 있습니다.

참고

가져오기 및 내보내기 마법사는 큰 데이터 집합에 매우 효과적이지만, 로컬 배포 위치에서 원격으로 데이터를 내보내는 가장 빠른 방법은 아닐 수도 있습니다. 훨씬 더 빠른 방법을 원한다면, SQL Server 대량 복사 기능을 고려하십시오.

가져오기 및 내보내기 마법사에 대한 자세한 내용은 Microsoft SQL Server 문서를 참조하십시오.

이 마법사의 [대상 선택] 페이지에서 다음을 수행합니다.

  • [서버 이름]에 DB 인스턴스의 엔드포인트 이름을 입력합니다.

  • 서버 인증 모드를 위해 [SQL Server 인증 사용]을 선택합니다.

  • [사용자 이름] 및 [암호]에 DB 인스턴스용으로 만든 마스터 사용자의 자격 증명을 입력합니다.

대량 복사

SQL Server 대량 복사 기능은 원본 데이터베이스에서 DB 인스턴스로 데이터를 복사하는 효율적인 수단입니다. 대량 복사는 ASCII 파일과 같은 데이터 파일에 사용자가 지정하는 데이터를 쓰는 기능입니다. 대량 복사를 다시 실행하여 파일의 내용을 대상 DB 인스턴스에 쓸 수 있습니다.

이 섹션에서는 모든 SQL Server 버전에 포함되어 있는 bcp 유틸리티를 사용합니다. 대량 가져오기 및 내보내기 작업에 대한 자세한 정보는 Microsoft SQL Server 문서를 참조하십시오.

참고

대량 복사 기능을 사용하기 전에, 우선 데이터베이스 스키마를 대상 DB 인스턴스로 가져와야 합니다. 이 주제의 앞 부분에서 설명한 스크립트 생성 및 게시 마법사는 이 목적으로 사용하기에 훌륭한 도구입니다.

다음 명령은 로컬 SQL Server 인스턴스에 연결합니다. 그러면 기존 SQL Server 배포의 C:\ 루트 디렉터리에 지정된 테이블의 탭으로 구분된 파일이 생성됩니다. 테이블은 정규화된 이름으로 지정되고, 텍스트 파일은 복사되는 테이블과 이름이 같습니다.

bcp dbname.schema_name.table_name out C:\table_name.txt -n -S localhost -U username -P password -b 10000

앞에 나온 코드에는 다음 옵션이 포함됩니다.

  • -n은 대량 복사에서 복사되는 데이터의 기본 데이터 형식을 사용할 것임을 지정합니다.

  • -Sbcp 유틸리티가 연결할 SQL Server 인스턴스를 지정합니다.

  • -U는 SQL Server 인스턴스에 로그인할 계정의 사용자 이름을 지정합니다.

  • -P는 로 지정된 사용자의 암호를 지정합니다.-U

  • -b는 가져온 데이터의 배치당 행 수를 지정합니다.

참고

가져오기 작업에 중요한 다른 파라미터가 있을 수 있습니다. 예를 들어, 자격 증명 값에 속한 -E 파라미터가 필요할 수 있습니다. 자세한 내용은 Microsoft SQL Server 문서에서 bcp 유틸리티 관련 명령줄 구문에 대한 상세 설명을 참조하십시오.

예를 들어 기본 스키마 store를 사용하는 dbo라는 이름의 데이터베이스에 customers라는 이름의 테이블이 있다고 가정합시다. 암호가 admin인 사용자 계정 insecurecustomers 테이블에서 10,000개의 행을 customers.txt라는 파일로 복사합니다.

bcp store.dbo.customers out C:\customers.txt -n -S localhost -U admin -P insecure -b 10000

데이터 파일을 생성한 후 비슷한 명령을 사용하여 DB 인스턴스에 데이터를 업로드할 수 있습니다. 사전에 대상 DB 인스턴스에서 데이터베이스 및 스키마를 생성하십시오. 출력 파일을 지정하는 in 대신 입력 파일을 지정하는 out 인수를 사용합니다. 로컬 SQL Server 인스턴스를 지정하기 위해 localhost를 사용하는 대신, DB 인스턴스의 엔드포인트를 지정합니다. 1433 이외의 포트를 사용하는 경우 그 포트도 지정합니다. 사용자 이름과 암호는 DB 인스턴스에 대한 마스터 사용자와 암호가 됩니다. 구문은 다음과 같습니다.

bcp dbname.schema_name.table_name in C:\table_name.txt -n -S endpoint,port -U master_user_name -P master_user_password -b 10000

이전 예제를 진행하기 위해, 마스터 사용자 이름이 admin이고 암호가 insecure라고 가정합니다. DB 인스턴스의 엔드포인트는 rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com이고, 포트 4080을 사용합니다. 명령은 다음과 같습니다.

bcp store.dbo.customers in C:\customers.txt -n -S rds.ckz2kqd4qsn1.us-east-1.rds.amazonaws.com,4080 -U admin -P insecure -b 10000
참고

보안 모범 사례로 여기에 표시된 프롬프트 이외의 암호를 지정하는 것이 좋습니다.

RDS for SQL Server에서 데이터 내보내기

다음 옵션 중 하나를 선택하여 RDS for SQL Server DB 인스턴스에서 데이터를 내보낼 수 있습니다.

SQL Server 가져오기 및 내보내기 마법사

SQL Server 가져오기 및 내보내기 마법사를 사용하여 RDS for SQL Server DB 인스턴스에서 다른 데이터 스토어로 하나 이상의 테이블, 보기 또는 쿼리를 복사할 수 있습니다. 대상 데이터 스토어가 SQL Server가 아닌 경우 이 방법이 가장 좋습니다. 자세한 내용은 SQL Server 문서의 SQL Server 가져오기 및 내보내기 마법사를 참조하십시오.

SQL Server 가져오기 및 내보내기 마법사는 Microsoft SQL Server Management Studio의 일부로 제공됩니다. 이 그래픽 SQL Server 클라이언트는 Express Edition을 제외한 모든 Microsoft SQL Server 버전에 포함됩니다. SQL Server Management Studio는 Windows 기반 애플리케이션으로만 사용할 수 있습니다. SQL Server Management Studio Express는 Microsoft에서 무료 다운로드로 사용할 수 있습니다. 다운로드에 관해서는 Microsoft 웹 사이트을(를) 참조하십시오.

SQL Server 가져오기 및 내보내기 마법사를 사용하여 데이터를 내보내려면
  1. SQL Server Management Studio에서 RDS for SQL Server DB 인스턴스에 연결합니다. 이 작업을 수행하는 자세한 방법은 Microsoft SQL Server 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결 단원을 참조하십시오.

  2. [개체 탐색기]에서 [데이터베이스]를 확장하고, 원본 데이터베이스에 대한 컨텍스트 메뉴를 마우스 오른쪽 버튼을 클릭하여 열고, [작업]을 선택한 다음, [데이터 내보내기]를 선택합니다. 그러면 마법사가 표시됩니다.

  3. [데이터 소스 선택] 페이지에서 다음을 수행합니다.

    1. Data source(데이터 원본)SQL Server Native Client 11.0을 선택합니다.

    2. [서버 이름(Server name)] 상자에 RDS for SQL Server DB 인스턴스의 엔드포인트가 표시되는지 확인합니다.

    3. [SQL 서버 인증 사용]을 선택합니다. [사용자 이름(User name)] 및 [암호(Password)]에서 DB 인스턴스의 마스터 사용자 이름과 암호를 입력합니다.

    4. [데이터베이스] 상자에 데이터를 내보내려는 원본 데이터베이스가 표시되는지 확인합니다.

    5. Next(다음)를 선택합니다.

  4. [대상 선택] 페이지에서 다음을 수행합니다.

    1. Destination(대상)SQL Server Native Client 11.0을 선택합니다.

      참고

      다른 대상 데이터 원본을 사용할 수 있습니다. 여기에는 .NET Framework 데이터 공급자, OLE DB 공급자, SQL Server Native Client 공급자, ADO.NET 공급자, Microsoft Office Excel, Microsoft Office Access 및 Flat File 소스 등이 포함됩니다. 이러한 데이터 원본 중 하나를 대상으로 선택한 경우 나머지 4단계를 건너뛰십시오. 다음에 제공할 연결 정보에 대한 자세한 내용은 SQL Server 문서의 대상 선택을 참조하십시오.

    2. [서버 이름]에 대상 SQL Server DB 인스턴스의 서버 이름을 입력합니다.

    3. 알맞은 인증 유형을 선택합니다. 필요한 경우 사용자 이름과 암호를 입력합니다.

    4. [데이터베이스]에서 대상 데이터베이스의 이름을 선택하거나, [새로 만들기]를 선택하여 내보낸 데이터를 포함하는 새 데이터베이스를 만듭니다.

      새로 만들기를 선택하는 경우, 제공할 데이터베이스 정보에 대한 자세한 내용은 SQL Server 문서의 데이터베이스 생성을 참조하십시오.

    5. Next(다음)를 선택합니다.

  5. [테이블 복사 또는 쿼리] 페이지에서 [하나 이상의 테이블 또는 뷰에서 데이터 복사] 또는 [전송 데이터를 지정할 쿼리 작성]을 선택합니다. Next(다음)를 선택합니다.

  6. [전송 데이터를 지정할 쿼리 작성]을 선택한 경우 [원본 쿼리 지정] 페이지가 표시됩니다. SQL 쿼리를 입력하거나 붙여 넣은 다음, [구문 분석]을 선택하여 확인합니다. 쿼리 유효성 검사가 끝나면 [다음]을 선택합니다.

  7. [원본 테이블 및 뷰 선택] 페이지에서 다음을 수행합니다.

    1. 내보내려는 테이블과 뷰를 선택하거나 사용자가 입력한 쿼리가 선택되어 있는지 확인합니다.

    2. [매핑 편집]을 선택하고 데이터베이스 및 열 매핑 정보를 지정합니다. 자세한 내용은 SQL Server 문서의 열 매핑을 참조하십시오.

    3. (선택 사항) 내보낼 데이터의 미리 보기를 확인하려면 테이블, 뷰 또는 쿼리를 선택한 후 [미리 보기]를 선택합니다.

    4. Next(다음)를 선택합니다.

  8. [패키지 실행] 페이지에서 [즉시 실행]이 선택되어 있는지 확인합니다. Next(다음)를 선택합니다.

  9. [마법사 완료] 페이지에서 데이터 내보내기 세부 정보가 예상한 대로인지 확인합니다. [마침]을 클릭합니다.

  10. [실행이 성공했습니다.] 페이지에서 [닫기]를 선택합니다.

SQL Server 스크립트 생성 및 게시 마법사와 bcp 유틸리티

SQL Server 스크립트 생성 및 게시 마법사를 사용하여 데이터베이스 전체 또는 선택한 개체만을 위한 스크립트를 작성할 수 있습니다. 대상 SQL Server DB 인스턴스에서 이런 스크립트를 실행하여 스크립팅된 객체를 다시 만들 수 있습니다. 그런 다음, bcp 유틸리티를 사용하여 선택한 객체에 대한 데이터를 대상 DB 인스턴스로 대량으로 내보낼 수 있습니다. (테이블 이외의 객체를 포함한) 전체 데이터베이스를 이동하거나 두 SQL Server DB 인스턴스 사이에서 대량의 데이터를 이동하려는 경우에 이 마법사를 선택하는 것이 최선입니다. bcp 명령줄 구문에 대한 전체 설명은 Microsoft SQL Server 문서의 bcp 유틸리티를 참조하십시오.

SQL Server 스크립트 생성 및 게시 마법사는 Microsoft SQL Server Management Studio의 일부로 제공됩니다. 이 그래픽 SQL Server 클라이언트는 Express Edition을 제외한 모든 Microsoft SQL Server 버전에 포함됩니다. SQL Server Management Studio는 Windows 기반 애플리케이션으로만 사용할 수 있습니다. SQL Server Management Studio Express는 Microsoft에서 무료 다운로드로 사용할 수 있습니다.

SQL Server 스크립트 생성 및 게시 마법사와 bcp 유틸리티를 사용하여 데이터를 내보내려면
  1. SQL Server Management Studio에서 RDS for SQL Server DB 인스턴스에 연결합니다. 이 작업을 수행하는 자세한 방법은 Microsoft SQL Server 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결 단원을 참조하십시오.

  2. [개체 탐색기]에서 [데이터베이스] 노드를 확장하고 스크립팅하려는 데이터베이스를 선택합니다.

  3. 스크립트 파일을 만들려면 SQL Server 문서의 스크립트 생성 및 게시 마법사에 설명되어 있는 지침을 따르십시오.

  4. SQL Server Management Studio에서 대상 SQL Server DB 인스턴스에 연결합니다.

  5. 객체 탐색기(Object Explorer)에서 대상 SQL Server DB 인스턴스를 선택한 상태에서 파일(File) 메뉴에서 열기(Open)를 선택하고, 파일(File)을 선택한 후 스크립트 파일을 엽니다.

  6. 전체 데이터베이스를 스크립팅한 경우 스크립트에서 CREATE DATABASE 문을 검토하십시오. 데이터베이스가 원하는 위치 및 파라미터로 작성되고 있는지 확인하십시오. 자세한 정보는 SQL Server 문서의 CREATE DATABASE를 참조하십시오.

  7. 스크립트에서 데이터베이스 사용자를 만들 경우 대상 DB 인스턴스에 해당 사용자에 대한 서버 로그인이 존재하는지 확인합니다. 존재하지 않을 경우 해당 사용자에 대한 로그인을 만듭니다. 그렇지 않으면, 데이터베이스 사용자를 만들기 위해 스크립팅된 명령이 실패합니다. 자세한 정보는 SQL Server 문서의 로그인 생성을 참조하십시오.

  8. SQL 편집기 메뉴에서 !Execute를 선택하여 스크립트 파일을 실행하고 데이터베이스 개체를 생성합니다. 스크립트가 완료되면 모든 데이터베이스 개체가 예상한 대로 존재하는지 확인합니다.

  9. bcp 유틸리티를 사용하여 RDS for SQL Server DB 인스턴스에서 파일로 데이터를 내보냅니다. 명령 프롬프트를 열고 다음 명령을 입력합니다.

    bcp database_name.schema_name.table_name out data_file -n -S aws_rds_sql_endpoint -U username -P password

    앞에 나온 코드에는 다음 옵션이 포함됩니다.

    • table_name은 대상 데이터베이스에서 다시 만들어 이제 데이터를 채우려는 테이블 중 하나의 이름입니다.

    • data_file은 만들 데이터 파일의 전체 경로와 이름입니다.

    • -n은 대량 복사에서 복사되는 데이터의 기본 데이터 형식을 사용할 것임을 지정합니다.

    • -S는 데이터를 내보낼 원본 SQL Server DB 인스턴스를 지정합니다.

    • -U는 SQL Server DB 인스턴스에 연결할 때 사용할 사용자 이름을 지정합니다.

    • -P는 로 지정된 사용자의 암호를 지정합니다.-U

    다음은 명령의 예시입니다.

    bcp world.dbo.city out C:\Users\JohnDoe\city.dat -n -S sql-jdoe.1234abcd.us-west-2.rds.amazonaws.com,1433 -U JohnDoe -P ClearTextPassword

    내보낼 모든 테이블에 대한 데이터 파일을 확보할 때까지 이 단계를 반복하십시오.

  10. SQL Server 문서의 대량 데이터 가져오기 준비에 설명되어 있는 지침에 따라 대량 데이터 가져오기를 위해 대상 DB 인스턴스를 준비하십시오.

  11. SQL Server 문서의 대량 가져오기 및 내보내기 작업 정보에 설명되어 있는 성능 및 기타 문제를 고려한 후 사용할 대량 가져오기 방법을 결정하십시오.

  12. bcp 유틸리티를 사용하여 생성한 데이터 파일에서 데이터를 대량으로 가져옵니다. 그러려면 11단계에서 결정한 바에 따라, SQL Server 문서의 bcp 유틸리티를 사용하여 대량 데이터 가져오기 및 내보내기 또는 BULK INSERT 또는 OPENROWSET(BULK...)를 사용하여 대량 데이터 가져오기에 설명되어 있는 지침에 따르십시오.