트랜잭션 로그 백업 복사하기

트랜잭션 로그 백업 복사하기

특정 데이터베이스의 사용 가능한 트랜잭션 로그 백업을 Amazon S3 버킷으로 복사하려면 rds_tlog_backup_copy_to_S3 저장 프로시저를 호출하면 돼요. 이 프로시저는 트랜잭션 로그 백업을 복사하는 새 작업을 시작해요.

출처: 문서

본문

개별 데이터베이스에 대해 사용 가능한 트랜잭션 로그 백업 세트를 Amazon S3 버킷으로 복사하려면 rds_tlog_backup_copy_to_S3 저장 프로시저를 호출하세요. 이 프로시저는 트랜잭션 로그 백업을 복사하는 새 작업을 시작해요.

참고: rds_tlog_backup_copy_to_S3 저장 프로시저는 is_log_chain_broken 속성을 검증하지 않고 트랜잭션 로그 백업을 복사해요. 따라서 이 프로시저를 실행하기 전에 로그 체인이 끊어지지 않았는지 수동으로 확인해야 해요. 자세한 내용은 트랜잭션 로그 백업 로그 체인 검증하기를 참조하세요.

rds_tlog_backup_copy_to_S3 저장 프로시저 사용 예시:

exec msdb.dbo.rds_tlog_backup_copy_to_S3
	@db_name='mydatabasename',
	[@kms_key_arn='arn:aws:kms:region:account-id:key/key-id'],
	[@backup_file_start_time='2022-09-01 01:00:15'],
	[@backup_file_end_time='2022-09-01 21:30:45'],
	[@starting_lsn=149000000112100001],
	[@ending_lsn=149000000120400001],
	[@rds_backup_starting_seq_id=5],
	[@rds_backup_ending_seq_id=10];

다음 입력 매개변수를 사용할 수 있어요:

매개변수 설명
@db_name 트랜잭션 로그 백업을 복사할 데이터베이스의 이름이에요.
@kms_key_arn 고객 관리형 KMS 키예요. DB 인스턴스를 AWS 관리형 KMS 키로 암호화한다면 고객 관리형 키를 생성해야 해요. DB 인스턴스를 고객 관리형 키로 암호화한다면 동일한 KMS 키 ARN을 사용할 수 있어요.
@backup_file_start_time rds_fn_list_tlog_backup_metadata 함수의 [backup_file_time_utc] 열에서 제공되는 UTC 타임스탬프예요.
@backup_file_end_time rds_fn_list_tlog_backup_metadata 함수의 [backup_file_time_utc] 열에서 제공되는 UTC 타임스탬프예요.
@starting_lsn rds_fn_list_tlog_backup_metadata 함수의 [starting_lsn] 열에서 제공되는 로그 시퀀스 번호(LSN)예요.
@ending_lsn rds_fn_list_tlog_backup_metadata 함수의 [ending_lsn] 열에서 제공되는 로그 시퀀스 번호(LSN)예요.
@rds_backup_starting_seq_id rds_fn_list_tlog_backup_metadata 함수의 [rds_backup_seq_id] 열에서 제공되는 시퀀스 ID예요.
@rds_backup_ending_seq_id rds_fn_list_tlog_backup_metadata 함수의 [rds_backup_seq_id] 열에서 제공되는 시퀀스 ID예요.

시간, LSN 또는 시퀀스 ID 매개변수 세트 중 하나를 지정할 수 있어요. 매개변수 세트 중 하나만 필요해요.

또한 어떤 세트에서든 단일 매개변수만 지정할 수도 있어요. 예를 들어 backup_file_end_time 매개변수 값만 제공하면 7일 제한 내에서 해당 시점 이전의 모든 사용 가능한 트랜잭션 로그 백업 파일이 Amazon S3 버킷으로 복사돼요.

다음은 rds_tlog_backup_copy_to_S3 저장 프로시저의 유효한 입력 매개변수 조합이에요.

