{"id":8374,"date":"2016-06-20T15:26:47","date_gmt":"2016-06-20T13:26:47","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/"},"modified":"2023-07-18T07:44:25","modified_gmt":"2023-07-18T05:44:25","slug":"sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/","title":{"rendered":"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding"},"content":{"rendered":"<p><span style=\"color: #000000; font-family: Calibri;\">In this blog I would like to talk about two new features shipped with SQL Server 2016 for AlwaysOn availability groups. The first one concerns the new direct seeding capability and the seconde one\u00a0introduces\u00a0distributed availability groups (DAG). I will talk about the second one in a next blog post.<\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">First of all, let&#8217;s talk about direct seeding. \u00a0At the first glance, this feature seems very interesting because it simplifies a lot the process of adding a high available database.\u00a0 Indeed, with previous versions, adding a database to an availability group from an application perspective requires some extra steps from the database administrator in order to be highly available like backup\/restore or initializing replication process. Let\u2019s say a software editor wants to install or add a database (SharePoint for instance).\u00a0<\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Enabling seeding mode for the concerned replicas reduce the amount of work of adding the databases by automating a little bit more the initialization process. We just have to add the database to the availability group and it\u2019s over: no extra backup \/ restore tasks, no need to configure a file share for backup \/ restore and no manual initialization. Of course, CREATE and ALTER AVAILABILITY GROUP syntax includes a new per replica basis parameter named SEEDING_MODE that has two settings: MANUAL and AUTOMATIC. The former means that we will use the legacy method ton initialize databases to secondaries (by using backup \/ restore) and the latter will use the new automated initialization method that will consist in seeding database data across the replication network.<br \/>\nLet\u2019s have a quick demo of this new feature. I will configure a basic availability group with two replicas (WIN20121SQL16\\SQL16 and WIN20122SQL16\\SQL16). You may notice the new parameter SEEDING_MODE = AUTOMATIC meaning that we will use the new automated method for initializing databases for this availability group.\u00a0 You may also notice that we don\u2019t need any more to create a \u201cdummy\u201d database before creating an availability group.\u00a0<\/span><\/p>\n<p>On the primary:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">-- primary replica\nCREATE AVAILABILITY GROUP [testGrp]   \nFOR   \nREPLICA ON \nN'WIN20121SQL16\\SQL16' \nWITH (ENDPOINT_URL = N'TCP:\/\/WIN20121SQL16.dbi-services.test:5022',  \n    FAILOVER_MODE = AUTOMATIC,  \n    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,   \n    BACKUP_PRIORITY = 50,   \n    SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),   \n    SEEDING_MODE = AUTOMATIC)\n,   \nN'WIN20122SQL16\\SQL16' \nWITH (ENDPOINT_URL = N'TCP:\/\/WIN20122SQL16.dbi-services.test:5022',   \n    FAILOVER_MODE = AUTOMATIC,   \n    AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,   \n    BACKUP_PRIORITY = 50,   \n    SECONDARY_ROLE(ALLOW_CONNECTIONS = NO),   \n    SEEDING_MODE = AUTOMATIC);   \nGO<\/pre>\n<p>System views and DMVs have been updated accordingly. For example the <em>sys.availability_replicas<\/em> provides a new <em>seeding_mode<\/em> column.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select \n\tag.name as group_name,\n\tar.replica_server_name as replica_name,\n\tar.endpoint_url,\n\tar.availability_mode_desc,\n\tar.failover_mode_desc,\n\tar.primary_role_allow_connections_desc as allow_connections_primary,\n\tar.secondary_role_allow_connections_desc as allow_connections_secondary,\n\tar.seeding_mode_desc as seeding_mode\nfrom sys.availability_replicas as ar\njoin sys.availability_groups as ag\n\ton ar.group_id = ag.group_id;\ngo<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-9354 size-large\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state.jpg\" alt=\"blog 96 - 1 - availability group and replicas state\" width=\"1024\" height=\"53\" \/><\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">Let&#8217;s\u00a0complete the configuration of the availability group\u00a0by giving\u00a0gextra permissions to create databases on secondaries to the availability group itself. <\/span><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">ALTER AVAILABILITY GROUP [testGrp] JOIN   \nALTER AVAILABILITY GROUP [testGrp] GRANT CREATE ANY DATABASE  \nGO<\/pre>\n<p>At this point\u00a0we just have to add\u00a0the new <em>WideWorldImporters<\/em> database to the testGrp availability group and our job is over!<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">-- primary replica add database WideWorldImporters to testGrp\nALTER AVAILABILITY GROUP [testGrp] ADD DATABASE [WideWorldImporters];\nGO<\/pre>\n<p>The system will then seed database data to the secondary. We may get information of seeding progress from two new DMVs <em>sys.dm_hadr_automatic_seeding<\/em> and <em>sys.dm_hadr_physical_seeding_stats<\/em><\/p>\n<p><em>sys.dm_hadr_automatic_seeding<\/em> DMV gives information about successful or failed database seedings and corresponding error messages. Furthermore <em>sys.dm_hadr_physical_seeding_stats<\/em> DMV provides currently running seeding information like estimated completion time and related statistics about I\/O and network usage.<\/p>\n<p>Here what I found after adding the database to the availability group:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select \n\tag.name as aag_name,\n\tar.replica_server_name,\n\td.name as database_name,\n\thas.current_state,\n\thas.failure_state_desc as failure_state,\n\thas.error_code,\n\thas.performed_seeding,\n\thas.start_time,\n\thas.completion_time,\n\thas.number_of_attempts\nfrom sys.dm_hadr_automatic_seeding as has\njoin sys.availability_groups as ag\n\ton ag.group_id = has.ag_id\njoin sys.availability_replicas as ar\n\ton ar.replica_id = has.ag_remote_replica_id\njoin sys.databases as d\n\ton d.group_database_id = has.ag_db_id<\/pre>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-9355\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-2-seeding-sessions-info.jpg\" alt=\"blog 96 - 2 - seeding sessions info\" width=\"1016\" height=\"42\" \/><\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">select \n\tlocal_physical_seeding_id,\n\tremote_physical_seeding_id,\n\tlocal_database_name,\n\t@@servername as local_machine_name,\n\tremote_machine_name,\n\trole_desc as [role],\n\ttransfer_rate_bytes_per_second,\n\ttransferred_size_bytes \/ 1024 as transferred_size_KB,\n\tdatabase_size_bytes \/ 1024 as database_size_KB,\n\tDATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), start_time_utc) as start_time,\n\tDATEADD(mi, DATEDIFF(mi, GETUTCDATE(), GETDATE()), estimate_time_complete_utc) as estimate_time_complete,\n\ttotal_disk_io_wait_time_ms,\n\ttotal_network_wait_time_ms,\n\tis_compression_enabled\nfrom sys.dm_hadr_physical_seeding_stats<\/pre>\n<p><span style=\"color: #000000; font-family: Calibri;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-9356\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-3-seeding-progress-info.jpg\" alt=\"blog 96 - 3 - seeding progress info\" width=\"1024\" height=\"33\" \/><\/span><\/p>\n<p>The <em>WideWorldImportes<\/em> database is not so big by default (roughly 455MB). The estimated duration to seed database is approximatively 1\u201914\u2019\u2019.<\/p>\n<p>Let\u2019s compare this little math by including the transfer rate that is estimated to ~ 42MB\/s (<em>transfer_rate_bytes_per_second<\/em> column value) and the total size of data to transfer. We may deduce 455 \/ 42 ~=10s to transfer all the data.<\/p>\n<p>Let\u2019s now have a look at the SQL error log on the secondary. We may see information related to the seeding data operation.<\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-9357\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-6-import-error-log-secondary-2.jpg\" alt=\"blog 96 - 6 - import error log secondary 2\" width=\"1024\" height=\"174\" \/><\/span><\/p>\n<p>&#8230;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-9358\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-6-import-error-log-secondary-21.jpg\" alt=\"blog 96 - 6 - import error log secondary 2\" width=\"1024\" height=\"174\" \/><\/p>\n<p><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">The seeding operation has occurred between 19:15:53 and 19:16:08 so approximatively 15 seconds that <\/span>is <span style=\"color: #000000;\">not so far to our previous math. The estimated duration to seed data based on start and estimated completion time seems to be less accurate than the transfer throughput but I think I need <\/span>to <span style=\"color: #000000;\">perform further tests and investigations before coming to any conclusion. <\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">In short, a pretty cool feature but my guess is that using direct seeding may not be suitable for all scenarios. One customer example that is off the top of my head is big databases that run inside availability groups. I had the opportunity to migrate SAP databases (~1TB) to SQL Server 2014 and availability <\/span>groups : using direct <span style=\"color: #000000;\">seeding would <\/span>not <span style=\"color: #000000;\">be use in this case. Indeed, direct seeding does not use compression by default (you can turn on compression with traceflag 1462)\u00a0and we may easily imagine that seeding all data across the network may take a long time. We may change this default behaviour by using a special trace flag but at the cost of high CPU consumption. It is probably not a good idea if we plan to use the application immediately after adding the SAP to the concerned availability group. <span style=\"color: #000000; font-family: Calibri;\">In addition, using log stream compression may hurt performance with heavily OLTP workload because it introduces latency by design. <\/span><span style=\"color: #000000; font-family: Calibri;\">There is a tradeoff to find here &#8230;<\/span> Therefore using backup \/ restore process seems to be the best option by playing with optimization techniques like compression, increasing the number of backup media files or changing MAXTRANSFERSIZE and BUFFERCOUNT parameter values. <\/span><\/span><\/p>\n<p><span style=\"font-family: Calibri;\"><span style=\"color: #000000;\">One another scenario that comes to mind concerns databases migration with thousands of databases at the same time. <\/span>Which <span style=\"color: #000000;\">is the fastest way to migrate all these databases? Adding them to the availability group and let the system to seed database data across the network to each secondary or perform a copy of database files on each secondary and chose skip initial data synchronization? At this point I need to investigate further to answer. <\/span><\/span><\/p>\n<p><span style=\"color: #000000; font-family: Calibri;\">One another important thing is that direct seeding is not part of the availability group wizard GUI. You have probably noticed that I don\u2019t use it in this blog post and this is an intended behaviour. A connect item has already been created by Brent Ozar <\/span><a href=\"https:\/\/connect.microsoft.com\/SQLServer\/feedback\/details\/2803246\"><span style=\"color: #0563c1; font-family: Calibri;\">here<\/span><\/a><span style=\"color: #000000; font-family: Calibri;\">. Please feel free to vote!<\/span><\/p>\n<p>See you!<\/p>\n<p>By David Barbarin<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this blog I would like to talk about two new features shipped with SQL Server 2016 for AlwaysOn availability groups. The first one concerns the new direct seeding capability and the seconde one\u00a0introduces\u00a0distributed availability groups (DAG). I will talk about the second one in a next blog post. First of all, let&#8217;s talk about [&hellip;]<\/p>\n","protected":false},"author":26,"featured_media":8380,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[297,860,566],"type_dbi":[],"class_list":["post-8374","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-availability-groups","tag-direct-seeding","tag-sql-server-2016"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SQL Server 2016 AlwaysOn: Add DBs in AG with direct seeding<\/title>\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.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding\" \/>\n<meta property=\"og:description\" content=\"In this blog I would like to talk about two new features shipped with SQL Server 2016 for AlwaysOn availability groups. The first one concerns the new direct seeding capability and the seconde one\u00a0introduces\u00a0distributed availability groups (DAG). I will talk about the second one in a next blog post. First of all, let&#8217;s talk about [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2016-06-20T13:26:47+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-18T05:44:25+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1136\" \/>\n\t<meta property=\"og:image:height\" content=\"59\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Microsoft Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Microsoft Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\"},\"author\":{\"name\":\"Microsoft Team\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"headline\":\"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding\",\"datePublished\":\"2016-06-20T13:26:47+00:00\",\"dateModified\":\"2023-07-18T05:44:25+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\"},\"wordCount\":970,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg\",\"keywords\":[\"Availability groups\",\"direct seeding\",\"SQL Server 2016\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\",\"name\":\"SQL Server 2016 AlwaysOn: Add DBs in AG with direct seeding\",\"isPartOf\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg\",\"datePublished\":\"2016-06-20T13:26:47+00:00\",\"dateModified\":\"2023-07-18T05:44:25+00:00\",\"author\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg\",\"contentUrl\":\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg\",\"width\":1136,\"height\":59},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/www.dbi-services.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#website\",\"url\":\"https:\/\/www.dbi-services.com\/blog\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4\",\"name\":\"Microsoft Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g\",\"caption\":\"Microsoft Team\"},\"url\":\"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SQL Server 2016 AlwaysOn: Add DBs in AG with direct seeding","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.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/","og_locale":"en_US","og_type":"article","og_title":"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding","og_description":"In this blog I would like to talk about two new features shipped with SQL Server 2016 for AlwaysOn availability groups. The first one concerns the new direct seeding capability and the seconde one\u00a0introduces\u00a0distributed availability groups (DAG). I will talk about the second one in a next blog post. First of all, let&#8217;s talk about [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/","og_site_name":"dbi Blog","article_published_time":"2016-06-20T13:26:47+00:00","article_modified_time":"2023-07-18T05:44:25+00:00","og_image":[{"width":1136,"height":59,"url":"http:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg","type":"image\/jpeg"}],"author":"Microsoft Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Microsoft Team","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/"},"author":{"name":"Microsoft Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"headline":"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding","datePublished":"2016-06-20T13:26:47+00:00","dateModified":"2023-07-18T05:44:25+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/"},"wordCount":970,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg","keywords":["Availability groups","direct seeding","SQL Server 2016"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/","url":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/","name":"SQL Server 2016 AlwaysOn: Add DBs in AG with direct seeding","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg","datePublished":"2016-06-20T13:26:47+00:00","dateModified":"2023-07-18T05:44:25+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/blog-96-1-availability-group-and-replicas-state-1.jpg","width":1136,"height":59},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/sql-server-2016-alwayson-new-way-to-add-dbs-in-ag-with-direct-seeding\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"SQL Server 2016 AlwaysOn: Add DBs in AGs with direct seeding"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/bfab48333280d616e1170e7369df90a4","name":"Microsoft Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c44a1a792c059f24055763aa77d80a244467f6eef724a8bd13db8d4a350b7a4c?s=96&d=mm&r=g","caption":"Microsoft Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/microsoft-team\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8374","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/26"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=8374"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8374\/revisions"}],"predecessor-version":[{"id":26809,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/8374\/revisions\/26809"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/8380"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=8374"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=8374"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=8374"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=8374"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}