{"id":2039,"date":"2021-10-26T00:00:16","date_gmt":"2021-10-26T07:00:16","guid":{"rendered":"https:\/\/www.couchbase.com\/blog\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/"},"modified":"2021-10-26T00:00:16","modified_gmt":"2021-10-26T07:00:16","slug":"your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync","status":"publish","type":"post","link":"https:\/\/www.couchbase.com\/blog\/pt\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/","title":{"rendered":"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync"},"content":{"rendered":"<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><\/p>\n\n\n\n<p><em><span>Couchbase offers a single install where you can enable all the services or pick and choose to customize to the needs of your project. This tutorial will install all the services for convenience. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/services.html\">Learn more<\/a> about Couchbase services and multi-dimensional scaling<\/span><span>.\u00a0\u00a0<\/span><\/em><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-244x300-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>You should be redirected to the Dashboard. We will use data from the sample bucket in this tutorial. To install the data, click <\/span><b>Sample Buckets<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>If, for some reason, you don\u2019t see the <\/span><b>Sample Bucket<\/b><span> link on the dashboard, go to <\/span><b>Settings <\/b><span>from the left menu, look near the top right of the UI, and you\u2019ll see a menu item for <\/span><b>Sample Buckets<\/b><span>, as shown below.\u00a0<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image5-300x68-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Check beer-sample and click <\/span><b>Load Sample Data<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image17-300x116-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Give it a few minutes to load, then click <\/span><b>Buckets<\/b><span> in the navigation on the left.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>\u00a0<\/span><span>You should see the beer-sample bucket we just loaded.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-300x81-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Let&#8217;s view the documents. Click the <\/span><b>Documents<\/b><span> link on the right, next to <\/span><b>Statistics<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We&#8217;re going to sync documents of type beer. You can put a filter (type=&#8221;beer&#8221;) in the N1QL WHERE box and click <\/span><b>Retrieve Docs<\/b><span> to get those documents; it&#8217;ll be a little easier to see and test this way.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image31-300x89-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Create Couchbase User<\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We\u2019ll create a user for the GlueSync application to use. This is for tutorial purposes and you should follow your security practices when managing your users in conjunction with Couchbase and GlueSync requirements.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Go to the <\/span><b>Security<\/b><span> link on the left then click <\/span><b>ADD USER<\/b><span> in the top right.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image19-300x79-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Fill out the user information, as shown below. We\u2019re using the Username of <\/span><b>cb-user<\/b><span> and Password <\/span><b>RandomCBPass2!<\/b><span>; keep this info for later. Make sure you check <\/span><b>Full Admin<\/b><span> under the roles. Once it\u2019s filled out, click the <\/span><b>Add User<\/b><span> button.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image13-300x258-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>You should see the user we just created.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image15-300x59-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Add a GlueSync Metadata bucket<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>GlueSync uses Couchbase\u2019s Eventing service. Eventing requires a Metadata bucket, and we\u2019ll create one now. <a href=\"https:\/\/gluesync.com\/docs\/gluesync\/v1.2.0\/couchbase-server\/bucket-requirements.html#metadata-bucket\">Get more info<\/a> on GlueSync and the Metadata bucket.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Go to <\/span><b>Buckets <\/b><span>on the left menu and click <\/span><b>ADD BUCKET<\/b><span> in the top right.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image21-300x78-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Enter the Metadata Name and click <\/span><b>Add Bucket<\/b><span>. We\u2019ll use the defaults for the other options.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-300x257-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>You should see two buckets now.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image11-300x87-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We\u2019ll use SQL Server Management Studio to configure MSSQL, which was installed in the step above. If you need to install the management studio, you can <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssms\/download-sql-server-management-studio-ssms?view=sql-server-ver15\">find it here<\/a>.<\/span><b>\u00a0<\/b><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Login with the credentials passed to the Docker command from the earlier step, in this case, Login: <\/span><b>sa<\/b><span> and Password: <\/span><b>RandomMSSQLPass2!<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image12-300x201-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Create New Database<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We\u2019ll create a new database where the data from Couchbase will be loaded.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image28-279x300-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>In this case, since I\u2019m very creative, I\u2019ll use <\/span><b>cb<\/b><span>, and choose Ok.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image29-300x113-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Create Login<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Next, create a MSSQL Login. Right-click the Login folder and choose <\/span><b>New Login\u2026<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image22-300x243-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>The Login name we\u2019re using is <\/span><b>mssql-user <\/b><span>and Password is <\/span><b>RandomMSSQLUserPass2!<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Set Default database to <\/span><b>cb<\/b><span>, the database created above.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>You should follow your security standards when creating users. The instructions in this article\u00a0 are for tutorial purposes only and some options I\u2019m picking are for simplicity. <\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image25-300x284-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Go to <\/span><b>User Mapping<\/b><span>, on the left under <\/span><b>Select a page<\/b><span>, and select <\/span><b>cb <\/b><span>under <\/span><b>Users mapped to this login<\/b><span> and <\/span><b>db_owner<\/b><span> under the <\/span><b>Database role membership<\/b><span>.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image20-300x284-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Now that we\u2019ve got that setup, verify you can login with the user. Log out of sa and log back in with the new user.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Create Table<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Let\u2019s create a table for the data to be synced to, from Couchbase. Go to the <\/span><b>Databases<\/b><span>, then <\/span><b>cb<\/b><span>, then open a <\/span><b>New Query<\/b><span> window. The table fields in this table match the attributes in the Couchbase beer-samples document. The SQL to create the table is below.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image32-300x140-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Run the create table statement.<\/span><span>\u00a0<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>create\u00a0table\u00a0beer\r\n(\r\n \u00a0\u00a0\u00a0name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(200)\u00a0\u00a0not\u00a0null\u00a0constraint\u00a0beer_pk\u00a0primary\u00a0key\u00a0nonclustered,\r\n \u00a0\u00a0\u00a0abv\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0numeric(5,\u00a02)\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0brewery_id\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0category\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0description\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0ibu\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0srm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0style\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0upc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0updated\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null\r\n)\r\ngo<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>GlueSync has two components, one for Couchbase to MSSQL, and another for MSSQL to Couchbase. This will set up the application to sync data from Couchbase to MSSQL. Setting up the other direction is a very similar setup.\u00a0 \u00a0<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Make config folder<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Make a folder for the GlueSync configuration file. We&#8217;ll share this with the Docker container when starting it.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir\u00a0c:agluesyncconfig<\/code><\/pre>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Get Docker network IP addresses for Couchbase and MSSQL<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We need the Docker network information for the Couchbase and MSSQL containers to configure GlueSync.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Get the container IDs.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0container\u00a0ls\u00a0-a\r\nCONTAINER ID\u00a0\u00a0\u00a0IMAGE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0COMMAND\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CREATED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0STATUS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PORTS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NAMES\r\n10b985792024\u00a0\u00a0\u00a0mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04\u00a0\u00a0\u00a0&quot;\/opt\/mssql\/bin\/perm\u2026&quot;\u00a0\u00a0\u00a034 minutes ago\u00a0\u00a0\u00a0Up 34 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:1433-&gt;1433\/tcp, :::1433-&gt;1433\/tcp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mssql\r\nd2df1bad1647\u00a0\u00a0\u00a0couchbase:enterprise-6.6.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;\/entrypoint.sh couc\u2026&quot;\u00a0\u00a0\u00a040 minutes ago\u00a0\u00a0\u00a0Up 40 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:8091-8096-&gt;8091-8096\/tcp, :::8091-8096-&gt;8091-8096\/tcp, 11207\/tcp, 0.0.0.0:11210-11211-&gt;11210-11211\/tcp, :::11210-11211-&gt;11210-11211\/tcp, 18091-18096\/tcp\u00a0\u00a0\u00a0cb-663<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>Now, get the IP addresses for the containers using those IDs by using the Docker Inspect command on Couchbase.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a0d2df1bad1647\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;: &quot;172.17.0.2&quot;,<\/code><\/pre>\n\n\n\n<p><span>Run the Docker Inspect command on MSSQL.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a010b985792024\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>The IP addresses are:<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><span>Couchbase &#8211; 172.17.0.2<\/span><\/li>\n\n\n<li><span>MSSQL &#8211; 172.17.0.3<\/span><\/li>\n\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>NOTE: If you stop and restart the containers, the IP address can change and you&#8217;ll need to verify the config is still correct.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span>Create the GlueSync configuration file<\/span><\/h3>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Update the information below with your specific info and save it to the config.json file in the folder you created above, i.e. c:agluesyncconfigconfig.json<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\r\n \u00a0&quot;sourceHost&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0&quot;sourcePort&quot;:\u00a0&quot;8091&quot;,\r\n \u00a0&quot;sourceName&quot;:\u00a0&quot;beer-sample&quot;,\r\n \u00a0&quot;sourceUsername&quot;:\u00a0&quot;cb-user&quot;,\r\n \u00a0&quot;sourcePassword&quot;:\u00a0&quot;RandomCBPass2!&quot;,\r\n \u00a0&quot;sourceEntities&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;beer&quot;:\u00a0{}\r\n \u00a0},\r\n \u00a0&quot;sourceChangeRetention&quot;:\u00a05,\r\n \u00a0&quot;copySourceEntitiesAtStartup&quot;:\u00a0true,\r\n \u00a0&quot;targetHost&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0&quot;targetPort&quot;:\u00a0&quot;1433&quot;,\r\n \u00a0&quot;targetName&quot;:\u00a0&quot;cb&quot;,\r\n \u00a0&quot;targetUsername&quot;:\u00a0&quot;mssql-user&quot;,\r\n \u00a0&quot;targetPassword&quot;:\u00a0&quot;RandomMSSQLUserPass2!&quot;,\r\n \u00a0&quot;maxItemsCountPerTransaction&quot;:\u00a0100,\r\n \u00a0&quot;maxTransactionCountPerIteration&quot;:\u00a0100,\r\n \u00a0&quot;couchbase&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;timeoutSeconds&quot;:\u00a060,\r\n \u00a0\u00a0\u00a0&quot;indexReplicaCount&quot;:\u00a00,\r\n \u00a0\u00a0\u00a0&quot;eventing&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;baseUrl&quot;:\u00a0&quot;https:\/\/172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;metadataBucketName&quot;:\u00a0&quot;Metadata&quot;\r\n \u00a0\u00a0\u00a0}\r\n \u00a0}\r\n}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Get GlueSync credentials to pull GlueSync image from Docker<\/span><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Check out the Before We Get Started section above for GlueSync license info for the Docker registry and downloading the product.\u00a0<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Once you have that info, follow the steps below to install GlueSync.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Since you may already have credentials stored, you may want to logout. If you run into credential issues, this may be the reason.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n\n\n\n<p><span>Login to the registry &#8211; this may be a different registry than you typically use, so double-check that value.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0login\u00a0registry.gitlab.com\r\nUsername: xxxusernamexxx\r\nPassword:\r\nLogin Succeeded<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Pull the image.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0pull\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nlatest: Pulling from molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql\r\nDigest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142\r\nStatus: Downloaded newer image for registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nregistry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nC:UsersDavid Elliott&gt;<\/code><\/pre>\n\n\n\n<p><span>You may want to logout again (I\u2019ve been tripped up when I didn\u2019t log out and get errors next time I run a command).<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n\n\n\n<p><span>Start the GlueSync Container\/Application<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Update the path to the config file in the Docker command below to match the path on your computer.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker\u00a0run\u00a0-d\u00a0--name\u00a0gluesync-cb-to-mssql\u00a0-v\u00a0c:\/a\/gluesync\/config:\/opt\/app\/config\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:1.2.3<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>You should have three containers running in Docker.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image14-300x70-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>If it\u2019s not running, check the container logs for messages. I\u2019ve inadvertently put the config file into the wrong folder and GlueSync didn\u2019t start; the logs let me know what was going on.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Watch the Magic<\/span><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Go to the MSSQL and query the table, you should see the data from the Couchbase bucket in the table we created. Once GlueSync started, it synced the data from Couchbase to MSSQL.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image24-300x107-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>To play around with it, you can modify data and see the changes synced across the databases. Go to the beer-samples documents and make a change. Here, I updated two documents. You can see the Docker output log below the Couchbase UI. GlueSync detected the two changes.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image27-300x200-1.png\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Switching over to MSSQL, I can see the updates in MSSQL as well.<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image26-300x140-1.png\"\/><\/figure>\n\n\n\n<p>\u00a0<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span>Conclusion<\/span><\/h2>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>We often have to work with multiple databases, particularly when we\u2019re doing a modernization. We may have a phased release or need to get existing data from an older relational database into Couchbase. This could involve custom code and testing or considering a product like GlueSync which makes the process more seamless.\u00a0<\/span><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><span>Checkout <a href=\"https:\/\/gluesync.com\/\">GlueSync <\/a><\/span><span>for more information on their products and capabilities. <\/span><\/p>\n\n\n\n<p><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:separator -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Docker in this post as we go through the steps to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Before We Get Started<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Docker<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>First, this tutorial uses Docker and if you don\u2019t have Docker, you can find more information here <\/span><a href=\"https:\/\/www.docker.com\/\"><span>https:\/\/www.docker.com\/<\/span><\/a><span>. You\u2019ll need to install Docker to complete the steps below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>GlueSync<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, GlueSync requires a license. To complete this tutorial, you\u2019ll need a license from the GlueSync team. You can go to <\/span><a href=\"https:\/\/gluesync.com\/plans\/\"><span>https:\/\/gluesync.com\/plans\/<\/span><\/a><span> and view more info on their plans and <\/span><a href=\"https:\/\/gluesync.com\/contact-sales\/\"><span>https:\/\/gluesync.com\/contact-sales\/<\/span><\/a><span> to contact the GlueSync team.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>High-level Steps<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<!-- \/wp:list -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"#h-run-couchbase-and-mssql\"><span>Run and Configure Couchbase and MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\">Create the configuration file for GlueSync<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-watch-the-magic\">Watch the magic<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Run Couchbase and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Couchbase<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Couchbase 6.6.3 for this tutorial. The following Docker command will get Couchbase up and running, exposing the ports we need.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:preformatted -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>For the MSSQL Docker run command, notice we\u2019re including the SA password. Update that and make a note of it, we\u2019ll use it later.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:preformatted -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name mssql -e &#039;ACCEPT_EULA=Y&#039; -e &#039;SA_PASSWORD=RandomMSSQLPass2!&#039; -p 1433:1433 -d mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Verify Containers<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now you should have two containers running, Couchbase and MSSQL. We&#8217;ll start the GlueSync container after we get these configured.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11865} --><\/p>\n<!-- \/wp:image -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image23-300x56-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure Couchbase with GlueSync and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading \/--><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll start with Couchbase and do a basic installation.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Setup New Cluster<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Running the Docker commands above would have started Couchbase and exposed the ports so you can open<\/span><span> the Couchbase UI by going to <\/span><a href=\"https:\/\/localhost:8091\/ui\/index.html\" target=\"_blank\" rel=\"noopener\"><span>https:\/\/localhost:8091\/ui\/index.html<\/span><\/a><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll choose <\/span><b>Setup New Cluster<\/b><span> and set up a cluster of one node (not recommended for production, but works great for dev and doing a tutorial).\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11872} --><\/p>\n<!-- \/wp:image -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image30-300x208-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the new cluster information and click <\/span><b>Next: Accept Terms<\/b><span>. Make a note of your password, we\u2019ll need it later. We\u2019re using <\/span><b>RandomCBPass2!<\/b><span> for this instance.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11890} --><\/p>\n<!-- \/wp:image -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image16-300x210-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If you accept the terms and conditions, check that option, and click <\/span><b>Finish With Defaults<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><b>NOTE<\/b><span> GlueSync works with Couchbase using a couple of Couchbase technologies, Sync Gateway and the Eventing service. We are using the Eventing option in this tutorial. The Eventing feature will be installed with the <\/span><b>Finish With Defaults<\/b><span> selection below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em><span>Couchbase offers a single install where you can enable all the services or pick and choose to customize to the needs of your project. This tutorial will install all the services for convenience. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/services.html\">Learn more<\/a> about Couchbase services and multi-dimensional scaling<\/span><span>.\u00a0\u00a0<\/span><\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11876} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-244x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should be redirected to the Dashboard. We will use data from the sample bucket in this tutorial. To install the data, click <\/span><b>Sample Buckets<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If, for some reason, you don\u2019t see the <\/span><b>Sample Bucket<\/b><span> link on the dashboard, go to <\/span><b>Settings <\/b><span>from the left menu, look near the top right of the UI, and you\u2019ll see a menu item for <\/span><b>Sample Buckets<\/b><span>, as shown below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11879} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image5-300x68-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check beer-sample and click <\/span><b>Load Sample Data<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11891} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image17-300x116-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Give it a few minutes to load, then click <\/span><b>Buckets<\/b><span> in the navigation on the left.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>\u00a0<\/span><span>You should see the beer-sample bucket we just loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11875} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-300x81-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let&#8217;s view the documents. Click the <\/span><b>Documents<\/b><span> link on the right, next to <\/span><b>Statistics<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We&#8217;re going to sync documents of type beer. You can put a filter (type=&#8221;beer&#8221;) in the N1QL WHERE box and click <\/span><b>Retrieve Docs<\/b><span> to get those documents; it&#8217;ll be a little easier to see and test this way.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11873} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image31-300x89-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Create Couchbase User<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a user for the GlueSync application to use. This is for tutorial purposes and you should follow your security practices when managing your users in conjunction with Couchbase and GlueSync requirements.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the <\/span><b>Security<\/b><span> link on the left then click <\/span><b>ADD USER<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11893} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image19-300x79-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Fill out the user information, as shown below. We\u2019re using the Username of <\/span><b>cb-user<\/b><span> and Password <\/span><b>RandomCBPass2!<\/b><span>; keep this info for later. Make sure you check <\/span><b>Full Admin<\/b><span> under the roles. Once it\u2019s filled out, click the <\/span><b>Add User<\/b><span> button.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11887} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image13-300x258-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see the user we just created.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11889} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image15-300x59-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Add a GlueSync Metadata bucket<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync uses Couchbase\u2019s Eventing service. Eventing requires a Metadata bucket, and we\u2019ll create one now. <a href=\"https:\/\/gluesync.com\/docs\/gluesync\/v1.2.0\/couchbase-server\/bucket-requirements.html#metadata-bucket\">Get more info<\/a> on GlueSync and the Metadata bucket.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>Buckets <\/b><span>on the left menu and click <\/span><b>ADD BUCKET<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11863} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image21-300x78-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the Metadata Name and click <\/span><b>Add Bucket<\/b><span>. We\u2019ll use the defaults for the other options.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11878} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-300x257-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see two buckets now.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11885} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image11-300x87-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use SQL Server Management Studio to configure MSSQL, which was installed in the step above. If you need to install the management studio, you can <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssms\/download-sql-server-management-studio-ssms?view=sql-server-ver15\">find it here<\/a>.<\/span><b>\u00a0<\/b><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Login with the credentials passed to the Docker command from the earlier step, in this case, Login: <\/span><b>sa<\/b><span> and Password: <\/span><b>RandomMSSQLPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11886} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image12-300x201-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create New Database<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a new database where the data from Couchbase will be loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11870} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image28-279x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>In this case, since I\u2019m very creative, I\u2019ll use <\/span><b>cb<\/b><span>, and choose Ok.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11871} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image29-300x113-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Login<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, create a MSSQL Login. Right-click the Login folder and choose <\/span><b>New Login\u2026<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11864} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image22-300x243-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The Login name we\u2019re using is <\/span><b>mssql-user <\/b><span>and Password is <\/span><b>RandomMSSQLUserPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Set Default database to <\/span><b>cb<\/b><span>, the database created above.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should follow your security standards when creating users. The instructions in this article\u00a0 are for tutorial purposes only and some options I\u2019m picking are for simplicity. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11867} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image25-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>User Mapping<\/b><span>, on the left under <\/span><b>Select a page<\/b><span>, and select <\/span><b>cb <\/b><span>under <\/span><b>Users mapped to this login<\/b><span> and <\/span><b>db_owner<\/b><span> under the <\/span><b>Database role membership<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11862} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image20-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now that we\u2019ve got that setup, verify you can login with the user. Log out of sa and log back in with the new user.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Table<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let\u2019s create a table for the data to be synced to, from Couchbase. Go to the <\/span><b>Databases<\/b><span>, then <\/span><b>cb<\/b><span>, then open a <\/span><b>New Query<\/b><span> window. The table fields in this table match the attributes in the Couchbase beer-samples document. The SQL to create the table is below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11874} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image32-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Run the create table statement.<\/span><span>\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>create\u00a0table\u00a0beer\r\n(\r\n \u00a0\u00a0\u00a0name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(200)\u00a0\u00a0not\u00a0null\u00a0constraint\u00a0beer_pk\u00a0primary\u00a0key\u00a0nonclustered,\r\n \u00a0\u00a0\u00a0abv\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0numeric(5,\u00a02)\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0brewery_id\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0category\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0description\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0ibu\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0srm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0style\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0upc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0updated\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null\r\n)\r\ngo<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync has two components, one for Couchbase to MSSQL, and another for MSSQL to Couchbase. This will set up the application to sync data from Couchbase to MSSQL. Setting up the other direction is a very similar setup.\u00a0 \u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Make config folder<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Make a folder for the GlueSync configuration file. We&#8217;ll share this with the Docker container when starting it.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>mkdir\u00a0c:agluesyncconfig<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Get Docker network IP addresses for Couchbase and MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We need the Docker network information for the Couchbase and MSSQL containers to configure GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Get the container IDs.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0container\u00a0ls\u00a0-a\r\nCONTAINER ID\u00a0\u00a0\u00a0IMAGE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0COMMAND\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CREATED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0STATUS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PORTS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NAMES\r\n10b985792024\u00a0\u00a0\u00a0mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04\u00a0\u00a0\u00a0&quot;\/opt\/mssql\/bin\/perm\u2026&quot;\u00a0\u00a0\u00a034 minutes ago\u00a0\u00a0\u00a0Up 34 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:1433-&gt;1433\/tcp, :::1433-&gt;1433\/tcp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mssql\r\nd2df1bad1647\u00a0\u00a0\u00a0couchbase:enterprise-6.6.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;\/entrypoint.sh couc\u2026&quot;\u00a0\u00a0\u00a040 minutes ago\u00a0\u00a0\u00a0Up 40 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:8091-8096-&gt;8091-8096\/tcp, :::8091-8096-&gt;8091-8096\/tcp, 11207\/tcp, 0.0.0.0:11210-11211-&gt;11210-11211\/tcp, :::11210-11211-&gt;11210-11211\/tcp, 18091-18096\/tcp\u00a0\u00a0\u00a0cb-663<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Now, get the IP addresses for the containers using those IDs by using the Docker Inspect command on Couchbase.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a0d2df1bad1647\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;: &quot;172.17.0.2&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Run the Docker Inspect command on MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a010b985792024\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The IP addresses are:<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><span>Couchbase &#8211; 172.17.0.2<\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span>MSSQL &#8211; 172.17.0.3<\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NOTE: If you stop and restart the containers, the IP address can change and you&#8217;ll need to verify the config is still correct.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create the GlueSync configuration file<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the information below with your specific info and save it to the config.json file in the folder you created above, i.e. c:agluesyncconfigconfig.json<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>{\r\n \u00a0&quot;sourceHost&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0&quot;sourcePort&quot;:\u00a0&quot;8091&quot;,\r\n \u00a0&quot;sourceName&quot;:\u00a0&quot;beer-sample&quot;,\r\n \u00a0&quot;sourceUsername&quot;:\u00a0&quot;cb-user&quot;,\r\n \u00a0&quot;sourcePassword&quot;:\u00a0&quot;RandomCBPass2!&quot;,\r\n \u00a0&quot;sourceEntities&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;beer&quot;:\u00a0{}\r\n \u00a0},\r\n \u00a0&quot;sourceChangeRetention&quot;:\u00a05,\r\n \u00a0&quot;copySourceEntitiesAtStartup&quot;:\u00a0true,\r\n \u00a0&quot;targetHost&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0&quot;targetPort&quot;:\u00a0&quot;1433&quot;,\r\n \u00a0&quot;targetName&quot;:\u00a0&quot;cb&quot;,\r\n \u00a0&quot;targetUsername&quot;:\u00a0&quot;mssql-user&quot;,\r\n \u00a0&quot;targetPassword&quot;:\u00a0&quot;RandomMSSQLUserPass2!&quot;,\r\n \u00a0&quot;maxItemsCountPerTransaction&quot;:\u00a0100,\r\n \u00a0&quot;maxTransactionCountPerIteration&quot;:\u00a0100,\r\n \u00a0&quot;couchbase&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;timeoutSeconds&quot;:\u00a060,\r\n \u00a0\u00a0\u00a0&quot;indexReplicaCount&quot;:\u00a00,\r\n \u00a0\u00a0\u00a0&quot;eventing&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;baseUrl&quot;:\u00a0&quot;https:\/\/172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;metadataBucketName&quot;:\u00a0&quot;Metadata&quot;\r\n \u00a0\u00a0\u00a0}\r\n \u00a0}\r\n}<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Get GlueSync credentials to pull GlueSync image from Docker<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check out the Before We Get Started section above for GlueSync license info for the Docker registry and downloading the product.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Once you have that info, follow the steps below to install GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Since you may already have credentials stored, you may want to logout. If you run into credential issues, this may be the reason.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Login to the registry &#8211; this may be a different registry than you typically use, so double-check that value.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0login\u00a0registry.gitlab.com\r\nUsername: xxxusernamexxx\r\nPassword:\r\nLogin Succeeded<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Pull the image.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0pull\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nlatest: Pulling from molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql\r\nDigest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142\r\nStatus: Downloaded newer image for registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nregistry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nC:UsersDavid Elliott&gt;<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>You may want to logout again (I\u2019ve been tripped up when I didn\u2019t log out and get errors next time I run a command).<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Start the GlueSync Container\/Application<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the path to the config file in the Docker command below to match the path on your computer.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker\u00a0run\u00a0-d\u00a0--name\u00a0gluesync-cb-to-mssql\u00a0-v\u00a0c:\/a\/gluesync\/config:\/opt\/app\/config\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:1.2.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should have three containers running in Docker.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11888} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image14-300x70-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If it\u2019s not running, check the container logs for messages. I\u2019ve inadvertently put the config file into the wrong folder and GlueSync didn\u2019t start; the logs let me know what was going on.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Watch the Magic<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the MSSQL and query the table, you should see the data from the Couchbase bucket in the table we created. Once GlueSync started, it synced the data from Couchbase to MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11866} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image24-300x107-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>To play around with it, you can modify data and see the changes synced across the databases. Go to the beer-samples documents and make a change. Here, I updated two documents. You can see the Docker output log below the Couchbase UI. GlueSync detected the two changes.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11869} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image27-300x200-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Switching over to MSSQL, I can see the updates in MSSQL as well.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11868} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image26-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Conclusion<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We often have to work with multiple databases, particularly when we\u2019re doing a modernization. We may have a phased release or need to get existing data from an older relational database into Couchbase. This could involve custom code and testing or considering a product like GlueSync which makes the process more seamless.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Checkout <a href=\"https:\/\/gluesync.com\/\">GlueSync <\/a><\/span><span>for more information on their products and capabilities. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph --><!-- \/wp:post-content --><!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:separator -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em><span>GlueSync allows you to replicate data to and from RDBMS (Microsoft SQL Server and Oracle) in real time with Couchbase.<\/span><\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Docker in this post as we go through the steps to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Before We Get Started<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Docker<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>First, this tutorial uses Docker and if you don\u2019t have Docker, you can find more information here <\/span><a href=\"https:\/\/www.docker.com\/\"><span>https:\/\/www.docker.com\/<\/span><\/a><span>. You\u2019ll need to install Docker to complete the steps below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>GlueSync<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, GlueSync requires a license. To complete this tutorial, you\u2019ll need a license from the GlueSync team. You can go to <\/span><a href=\"https:\/\/gluesync.com\/plans\/\"><span>https:\/\/gluesync.com\/plans\/<\/span><\/a><span> and view more info on their plans and <\/span><a href=\"https:\/\/gluesync.com\/contact-sales\/\"><span>https:\/\/gluesync.com\/contact-sales\/<\/span><\/a><span> to contact the GlueSync team.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>High-level Steps<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"#h-run-couchbase-and-mssql\"><span>Run and Configure Couchbase and MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\">Create the configuration file for GlueSync<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-watch-the-magic\">Watch the magic<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Run Couchbase and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Couchbase<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Couchbase 6.6.3 for this tutorial. The following Docker command will get Couchbase up and running, exposing the ports we need.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>For the MSSQL Docker run command, notice we\u2019re including the SA password. Update that and make a note of it, we\u2019ll use it later.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name mssql -e &#039;ACCEPT_EULA=Y&#039; -e &#039;SA_PASSWORD=RandomMSSQLPass2!&#039; -p 1433:1433 -d mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Verify Containers<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now you should have two containers running, Couchbase and MSSQL. We&#8217;ll start the GlueSync container after we get these configured.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11865} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image23-300x56-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure Couchbase with GlueSync and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading \/--><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll start with Couchbase and do a basic installation.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Setup New Cluster<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Running the Docker commands above would have started Couchbase and exposed the ports so you can open<\/span><span> the Couchbase UI by going to <\/span><a href=\"https:\/\/localhost:8091\/ui\/index.html\" target=\"_blank\" rel=\"noopener\"><span>https:\/\/localhost:8091\/ui\/index.html<\/span><\/a><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll choose <\/span><b>Setup New Cluster<\/b><span> and set up a cluster of one node (not recommended for production, but works great for dev and doing a tutorial).\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11872} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image30-300x208-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the new cluster information and click <\/span><b>Next: Accept Terms<\/b><span>. Make a note of your password, we\u2019ll need it later. We\u2019re using <\/span><b>RandomCBPass2!<\/b><span> for this instance.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11890} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image16-300x210-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If you accept the terms and conditions, check that option, and click <\/span><b>Finish With Defaults<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><b>NOTE<\/b><span> GlueSync works with Couchbase using a couple of Couchbase technologies, Sync Gateway and the Eventing service. We are using the Eventing option in this tutorial. The Eventing feature will be installed with the <\/span><b>Finish With Defaults<\/b><span> selection below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em><span>Couchbase offers a single install where you can enable all the services or pick and choose to customize to the needs of your project. This tutorial will install all the services for convenience. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/services.html\">Learn more<\/a> about Couchbase services and multi-dimensional scaling<\/span><span>.\u00a0\u00a0<\/span><\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11876} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-244x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should be redirected to the Dashboard. We will use data from the sample bucket in this tutorial. To install the data, click <\/span><b>Sample Buckets<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If, for some reason, you don\u2019t see the <\/span><b>Sample Bucket<\/b><span> link on the dashboard, go to <\/span><b>Settings <\/b><span>from the left menu, look near the top right of the UI, and you\u2019ll see a menu item for <\/span><b>Sample Buckets<\/b><span>, as shown below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11879} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image5-300x68-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check beer-sample and click <\/span><b>Load Sample Data<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11891} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image17-300x116-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Give it a few minutes to load, then click <\/span><b>Buckets<\/b><span> in the navigation on the left.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>\u00a0<\/span><span>You should see the beer-sample bucket we just loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11875} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-300x81-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let&#8217;s view the documents. Click the <\/span><b>Documents<\/b><span> link on the right, next to <\/span><b>Statistics<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We&#8217;re going to sync documents of type beer. You can put a filter (type=&#8221;beer&#8221;) in the N1QL WHERE box and click <\/span><b>Retrieve Docs<\/b><span> to get those documents; it&#8217;ll be a little easier to see and test this way.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11873} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image31-300x89-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Create Couchbase User<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a user for the GlueSync application to use. This is for tutorial purposes and you should follow your security practices when managing your users in conjunction with Couchbase and GlueSync requirements.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the <\/span><b>Security<\/b><span> link on the left then click <\/span><b>ADD USER<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11893} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image19-300x79-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Fill out the user information, as shown below. We\u2019re using the Username of <\/span><b>cb-user<\/b><span> and Password <\/span><b>RandomCBPass2!<\/b><span>; keep this info for later. Make sure you check <\/span><b>Full Admin<\/b><span> under the roles. Once it\u2019s filled out, click the <\/span><b>Add User<\/b><span> button.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11887} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image13-300x258-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see the user we just created.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11889} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image15-300x59-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Add a GlueSync Metadata bucket<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync uses Couchbase\u2019s Eventing service. Eventing requires a Metadata bucket, and we\u2019ll create one now. <a href=\"https:\/\/gluesync.com\/docs\/gluesync\/v1.2.0\/couchbase-server\/bucket-requirements.html#metadata-bucket\">Get more info<\/a> on GlueSync and the Metadata bucket.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>Buckets <\/b><span>on the left menu and click <\/span><b>ADD BUCKET<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11863} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image21-300x78-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the Metadata Name and click <\/span><b>Add Bucket<\/b><span>. We\u2019ll use the defaults for the other options.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11878} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-300x257-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see two buckets now.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11885} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image11-300x87-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use SQL Server Management Studio to configure MSSQL, which was installed in the step above. If you need to install the management studio, you can <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssms\/download-sql-server-management-studio-ssms?view=sql-server-ver15\">find it here<\/a>.<\/span><b>\u00a0<\/b><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Login with the credentials passed to the Docker command from the earlier step, in this case, Login: <\/span><b>sa<\/b><span> and Password: <\/span><b>RandomMSSQLPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11886} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image12-300x201-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create New Database<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a new database where the data from Couchbase will be loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11870} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image28-279x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>In this case, since I\u2019m very creative, I\u2019ll use <\/span><b>cb<\/b><span>, and choose Ok.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11871} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image29-300x113-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Login<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, create a MSSQL Login. Right-click the Login folder and choose <\/span><b>New Login\u2026<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11864} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image22-300x243-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The Login name we\u2019re using is <\/span><b>mssql-user <\/b><span>and Password is <\/span><b>RandomMSSQLUserPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Set Default database to <\/span><b>cb<\/b><span>, the database created above.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should follow your security standards when creating users. The instructions in this article\u00a0 are for tutorial purposes only and some options I\u2019m picking are for simplicity. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11867} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image25-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>User Mapping<\/b><span>, on the left under <\/span><b>Select a page<\/b><span>, and select <\/span><b>cb <\/b><span>under <\/span><b>Users mapped to this login<\/b><span> and <\/span><b>db_owner<\/b><span> under the <\/span><b>Database role membership<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11862} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image20-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now that we\u2019ve got that setup, verify you can login with the user. Log out of sa and log back in with the new user.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Table<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let\u2019s create a table for the data to be synced to, from Couchbase. Go to the <\/span><b>Databases<\/b><span>, then <\/span><b>cb<\/b><span>, then open a <\/span><b>New Query<\/b><span> window. The table fields in this table match the attributes in the Couchbase beer-samples document. The SQL to create the table is below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11874} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image32-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Run the create table statement.<\/span><span>\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>create\u00a0table\u00a0beer\r\n(\r\n \u00a0\u00a0\u00a0name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(200)\u00a0\u00a0not\u00a0null\u00a0constraint\u00a0beer_pk\u00a0primary\u00a0key\u00a0nonclustered,\r\n \u00a0\u00a0\u00a0abv\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0numeric(5,\u00a02)\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0brewery_id\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0category\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0description\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0ibu\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0srm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0style\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0upc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0updated\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null\r\n)\r\ngo<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync has two components, one for Couchbase to MSSQL, and another for MSSQL to Couchbase. This will set up the application to sync data from Couchbase to MSSQL. Setting up the other direction is a very similar setup.\u00a0 \u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Make config folder<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Make a folder for the GlueSync configuration file. We&#8217;ll share this with the Docker container when starting it.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>mkdir\u00a0c:agluesyncconfig<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Get Docker network IP addresses for Couchbase and MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We need the Docker network information for the Couchbase and MSSQL containers to configure GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Get the container IDs.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0container\u00a0ls\u00a0-a\r\nCONTAINER ID\u00a0\u00a0\u00a0IMAGE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0COMMAND\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CREATED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0STATUS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PORTS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NAMES\r\n10b985792024\u00a0\u00a0\u00a0mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04\u00a0\u00a0\u00a0&quot;\/opt\/mssql\/bin\/perm\u2026&quot;\u00a0\u00a0\u00a034 minutes ago\u00a0\u00a0\u00a0Up 34 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:1433-&gt;1433\/tcp, :::1433-&gt;1433\/tcp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mssql\r\nd2df1bad1647\u00a0\u00a0\u00a0couchbase:enterprise-6.6.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;\/entrypoint.sh couc\u2026&quot;\u00a0\u00a0\u00a040 minutes ago\u00a0\u00a0\u00a0Up 40 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:8091-8096-&gt;8091-8096\/tcp, :::8091-8096-&gt;8091-8096\/tcp, 11207\/tcp, 0.0.0.0:11210-11211-&gt;11210-11211\/tcp, :::11210-11211-&gt;11210-11211\/tcp, 18091-18096\/tcp\u00a0\u00a0\u00a0cb-663<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Now, get the IP addresses for the containers using those IDs by using the Docker Inspect command on Couchbase.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a0d2df1bad1647\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;: &quot;172.17.0.2&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Run the Docker Inspect command on MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a010b985792024\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The IP addresses are:<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><span>Couchbase &#8211; 172.17.0.2<\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span>MSSQL &#8211; 172.17.0.3<\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NOTE: If you stop and restart the containers, the IP address can change and you&#8217;ll need to verify the config is still correct.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create the GlueSync configuration file<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the information below with your specific info and save it to the config.json file in the folder you created above, i.e. c:agluesyncconfigconfig.json<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>{\r\n \u00a0&quot;sourceHost&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0&quot;sourcePort&quot;:\u00a0&quot;8091&quot;,\r\n \u00a0&quot;sourceName&quot;:\u00a0&quot;beer-sample&quot;,\r\n \u00a0&quot;sourceUsername&quot;:\u00a0&quot;cb-user&quot;,\r\n \u00a0&quot;sourcePassword&quot;:\u00a0&quot;RandomCBPass2!&quot;,\r\n \u00a0&quot;sourceEntities&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;beer&quot;:\u00a0{}\r\n \u00a0},\r\n \u00a0&quot;sourceChangeRetention&quot;:\u00a05,\r\n \u00a0&quot;copySourceEntitiesAtStartup&quot;:\u00a0true,\r\n \u00a0&quot;targetHost&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0&quot;targetPort&quot;:\u00a0&quot;1433&quot;,\r\n \u00a0&quot;targetName&quot;:\u00a0&quot;cb&quot;,\r\n \u00a0&quot;targetUsername&quot;:\u00a0&quot;mssql-user&quot;,\r\n \u00a0&quot;targetPassword&quot;:\u00a0&quot;RandomMSSQLUserPass2!&quot;,\r\n \u00a0&quot;maxItemsCountPerTransaction&quot;:\u00a0100,\r\n \u00a0&quot;maxTransactionCountPerIteration&quot;:\u00a0100,\r\n \u00a0&quot;couchbase&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;timeoutSeconds&quot;:\u00a060,\r\n \u00a0\u00a0\u00a0&quot;indexReplicaCount&quot;:\u00a00,\r\n \u00a0\u00a0\u00a0&quot;eventing&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;baseUrl&quot;:\u00a0&quot;https:\/\/172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;metadataBucketName&quot;:\u00a0&quot;Metadata&quot;\r\n \u00a0\u00a0\u00a0}\r\n \u00a0}\r\n}<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Get GlueSync credentials to pull GlueSync image from Docker<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check out the Before We Get Started section above for GlueSync license info for the Docker registry and downloading the product.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Once you have that info, follow the steps below to install GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Since you may already have credentials stored, you may want to logout. If you run into credential issues, this may be the reason.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Login to the registry &#8211; this may be a different registry than you typically use, so double-check that value.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0login\u00a0registry.gitlab.com\r\nUsername: xxxusernamexxx\r\nPassword:\r\nLogin Succeeded<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Pull the image.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0pull\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nlatest: Pulling from molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql\r\nDigest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142\r\nStatus: Downloaded newer image for registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nregistry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nC:UsersDavid Elliott&gt;<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>You may want to logout again (I\u2019ve been tripped up when I didn\u2019t log out and get errors next time I run a command).<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Start the GlueSync Container\/Application<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the path to the config file in the Docker command below to match the path on your computer.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker\u00a0run\u00a0-d\u00a0--name\u00a0gluesync-cb-to-mssql\u00a0-v\u00a0c:\/a\/gluesync\/config:\/opt\/app\/config\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:1.2.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should have three containers running in Docker.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11888} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image14-300x70-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If it\u2019s not running, check the container logs for messages. I\u2019ve inadvertently put the config file into the wrong folder and GlueSync didn\u2019t start; the logs let me know what was going on.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Watch the Magic<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the MSSQL and query the table, you should see the data from the Couchbase bucket in the table we created. Once GlueSync started, it synced the data from Couchbase to MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11866} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image24-300x107-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>To play around with it, you can modify data and see the changes synced across the databases. Go to the beer-samples documents and make a change. Here, I updated two documents. You can see the Docker output log below the Couchbase UI. GlueSync detected the two changes.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11869} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image27-300x200-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Switching over to MSSQL, I can see the updates in MSSQL as well.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11868} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image26-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Conclusion<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We often have to work with multiple databases, particularly when we\u2019re doing a modernization. We may have a phased release or need to get existing data from an older relational database into Couchbase. This could involve custom code and testing or considering a product like GlueSync which makes the process more seamless.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Checkout <a href=\"https:\/\/gluesync.com\/\">GlueSync <\/a><\/span><span>for more information on their products and capabilities. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph --><!-- \/wp:post-content --><!-- \/wp:paragraph --><!-- wp:post-content --><!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:heading -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Introduction<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Are you modernizing your development process? Are you following a rapid development approach to deliver higher quality and more frequent capabilities to your customers? Part of that process often requires us to work with multiple databases for a transition period when we need both databases available. We need a way to sync the data between the databases, the more seamlessly, the better. Using Couchbase with <a href=\"https:\/\/gluesync.com\/\">GlueSync<\/a><\/span><span> fits that purpose.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em><span>GlueSync allows you to replicate data to and from RDBMS (Microsoft SQL Server and Oracle) in real time with Couchbase.<\/span><\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Docker in this post as we go through the steps to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Before We Get Started<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Docker<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>First, this tutorial uses Docker and if you don\u2019t have Docker, you can find more information here <\/span><a href=\"https:\/\/www.docker.com\/\"><span>https:\/\/www.docker.com\/<\/span><\/a><span>. You\u2019ll need to install Docker to complete the steps below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>GlueSync<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, GlueSync requires a license. To complete this tutorial, you\u2019ll need a license from the GlueSync team. You can go to <\/span><a href=\"https:\/\/gluesync.com\/plans\/\"><span>https:\/\/gluesync.com\/plans\/<\/span><\/a><span> and view more info on their plans and <\/span><a href=\"https:\/\/gluesync.com\/contact-sales\/\"><span>https:\/\/gluesync.com\/contact-sales\/<\/span><\/a><span> to contact the GlueSync team.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>High-level Steps<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list {\"ordered\":true} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list {\"ordered\":true} -->\n<ol class=\"wp-block-list\"><!-- wp:list-item -->\n<li><a href=\"#h-run-couchbase-and-mssql\"><span>Run and Configure Couchbase and MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\">Create the configuration file for GlueSync<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><a href=\"#h-configure-and-run-gluesync-for-couchbase-to-mssql\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/a><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span><a href=\"#h-watch-the-magic\">Watch the magic<\/a><\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ol>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Run Couchbase and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Couchbase<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use Couchbase 6.6.3 for this tutorial. The following Docker command will get Couchbase up and running, exposing the ports we need.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name cb-663 -p 8091-8096:8091-8096 -p 11210-11211:11210-11211 couchbase:enterprise-6.6.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>For the MSSQL Docker run command, notice we\u2019re including the SA password. Update that and make a note of it, we\u2019ll use it later.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker run -d --name mssql -e &#039;ACCEPT_EULA=Y&#039; -e &#039;SA_PASSWORD=RandomMSSQLPass2!&#039; -p 1433:1433 -d mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:preformatted --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Verify Containers<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now you should have two containers running, Couchbase and MSSQL. We&#8217;ll start the GlueSync container after we get these configured.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11865} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image23-300x56-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure Couchbase with GlueSync and MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading \/--><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll start with Couchbase and do a basic installation.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Setup New Cluster<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Running the Docker commands above would have started Couchbase and exposed the ports so you can open<\/span><span> the Couchbase UI by going to <\/span><a href=\"https:\/\/localhost:8091\/ui\/index.html\" target=\"_blank\" rel=\"noopener\"><span>https:\/\/localhost:8091\/ui\/index.html<\/span><\/a><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll choose <\/span><b>Setup New Cluster<\/b><span> and set up a cluster of one node (not recommended for production, but works great for dev and doing a tutorial).\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11872} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image30-300x208-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the new cluster information and click <\/span><b>Next: Accept Terms<\/b><span>. Make a note of your password, we\u2019ll need it later. We\u2019re using <\/span><b>RandomCBPass2!<\/b><span> for this instance.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11890} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image16-300x210-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If you accept the terms and conditions, check that option, and click <\/span><b>Finish With Defaults<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><b>NOTE<\/b><span> GlueSync works with Couchbase using a couple of Couchbase technologies, Sync Gateway and the Eventing service. We are using the Eventing option in this tutorial. The Eventing feature will be installed with the <\/span><b>Finish With Defaults<\/b><span> selection below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><em><span>Couchbase offers a single install where you can enable all the services or pick and choose to customize to the needs of your project. This tutorial will install all the services for convenience. <a href=\"https:\/\/docs.couchbase.com\/server\/current\/learn\/services-and-indexes\/services\/services.html\">Learn more<\/a> about Couchbase services and multi-dimensional scaling<\/span><span>.\u00a0\u00a0<\/span><\/em><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:separator --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:separator -->\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<!-- \/wp:separator -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11876} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image2-244x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should be redirected to the Dashboard. We will use data from the sample bucket in this tutorial. To install the data, click <\/span><b>Sample Buckets<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If, for some reason, you don\u2019t see the <\/span><b>Sample Bucket<\/b><span> link on the dashboard, go to <\/span><b>Settings <\/b><span>from the left menu, look near the top right of the UI, and you\u2019ll see a menu item for <\/span><b>Sample Buckets<\/b><span>, as shown below.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11879} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image5-300x68-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check beer-sample and click <\/span><b>Load Sample Data<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11891} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image17-300x116-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Give it a few minutes to load, then click <\/span><b>Buckets<\/b><span> in the navigation on the left.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>\u00a0<\/span><span>You should see the beer-sample bucket we just loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11875} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image1-300x81-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let&#8217;s view the documents. Click the <\/span><b>Documents<\/b><span> link on the right, next to <\/span><b>Statistics<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We&#8217;re going to sync documents of type beer. You can put a filter (type=&#8221;beer&#8221;) in the N1QL WHERE box and click <\/span><b>Retrieve Docs<\/b><span> to get those documents; it&#8217;ll be a little easier to see and test this way.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11873} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image31-300x89-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\">Create Couchbase User<\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a user for the GlueSync application to use. This is for tutorial purposes and you should follow your security practices when managing your users in conjunction with Couchbase and GlueSync requirements.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the <\/span><b>Security<\/b><span> link on the left then click <\/span><b>ADD USER<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11893} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image19-300x79-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Fill out the user information, as shown below. We\u2019re using the Username of <\/span><b>cb-user<\/b><span> and Password <\/span><b>RandomCBPass2!<\/b><span>; keep this info for later. Make sure you check <\/span><b>Full Admin<\/b><span> under the roles. Once it\u2019s filled out, click the <\/span><b>Add User<\/b><span> button.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11887} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image13-300x258-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see the user we just created.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11889} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image15-300x59-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Add a GlueSync Metadata bucket<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync uses Couchbase\u2019s Eventing service. Eventing requires a Metadata bucket, and we\u2019ll create one now. <a href=\"https:\/\/gluesync.com\/docs\/gluesync\/v1.2.0\/couchbase-server\/bucket-requirements.html#metadata-bucket\">Get more info<\/a> on GlueSync and the Metadata bucket.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>Buckets <\/b><span>on the left menu and click <\/span><b>ADD BUCKET<\/b><span> in the top right.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11863} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image21-300x78-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Enter the Metadata Name and click <\/span><b>Add Bucket<\/b><span>. We\u2019ll use the defaults for the other options.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11878} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image4-300x257-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should see two buckets now.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11885} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image11-300x87-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll use SQL Server Management Studio to configure MSSQL, which was installed in the step above. If you need to install the management studio, you can <a href=\"https:\/\/docs.microsoft.com\/en-us\/sql\/ssms\/download-sql-server-management-studio-ssms?view=sql-server-ver15\">find it here<\/a>.<\/span><b>\u00a0<\/b><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Login with the credentials passed to the Docker command from the earlier step, in this case, Login: <\/span><b>sa<\/b><span> and Password: <\/span><b>RandomMSSQLPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11886} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image12-300x201-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create New Database<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We\u2019ll create a new database where the data from Couchbase will be loaded.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11870} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image28-279x300-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>In this case, since I\u2019m very creative, I\u2019ll use <\/span><b>cb<\/b><span>, and choose Ok.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11871} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image29-300x113-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Login<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Next, create a MSSQL Login. Right-click the Login folder and choose <\/span><b>New Login\u2026<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11864} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image22-300x243-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The Login name we\u2019re using is <\/span><b>mssql-user <\/b><span>and Password is <\/span><b>RandomMSSQLUserPass2!<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Set Default database to <\/span><b>cb<\/b><span>, the database created above.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should follow your security standards when creating users. The instructions in this article\u00a0 are for tutorial purposes only and some options I\u2019m picking are for simplicity. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11867} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image25-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to <\/span><b>User Mapping<\/b><span>, on the left under <\/span><b>Select a page<\/b><span>, and select <\/span><b>cb <\/b><span>under <\/span><b>Users mapped to this login<\/b><span> and <\/span><b>db_owner<\/b><span> under the <\/span><b>Database role membership<\/b><span>.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11862} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image20-300x284-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Now that we\u2019ve got that setup, verify you can login with the user. Log out of sa and log back in with the new user.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":3} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create Table<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Let\u2019s create a table for the data to be synced to, from Couchbase. Go to the <\/span><b>Databases<\/b><span>, then <\/span><b>cb<\/b><span>, then open a <\/span><b>New Query<\/b><span> window. The table fields in this table match the attributes in the Couchbase beer-samples document. The SQL to create the table is below.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11874} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image32-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Run the create table statement.<\/span><span>\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>create\u00a0table\u00a0beer\r\n(\r\n \u00a0\u00a0\u00a0name\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(200)\u00a0\u00a0not\u00a0null\u00a0constraint\u00a0beer_pk\u00a0primary\u00a0key\u00a0nonclustered,\r\n \u00a0\u00a0\u00a0abv\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0numeric(5,\u00a02)\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0brewery_id\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0category\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0description\u00a0varchar(max)\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0ibu\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0srm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0style\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max),\r\n \u00a0\u00a0\u00a0upc\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0int\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0not\u00a0null,\r\n \u00a0\u00a0\u00a0updated\u00a0\u00a0\u00a0\u00a0\u00a0varchar(max)\u00a0\u00a0not\u00a0null\r\n)\r\ngo<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Configure and Run GlueSync for Couchbase to MSSQL<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>GlueSync has two components, one for Couchbase to MSSQL, and another for MSSQL to Couchbase. This will set up the application to sync data from Couchbase to MSSQL. Setting up the other direction is a very similar setup.\u00a0 \u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Make config folder<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Make a folder for the GlueSync configuration file. We&#8217;ll share this with the Docker container when starting it.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>mkdir\u00a0c:agluesyncconfig<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Get Docker network IP addresses for Couchbase and MSSQL<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We need the Docker network information for the Couchbase and MSSQL containers to configure GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Get the container IDs.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0container\u00a0ls\u00a0-a\r\nCONTAINER ID\u00a0\u00a0\u00a0IMAGE\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0COMMAND\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0CREATED\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0STATUS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0PORTS\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0NAMES\r\n10b985792024\u00a0\u00a0\u00a0mcr.microsoft.com\/mssql\/server:2019-CU10-ubuntu-20.04\u00a0\u00a0\u00a0&quot;\/opt\/mssql\/bin\/perm\u2026&quot;\u00a0\u00a0\u00a034 minutes ago\u00a0\u00a0\u00a0Up 34 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:1433-&gt;1433\/tcp, :::1433-&gt;1433\/tcp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0mssql\r\nd2df1bad1647\u00a0\u00a0\u00a0couchbase:enterprise-6.6.3\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;\/entrypoint.sh couc\u2026&quot;\u00a0\u00a0\u00a040 minutes ago\u00a0\u00a0\u00a0Up 40 minutes\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a00.0.0.0:8091-8096-&gt;8091-8096\/tcp, :::8091-8096-&gt;8091-8096\/tcp, 11207\/tcp, 0.0.0.0:11210-11211-&gt;11210-11211\/tcp, :::11210-11211-&gt;11210-11211\/tcp, 18091-18096\/tcp\u00a0\u00a0\u00a0cb-663<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>Now, get the IP addresses for the containers using those IDs by using the Docker Inspect command on Couchbase.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a0d2df1bad1647\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;: &quot;172.17.0.2&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Run the Docker Inspect command on MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0inspect\u00a010b985792024\u00a0|\u00a0Select-String\u00a0IPAddress\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;SecondaryIPAddresses&quot;:\u00a0null,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&quot;IPAddress&quot;:\u00a0&quot;172.17.0.3&quot;,<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>The IP addresses are:<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:list -->\n<ul class=\"wp-block-list\"><!-- wp:list-item -->\n<li><span>Couchbase &#8211; 172.17.0.2<\/span><\/li>\n<!-- \/wp:list-item -->\n<!-- wp:list-item -->\n<li><span>MSSQL &#8211; 172.17.0.3<\/span><\/li>\n<!-- \/wp:list-item -->\n<\/ul>\n<!-- \/wp:list -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:list --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>NOTE: If you stop and restart the containers, the IP address can change and you&#8217;ll need to verify the config is still correct.<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading {\"level\":3} -->\n<h3 class=\"wp-block-heading\"><span>Create the GlueSync configuration file<\/span><\/h3>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the information below with your specific info and save it to the config.json file in the folder you created above, i.e. c:agluesyncconfigconfig.json<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>{\r\n \u00a0&quot;sourceHost&quot;:\u00a0&quot;172.17.0.2&quot;,\r\n \u00a0&quot;sourcePort&quot;:\u00a0&quot;8091&quot;,\r\n \u00a0&quot;sourceName&quot;:\u00a0&quot;beer-sample&quot;,\r\n \u00a0&quot;sourceUsername&quot;:\u00a0&quot;cb-user&quot;,\r\n \u00a0&quot;sourcePassword&quot;:\u00a0&quot;RandomCBPass2!&quot;,\r\n \u00a0&quot;sourceEntities&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;beer&quot;:\u00a0{}\r\n \u00a0},\r\n \u00a0&quot;sourceChangeRetention&quot;:\u00a05,\r\n \u00a0&quot;copySourceEntitiesAtStartup&quot;:\u00a0true,\r\n \u00a0&quot;targetHost&quot;:\u00a0&quot;172.17.0.3&quot;,\r\n \u00a0&quot;targetPort&quot;:\u00a0&quot;1433&quot;,\r\n \u00a0&quot;targetName&quot;:\u00a0&quot;cb&quot;,\r\n \u00a0&quot;targetUsername&quot;:\u00a0&quot;mssql-user&quot;,\r\n \u00a0&quot;targetPassword&quot;:\u00a0&quot;RandomMSSQLUserPass2!&quot;,\r\n \u00a0&quot;maxItemsCountPerTransaction&quot;:\u00a0100,\r\n \u00a0&quot;maxTransactionCountPerIteration&quot;:\u00a0100,\r\n \u00a0&quot;couchbase&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0&quot;timeoutSeconds&quot;:\u00a060,\r\n \u00a0\u00a0\u00a0&quot;indexReplicaCount&quot;:\u00a00,\r\n \u00a0\u00a0\u00a0&quot;eventing&quot;:\u00a0{\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;baseUrl&quot;:\u00a0&quot;https:\/\/172.17.0.2&quot;,\r\n \u00a0\u00a0\u00a0\u00a0\u00a0&quot;metadataBucketName&quot;:\u00a0&quot;Metadata&quot;\r\n \u00a0\u00a0\u00a0}\r\n \u00a0}\r\n}<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Get GlueSync credentials to pull GlueSync image from Docker<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Check out the Before We Get Started section above for GlueSync license info for the Docker registry and downloading the product.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Once you have that info, follow the steps below to install GlueSync.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Since you may already have credentials stored, you may want to logout. If you run into credential issues, this may be the reason.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Login to the registry &#8211; this may be a different registry than you typically use, so double-check that value.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0login\u00a0registry.gitlab.com\r\nUsername: xxxusernamexxx\r\nPassword:\r\nLogin Succeeded<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Pull the image.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0pull\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nlatest: Pulling from molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql\r\nDigest: sha256:55e476fa05853c9dc5dfc1263cd5d2a5d3e1ea98f69b4d15d8edb83b91dcb142\r\nStatus: Downloaded newer image for registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nregistry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:latest\r\nC:UsersDavid Elliott&gt;<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>You may want to logout again (I\u2019ve been tripped up when I didn\u2019t log out and get errors next time I run a command).<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>C:UsersDavid\u00a0Elliott&gt;\u00a0docker\u00a0logout\u00a0registry.gitlab.com\r\nRemoving login credentials for registry.gitlab.com<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><span>Start the GlueSync Container\/Application<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Update the path to the config file in the Docker command below to match the path on your computer.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:code -->\n<pre class=\"wp-block-code\"><code>docker\u00a0run\u00a0-d\u00a0--name\u00a0gluesync-cb-to-mssql\u00a0-v\u00a0c:\/a\/gluesync\/config:\/opt\/app\/config\u00a0registry.gitlab.com\/molo17srl\/products\/gluesync\/nosql-to-sql-kotlin\/couchbase-to-mssql:1.2.3<\/code><\/pre>\n<!-- \/wp:code -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:html --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>You should have three containers running in Docker.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11888} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image14-300x70-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>If it\u2019s not running, check the container logs for messages. I\u2019ve inadvertently put the config file into the wrong folder and GlueSync didn\u2019t start; the logs let me know what was going on.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Watch the Magic<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Go to the MSSQL and query the table, you should see the data from the Couchbase bucket in the table we created. Once GlueSync started, it synced the data from Couchbase to MSSQL.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11866} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image24-300x107-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>To play around with it, you can modify data and see the changes synced across the databases. Go to the beer-samples documents and make a change. Here, I updated two documents. You can see the Docker output log below the Couchbase UI. GlueSync detected the two changes.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11869} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image27-300x200-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Switching over to MSSQL, I can see the updates in MSSQL as well.<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:image {\"id\":11868} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:image -->\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.couchbase.com\/wp-content\/uploads\/sites\/5\/2026\/05\/image26-300x140-1.png\"\/><\/figure>\n<!-- \/wp:image -->\n\n<!-- wp:paragraph -->\n<p>\u00a0<\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:image --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:heading {\"level\":1} --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:heading -->\n<h2 class=\"wp-block-heading\"><span>Conclusion<\/span><\/h2>\n<!-- \/wp:heading -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:heading --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>We often have to work with multiple databases, particularly when we\u2019re doing a modernization. We may have a phased release or need to get existing data from an older relational database into Couchbase. This could involve custom code and testing or considering a product like GlueSync which makes the process more seamless.\u00a0<\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- wp:paragraph --><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><span>Checkout <a href=\"https:\/\/gluesync.com\/\">GlueSync <\/a><\/span><span>for more information on their products and capabilities. <\/span><\/p>\n<!-- \/wp:paragraph -->\n\n<!-- wp:paragraph -->\n<p><!-- \/wp:paragraph --><\/p>\n<!-- \/wp:paragraph --><!-- \/wp:post-content -->","protected":false},"excerpt":{"rendered":"<p>Introduction Are you modernizing your development process? Are you following a rapid development approach to deliver higher quality and more frequent capabilities to your customers? Part of that process often requires us to work with multiple databases for a transition period when we need both databases available. We need a way to sync the data [&hellip;]<\/p>\n","protected":false},"author":76330,"featured_media":18,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[127,178,54,413,353],"tags":[],"ppma_author":[506],"class_list":["post-2039","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-application-design","category-connectors","category-couchbase-server","category-customers","category-solutions"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.6 (Yoast SEO v27.6) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Sync Data Between Couchbase and Relational Databases<\/title>\n<meta name=\"description\" content=\"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.couchbase.com\/blog\/pt\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync\" \/>\n<meta property=\"og:description\" content=\"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.couchbase.com\/blog\/pt\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/\" \/>\n<meta property=\"og:site_name\" content=\"The Couchbase Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-10-26T07:00:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1800\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"David Elliott, Solutions Engineer, Couchbase\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"David Elliott, Solutions Engineer, Couchbase\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/\"},\"author\":{\"name\":\"David Elliott, Solutions Engineer, Couchbase\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/83d6351038e224227bff7d6385cfc87c\"},\"headline\":\"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync\",\"datePublished\":\"2021-10-26T07:00:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/\"},\"wordCount\":1627,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"articleSection\":[\"Application Design\",\"Connectors\",\"Couchbase Server\",\"Customers\",\"Solutions\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/\",\"name\":\"Sync Data Between Couchbase and Relational Databases\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"datePublished\":\"2021-10-26T07:00:16+00:00\",\"description\":\"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/05\\\/couchbase-nosql-dbaas.png\",\"width\":1800,\"height\":630},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/es\\\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"name\":\"The Couchbase Blog\",\"description\":\"Couchbase, the NoSQL Database\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#organization\",\"name\":\"The Couchbase Blog\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/5\\\/2026\\\/06\\\/logo.svg\",\"width\":\"1024\",\"height\":\"1024\",\"caption\":\"The Couchbase Blog\"},\"image\":{\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/#\\\/schema\\\/person\\\/83d6351038e224227bff7d6385cfc87c\",\"name\":\"David Elliott, Solutions Engineer, Couchbase\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g81f7b64158312ec83e62238f3d1fcac2\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g\",\"caption\":\"David Elliott, Solutions Engineer, Couchbase\"},\"description\":\"Solutions Engineer at Couchbase, jack of all trades, master of some.\",\"url\":\"https:\\\/\\\/www.couchbase.com\\\/blog\\\/pt\\\/author\\\/david-elliott\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Sync Data Between Couchbase and Relational Databases","description":"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.couchbase.com\/blog\/pt\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/","og_locale":"pt_BR","og_type":"article","og_title":"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync","og_description":"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.","og_url":"https:\/\/www.couchbase.com\/blog\/pt\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/","og_site_name":"The Couchbase Blog","article_published_time":"2021-10-26T07:00:16+00:00","og_image":[{"width":1800,"height":630,"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","type":"image\/png"}],"author":"David Elliott, Solutions Engineer, Couchbase","twitter_card":"summary_large_image","twitter_misc":{"Written by":"David Elliott, Solutions Engineer, Couchbase","Est. reading time":"12 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#article","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/"},"author":{"name":"David Elliott, Solutions Engineer, Couchbase","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c"},"headline":"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync","datePublished":"2021-10-26T07:00:16+00:00","mainEntityOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/"},"wordCount":1627,"commentCount":0,"publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","articleSection":["Application Design","Connectors","Couchbase Server","Customers","Solutions"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/","url":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/","name":"Sync Data Between Couchbase and Relational Databases","isPartOf":{"@id":"https:\/\/www.couchbase.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#primaryimage"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#primaryimage"},"thumbnailUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","datePublished":"2021-10-26T07:00:16+00:00","description":"Go through the steps of how-to setup and configure Couchbase, Microsoft SQL Server, and GlueSync, demonstrating the syncing of data between the two.","breadcrumb":{"@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#primaryimage","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/couchbase-nosql-dbaas.png","width":1800,"height":630},{"@type":"BreadcrumbList","@id":"https:\/\/www.couchbase.com\/blog\/es\/your-guide-to-syncing-data-between-couchbase-and-relational-databases-with-gluesync\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.couchbase.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Your Guide to Syncing Data between Couchbase and Relational Databases with GlueSync"}]},{"@type":"WebSite","@id":"https:\/\/www.couchbase.com\/blog\/#website","url":"https:\/\/www.couchbase.com\/blog\/","name":"The Couchbase Blog","description":"Couchbase, the NoSQL Database","publisher":{"@id":"https:\/\/www.couchbase.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.couchbase.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Organization","@id":"https:\/\/www.couchbase.com\/blog\/#organization","name":"The Couchbase Blog","url":"https:\/\/www.couchbase.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","contentUrl":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/06\/logo.svg","width":"1024","height":"1024","caption":"The Couchbase Blog"},"image":{"@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.couchbase.com\/blog\/#\/schema\/person\/83d6351038e224227bff7d6385cfc87c","name":"David Elliott, Solutions Engineer, Couchbase","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g81f7b64158312ec83e62238f3d1fcac2","url":"https:\/\/secure.gravatar.com\/avatar\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/539f250065d3d888a4f05c5fe79b6e4c8a39c52c8a24aa32f99c4f00e1a18387?s=96&d=mm&r=g","caption":"David Elliott, Solutions Engineer, Couchbase"},"description":"Solutions Engineer at Couchbase, jack of all trades, master of some.","url":"https:\/\/www.couchbase.com\/blog\/pt\/author\/david-elliott\/"}]}},"acf":[],"authors":[{"term_id":506,"user_id":76330,"is_guest":0,"slug":"david-elliott","display_name":"David Elliott, Solutions Engineer, Couchbase","avatar_url":{"url":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/david-elliott-couchbase-1.jpeg","url2x":"https:\/\/www.couchbase.com\/blog\/wp-content\/uploads\/sites\/5\/2026\/05\/david-elliott-couchbase-1.jpeg"},"0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2039","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/users\/76330"}],"replies":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/comments?post=2039"}],"version-history":[{"count":0,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/posts\/2039\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media\/18"}],"wp:attachment":[{"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/media?parent=2039"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/categories?post=2039"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/tags?post=2039"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.couchbase.com\/blog\/pt\/wp-json\/wp\/v2\/ppma_author?post=2039"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}