Available in Classic and VPC
You might run into the following problems when using Cloud DB for MSSQL. Find out causes and possible solutions.
MSSQL Server connection error
Error occurs when connecting to MSSQL Server.
Cannot access MSSQL Server from outside.
Cause
You need to create an application server that will communicate with MSSQL Server to access MSSQL Server. Otherwise, Cloud DB for MSSQL of NAVER Cloud Platform cannot be used normally.
Solution
Check application server
A MSSQL server created from Cloud DB for MSSQL is currently only accessible within NAVER Cloud Platform, so the applications server must also be created inside NAVER Cloud Platform. For the overall flow of server creation, check scenario and see Start guide by environment for each platform:
- Overall usage scenario
- Getting started with Cloud DB for MSSQL (VPC)
- Getting started with Cloud DB for MSSQL (Classic)
You are using SSMS when you directly access to MSSQL Server without application server. For more information on how to use utility, see Access DB from outside cloud.
Check how to access to MSSQL Server
To create a MSSQL Server on NAVER Cloud Platform's server:
- Access methods using Private domain from NAVER Cloud Platform server: Getting started with Cloud DB for MSSQL
- Access methods from outside of the cloud: Access using SSL VPN, and Access using public domain
Use linked server
Cannot use linked server in Cloud DB for MSSQL.
Cause
It is the specification that you cannot use linked server in Cloud DB for MSSQL.
Solution
To use linked server with MSSQL, configure directly with general installation type MSSQL.
Mirror server replication error
Error occurs when replicating to Mirror server.
Cause
If you create a user or change password on SSMS, it may not be replicated in Mirror server.
Solution
- Do not make any changes (rename, password change, etc.) to USER_ID for management which you create at the time of server creation.
- If you create a database directly on SSMS UI, you should change the recovery model option to "Full".
Notifications on exceeding MSSQL Server threshold
Unable to receive an event notification on exceeding MSSQL Server threshold.
Cause
Cloud DB for MSSQL provides monitoring service and event collection service for the performance and operating system of the server. You can directly set thresholds by integrating with Cloud Insight. If there's an error between Cloud Insight integration and custom config value, notification may not be sent normally.
Solution
The monitoring results and event collection results of Cloud DB for MSSQL can be integrated with Cloud Insight to notify via email or SMS. For detailed usage, see below information by environment for each platform:
- VPC: Monitoring, and Event.
- Classic: Monitoring, and Event.
Unable to access database
Cannot access the database as it has been restarted and is in a "recovering" state.
Cause
It is automatically recovering due to unsuccessful table task.
Solution
If you force stop the process when table data is being changed and restart, it takes longer to recover larger capacity change. Wait until the recovery is complete.
Execute Failover
I am trying to execute Failover to reproduce Failover situation caused by Principal Server failure to check any effects on applications prior to opening the service.
Solution
You can select reboot mode when restarting the server. Without FailOver and With FailOver are the available reboot modes. If you select Without FailOver, the settings made via SSMS are preserved. However, if you select With FailOver, the settings may be lost.
Synchronization error
Database synchronization did not perform properly.
Causes and solutions
Database synchronization between servers configured for high availability may not be performed properly for several reasons. Run the query below using your console user account, and refer to the guide to make the necessary changes.
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';
| Message | Contents | Reference |
|---|---|---|
| autoclose_database | Check whether the Auto Close option is enabled, and then disable the Auto Shrink option. | ALTER DATABASE SET options (Transact-SQL) |
| pre_recovery_database | Check for any databases that have not been recovered, and take appropriate actions to ensure their recovery is completed. | |
| recovering_database | Check whether any databases are currently under recovery, and take actions to ensure they are fully recovered. | |
| not_recovered_database | Check for any databases that have not been recovered, and take appropriate actions to ensure their recovery is completed. | |
| offline_database | Check for any databases in offline state, and change them to online mode. | |
| read_only_database | Check for any read-only databases, and disable the read-only option. | ALTER DATABASE SET options (Transact-SQL) |
| dbo_use_only_database | Check for any databases restricted to DBO only, and change the access mode to MULTI_USER. | |
| single_user_database | Check for any databases in single-user mode, and disable single-user mode. | ALTER DATABASE SET options (Transact-SQL) |
| emergency_mode_database | Check for any databases in emergency mode, and disable emergency mode. | ALTER DATABASE SET options (Transact-SQL) |
| autoshrink_database | Check for any databases with the Auto Shrink option enabled, and disable the option. | ALTER DATABASE SET options (Transact-SQL) |
| simple_database | Check for any databases using the Simple recovery model, and change it to Full. | ALTER DATABASE SET options (Transact-SQL) |
| filestream |
If you're still having trouble finding what you need, click on the feedback icon and send us your thoughts and requests. We'll use your feedback to improve this guide.