In some cases, while trying to add a database to a SQL Server availability group using the wizard in SQL Server Management Studio, you might get some warnings or errors. There is a chance that these warnings/errors won’t let you continue and add the database.
For example, a possible warning could be the below:
This database is encrypted by database master key, you need to provide valid password when adding it to the availability group.
So, let’s consider the following scenario: You have two or more AG-enabled database servers, on which there is one (ore more) availability groups. On the current primary replica node, you have a database which you want to add to the existing availability group. However, the wizard does not let you do this because of some conditions such the above warning message.
Don’t worry because there is another way to achieve this. It is a little bit more “manual” as it involves T-SQL, but it is very simple.
The procedure to add a database to a SQL Server availability group, when it is not possible to add it using the wizard is:
Step 1. On the primary node, add the database to the availability group
-- On Primary Node
USE MASTER;
GO
ALTER AVAILABILITY GROUP [AGNAME] ADD DATABASE [DBNAME];
GO
Step 2: Perform a full backup of the database on the primary node/replica
Via the course, you will learn essential hands-on SQL Server Administration tips on SQL Server maintenance, security, performance, integration, error handling and more. Many live demonstrations and downloadable resources included!
Lifetime Access / Live Demos / Downloadable Resources and more!
Step 3: Restore the full database backup on the secondary node along with specifying the “WITH NORECOVERY” option
The NORECOVERY option specifies that a rollback of the database will not take place, thus allowing to restore even more records.
Note: You must be very careful when restoring databases. For the context of this article, first you need to make sure that the same database does not exist on the secondary node, prior to run the above-mentioned restore operation.
You can restore the database using the SSMS restore database wizard, along with specifying the NORECOVERY option or use a T-SQL statement.
Example:
RESTORE DATABASE [DBName]
FROM DISK = N'Path_Database_Backup_File_Stored\BackupFileName.bak'
WITH NORECOVERY;
GO
Step 4: Perform a transaction log backup of the database on the primary node/replica
The next step, is to go back again on the primary node/replica and perform a transaction log backup of the database.
Again, you can do this using the SSMS backup database wizard or using a T-SQL statement.
Example:
BACKUP LOG [DBName] TO DISK = N'Path_to_Store_Log_Backup_File\LogBackupFileName.bak';
GO
Step 5: Restore the log backup on the secondary node along with specifying the option “WITH NORECOVERY”
The next step, is to restore the log backup on the secondary node, on the previously restored database (see Step 3), again with the “NORECOVERY” option.
If you prefer doing this using T-SQL instead of the SSMS restore database wizard, below you can find an example of how the T-SQL script looks like.
Example:
RESTORE LOG [DBName] FROM DISK = N'Path_Log_Backup_File_Stored\LogBackupFileName.bak' WITH NORECOVERY;
GO
Step 6: On the secondary node, add the database to the availability group by altering it
The final step, is on the secondary node to add the database to the availability group by using the ALTER command.
Here’s an example of the T-SQL script:
USE MASTER;
GO
ALTER DATABASE [DBNAME] SET HADR AVAILABILITY GROUP = [AGNAME];
GO
Step 7: Confirm that all AG replicas are synchronized
It goes without saying that after all the above, you need to verify that all database replicas in the availability group are synchronized. You can do this via SSMS, by right clicking on the availability group under “Always On High Availability” and selecting “Show Dashboard”. There, you can see if everything is OK. If it is all green, and you see the wording “no data loss” then all is good 🙂
Did you find this article useful and interesting? Feel free to leave your comment!
If you enjoy my SQL Server administration tips and articles, I have something special just for you. It is one of my eBooksand it is called “Administering SQL Server“. Check it out!
Subscribe to our newsletterand stay up to date with our latest articles on SQL Server and related technologies!
Check out our latest software releases! All our software tools have 30-day Trial Versions which are free to download.
Rate this article: (4 votes, average: 5.00 out of 5)
Artemakis Artemiou is a seasoned Senior Database and AI/Automation Architect with over 20 years of expertise in the IT industry. As a Certified Database, Cloud, and AI professional, he has been recognized as a thought leader, earning the prestigious Microsoft Data Platform MVP title for nine consecutive years (2009-2018). Driven by a passion for simplifying complex topics, Artemakis shares his expertise through articles, online courses, and speaking engagements. He empowers professionals around the globe to excel in Databases, Cloud, AI, Automation, and Software Development. Committed to innovation and education, Artemakis strives to make technology accessible and impactful for everyone.
Views:13,589
We use cookies on our website to give you the most relevant experience by remembering your preferences and repeat visits. By clicking “Accept All”, you consent to the use of ALL the cookies. However, you may visit "Cookie Settings" to provide a controlled consent. Read More
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. These cookies ensure basic functionalities and security features of the website, anonymously.
Cookie
Duration
Description
cookielawinfo-checkbox-analytics
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Analytics".
cookielawinfo-checkbox-functional
11 months
The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category "Functional".
cookielawinfo-checkbox-necessary
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category "Necessary".
cookielawinfo-checkbox-others
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Other.
cookielawinfo-checkbox-performance
11 months
This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category "Performance".
viewed_cookie_policy
11 months
The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.
Functional cookies help to perform certain functionalities like sharing the content of the website on social media platforms, collect feedbacks, and other third-party features.
Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.
Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics the number of visitors, bounce rate, traffic source, etc.
Advertisement cookies are used to provide visitors with relevant ads and marketing campaigns. These cookies track visitors across websites and collect information to provide customized ads.