개인블로그 : http://www.overtop.co.kr/tt2/378

 


오랜만에 Azure Camp에 참가하였습니다. SQL 2014를 구경해 보려고 참가를 했습니다.
이번 Camp 기간이 너무 촉박해서 많은 기능을 테스트를 하지 못해서 조금 아쉽습니다.
다음 회차에는 좀 더 많은 기능을 테스트 할 수 있는 환경이 되었으면 좋겠습니다.

 

시작합니다.

 

처음 사용자들에게는 Azure 로그인 후 서버에 접근하는 방법이 생소 할 수 있습니다.
아래와 같이 원격연결 기능을  제공 해주고 있습니다.
하단 "상태바" 연결을 클릭하시면 원격연결 관련 메시지 창이 나타나며, 열기하면 바로 원격연결 창이 뜨게 되고
저장하면 rdp 파일로 저장이 됩니다. 자주 사용하는 분들은 저장하여 사용하시면 편합니다.

이미지 1559.png

 

이미지 1560.png

 

 

위 기능으로 서버에 접속하여 평상시 원격업무와 같이 진행하시면 됩니다.

이번 캠프참석이유는 In Memory OLTP 기능 구현을 하고 싶어서 참가를 하였으나 해당 VM에 제공하는 SQL Server Edition이
Standard 이므로 테스트는 불가능하였습니다.
<제공된 서버정보>

이미지 1562.png


In Memory OLTP 기능은 64-bit Enterprise, Developer, or Evaluation edition of SQL Server 2014. 가능합니다.
[참고문서]
Requirements for Using Memory-Optimized Tables
http://msdn.microsoft.com/en-us/library/dn170449(v=sql.120).aspx

 

 

그래서 번외로 아래와 같이 기능 테스트를 진행해 보았습니다.


#.1 Buffer Pool Extension
[참고문서]
Buffer Pool Extension
http://msdn.microsoft.com/en-us/library/dn133176(v=sql.120).aspx


아래와 같이 설정을 ON/OFF 할 수 있습니다.

Step.1 Enable Buffer Pool Extension
 ALTER SERVER CONFIGURATION SET BUFFER POOL EXTENSION
 ON (FILENAME='D:\BPoolEx\Buffer_PoolEx.BPE', SIZE=8GB);
 GO
 -- 원하는 폴더 위치 및 크기를 정할 수 있으면 실제 해당 디스크는 SSD 볼륨디스크 권고함.
 이미지 1564.png
 
 
Step.2 View Buffer Pool Extension Info.
 SELLECT * FROM sys.dm_os_buffer_pool_extension_configuration;
 /*
 -- 설정전
 path file_id state state_description current_size_in_kb
 NULL -1 0 BUFFER POOL EXTENSION DISABLED NULL
 -- 설정후
 path file_id state state_description current_size_in_kb
 D:\BPoolEx\Buffer_PoolEx.BPE 0 5 BUFFER POOL EXTENSION CLEAN PAGE CACHING ENABLED 8388608
 */
 이미지 1557.png


 위 단계 시 아래와 같이 오류가 발생합니다. 메시지 읽어보면 이해될겁니다.
  이미지 1556.png 
        주의해서 설정하시면 될 것 같습니다.
 
 

Step.3 Monotor Buffer Pool Extension Page etc.
SELECT * FROM sys.dm_os_buffer_descriptors WHERE is_in_bpool_extension = 1;

 

이미지 1563.png

 


 

Step.4 Disable Buffer Pool Extension
 ALTER SERVER CONFIGURATION
     SET BUFFER POOL EXTENSION OFF;
 GO


이상 설정관련 스크립트로 테스트 해보았습니다.
실제 이 기능을 활성화하시고 성능점검을 하신 후 서비스에 적용하시기 바랍니다.
어떤 성능이 발휘될지 장담 못하겠습니다.
근데 메모리 가격과 SSD 디스크 가격 은 얼마나 날까요? 메모리 부족하여 SSD를 쓴다라는 말인데 과연
어떤 쓰임새가 있을지 생각해 봐야 할 것 같습니다.

 

#.2 백업파일 암호화 및 복원하기


[참고문서]
백업 암호화
http://msdn.microsoft.com/ko-kr/library/dn449489(v=sql.120).aspx
데이터베이스 암호화에 이은 백업파일 암호화 기능입니다. 자세한 내용은 msdn을 참고하시면 좋을것 같습니다.

아래의 스크립트를 순서대로 진행해보시면 이해가 되실 겁니다.


