Amazon RDS에서 실행되는 Microsoft SQL Server DB 인스턴스의 tempdb 데이터베이스에 액세스 - Amazon Relational Database Service

Amazon RDS에서 실행되는 Microsoft SQL Server DB 인스턴스의 tempdb 데이터베이스에 액세스

Amazon RDS에서 실행되는 Microsoft SQL Server DB 인스턴스의 tempdb 데이터베이스에 액세스할 수 있습니다. Microsoft SQL Server Management Studio(SSMS)를 통한 Transact-SQL 또는 기타 표준 SQL 클라이언트 애플리케이션을 사용하여 tempdb에서 코드를 실행할 수 있습니다. DB 인스턴스 연결에 대한 자세한 내용은 Microsoft SQL Server 데이터베이스 엔진을 실행하는 DB 인스턴스에 연결 단원을 참조하십시오.

DB 인스턴스의 마스터 사용자는 CONTROL 데이터베이스 옵션을 수정할 수 있도록 tempdb에 대한 tempdb 액세스 권한을 부여받습니다. 마스터 사용자는 tempdb 데이터베이스의 데이터베이스 소유자가 아닙니다. 필요한 경우 마스터 사용자는 다른 사용자가 CONTROL 데이터베이스 옵션을 수정할 수 있도록 이들에게 tempdb 액세스 권한을 부여할 수 있습니다.

참고

tempdb 데이터베이스에서 Database Console Commands(DBCC)를 실행할 수 없습니다.

tempdb 데이터베이스 옵션 수정

Amazon RDS DB 인스턴스에 있는 tempdb 데이터베이스의 데이터베이스 옵션을 수정할 수 있습니다. 수정할 수 있는 옵션에 대한 자세한 내용은 Microsoft 설명서의 tempdb 데이터베이스를 참조하십시오.

최대 파일 크기 옵션과 같은 데이터베이스 옵션은 DB 인스턴스를 다시 시작한 후에도 유지됩니다. 데이터를 가져올 때 성능을 최적화하고 스토리지 부족을 방지하도록 데이터베이스 옵션을 수정할 수 있습니다.

데이터를 가져올 때 성능 최적화

대량의 데이터를 DB 인스턴스로 가져올 때 성능을 최적화하려면 tempdb 데이터베이스의 SIZEFILEGROWTH 속성을 큰 수로 설정합니다. tempdb를 최적화하는 방법에 대한 자세한 내용은 Microsoft 설명서의 tempdb 성능 최적화를 참조하십시오.

다음은 크기를 100GB로, 파일 증가를 10%로 설정한 예입니다.

alter database[tempdb] modify file (NAME = N'templog', SIZE=100GB, FILEGROWTH = 10%)

스토리지 문제 방지

tempdb 데이터베이스에서 사용 가능한 모든 디스크 공간을 사용하는 것을 방지하려면 MAXSIZE 속성을 설정합니다. 다음은 속성을 2048MB로 설정한 예입니다.

alter database [tempdb] modify file (NAME = N'templog', MAXSIZE = 2048MB)

tempdb 데이터베이스 축소

Amazon RDS DB 인스턴스의 tempdb 데이터베이스는 두 가지 방법으로 축소할 수 있습니다. rds_shrink_tempdbfile 프로시저를 사용하거나, SIZE 속성을 설정하면 됩니다.

rds_shrink_tempdbfile 프로시저 사용

Amazon RDS 프로시저 msdb.dbo.rds_shrink_tempdbfile를 사용하여 tempdb 데이터베이스를 축소할 수 있습니다. rds_shrink_tempdbfile에 대한 CONTROL 액세스 권한이 있는 경우에만 tempdb을 호출할 수 있습니다. rds_shrink_tempdbfile을 호출해도 DB 인스턴스에 가동 중지가 발생하지 않습니다.

rds_shrink_tempdbfile 프로시저에는 다음과 같은 파라미터가 있습니다.

파라미터 이름 데이터 형식 기본값 필수 설명

@temp_filename

SYSNAME

필수

축소할 파일의 논리적 이름입니다.

@target_size

int

null

선택 사항

파일의 새로운 크기(MB)입니다.

다음 예제에서는 tempdb 데이터베이스의 파일 이름을 가져옵니다.

use tempdb; GO select name, * from sys.sysfiles; GO

다음 예제에서는 tempdb이라는 test_file 데이터베이스 파일을 축소하고 새로운 10MB 크기를 요청합니다.

exec msdb.dbo.rds_shrink_tempdbfile @temp_filename = N'test_file', @target_size = 10;

