- 인쇄
- PDF
일반적인 문제
- 인쇄
- PDF
Cloud DB for MSSQL를 이용하면서 다음과 같은 문제를 겪을 수 있습니다. 문제별 원인과 해결 방법을 확인하고 적절하게 조치해 주십시오.
MSSQL Server 접속 오류
MSSQL Server 접속 시 오류가 발생합니다.
외부에서 MSSQL Server에 접속할 수 없습니다.
원인
MSSQL Server에 접속하려면 사전에 MSSQL Server와 통신할 애플리케이션 서버를 생성해야 합니다. 사전 작업을 해두지 않으면 정상적으로 네이버 클라우드 플랫폼의 Cloud DB for MSSQL를 정상적으로 사용할 수 없습니다.
해결 방법
애플리케이션 서버 확인
Cloud DB for MSSQL에서 생성한 MSSQL Server는 현재 네이버 클라우드 플랫폼 내에서만 접근이 가능하기 때문에 애플리케이션 서버 역시 네이버 클라우드 플랫폼 내에 생성해야 합니다. 전반적인 서버 생성의 흐름은 사용 시나리오를 확인 후 아래의 각 플랫폼 환경별 시작 가이드를 참조해 주십시오.
애플리케이션 서버를 통하지 않고 MSSQL Server에 직접 접속하려면 SSMS를 사용합니다. 유틸리티의 사용 방법에 대한 설명은 클라우드 외부에서 DB 접근하기를 참조해 주십시오.
MSSQL Server 접속 방법 확인
네이버 클라우드 플랫폼 서버에서 MSSQL Server에 접속하는 방법은 다음과 같습니다.
- 네이버 클라우드 플랫폼 서버에서 Private 도메인을 사용한 접근: Cloud DB for MSSQL 시작
- 클라우드 외부에서의 접근: SSL VPN을 사용한 접근
linked server 사용
Cloud DB for MSSQL에서 linked server를 사용할 수 없습니다.
원인
Cloud DB for MSSQL에서 linked server를 사용할 수 없는 것이 스펙입니다.
해결 방법
MSSQL로 linked server를 사용하려면 일반 설치형 MSSQL로 직접 구성해 주십시오.
Mirror 서버 복제 오류
Mirror 서버로 복제 시 오류가 발생합니다.
원인
SSMS에서 사용자를 생성하거나 비밀번호를 변경하는 경우, Mirror 서버로 복제되지 않을 수 있습니다.
해결 방법
- 서버 생성 시에 만든 관리용 USER_ID의 정보를 변경(이름 변경, 비밀번호 변경 등)하지 마십시오.
- SSMS의 UI에서 직접 데이터베이스를 생성할 경우, 옵션에서 복구 모델을 '전체(Full)'로 변경해 주십시오.
MSSQL Server의 임계값 초과 알림
MSSQL Server의 임계값 초과 이벤트 알림을 받을 수 없습니다.
원인
Cloud DB for MSSQL은 서버 성능과 운영체제에 대한 모니터링 서비스와 이벤트 수집 서비스를 제공하며, Cloud Insight와 연동하여 사용자가 직접 임계값을 설정해야 합니다. Cloud Insight의 연동과 사용자 설정값에 오류가 있을 경우, 정상적으로 알림이 전송되지 않을 수 있습니다.
해결 방법
Cloud DB for MSSQL의 모니터링 결과와 이벤트 수집 결과는 Cloud Insight와 연동하여 메일이나 SMS로 알림을 보내도록 설정할 수 있습니다. 자세한 사용 방법은 Monitoring, Event 내용을 참조해 주십시오.
데이터베이스 접근 불가
재시작한 데이터베이스가 '복구중' 상태여서 데이터베이스에 접근할 수 없습니다.
원인
테이블 작업이 정상적으로 완료되지 않아 자동으로 복구 중인 상태입니다.
해결 방법
테이블 데이터가 변경 중인 상황에서 프로세스를 강제 종료한 후 재시작한 경우, 변경된 용량이 클수록 복구에 시간이 오래 소요됩니다. 복구가 완료될 때까지 기다려 주십시오.
Failover 수행
서비스 오픈 전 Principal Server 장애로 인한 Failover 상황을 재현하여 애플리케이션에 영향이 없는지 사전에 점검하기 위해 Failover를 수행하고자 합니다.
해결 방법
재시작 실행 시 재부팅 모드를 선택할 수 있습니다. 선택 가능한 재부팅 모드는 Without FailOver와 With FailOver가 있습니다. Without FailOver는 사용자가 SSMS로 설정한 내용이 보장되지만, With FailOver는 사용자가 SSMS로 설정한 내용이 유실될 수 있습니다.
동기화 오류
데이터베이스 동기화가 정상적으로 수행되지 않았습니다.
원인 및 해결 방법
이중화 설정된 서버 간 데이터베이스 동기화가 여러 원인으로 정상적으로 수행되지 않을 수 있습니다. 아래 쿼리를 콘솔 사용자 계정으로 실행한 후, 가이드를 참고해 변경해 주십시오.
SELECT A.NAME
, ISNULL(
TRIM(',' FROM
CASE WHEN STATUS & 1 = 1 THEN 'AUTOCLOSE_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 64 = 64 THEN 'PRE_RECOVERY_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 128 = 128 THEN 'RECOVERING_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 256 = 256 THEN 'NOT_RECOVERED_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 512 = 512 THEN 'OFFLINE_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 1024 = 1024 THEN 'READ_ONLY_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 2048 = 2048 THEN 'DBO_USE_ONLY_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 4096 = 4096 THEN 'SINGLE_USER_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 32768 = 32768 THEN 'EMERGENCY_MODE_DATABASE' ELSE '' END
+','+ CASE WHEN STATUS & 4194304 = 4194304 THEN 'AUTOSHRINK_DATABASE' ELSE '' END
+','+ CASE WHEN RECOVERY_MODEL_DESC = 'SIMPLE' THEN 'SIMPLE_DATABASE' ELSE '' END
), ''
) MIRROR_ERROR_CHECK
FROM SYS.SYSDATABASES A
INNER JOIN SYS.DATABASES B
ON A.DBID = B.DATABASE_ID
WHERE A.DBID > 4
AND A.NAME NOT IN ('LAZYLOG')
AND (
CASE WHEN STATUS & 1 = 1 THEN 1 ELSE '' END <> ''
OR CASE WHEN STATUS & 64 = 64 THEN 'PRE_RECOVERY_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 128 = 128 THEN 'RECOVERING_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 256 = 256 THEN 'NOT_RECOVERED_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 512 = 512 THEN 'OFFLINE_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 1024 = 1024 THEN 'READ_ONLY_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 2048 = 2048 THEN 'DBO_USE_ONLY_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 4096 = 4096 THEN 'SINGLE_USER_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 32768 = 32768 THEN 'EMERGENCY_MODE_DATABASE' ELSE '' END <> ''
OR CASE WHEN STATUS & 4194304 = 4194304 THEN 'AUTOSHRINK_DATABASE' ELSE '' END <> ''
OR CASE WHEN RECOVERY_MODEL_DESC = 'SIMPLE' THEN 'SIMPLE_DATABASE' ELSE '' END <> ''
)
UNION ALL
SELECT DB_NAME(DATABASE_ID) AS DATABASE_NAME
, TYPE_DESC --, NAME, PHYSICAL_NAME
FROM SYS.MASTER_FILES
WHERE TYPE_DESC = 'FILESTREAM';
메시지 | 내용 | 참조 |
---|---|---|
autoclose_database | 자동 데이터베이스 닫기 옵션이 ON으로 설정되어 있는지 확인한 후 자동 축소 옵션 해제 | ALTER DATABASE SET 옵션(Transact-SQL) |
pre_recovery_database | 복구되지 않은 데이터베이스가 있는지 확인한 후 복구 완료 상태가 되도록 조치 | |
recovering_database | 복구 중인 데이터베이스가 있는지 확인한 후 복구 완료 상태가 되도록 조치 | |
not_recovered_database | 복구되지 않은 데이터베이스가 있는지 확인한 후 복구 완료 상태가 되도록 조치 | |
offline_database | 오프라인 상태의 데이터베이스가 있는지 확인한 후 온라인 모드로 변경 | |
read_only_database | 읽기 전용 데이터베이스가 있는지 확인한 후 옵션 해제 | ALTER DATABASE SET 옵션(Transact-SQL) |
dbo_use_only_database | DBO만 사용 가능한 데이터베이스가 있는지 확인하고, MULTI_USER로 변경 | |
single_user_database | 단일 사용자 모드 데이터베이스가 있는지 확인한 후 단일 사용자 모드 해제 | ALTER DATABASE SET 옵션(Transact-SQL) |
emergency_mode_database | 응급 모드 데이터베이스가 있는지 확인한 후 응급 모드 해제 | ALTER DATABASE SET 옵션(Transact-SQL) |
autoshrink_database | 자동 축소 데이터베이스가 있는지 확인한 후 옵션 해제 | ALTER DATABASE SET 옵션(Transact-SQL) |
simple_database | 복구 모델 단순 데이터베이스가 있는지 확인한 후 전체로 변경 | ALTER DATABASE SET 옵션(Transact-SQL) |
filestream |
이 가이드에서 필요한 정보를 찾지 못했거나 추가로 필요한 정보가 있으신 경우, 언제든지 아래의 피드백 아이콘을 클릭하여 의견을 보내 주십시오. 전달해 주신 의견을 참고하여 더 유용한 정보를 제공하겠습니다.