-- MASTER KEY 생성.
USE master
GO

CREATE MASTER KEY ENCRYPTION BY PASSWORD='Hello20!$';
GO

-- 인증서 생성.
CREATE CERTIFICATE BACKUPENCRYPTION
WITH SUBJECT='BACKUP ENCRYPTION CERTTIFICATE';
GO

-- 데이터 넣기
USE TD
GO
INSERT INTO TD01 SELECT 100;
GO 1000

-- 암호화 백업수행.
USE MASTER
GO

BACKUP DATABASE TD TO DISK='D:\SQLBAKCUPFILE\TD2.BAK'
 WITH ENCRYPTION (ALGORITHM=AES_256, SERVER CERTIFICATE=BACKUPENCRYPTION);
 -- CERTIFICATE=BACKUPENCRYPTION : 위에서 생성한 인증서이름.
GO
/*
-- 인증서가 백업이 안되었으니 백업을 하라는 경고 메시지입니다.
Warning: The certificate used for encrypting the database encryption key has not been backed up.
 You should immediately back up the certificate and the private key associated with the certificate.
 If the certificate ever becomes unavailable or if you must restore or
attach the database on another server, you must have backups of both the
certificate and the private key or you will not be able to open the database.

Processed 296 pages for database 'TD', file 'TD' on file 1.
Processed 2 pages for database 'TD', file 'TD_log' on file 1.
BACKUP DATABASE successfully processed 298 pages in 0.233 seconds (9.966 MB/sec).
*/

-- 복원해보자
USE MASTER
GO

-- 테스트한 데이터베이스 삭제
DROP DATABASE TD;
GO

-- 같은 서버이므로 백업 /삭제 해준다.
BACKUP CERTIFICATE BACKUPENCRYPTION TO FILE='D:\KEY\BACKUPENCRYPTION.CER'
 WITH PRIVATE KEY (FILE='D:\KEY\PK.KEY', ENCRYPTION BY PASSWORD='Pa$$w0rd');
GO

DROP CERTIFICATE BACKUPENCRYPTION;
GO

-- 다른 서버라고 생각하고 복원해보자.
RESTORE DATABASE TD FROM DISK='D:\SQLBAKCUPFILE\TD2.BAK';

/*
-- 서버인증서가 찾을 수 없다고 실패되었다.
Msg 33111, Level 16, State 3, Line 58
Cannot find server certificate with thumbprint '0xFEE15598106DF1DD95E8FBE1F0C0AFA91C051570'.
Msg 3013, Level 16, State 1, Line 58
RESTORE DATABASE is terminating abnormally.
*/

-- 인증서 복원
CREATE CERTIFICATE BACKUPENCRYPTION FROM FILE='D:\KEY\BACKUPENCRYPTION.CER'
 WITH PRIVATE KEY (FILE='D:\KEY\PK.KEY', DECRYPTION BY PASSWORD='Pa$$w0rd');
GO


-- 복원 재시도

RESTORE DATABASE TD FROM DISK='D:\SQLBAKCUPFILE\TD2.BAK';

/*
-- 정상 복원됨.
Processed 296 pages for database 'TD', file 'TD' on file 1.
Processed 2 pages for database 'TD', file 'TD_log' on file 1.
RESTORE DATABASE successfully processed 298 pages in 0.328 seconds (7.075 MB/sec).
*/

정상적으로 백업암호화 기능을 구현해봤습니다.
압축백업, 암호화백업의 기능을 실행할 경우 성능이슈의 대하여 점검할 필요는 있을 것 같습니다.
이상 2가지 기능을 구현해봤습니다.
너무 짧은 기간이라서 많은 기능을 테스트는 못하였네여. 다음 회차에는 많은걸 준비해서 참가하고 싶습니다.

그리고,
다음 캠프회차 진행시에는 해당 VM의 동일한 IP대역이면 좋을 것 같고, Enterprise Edition으로 제공해 주셨으면 좋겠습니다.
HA 기능을 테스트 할 수 있는 환경이면 좋을 것 같습니다.

아래 사항은 버그인지 궁금합니다.
CTP 버전에서도 그랬는데 RTM 도 똑같이 발생됩니다. 누가 확인해주시면 좋을 것 같아요.
Start Mode 에서 컴보박스 클릭하면 내용이 나오지 않습니다. 익스플로러 호환성때문에 웹사이트가 깨지는 현상과 흡사합니다.

이미지 1552.png


끝.


감사합니다.