How to check if Azure SQL is using In-Memory

-          Azure SQL에서 In-Memory 사용하는지 확인하는 방법

-          Premium Tier에서 Standard Tier 변경 프리미엄 서비스 사용 확인

 

·         Version : AzureSQL

 

Azure SQL 사용시 Tier 마다 지원되는 기능이 조금씩 다르다. 그중 P Tier Premium 서비스로 In-Memroy 테이블이 지원된다. 이번 포스트에서는 P Tier에서 하위 S Tier 변경 In-Memory 서비스를 사용하고 있는 테이블이 있는지 확인하는 방법에 대해서 알아본다.

 

·         Service Tier : https://docs.microsoft.com/en-us/azure/sql-database/sql-database-service-tiers

Basic

Standard

Premium

Target workload

Development and production

Development and production

Development and production

Uptime SLA

99.99%

99.99%

99.99%

Backup retention

7 days

35 days

35 days

CPU

Low

Low, Medium, High

Medium, High

IO throughput (approximate)

2.5 IOPS per DTU

2.5 IOPS per DTU

48 IOPS per DTU

IO latency (approximate)

5 ms (read), 10 ms (write)

5 ms (read), 10 ms (write)

2 ms (read/write)

Columnstore indexing

N/A

S3 and above

Supported

In-memory OLTP

N/A

N/A

Supported

 

아래 스크립트를 실행 하면 현재 Azure SQL에서 In-Memory OLTP 지원하는지 확인할 있다. 1 반환되면 지원함을 의미한다.

SELECT DatabasePropertyEx(DB_NAME(), 'IsXTPSupported');

 


 

아래 스크립트는 Tier 다운그레이드할때 In-Memory OLTP 제거 해야하는 테이블   컴파일된 모듈을 나타낸다.

SELECT * FROM sys.tables WHERE is_memory_optimized=1

SELECT * FROM sys.table_types WHERE is_memory_optimized=1

SELECT * FROM sys.sql_modules WHERE uses_native_compilation=1

 


 

 

[참고자료]

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-in-memory

2018-03-27 / 강성욱 / http://sqlmvp.kr / http://sqlangeles.com

 

SQL Azure, In-Memory OLTP, Azure SQL Downgrade, How to check Azure SQL down grade




Azure SQL Server AlwaysOn Listener 연결 오류 (서브넷 구성 오류)

 

·         Version : SQL Server on Azure

 

SQL Server Azure 환경에서 리스너 IP 대한 서브넷 마스크가 잘못 구성된 경우 Azure AlwaysOn Listener 연결할 없다는 오류가 발생한다.

“A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 – Error Locating Server/Instance Specified) (Microsoft SQL Server, Error: -1)”

 

Azure AlwaysOn Availability Groups 대한 ILB 리스너 구성을 Powershell 스크립트로 구성할때  온라인 상태로 만들기 전에 리스너를 구성하는 단계가 있다.

# Define variables

$ClusterNetworkName = “<MyClusterNetworkName>” # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)

$IPResourceName = “<IPResourceName>” # the IP Address resource name

$ILBIP = “<X.X.X.X>” # the IP Address of the Internal Load Balancer (ILB)

 

Import-Module FailoverClusters

 

Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple @{Address=$ILBIP;ProbePort=59999;SubnetMask=255.255.255.255;Network=$ClusterNetworkName;EnableDhcp=0}

 

위의 마지막 행에서 서브넷 마스크IP 255.255.255.255이다. 그러나 많은 사용자들은 리스너IP 위해 서브넷 마스크와 일치하도록 변경해야한다고 생각한다. 예를들어 255.255.255.192 등을 넣을 것이다. 그러나 서브넷 마스크는 255.255.255.255 올바른 것이므로 변경해서는 안된다.

 

[참고자료]

https://blogs.msdn.microsoft.com/psssql/2016/12/04/unable-to-connect-to-sql-server-alwayson-listener-on-azure-due-to-misconfigured-subnet-mask/

 

 

2017-02-28 / 강성욱 / http://sqlmvp.kr

 

 

SQL Server, MSSQL, SQL Azure, MS Azure, AlwaysOn, Availability Group, Cluster Server, SQL Cluster, SubnetMask

SQL Azure blob storage 백업을 위한 프록시 세팅

 

  • Version : SQL Azure

 

기존의 로컬 저장소가 아닌 Azure blob storgae에 백업을 저장할때, 일부 시스템의 경우 보안상의 이유로 인터넷 접속이 차단되어 있는 경우가 있다. 이때 프록시 서버를 사용하여 Azure로 백업을 할 경우 backuptoURL.exe.config를 구성해야 한다.

아래 스크린샷은 프록시 서버를 구성하는 방법이다.

 

