다음을 통해 공유


CREATE DATABASE(Azure SQL 데이터베이스)

새 데이터베이스를 만듭니다. 새 데이터베이스를 만들려면 master 데이터베이스에 연결해야 합니다.

적용 대상: Azure SQL 데이터베이스. SQL Server 관련 구문은 CREATE DATABASE(SQL Server Transact-SQL)(영문)를 참조하세요.

구문

CREATE DATABASE database_name [ COLLATE collation_name ]
{
   (<edition_options> [, ...n]) 
}

<edition_options> ::= 
{
      MAXSIZE = { 100 MB | 500 MB | 1 | 5 | 10 | 20 | 30 … 150…500 } GB  
    | EDITION = { 'web' | 'business' | 'basic' | 'standard' | 'premium' } 
    | SERVICE_OBJECTIVE = { 'shared' | 'basic' | 'S0' | 'S1' | 'S2' | 'P1' | 'P2' | 'P3' } 
}
[;]

To copy a database:
CREATE DATABASE destination_database_name
     AS COPY OF [source_server_name.] source_database_name
[;]

인수

이 구문 다이어그램은 Azure SQL 데이터베이스에서 지원되는 인수를 보여 줍니다.

  • database_name
    새 데이터베이스의 이름입니다. 이 이름은 SQL 데이터베이스 서버에서 고유해야 하며 식별자에 대한 SQL Server 규칙을 따라야 합니다. 자세한 내용은 식별자를 참조하세요.

  • Collation_name
    데이터베이스의 기본 데이터 정렬을 지정합니다. 데이터 정렬 이름으로는 Windows 데이터 정렬 이름 또는 SQL 데이터 정렬 이름을 사용할 수 있습니다. 지정되지 않는 경우 해당 데이터베이스가 기본 데이터 정렬 SQL_Latin1_General_CP1_CI_AS에 할당됩니다.

    Windows 및 SQL 데이터 정렬 이름에 대한 자세한 내용은 COLLATE(Transact-SQL)를 참조하세요.

  • EDITION
    데이터베이스의 서비스 계층을 지정합니다. 사용 가능한 값은 'web', 'business', 'basic', 'standard' 및 'premium’입니다.

    EDITION이 지정되고 MAXSIZE는 지정되지 않은 경우 MAXSIZE는 버전에서 지원되는 가장 제한적인 크기로 설정됩니다.

  • MAXSIZE
    데이터베이스의 최대 크기를 지정합니다. MAXSIZE는 지정된 EDITION(서비스 계층)에 대해 유효해야 합니다. 지원되는 MAXSIZE 값 및 서비스 계층의 기본값(D)은 다음과 같습니다.

    MAXSIZE

    Web

    Business

    Basic

    Standard

    Premium

    100 MB

    500 MB

    1 GB

    √ (D)

    2 GB

    √ (D)

    5 GB

    10 GB

    √ (D)

    20 GB

    30 GB

    40 GB

    50 GB

    100 GB

    150 GB

    200 GB

    250 GB

    √ (D)

    300 GB

    400 GB

    500 GB

    √ (D)

    MAXSIZE 및 EDITION 인수에는 다음과 같은 규칙이 적용됩니다.

    • MAXSIZE 값(지정된 경우)은 위 표에 표시된 유효한 값이어야 합니다.

    • MAXSIZE가 5 GB보다 작게 설정되었고 EDITION이 지정되지 않은 경우 데이터베이스 버전은 자동으로 Web으로 설정됩니다.

    • MAXSIZE가 5 GB보다 크게 설정되었고 EDITION이 지정되지 않은 경우 데이터베이스 버전은 자동으로 Business로 설정됩니다.

    • EDITION이 지정되었지만 MAXSIZE가 지정되지 않은 경우 해당 버전에 대한 기본값이 사용됩니다. 예를 들어 EDITION이 Standard로 설정되었고 MAXSIZE가 지정되지 않았으면 MAXSIZE가 자동으로 500 MB로 설정됩니다.

    • MAXSIZE 또는 EDITION이 모두 지정되지 않았으면 EDITION이 Web으로 설정되고 MAXSIZE는 1 GB로 설정됩니다.

  • SERVICE_OBJECTIVE
    성능 수준을 지정합니다. 서비스 목표 설명과 크기, 버전 및 서비스 목표 조합 등의 정보에 대한 자세한 내용은 Azure SQL 데이터베이스 서비스 계층 및 성능 수준(영문)을 참조하세요. 지정된 SERVICE_OBJECTIVE를 EDITION에서 지원하지 않는 경우 오류가 표시됩니다.

  • destination_database_name
    데이터베이스 복사본으로 만들어진 데이터베이스의 이름입니다. 이 이름은 (대상) SQL 데이터베이스 서버에서 고유해야 하며 식별자에 대한 SQL Server 규칙을 따라야 합니다. 자세한 내용은 식별자를 참조하세요.

  • AS COPY OF [source_server_name.]source_database_name
    동일한 SQL 데이터베이스 서버 또는 다른 서버에 데이터베이스를 복사하기 위한 것입니다.

    참고

    AS COPY OF는 다른 어떤 CREATE DATABASE 인수와도 함께 사용할 수 없습니다.

    • source_server_name
      원본 데이터베이스가 위치한 SQL 데이터베이스 서버의 이름입니다. 이 매개 변수는 원본 데이터베이스와 대상 데이터베이스가 동일한 SQL 데이터베이스 서버에 있을 때 선택할 수 있습니다.

      참고: AS COPY OF 인수는 정규화된 고유 도메인 이름을 지원하지 않습니다. 즉, 서버의 정규화된 도메인 이름은 serverName.database.windows.net이며, 데이터베이스 복사 중 serverName만 사용합니다.

    • source_database_name
      복사할 데이터베이스의 이름입니다.

