

# 트랜잭션 로그 백업 복사
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying"></a>

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

**참고**  
`rds_tlog_backup_copy_to_S3` 저장 프로시저는 `is_log_chain_broken` 속성에 대한 검증 없이 트랜잭션 로그 백업을 복사합니다. 따라서 `rds_tlog_backup_copy_to_S3` 저장 프로시저를 실행하기 전에 끊어지지 않은 로그 체인을 수동으로 확인해야 합니다. 자세한 설명은 [트랜잭션 로그 백업 로그 체인 검증](#USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain)을 참조하세요.

**Example `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 키. AWS 관리형 KMS 키로 DB 인스턴스를 암호화하는 경우 고객 관리형 키를 생성해야 합니다. 고객 관리형 키로 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` 저장 프로시저의 유효한 입력 파라미터 조합입니다.



| 제공된 파라미터 | 예상 결과 | 
| --- | --- | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3  <br />	@db_name = 'testdb1',<br />            @backup_file_start_time='2022-08-23 00:00:00',<br />            @backup_file_end_time='2022-08-30 00:00:00';</pre>  | 제공된 `backup_file_start_time`과 `backup_file_end_time` 범위 사이에 존재하는 지난 7일간의 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 '2022-08-23 00:00:00'과 '2022-08-30 00:00:00' 사이에 생성된 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />           @db_name = 'testdb1',<br />           @backup_file_start_time='2022-08-23 00:00:00';</pre>  | 제공된 `backup_file_start_time`에서 시작하는 지난 7일간의 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 '2022-08-23 00:00:00'부터 최신 트랜잭션 로그 백업까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />          @db_name = 'testdb1',<br />          @backup_file_end_time='2022-08-30 00:00:00';</pre>  | 제공된 `backup_file_end_time`까지의 지난 7일간의 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 '2022-08-23 00:00:00'부터 '2022-08-30 00:00:00'까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />         @db_name='testdb1',<br />         @starting_lsn =1490000000040007,<br />         @ending_lsn =  1490000000050009;</pre>  | 제공된 `starting_lsn`과 `ending_lsn` 범위 사이의 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 LSN 범위가 1490000000040007에서 1490000000050009 사이인 지난 7일간의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @starting_lsn =1490000000040007;</pre>  |  제공된 `starting_lsn`에서 시작하는 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 LSN 1490000000040007부터 최신 트랜잭션 로그 백업까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />        @db_name='testdb1',<br />        @ending_lsn  =1490000000050009;</pre>  |  제공된 `ending_lsn`까지 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 지난 7일부터 시작해 lsn 1490000000050009까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000,<br />       @rds_backup_ending_seq_id= 5000;</pre>  |  제공된 `rds_backup_starting_seq_id`과 `rds_backup_ending_seq_id` 범위 사이에 존재하는 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 지난 7일부터 시작하여 seq\_id 2000부터 seq\_id 5000까지의 제공된 rds 백업 시퀀스 id 범위 내에 있는 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />       @db_name='testdb1',<br />       @rds_backup_starting_seq_id= 2000;</pre>  |  제공된 `rds_backup_starting_seq_id`에서 시작하는 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 seq\_id 2000부터 시작하여 최신 트랜잭션 로그 백업까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_ending_seq_id= 5000;</pre>  |  제공된 `rds_backup_ending_seq_id`까지 지난 7일간의 사용 가능한 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 지난 7일부터 시작하여 seq\_id 5000까지의 트랜잭션 로그 백업을 복사합니다. | 
|  <pre>exec msdb.dbo.rds_tlog_backup_copy_to_S3<br />      @db_name='testdb1',<br />      @rds_backup_starting_seq_id= 2000;<br />      @rds_backup_ending_seq_id= 2000;</pre>  |  지난 7일 내에 사용 가능한 경우 제공된 `rds_backup_starting_seq_id`와 함께 단일 트랜잭션 로그 백업을 복사합니다. 이 예에서 저장 프로시저는 seq\_id가 2000인 단일 트랜잭션 로그 백업을 복사합니다(지난 7일 내에 존재하는 경우). | 

## 트랜잭션 로그 백업 로그 체인 검증
<a name="USER.SQLServer.AddlFeat.TransactionLogAccess.Copying.LogChain"></a>

 트랜잭션 로그 백업 액세스가 구성된 데이터베이스는 자동 백업 보존이 활성화되어 있어야 합니다. 자동 백업 보존은 DB 인스턴스의 데이터베이스를 `FULL` 복구 모델로 설정합니다. 데이터베이스의 특정 시점 복원을 지원하려면 데이터베이스 복구 모델을 변경하지 마세요. 로그 체인이 끊어질 수 있습니다. 데이터베이스를 `FULL` 복구 모델로 설정한 상태로 유지하는 것이 좋습니다.

트랜잭션 로그 백업을 복사하기 전에 로그 체인을 수동으로 검증하려면 `rds_fn_list_tlog_backup_metadata` 함수를 호출하고 `is_log_chain_broken` 열의 값을 검토하세요. 값이 ‘1’이면 현재 로그 백업과 이전 로그 백업 간 로그 체인이 끊어졌음을 나타냅니다.

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

![끊어진 로그 체인을 보여 주는 rds_fn_list_tlog_backup_metadata 출력.](https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/images/sql_accesstransactionlogs_logchain_error.png)


일반적 로그 체인에서는 주어진 rds\_sequence\_id의 first\_lsn 로그 시퀀스 번호(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 설명서의 [트랜잭션 로그 논리적 아키텍처](https://learn.microsoft.com/en-us/sql/relational-databases/sql-server-transaction-log-architecture-and-management-guide?view=sql-server-ver15#Logical_Arch)를 참조하세요.