프록시 서버를 사용하여 인터넷에 액세스 할 경우 프록시 서버에는 분당 연결 수를 제한하는 설정이 있을 수 있다. URL에 대한 백업 프로세스는 다중 스레드 프로세스이므로 이 제한을 초과할 경우 프록시는 연결을 해제할 수 있다. 이 문제를 해결하기 위해서는 SQL Server에서 프록시를 사용하지 않도록 프록시 설정을 변경해야한다.

경우에 따라 기본 설정이 선택되지 않을 경우 아래와 같은 프록시 인증 오류가 발생 할 수 있다.

A nonrecoverable I/O error occurred on file "http://storageaccount.blob.core.windows.net/container/BackupAzurefile.bak:" Backup to URL received an exception from the remote endpoint. Exception Message: The remote server returned an error: (407) Proxy Authentication Required.

 

이 문제를 해결하기 위해서는 URL에 대한 백업 프로세스에서 기본 프록시 설정을 사용하도록 하는 구성 파일을 만들어서 사용한다. 아래 스크립트를 사용하여 BackuptoURL.exe.config라는 구성파일을 생성할 수 있도록 한다.

<?xml version ="1.0"?>

<configuration>

<system.net>

<defaultProxy enabled="true" useDefaultCredentials="true">

<proxy usesystemdefault="true" />

</defaultProxy>

</system.net>

</configuration>

 

생성된 파일은 SQL Server 인스턴스의 Binn 폴더에 위치할 수 있도록 한다. 예를 들어 SQL Server가 컴퓨터의 C 드라이브에 설치된 경우 구성 파일을 C:\Program Files\Microsoft SQL Server\MSSQL12.<instancefName>\MSSLQ\Binn에 배치한다.

 

아래 링크는 URL 백업할때 참고 할 수 있는 가이드라인이다.

 

 

[참고자료]

https://blogs.msdn.microsoft.com/psssql/2016/09/29/proxy-settings-backup-to-url-azure-blob-storage/

 

 

2016-10-25 / 강성욱 / http://sqlmvp.kr

 

 

MS SQL Server, SQL Server, SQL Azure, Azure Backup, Azure blob, SQL Proxy, backup to URL, Blob Storage

SQL on Azure 환경에서 SQL 서버 연결 불능 문제(VNET 설정 문제)

  • Version : SQL on Azure

 

온프레미스 환경의 SQL Server를 Azure 환경으로 변경할 때 최소한의 노력은 이동 작업이다. 그러나 미묘하게 주의해야할 작업이 있다. 그 중 한가지가 네트워킹 플랜이다. Azure Virtual Network(VNET)는 온프레미스 환경과 Azure 환경의 다리 역할을 하거나 격리 수준 역할을 한다. 우리는SQL Serve 가상 머신과 IIS 가상 머신을 만들는 과정에서 자주 반복된 실수를 살펴본다. 자주 실수하는 부분 중 하나가VM을 생성할때 다른 VNET에서 생성하는 것이다. 서로 다른 VNET에 생성된 VM은 VPN을 사용한 동적 게이트웨이를 사용하지 않으면 통신할 수 없다. 통신 연결에 실패하면 다음과 같은 오류가 나타난다.

A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and i SQL Server is configured to allow remote connections. For more information see SQL Server Books Online

 

Azure 리소스 관리자 배포모드에서 새로운 포털 기본값은 VM 생성시 새로운 VNET을 생성하기 때문에 이 같은 실수는 매우 쉽게 발생한다.

 

이와 같은 문제를 해결하기 위해 아래와 같은 방법을 사용할 수 있다.

  1. create Site-to-Site (VNET to VNET) VPN connection using gateway.

    VPN을 사용한 게이트웨이 사용이다. 하지만 이 방법은 비용이 부과된다.

 

  1. SQL Server VM을 동일한 VNET으로 이동.

    이 방법은 VM을 이동하면 설정이 자동으로 변경되지 않는다. 새로운 VM을 생성하여 이동해야 한다. 기존 배포 방식을 사용할 경우 다음 단계를 이용할 수 있다.

    1. VM을 종료하고 VHD복사본을 생성한다.
    2. VM은 삭제하지만 VHD를 삭제하지 않도록 한다.
    3. 포털에서 새로운 VM을 생성하고 복사한 VHD를 연결하여 VNET을 선택 한다.
    4. Azure 리소스 관리자(Azure Resource Manager, ARM) 배포에서는 아래 아티클을 참고 한다.

 

[참고자료]

https://blogs.msdn.microsoft.com/psssql/2016/03/17/unable-to-connect-to-sql-server-on-azure-virtual-machinevnet-problem/

 

2016-05-24 / 강성욱 / http://sqlmvp.kr

 

Azure, Microsoft Cloud, Azure SQL, SQL on Azure, 애저, 클라우드, VNET, Azure Virtual Network, 애저 가상 네트워크

+ Recent posts