SQL AlwaysON AG

SQL TDE 활성화된 DB를 가용성그룹에 추가하는 방법

AWS-in 2016. 2. 16. 16:04

-- 이미 TDE 된 데이터베이스를 가용성그룹에 추가하는 방법

-- UI로는 지원을 하지 않는다.

   

[시나리오]

TD 사용자데이터베이스는 이미 데이터베이스암호화가 된 상태이다.

이 데이터베이스를 가용성그룹에 추가하는 방법을 알아보자.

   

[Action Plan]

 

-- Primary Replica

1. TDE 활성화 데이터베이스 확인

    USE MASTER;

    GO

    SELECT db.name,db.is_encrypted,dm.encryption_state,dm.percent_complete,

    dm.key_algorithm,dm.key_length

    FROM sys.databases db

    LEFT OUTER JOIN

    sys.dm_database_encryption_keys dm

    ON db.database_id = dm.database_id;

    GO

 

    /*

    TD    1    3    0    AES    256

    */

 

2. 주서버에서 가용성 그룹에 TD 데이터베이스 추가한다.

    use master

    go

 

    ALTER AVAILABILITY GROUP AG_TD

    ADD DATABASE TD

 

    -- 이 상태는 Primary 만 추가된 상태이며, Secondary에서는 느낌표 표시가 되어 있다.

 

3. 백업, 전체/로그 백업

    

    backup database TD to disk = 'Z:\SQLData\TD.bak'

    backup log TD to disk='Z:\SQLData\TD_log.trn'

 

 

6. 데이터 확인하자

    use TD

    go

    create table tbl(col1 int)

 

8. 암호화 상태 확인하자.

    USE MASTER;

    GO

    SELECT db.name,db.is_encrypted,dm.encryption_state,dm.percent_complete,

    dm.key_algorithm,dm.key_length

    FROM sys.databases db

    LEFT OUTER JOIN

    sys.dm_database_encryption_keys dm

    ON db.database_id = dm.database_id;

    GO

 

 

-- Secondary Replica

1-1. Primary Replica 의 DMK 와 인증서를 Secondary Replica 에서

    똑같이 생성을 하자.

 

4. 복원하자.

 

    restore database TD from disk = 'Z:\SQLData\TD.bak' with norecovery

    restore log TD from disk='Z:\SQLData\TD_log.trn' with norecovery

 

5. 가용성그룹에 추가하자

 

    USE master;

    go

    ALTER DATABASE TD SET HADR AVAILABILITY GROUP = AG_TD;

 

 

7. 암호화 상태 확인하자

 

    USE MASTER;

    GO

    SELECT db.name,db.is_encrypted,dm.encryption_state,dm.percent_complete,

    dm.key_algorithm,dm.key_length

    FROM sys.databases db

    LEFT OUTER JOIN

    sys.dm_database_encryption_keys dm

    ON db.database_id = dm.database_id;

    GO