Azure SQL 데이터베이스는 CREATE DATABASE 구문 사용 시 다음 인수 및 옵션을 지원하지 않습니다.

  • <filespec> 및 <filegroup> 등 파일의 물리적 위치와 관련된 매개 변수입니다.

  • DB_CHAINING and TRUSTWORTHY와 같은 외부 액세스 옵션입니다.

  • 데이터베이스 연결

  • ENABLE_BROKER, NEW_BROKER 및 ERROR_BROKER_CONVERSATIONS 등의 서비스 브로커 옵션입니다.

  • 데이터베이스 스냅숏

인수 및 CREATE DATABASE 문에 대한 자세한 내용은 CREATE DATABASE(SQL Server Transact-SQL)를 참조하세요.

주의

Azure SQL 데이터베이스의 데이터베이스에는 데이터베이스가 만들어질 때 설정된 몇 가지 기본 설정이 있습니다. 이러한 기본 설정에 대한 자세한 내용은 DATABASEPROPERTYEX(Transact-SQL)의 값 목록을 참조하세요.

MAXSIZE에는 데이터베이스의 크기를 제한하는 기능이 있습니다. 데이터베이스 크기가 MAXSIZE에 도달하면 40544 오류 코드가 나타납니다. 이 경우, 데이터를 삽입 또는 업데이트하거나 새 개체(예: 테이블, 저장된 프로시저, 뷰 및 함수)를 만들 수 없습니다. 그러나 데이터 읽기 및 삭제, 테이블 자르기, 테이블 및 인덱스 삭제, 인덱스 다시 작성은 가능합니다. 그런 다음 MAXSIZE를 현재 데이터베이스 크기보다 큰 값으로 업데이트하거나 일부 데이터를 삭제하여 저장소 공간을 비울 수 있습니다. 새 데이터 삽입까지 최대 15분을 지연시킬 수 있습니다.

중요

CREATE DATABASE 문은 Transact-SQL 일괄 처리의 유일한 문이어야 합니다.CREATE DATABASE 문을 실행하려면 master 데이터베이스에 연결해야 합니다.

