一般的な問題

Prev Next

Classic/VPC環境で利用できます。

Cloud DB for MSSQLの利用中に次のような問題が発生することがあります。問題ごとの原因と解決方法を確認し、適切に対処してください。

MSSQL Serverアクセスエラー

MSSQL Serverアクセス時にエラーが発生します。
外部から MSSQL Serverにアクセスできません。

原因

MSSQL Serverにアクセスするには、事前に MSSQL Serverと通信するアプリケーションサーバを作成する必要があります。事前タスクが済んでいない場合、NAVERクラウドプラットフォームの Cloud DB for MSSQLを正常に使用できません。

解決方法

アプリケーションサーバ確認
Cloud DB for MSSQLで作成した MSSQL Serverは現在、NAVERクラウドプラットフォーム内でのみアクセスできるため、アプリケーションサーバもまた NAVERクラウドプラットフォーム内に作成する必要があります。全体的なサーバ作成のフローは使用シナリオを確認した後、以下の各プラットフォーム環境別スタートガイドをご参照ください。

参考

アプリケーションサーバを介さずに MSSQL Serverに直接アクセスするには、SSMSを使用します。ユーティリティの使用方法についての説明は、クラウド外部から DBにアクセスするをご参照ください。

MSSQL Serverへのアクセス方法の確認
NAVERクラウドプラットフォームサーバで、MSSQL Serverにアクセスする方法は、次の通りです。

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は、サーバの性能や OSのモニタリングサービス、イベント収集サービスを提供し、Cloud Insightと連携してユーザーが直接しきい値を設定する必要があります。Cloud Insightの連携とユーザー設定値にエラーがある場合、正常に通知が送信されない場合があります。

解決方法

Cloud DB for MSSQLのモニタリング結果とイベント収集結果は、Cloud Insightと連携してメールや SMSで通知するように設定できます。詳しい使用方法は、以下の各プラットフォーム環境別内容をご参照ください。

データベースアクセス不可

再起動したデータベースが「復旧中」のステータスで、データベースにアクセスできません。

原因

テーブルタスクが正常に完了せず、自動的に復旧中の状態です。

解決方法

テーブルデータが変更されている状況でプロセスを強制終了して再起動した場合、変更された容量が大きいほど、復旧に時間がかかります。復旧が完了するまでしばらくお待ちください。

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
  • ファイルストリームファイルグループがあるデータベースがあるか確認し、ファイルストリームファイルグループを削除

  • ファイル ストリーム ファイルグループが MEMORY_OPTIMIZED_DATA用途で使用される場合、データマイグレーション後にコンソールからデータベースを削除
  • ALTER DATABASE(Transact-SQL)ファイルとファイルグループオプション

  • The Memory Optimized Filegroup
  • 参考

    本ガイドで必要な情報が見つからない場合やさらに必要な情報がある場合は、いつでも以下のフィードバックアイコンをクリックして、ご意見をお寄せください。いただいたご意見を参照して、より有益な情報を提供できるよう努力してまいります。