본 게시물은 개인적인 의견으로 작성되었으니 절대적인 정보가 아닐 수 있습니다. 참고만 하시고 궁금한 사항이 있으시면 연락주세요.

티스토리 뷰

-- 이미 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

 

 

 

댓글
최근에 올라온 글
최근에 달린 댓글
글 보관함
Total
Today
Yesterday