나중에 크기, 버전 또는 서비스 목표 값을 변경하려면 ALTER DATABASE(Transact-SQL)(영문)을 참조하세요.

데이터베이스 복사본

CREATE DATABASE 문을 사용한 데이터베이스 복사는 비동기 작업입니다. 따라서 전체 복사 프로세스가 끝날 때까지 SQL 데이터베이스 서버에 연결할 필요가 없습니다. CREATE DATABASE 문은 sys.databases에서 항목이 만들어졌지만 데이터베이스 복사 작업이 완료되기 전에 사용자에게 컨트롤을 반환합니다. 즉, 데이터베이스 복사가 진행 중인 동안에 CREATE DATABASE 문을 반환합니다. sys.dm_database_copies 및 sys.databases 뷰를 사용하여 복사 프로세스를 모니터링할 수 있습니다. 데이터베이스 복사를 포함해서 데이터베이스 작업의 상태를 반환하는 것뿐만 아니라 sys.dm_operations_status 보기도 사용할 수 있습니다. 복사 프로세스가 완료되면 트랜잭션에서 대상 데이터베이스가 원본 데이터베이스와 일치하게 됩니다. SQL 데이터베이스에서 데이터베이스를 복사하는 방법에 대한 자세한 내용은 Azure SQL 데이터베이스에서 데이터베이스 복사(영문)를 참조하세요.

참고

데이터베이스가 새 데이터베이스에 복사되면 원본 데이터베이스와 동일한 서비스 계층 및 성능 수준을 사용해서 새 데이터베이스가 만들어집니다.예를 들어 P1 성능 수준을 포함하는 Premium 데이터베이스의 복사본은 P1 성능 수준을 포함하는 새로운 Premium 데이터베이스로 만들어집니다.

AS COPY OF 인수를 사용할 때는 다음 구문 및 의미 체계 규칙에 따라야 합니다.

  • 원본 서버 이름과 복사 대상 서버의 이름은 서로 같아도 되고 달라도 됩니다. 이름이 동일한 경우 이 매개 변수는 선택적이며, 현재 세션의 서버 컨텍스트가 기본값으로 사용됩니다.

  • 원본 및 대상 데이터베이스 이름은 고유하게 지정해야 하며 식별자에 대한 SQL Server 규칙을 따라야 합니다. 자세한 내용은 식별자를 참조하세요.

  • CREATE DATABASE 문은 새 데이터베이스가 만들어질 SQL 데이터베이스 서버의 master 데이터베이스 컨텍스트 내에서 실행되어야 합니다.

  • 복사를 마친 뒤에는 대상 데이터베이스를 독립적인 데이터베이스로 관리해야 합니다. 원본 데이터베이스와 별도로 새 데이터베이스에 대해 ALTER DATABASE 및 DROP DATABASE 문을 실행할 수 있습니다. 또한 새 데이터베이스를 다른 새 데이터베이스에 복사할 수 있습니다.

  • 복사 프로세스가 완료될 때까지 대상 데이터베이스에 액세스할 수 없습니다. sys.dm_operations_status를 쿼리하거나 sys.databases 뷰의 state 열 또는 대상 SQL 데이터베이스 서버에 있는 sys.dm_database_copies 뷰의 percentage_complete 열을 쿼리하여 복사 프로세스의 상태를 확인할 수 있습니다.

    복사 프로세스 도중 sys.databases 뷰의 state 열은 대상 SQL 데이터베이스 서버에 Copying을 표시합니다. 또한 sys.dm_database_copies의 percentange_complete 열은 대상 서버에 복사된 바이트 비율을 표시합니다.

  • 데이터베이스 복사가 진행 중인 동안에도 계속해서 원본 데이터베이스에 액세스할 수 있습니다.

사용 권한

프로비전 프로세스로 만든 서버 수준의 보안 주체 로그인 또는 dbmanager 데이터베이스 역할 구성원만 데이터베이스를 만들 수 있습니다. 원본 및 대상 논리 서버는 동일한 Azure 구독에 포함되어야 합니다.