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にアクセスする方法は、次の通りです。
- NAVERクラウドプラットフォームサーバにおける Privateドメインを使用したアクセス: Cloud DB for MSSQL を開始する
- クラウド外部からのアクセス: SSL VPNを使用したアクセス、Publicドメインを使用したアクセス
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で通知するように設定できます。詳しい使用方法は、以下の各プラットフォーム環境別内容をご参照ください。
- VPC環境: Monitoring、Event
- Classic環境: 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 |
本ガイドで必要な情報が見つからない場合やさらに必要な情報がある場合は、いつでも以下のフィードバックアイコンをクリックして、ご意見をお寄せください。いただいたご意見を参照して、より有益な情報を提供できるよう努力してまいります。