SIZE 속성 설정

tempdb 속성을 설정한 다음 DB 인스턴스를 다시 시작하여 SIZE 데이터베이스를 축소할 수도 있습니다. DB 인스턴스를 다시 시작하는 방법에 대한 자세한 내용은 DB 인스턴스 재부팅 단원을 참조하십시오.

다음은 SIZE 속성을 1024MB로 설정한 예입니다.

alter database [tempdb] modify file (NAME = N'templog', SIZE = 1024MB)

다중 AZ 배포에 대한 TempDB 구성

RDS for SQL Server DB 인스턴스가 데이터베이스 미러링(DBM) 또는 상시 작동 가용성 그룹(AG)을 사용하는 다중 AZ 배포에 있는 경우, tempdb 데이터베이스 사용에 대한 다음 고려 사항을 유념하세요.

기본 DB 인스턴스에서 보조 DB 인스턴스로 tempdb 데이터를 복제할 수 없습니다. 보조 DB 인스턴스로 장애 조치하면 보조 DB 인스턴스에 있는 tempdb는 비어 있게 됩니다.

파일 크기 조정 및 자동 증가 설정을 비롯한 tempdb 데이터베이스 옵션의 구성을 기본 DB 인스턴스에서 보조 DB 인스턴스로 동기화할 수 있습니다. tempDB 구성 동기화는 모든 RDS for SQL Server 버전에서 지원됩니다. 다음 저장 프로시저를 사용하여 tempdb 구성의 자동 동기화를 켤 수 있습니다.

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'TempDbFile';
중요

rds_set_system_database_sync_objects 저장 프로시저를 사용하기 전에 보조 DB 인스턴스가 아닌 기본 DB 인스턴스에서 기본 tempdb 구성을 설정했는지 확인하세요. 보조 DB 인스턴스에서 구성을 변경한 경우 자동 동기화를 켜면 기본 tempdb 구성이 삭제될 수 있습니다.

다음 기능을 사용하면 tempdb 구성 자동 동기화가 켜져 있는지 확인할 수 있습니다.

SELECT * from msdb.dbo.rds_fn_get_system_database_sync_objects();

tempdb 구성 자동 동기화가 켜져 있는 경우 object_class 필드에 반환 값이 표시됩니다. 끄면 값이 반환되지 않습니다.

다음 함수를 사용하여 객체가 마지막으로 동기화된 시간(UTC 시간)을 찾을 수 있습니다.

SELECT * from msdb.dbo.rds_fn_server_object_last_sync_time();

예를 들어, 01:00에 tempdb 구성을 수정한 다음 rds_fn_server_object_last_sync_time 함수를 실행하는 경우 에서 반환되는 값은 01:00 last_sync_time 이후여야 하며, 이는 자동 동기화가 발생했음을 나타냅니다.

SQL Server 에이전트 작업 복제를 함께 사용하는 경우 @object_type 파라미터에 SQL 에이전트 작업과 tempdb 구성을 제공하여 둘 모두에 대해 복제를 활성화할 수 있습니다.

EXECUTE msdb.dbo.rds_set_system_database_sync_objects @object_types = 'SQLAgentJob,TempDbFile';

SQL Server 에이전트 작업 복제에 대한 자세한 내용은 SQL Server 에이전트 작업 복제 켜기 섹션을 참조하세요.

tempdb 구성 변경 내용이 자동으로 동기화되도록 rds_set_system_database_sync_objects 저장 프로시저를 사용하는 대신 다음과 같은 수동 방법 중 하나를 사용할 수 있습니다.

참고

rds_set_system_database_sync_objects 저장 프로시저를 사용하여 tempdb 구성의 자동 동기화를 켤 수 있습니다. 자동 동기화를 사용하면 tempdb 구성을 변경할 때마다 이러한 수동 작업을 수행할 필요가 없습니다.

  • 먼저 DB 인스턴스를 수정하고 다중 AZ를 비활성화한 다음 tempdb를 수정하고 마지막으로 다중 AZ를 다시 활성화합니다. 이 방법을 사용하는 경우 가동 중지가 없습니다.

    자세한 내용은 Amazon RDS DB 인스턴스 수정 섹션을 참조하세요.

  • 먼저 원래의 기본 인스턴스에서 tempdb를 수정한 다음, 수동으로 장애 조치를 수행하고, 마지막으로 새 기본 인스턴스에서 tempdb를 수정합니다. 이 방법을 사용하는 경우 가동 중지가 있습니다.

    자세한 내용은 DB 인스턴스 재부팅 섹션을 참조하세요.