제공된 매개변수 예상 결과
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_start_time='2022-08-23 00:00:00', @backup_file_end_time='2022-08-30 00:00:00'; 지난 7일 중에서 제공된 backup_file_start_time과 backup_file_end_time 범위 사이에 존재하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 '2022-08-23 00:00:00'과 '2022-08-30 00:00:00' 사이에 생성된 트랜잭션 로그 백업을 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_start_time='2022-08-23 00:00:00'; 지난 7일 중에서 제공된 backup_file_start_time부터 시작하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 '2022-08-23 00:00:00'부터 최신 트랜잭션 로그 백업까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name = 'testdb1', @backup_file_end_time='2022-08-30 00:00:00'; 지난 7일 중에서 제공된 backup_file_end_time까지의 트랜잭션 로그 백업을 복사해요. 이 예시에서는 '2022-08-23 00:00:00'부터 '2022-08-30 00:00:00'까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @starting_lsn =1490000000040007, @ending_lsn = 1490000000050009; 지난 7일 중에서 제공된 starting_lsn과 ending_lsn 범위 사이에 존재하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 LSN 범위가 1490000000040007에서 1490000000050009 사이인 지난 7일의 트랜잭션 로그 백업을 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @starting_lsn =1490000000040007; 지난 7일 중에서 제공된 starting_lsn부터 시작하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 LSN 1490000000040007부터 최신 트랜잭션 로그 백업까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @ending_lsn =1490000000050009; 지난 7일 중에서 제공된 ending_lsn까지의 트랜잭션 로그 백업을 복사해요. 이 예시에서는 지난 7일부터 LSN 1490000000050009까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000, @rds_backup_ending_seq_id= 5000; 지난 7일 중에서 제공된 rds_backup_starting_seq_id와 rds_backup_ending_seq_id 범위 사이에 존재하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 지난 7일부터 시작해 seq_id 2000부터 5000까지의 RDS 백업 시퀀스 ID 범위 내 트랜잭션 로그 백업을 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000; 지난 7일 중에서 제공된 rds_backup_starting_seq_id부터 시작하는 트랜잭션 로그 백업을 복사해요. 이 예시에서는 seq_id 2000부터 최신 트랜잭션 로그 백업까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_ending_seq_id= 5000; 지난 7일 중에서 제공된 rds_backup_ending_seq_id까지의 트랜잭션 로그 백업을 복사해요. 이 예시에서는 지난 7일부터 seq_id 5000까지 복사해요.
sql exec msdb.dbo.rds_tlog_backup_copy_to_S3 @db_name='testdb1', @rds_backup_starting_seq_id= 2000; @rds_backup_ending_seq_id= 2000; 지난 7일 내에 있다면 제공된 rds_backup_starting_seq_id를 가진 단일 트랜잭션 로그 백업을 복사해요. 이 예시에서는 지난 7일 내에 존재한다면 seq_id 2000을 가진 단일 트랜잭션 로그 백업을 복사해요.

트랜잭션 로그 백업 로그 체인 검증하기

트랜잭션 로그 백업 액세스용으로 구성된 데이터베이스는 자동 백업 보존이 활성화되어 있어야 해요. 자동 백업 보존은 DB 인스턴스의 데이터베이스를 FULL 복구 모델로 설정해요. 데이터베이스의 시점 복원을 지원하려면 복구 모델을 변경하지 마세요. 복구 모델을 변경하면 로그 체인이 끊어질 수 있어요. 데이터베이스를 FULL 복구 모델로 유지하는 것을 권장해요.

트랜잭션 로그 백업을 복사하기 전에 로그 체인을 수동으로 검증하려면 rds_fn_list_tlog_backup_metadata 함수를 호출하고 is_log_chain_broken 열의 값을 확인하세요. 값이 "1"이면 현재 로그 백업과 이전 로그 백업 사이에 로그 체인이 끊어졌다는 뜻이에요.

다음 예시는 rds_fn_list_tlog_backup_metadata 프로시저의 출력에서 끊어진 로그 체인을 보여줘요.

정상적인 로그 체인에서는 주어진 rds_sequence_id의 first_lsn 값이 이전 rds_sequence_id의 last_lsn 값과 일치해야 해요. 이미지에서 rds_sequence_id 45는 first_lsn 값이 90987인데, 이전 rds_sequence_id 44의 last_lsn 값 90985와 일치하지 않아요.

SQL Server 트랜잭션 로그 아키텍처와 로그 시퀀스 번호에 대한 자세한 내용은 Microsoft SQL Server 문서의 Transaction Log Logical Architecture를 참조하세요.

더 알아보기 (Learn more)