<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5372290883884424090</id><updated>2026-09-05T20:35:49.638-06:00</updated><category term="SQL Server"/><category term="Azure"/><category term="MSFTraining"/><category term="AlwaysOn"/><category term="Configuration"/><category term="Databases"/><category term="SQL Features"/><category term="SQL SERVER 2016"/><category term="DR"/><category term="Database"/><category term="HA"/><category term="New Version"/><category term="SQLServer 2017"/><category term="Security"/><category term="70-764"/><category term="70-765"/><category term="BCP"/><category term="Cloud"/><category term="Distributor"/><category term="MCSA"/><category term="Network"/><category term="Publication"/><category term="Recovery"/><category term="Replication"/><category term="Snapshot"/><category term="Subscription"/><category term="Backups"/><category term="Machine Learning"/><category term="Users"/><category term="AAD"/><category term="AD"/><category term="Contained databases"/><category term="Domain"/><category term="Linux"/><category term="PaaS"/><category term="SaaS"/><category term="Docker"/><category term="Isolation"/><category term="Listener"/><category term="MCP"/><category term="MVA"/><category term="MaxBcpThreads"/><category term="Parallelism"/><category term="Pass"/><category term="RedHat"/><category term="SQL Operations Studio"/><category term="SQLSaturday"/><category term="SSDT"/><category term="SSMS"/><category term="Tools"/><category term="Training"/><category term="WSFC"/><category term="troubleshooting"/><title type='text'>SQL DBA Internals</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-2638736198583075218</id><published>2018-12-21T14:02:00.000-06:00</published><updated>2018-12-21T14:02:43.130-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="New Version"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>SQL Server 2008 end of support</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
2018 is
about to end. In the case you didn&#39;t know or haven&#39;t heard, the extended
support for SQL Server 2008 (and R2) reaches to an end in 2019.&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This
beloved version (lets be honest, is like windows XP for the database world) was
launched on 8/6/2008, so that means that is a 10 years old technology, with the
same time as the backberry and much other devices that almost no one uses this
days, which were great, but trought be told, compared with Today&#39;s gadgets they
are way behind although it marked a milestone to what we have now you would
preffer something better for you, isn&#39;t it?&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So what
does the end of support means?&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Basically
it means, that Microsoft wouldn&#39;t offer any type of support for that version of
SQL Server, which can be translated to:&lt;/div&gt;
&lt;ul style=&quot;direction: ltr; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;disc&quot;&gt;
&lt;li lang=&quot;en-US&quot; style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11.0pt;&quot;&gt;No new Service packs will be
     released&lt;/span&gt;&lt;/li&gt;
&lt;li lang=&quot;en-US&quot; style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11.0pt;&quot;&gt;No new cumulative updates
     will be developed&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
And what
does that means to me? Why should I care?&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
If I
depend of any type of regulation or my environment holds any type of
certification (PCI-DSS, HIPPA, etc.) it means that I would be flagged as
&quot;non-compliant&quot; because it requires that any software that I use is
still with support of the company that provide it.&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
It means,
that I won&#39;t be getting updates anymore, if any new vulnerability is found for
this product, it is most likely that I won&#39;t be getting a patch to remediate
it. Also, all the repositories will eventually be removed, so even if the
package I need was developed and for some reason I didn&#39;t applied, and then I
look for it, it is most likely that I won&#39;t be able to find it, like is now the
case for SQL 2005.&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So what
options do I have?&lt;/div&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li lang=&quot;en-US&quot; style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: bold; font-weight: bold;&quot;&gt;Extended support:&lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: normal;&quot;&gt; You can pay for extended support, this applies only if
     you have Software Assurance or Enterprise agreement and is only if you
     need to raise a ticket with Microsoft asking for support but not to
     resolve bug fixes and this extended support is Expensive, really really
     expensive.&lt;/span&gt;&lt;/li&gt;
&lt;li lang=&quot;en-US&quot; style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11.0pt; font-weight: bold;&quot;&gt;Azure&lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-size: 11.0pt;&quot;&gt;: Microsoft can offers the
     extended support for up to 3 years, if you move your SQL Server as a VM in
     Azure, with that you can still get support without paying the extended
     support fee like if you stay on-premises.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: bold; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li lang=&quot;en-US&quot; style=&quot;font-weight: bold; margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: bold; font-weight: bold;&quot;&gt;Upgrade&lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: normal; font-weight: normal;&quot;&gt;: The best option is that you
     upgrade your environment, if you really need to stay on-premises, you can
     plan a migration in your own data center, however you can also plan to
     upgrade and take the new benefits of Azure in the different flavors it has
     to offer (Azure SQL, Azure Managed instance or VM with SQL Server)&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div lang=&quot;en-US&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;es&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;es&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Does it
really worths the effort?&lt;/div&gt;
&lt;div lang=&quot;es&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Absolutelly,
the newer versions not only run faster but it also offers more features to
secure your data, it also integrates monitoring tools and auto-tunning plus now
you can run it in all different platforms not only with Windows.&lt;/div&gt;
&lt;div lang=&quot;es&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div lang=&quot;es&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So if you
don&#39;t have your migration planned already, what are you waiting?&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/2638736198583075218/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/12/sql-server-2008-end-of-support.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/2638736198583075218'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/2638736198583075218'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/12/sql-server-2008-end-of-support.html' title='SQL Server 2008 end of support'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7221478596670646167</id><published>2018-06-27T23:12:00.000-06:00</published><updated>2018-06-27T23:12:29.204-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Operations Studio"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SSDT"/><category scheme="http://www.blogger.com/atom/ns#" term="SSMS"/><category scheme="http://www.blogger.com/atom/ns#" term="Tools"/><title type='text'>Tools to connect to a SQL database</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Today I&#39;m getting
back to basics, whether you are new or veteran with the database engine you
need a tool to get into, write queries, do some monitoring, tuning, etc.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
If you have been
using SQL for at least 5 years or any version older than SQL Server 2016 you
will mostly only know one tool, as it was included with the installation media,
however there are other tools available that you can use with which you can
achieve the same goal, and at the same time offer some other benefits. In this
post I will be writing about the top 3 and that are developed by Microsoft that
you can use, in another posts I&#39;ll evaluate some others but for now lets use
focus on this 3.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: bold; font-weight: bold;&quot;&gt;SQL Server
     Data Tools (SSDT)&lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: normal;&quot;&gt;
     - SQL Server Data Tools, was introduced as an add-on with Visual Studio
     2012 meaning that it has been here for a while now, it offered a lot of
     features that you can only find with third party tools at an extra cost
     such as schema and data comparison between two databases, it also offered
     connectivity with a Team Foundation Services Server (TFS) among other
     features. In later versions you begin to be able to develop Reporting
     Services reports with SSDT, so it removed the need of installing the
     Software Development Kit within your database server or sharing some
     installation media with other teams for them to develop or update SSRS
     Reports. With the latest version you are able to connect to SQL Servers
     from 2005, Azure SQL, Azure SQL Data Warehouse and SQL Server 2017 on
     Linux. It doesn&#39;t requires any license to be installed. If you are more
     familiar with Visual Studio, it is easier for you to adapt to this one or
     even better, you can add this package to your installation and work from
     there without the need on having a separate tool to do the database part.
     You can see the official documentation and download it from here: &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt;&quot;&gt;https://docs.microsoft.com/en-us/sql/ssdt/download-sql-server-data-tools-ssdt?view=sql-server-2017&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: bold; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;font-weight: bold; margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: bold; font-weight: bold;&quot;&gt;&lt;span style=&quot;mso-spacerun: yes;&quot;&gt;&amp;nbsp;&lt;/span&gt;SQL Operations
     Studio - &lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: normal; font-weight: normal;&quot;&gt;SQL Operations Studio is a multi-platform tool you can
     use to connect to databases, if you are bored and tired of the limitation
     that SQL Server Management Studio offered or that there was no Data Tools
     for Linux, let me tell you that this is your tool, you can run Operations
     Studio on Windows, macOS and Linux. With this tool you can do almost all
     the administrative and development work you used to do with SSMS, there
     are still some items missing from SSMS, however most of the ones you used
     on a daily basis are here. It also includes a lot of reports you are used
     to see in SSMS with richer format. It doesn&#39;t requires any license to be
     purchased. It is a light weight file compared with the traditional
     management studio. You can download it for free here: &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/sql-operations-studio/download?view=sql-server-2017&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt;&quot;&gt;https://docs.microsoft.com/en-us/sql/sql-operations-studio/download?view=sql-server-2017&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11.0pt; font-style: normal; font-weight: normal; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: bold; font-weight: bold;&quot;&gt;SQL Server
     Management Studio (SSMS) &lt;/span&gt;&lt;span style=&quot;font-family: Calibri; font-family: Calibri; font-size: 11.0pt; font-size: 11.0pt; font-style: normal; font-weight: normal;&quot;&gt;- As I said at the beginning of this post, if you have
     been using SQL Server for at least 5 years, or if you have installed any
     SQL Server version older than SQL 2016, you might noticed that with SQL
     Server 2016 there was a big change with the installation media, and is
     that it didn&#39;t include the option of &quot;Management tools&quot; instead
     it was in a different section in the welcome screen of the setup and when
     you click on it, it route you to download the media, this because of a lot
     of different reasons (Performance, Security and starting SQL 2017
     multi-platform). This tool continues to be the most utilized tool to
     manage and interact with databases whether you are running your database
     on-premises or cloud. The good thing of this change is that if you are not
     installing a SQL engine in your desktop you don&#39;t need the entire media
     that included the setup files for the SQL engine, instead you just
     download the latest version and there you have it, also in the past you
     could only download the express version for free which was very limited or
     download the media containing the Development version for SQL, that is no
     longer the case, with the current release format you will have all the
     features supported. It has improved a lot from the versions we used to
     know, as now you can develop your own monitoring reports with SSRS and
     import those into SSMS and have that visibility from there, for example if
     you have a ad-hoc query to monitor your SQL Servers you can convert it as
     a report and integrate it with your SSMS and you will no longer need to
     open a new query window and run it, instead you just run your report and
     presto!&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
You
can download the latest version from here: &lt;a href=&quot;https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017&quot;&gt;https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-2017&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Hope that this quick
review help you get a better idea and start your desire to test different
tools.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading!&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7221478596670646167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/06/tools-to-connect-to-sql-database.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7221478596670646167'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7221478596670646167'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/06/tools-to-connect-to-sql-database.html' title='Tools to connect to a SQL database'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-8319381824094497818</id><published>2018-06-05T16:24:00.000-06:00</published><updated>2018-06-05T16:24:12.424-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="HA"/><category scheme="http://www.blogger.com/atom/ns#" term="Listener"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="WSFC"/><title type='text'>WSFC Lost Quorum votes due to network problem</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Problem:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Early in the morning
I received emails requesting for support as the applications were failing to
connect to one of the production servers that are configured with Always On, I
asked for an specific error and the customer sent me this:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
---------------------------&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Error while updating
the backup server list: A network-related or instance-specific error occurred
while establishing a connection to SQL Server. The server was not found or was
not accessible. Verify that the instance name is correct and that SQL Server is
configured to allow remote connections. (provider: Named Pipes Provider, error:
40 - Could not open a connection to SQL Server)&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
---------------------------&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
OK&amp;nbsp;&amp;nbsp; &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
---------------------------&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span lang=&quot;en-US&quot;&gt;After
checking with one of the IT managers he confirmed that one of the database
servers was going through some networking issues, however that didn&#39;t explain
why the SQL server didn&#39;t automatically failover to the other node that was up
and running, as both servers are part of the same WSFC as required to configure
Synchronous availability groups&lt;/span&gt;&lt;span lang=&quot;es-GT&quot;&gt; with automatic failover
configured&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So after getting
into the available replica the troubleshoot began.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
The first thing I
noticed was:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Im_wdVqTYaAb_MYT2rpg_ZkhGFttKUdvG4i7Xn_ujQpFTkjJ6fmGBTL2d6MPkdctyGNYdbE0E_A1QzU6fILdjXmbn9jfoYUtQYTuch0jFkfRa2HX5xJfQvNEQVxL13MmtXqipJkv3Bs/s1600/DAG1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;333&quot; data-original-width=&quot;1585&quot; height=&quot;134&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Im_wdVqTYaAb_MYT2rpg_ZkhGFttKUdvG4i7Xn_ujQpFTkjJ6fmGBTL2d6MPkdctyGNYdbE0E_A1QzU6fILdjXmbn9jfoYUtQYTuch0jFkfRa2HX5xJfQvNEQVxL13MmtXqipJkv3Bs/s640/DAG1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;After also checking the availability group dashboard which also confirmed the error state I went to the Failover cluster manager and noticed the following errors:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9E0729o9rOJmJqurgrV0RpR-H0g4XAa1jFq11gBDxDP7r7ROHL_iDwg4ePGM70B-UHL2yJU5hbxJCaRt6CeG1uL_4Rb1bqY8QCKhVhBoNkn6XF7mX0zIrdVBeFeCCn-9BVb7rAthKDHs/s1600/DAG2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;605&quot; data-original-width=&quot;903&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9E0729o9rOJmJqurgrV0RpR-H0g4XAa1jFq11gBDxDP7r7ROHL_iDwg4ePGM70B-UHL2yJU5hbxJCaRt6CeG1uL_4Rb1bqY8QCKhVhBoNkn6XF7mX0zIrdVBeFeCCn-9BVb7rAthKDHs/s640/DAG2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-fbXdZyAaHg5TK7_V6zDncGpxwmsckXE_D_OMFrjKFCK5mI1KaDemXKBYdW4xjjxSHsuhUEL9dZD26ezjFlmWlRUPOsGX40YLWUHYw6uPbUB0GBY_Qpxr7MN3yUD_8RcmCdn0xBb69uE/s1600/DAG3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;605&quot; data-original-width=&quot;876&quot; height=&quot;442&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-fbXdZyAaHg5TK7_V6zDncGpxwmsckXE_D_OMFrjKFCK5mI1KaDemXKBYdW4xjjxSHsuhUEL9dZD26ezjFlmWlRUPOsGX40YLWUHYw6uPbUB0GBY_Qpxr7MN3yUD_8RcmCdn0xBb69uE/s640/DAG3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Also noticed that the node that was under the issues was showing that the Failover cluster state was stopped. Obviously if the server was not able to be reached through the network the cluster wouldn&#39;t be able to show it as healthy or running. But because lf that and the fact that there was no third witness the entire cluster state was failed and due to that the availably group and Listener were down as well, so what was needed? getting the cluster up and running even if one node is missing, but how would you do that? Well you need to start the cluster without the quorum validation, with that you will have the WSFC running and in return the availability group and listener will be up as well.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;But wait, I&#39;m a DBA that means that my experience with managing clusters at the windows level is minimal. If that is the case you have 2 options call IT to get the assistance you need or do it yourself, In my case was the second, if you choose the same, in the following URL are the required steps&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/force-a-wsfc-cluster-to-start-without-a-quorum?view=sql-server-2017&quot;&gt;https://docs.microsoft.com/en-us/sql/sql-server/failover-clusters/windows/force-a-wsfc-cluster-to-start-without-a-quorum?view=sql-server-2017&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;In my particular case the steps with the windows interface didn&#39;t work but the PowerShell ones did.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;This got my cluster running, however my Availability group still had as primary the failed server, so I still had to failover the group to the one working, I achieved that by forcing the failover with this command:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;ALTER AVAILABILITY GROUP &amp;lt;DAG NAME&amp;gt; FORCE_FAILOVER_ALLOW_DATA_LOSS&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;I know, it is scary when you see &quot;Allow data loss&quot; however, I had Synchronous commit set, so worst case scenario, I would be loosing the transactions that weren&#39;t committed at the time the primary server went offline so in the end that wasn&#39;t even written in the Primary database and it was safe to roll them back if needed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;That brought my databases online and the applications could resume working.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;After fixing all the network issues and noticing that you are able to connect to your secondary replica execute this command to restart the synchronization, make sure that you update it for each of your databases.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;ALTER DATABASE database_name SET HADR RESUME&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;And bam, you are all set, your cluster and Database availability group is back to the state it was before the failure.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;As a lesson learned, add a witness to a file server, so that you don&#39;t loose your Quorum and prevent this issue to happen.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Thanks for reading!&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/8319381824094497818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/06/wsfc-lost-quorum-votes-due-to-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/8319381824094497818'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/8319381824094497818'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/06/wsfc-lost-quorum-votes-due-to-network.html' title='WSFC Lost Quorum votes due to network problem'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2Im_wdVqTYaAb_MYT2rpg_ZkhGFttKUdvG4i7Xn_ujQpFTkjJ6fmGBTL2d6MPkdctyGNYdbE0E_A1QzU6fILdjXmbn9jfoYUtQYTuch0jFkfRa2HX5xJfQvNEQVxL13MmtXqipJkv3Bs/s72-c/DAG1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-1944953548381174750</id><published>2018-04-18T16:20:00.000-06:00</published><updated>2018-04-18T16:20:00.218-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Replication"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="troubleshooting"/><title type='text'>Script to review replications</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
This script is from my library and I use it to review what is going on with my transactional replications, try to remove statements that didn&#39;t get purged for whatever reason. This is my last resource before getting the need to reinitialize or drop and recreate my publications.&lt;br /&gt;
&lt;br /&gt;
use distribution&lt;br /&gt;
go&lt;br /&gt;
&lt;br /&gt;
/*Query to get your articleID*/&lt;br /&gt;
select top 100 * from Distribution.dbo.MSarticles&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
/*Use this when you have the xac_seqno that is failing or your last that was replicated*/&lt;br /&gt;
select * from MSrepl_commands Where xact_seqno &amp;gt;= 0x0005AEF70000004A000900000000&lt;br /&gt;
&lt;br /&gt;
/*use this to review your errors*/&lt;br /&gt;
select&lt;br /&gt;
*&lt;br /&gt;
From MSrepl_errors&lt;br /&gt;
&lt;br /&gt;
/*use this to list the commands to be replicated*/&lt;br /&gt;
sp_browsereplcmds &#39;0x0005AEF70000004A000900000000&#39;, &#39;0x0005AEF70000004A000900000000&#39;&lt;br /&gt;
&lt;br /&gt;
/*Once that you have the commands to be deleted, add them inside the IN*/&lt;br /&gt;
DELETE from MSrepl_commands where command_id=1 and xact_seqno in (0x0005ADE2000001E00009)&lt;br /&gt;
and [command] like &#39;%MSins%&#39;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/1944953548381174750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/04/script-to-review-replications.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/1944953548381174750'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/1944953548381174750'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/04/script-to-review-replications.html' title='Script to review replications'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-1815905865774548423</id><published>2018-02-28T21:18:00.000-06:00</published><updated>2018-02-28T21:18:30.651-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="New Version"/><category scheme="http://www.blogger.com/atom/ns#" term="RedHat"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer 2017"/><title type='text'>Offline installation of SQL Server 2017 on Linux</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
SQL Server is now compatible with different Linux distributions, and there is a lot of excitement about it.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
How ever one of the main questions when ever you say SQL Server 2017 is now supported in Linux is, Have you test it? how do you install it?&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
By looking in the web you can find a lot of post and videos related to it, however most of them are based with Azure VM&#39;s (one great post I found is from a good friend that you can find &lt;a href=&quot;https://jesusgilv.wordpress.com/2016/12/01/instalando-sql-server-on-redhat-enterprise-linux/&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;) or there is also the assumption that you will have an internet connection from your server, but what if not? What if you are a financial institution that is PCI-DSS compliant and the direct connection to the web is blocked or simply your network administrator doesn&#39;t want to allow you access to the Microsoft repositories from the network your server is running or you created your VM and the connection is not shared with your host?&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Well, let me tell you there is an option, you are not deemed to fight against the network engineers to enable you the access and here I&#39;ll show you the steps.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;b&gt;Pre-requesites:&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;A machine (VM, physical, etc) with Linux&amp;nbsp;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Red Hat Enterprise Linux (7.3 or 7.4)&lt;/li&gt;
&lt;li&gt;SUSE Linux Enterprise Server (v12 SP2)&lt;/li&gt;
&lt;li&gt;Ubuntu (16.04)&lt;/li&gt;
&lt;li&gt;Docker (1.8+)&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;The latest version of SQL Server 2017 downloaded you can get it &lt;a href=&quot;https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-release-notes#GA&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&amp;nbsp;and copied onto your Linux machine.&lt;/li&gt;
&lt;li&gt;A user to run the install (different than root)&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;b&gt;Installation Steps&lt;/b&gt;&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Connect to your Linux machine. You can use &lt;a href=&quot;https://www.putty.org/&quot; target=&quot;_blank&quot;&gt;Putty&lt;/a&gt;&amp;nbsp;or the SSH client of your preference&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Locate the folder where you have the installer, in my case I put it on &quot;/home/SQLInstall/&lt;/li&gt;
&lt;li&gt;execute this command: &lt;span style=&quot;color: blue;&quot;&gt;Sudo
yum localinstall&lt;/span&gt; &lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;name of the installer&amp;gt; &lt;/span&gt;in my case the command looked like&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;Sudo
yum localinstall mssql-server-14.0.322.28-2.x86_64.rpm &lt;/span&gt;.After executing the command it will ask for the password of the user you are connected with to confirm the permissions and the execution command, then it will start the examination of the media and validate all the dependencies, that will look just like this:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; display: inline !important; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKT_jT0AFOFts3iIxjX0INAi0-Jc9MhVVpdaxdQRxaQiZCDn1AGzA959ZWYTFtO2QEjKxPLtnp1ofhFgeW66nthXxYNJUCqBCCDM8-zNiSDQl6Qfwu0zE7YCUlF1w5JnMc0KQX3-_Y8Q/s1600/Linux1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;376&quot; data-original-width=&quot;800&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKT_jT0AFOFts3iIxjX0INAi0-Jc9MhVVpdaxdQRxaQiZCDn1AGzA959ZWYTFtO2QEjKxPLtnp1ofhFgeW66nthXxYNJUCqBCCDM8-zNiSDQl6Qfwu0zE7YCUlF1w5JnMc0KQX3-_Y8Q/s400/Linux1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;&lt;div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk3q-wxPeWt0a5N6X94Ewdltkr_rEk9z6k7aHwOkKveF3sB0xAiflL0mLPnbPlNjQiJks6twHS3JdC74UYlIZnKg55w-5JVn9w-M6Bu1y_P2fL4Eg6xbBQO-OBxqKXGc0fe49N_Ixy9XA/s1600/Linux2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;307&quot; data-original-width=&quot;803&quot; height=&quot;152&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhk3q-wxPeWt0a5N6X94Ewdltkr_rEk9z6k7aHwOkKveF3sB0xAiflL0mLPnbPlNjQiJks6twHS3JdC74UYlIZnKg55w-5JVn9w-M6Bu1y_P2fL4Eg6xbBQO-OBxqKXGc0fe49N_Ixy9XA/s400/Linux2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;4. If you look at the bottom line, it stops at the Question if the size of the package and the size&amp;nbsp; matches, if the software is the one you would like to install etc, if everything is correct you will then need to Write the letter &quot;y&quot; to confirm.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;5. After confirming and hitting enter, the process will start to deploy the files in the system, however you will need to pay attention to the following message:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDqFVeTy5ExjlUDU5hPH1UbyUZVDle4sI3R7bZ0hQWCAglVK3pvOmU1SUAFls_U67BOREsiiv7tl1K0e4nzt6Y0o6HVxxuvro14-vw_507ofOVE_oBCB0aqdPLv5QWu4nL8mjUGL0IWwU/s1600/Linux3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;310&quot; data-original-width=&quot;803&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDqFVeTy5ExjlUDU5hPH1UbyUZVDle4sI3R7bZ0hQWCAglVK3pvOmU1SUAFls_U67BOREsiiv7tl1K0e4nzt6Y0o6HVxxuvro14-vw_507ofOVE_oBCB0aqdPLv5QWu4nL8mjUGL0IWwU/s400/Linux3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
It says &quot;complete!&quot; but there is a remark &quot;Please run &#39;sudo.... to complete the setup...&#39; &quot; so go and execute the command, otherwise SQL Server won&#39;t be installed as it only exported the files but didn&#39;t actually installed the engine and you will see why in the next step.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;6.&amp;nbsp; After executing that command, it will ask you to choose the version you would like to install&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1N3R95E8AZhpoTSMBxaP1UuizCahi9bcpWuBHPaBg-tJDFlneIAjyyJfNK4mTeg1Xo0hnbrHDIlC6xXFgpST52kDNGpx3pXiIeqLgJ2JEgd2WXkwKlz-tteVRDkudCMsc_egxFlMMK0/s1600/Linux4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;404&quot; data-original-width=&quot;811&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV1N3R95E8AZhpoTSMBxaP1UuizCahi9bcpWuBHPaBg-tJDFlneIAjyyJfNK4mTeg1Xo0hnbrHDIlC6xXFgpST52kDNGpx3pXiIeqLgJ2JEgd2WXkwKlz-tteVRDkudCMsc_egxFlMMK0/s400/Linux4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;So make sure to enter the right version, In my case I choose 2, as it won&#39;t support a production environment and is only for demo purposes.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;7.&amp;nbsp; After selecting the version, it will ask you to agree with the license terms and you will need to write &quot;Yes&quot; if you accept it or &quot;No&quot; if you don&#39;t.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimxFJ8LqNu09Tqx9mWJ04xNvzJpaS9wAEP31y7SU1sYIgz_7o7f4AeAMapukyVnsQ5MvgiHJssEfsJXdkrY-HZFRigP6jmojbPta_c3nOyv9QrzbQtkA6wmgSxL4b8SoTVJweZLq44cIQ/s1600/Linux5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;164&quot; data-original-width=&quot;621&quot; height=&quot;105&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimxFJ8LqNu09Tqx9mWJ04xNvzJpaS9wAEP31y7SU1sYIgz_7o7f4AeAMapukyVnsQ5MvgiHJssEfsJXdkrY-HZFRigP6jmojbPta_c3nOyv9QrzbQtkA6wmgSxL4b8SoTVJweZLq44cIQ/s400/Linux5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;8.&amp;nbsp; Then it will ask you to configure the &quot;sa&quot; password.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHeNUFsWLHBrQ1DLEXck3RzdyjQBUV2kyQg1mSRWwqjK_d9Bb418d3wu_bJlJghAi28U0RBOgz3BXwvaayqsOg_RxHFR8YqSY5BeKle18nYeO-Au59-2g3JafH-sspT-UDKqRF9NiDhg/s1600/Linux6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;84&quot; data-original-width=&quot;603&quot; height=&quot;55&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMHeNUFsWLHBrQ1DLEXck3RzdyjQBUV2kyQg1mSRWwqjK_d9Bb418d3wu_bJlJghAi28U0RBOgz3BXwvaayqsOg_RxHFR8YqSY5BeKle18nYeO-Au59-2g3JafH-sspT-UDKqRF9NiDhg/s400/Linux6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; &amp;nbsp;9.&amp;nbsp; After configuring the password the installation will succeed. However one of the problems you will face after getting it installed, is that you can&#39;t connect from outside of the server itself, so what you need to do is to enable the port through the firewall, and you can do that by running the following commands:&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sudo firewall-cmd --zone=public --add-port=1433/tcp --permanent&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;span style=&quot;color: blue;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;sudo firewall-cmd --reload&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
The first command opens the port 1433 and the second command restarts the firewall service (sort of speak)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwGbc8JIfwYxWYOY-ajYoNKhkaiuCxipjRTFkMqGDSZzybPVZyZzeNBgBVfDWIPiHCEOOZIy7QpR8jkuhIeXcubirbDjyvQEBfn1-tPZIo6ABBlh4r62zGHrkgbwM8AxmeykewJvNHAc/s1600/Linux7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;193&quot; data-original-width=&quot;804&quot; height=&quot;95&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTwGbc8JIfwYxWYOY-ajYoNKhkaiuCxipjRTFkMqGDSZzybPVZyZzeNBgBVfDWIPiHCEOOZIy7QpR8jkuhIeXcubirbDjyvQEBfn1-tPZIo6ABBlh4r62zGHrkgbwM8AxmeykewJvNHAc/s400/Linux7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&amp;nbsp; 10.&amp;nbsp; After doing all of the above steps and rebooting the server, you should be able to connect to your SQL Server instance, Congratulations!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghzfs2U4YTtoFQr2i39AGBoq6TZX-_EG7Uu8Cu4m3upcIKLhRZXi7eH5M6KOCobZchcFq-UmaCFMeW2u_EgYSelRcOIM8QHZ8rHpdql1f-x_r86fGUXTm9OumKhL2VcGuCJjDntbzSBs0/s1600/Linux8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;257&quot; data-original-width=&quot;592&quot; height=&quot;172&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghzfs2U4YTtoFQr2i39AGBoq6TZX-_EG7Uu8Cu4m3upcIKLhRZXi7eH5M6KOCobZchcFq-UmaCFMeW2u_EgYSelRcOIM8QHZ8rHpdql1f-x_r86fGUXTm9OumKhL2VcGuCJjDntbzSBs0/s400/Linux8.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Hope this steps lets you get up and running and in the case you run into any issue, let me know and I&#39;ll be glad to help and learn with you.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Thanks for reading!&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
P.D.: If by any chance you don&#39;t know how to get Red Hat installed, I&#39;m preparing another post with those steps.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/1815905865774548423/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/02/offline-installation-of-sql-server-2017.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/1815905865774548423'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/1815905865774548423'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/02/offline-installation-of-sql-server-2017.html' title='Offline installation of SQL Server 2017 on Linux'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipKT_jT0AFOFts3iIxjX0INAi0-Jc9MhVVpdaxdQRxaQiZCDn1AGzA959ZWYTFtO2QEjKxPLtnp1ofhFgeW66nthXxYNJUCqBCCDM8-zNiSDQl6Qfwu0zE7YCUlF1w5JnMc0KQX3-_Y8Q/s72-c/Linux1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-59453393795132850</id><published>2018-01-19T18:35:00.000-06:00</published><updated>2018-01-19T18:35:17.802-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Pass"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLSaturday"/><category scheme="http://www.blogger.com/atom/ns#" term="Training"/><title type='text'>I&#39;ve been chosen to speak at SQL Saturday Guatemala</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVOe205zd8lwJyybePdsMHYLpfoJQC332qqOtTk-sNPoAe4t5A7i-B9rCnuN6isMcwCH4T2nB-m1nYDwpqeb7mHykqxIlx99n7J5li0zlzaqs-qUGbRehaF0OP8ejabJQKFes-a-WfquE/s1600/SQLSat695_Speaking_600x300_01.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;150&quot; data-original-width=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVOe205zd8lwJyybePdsMHYLpfoJQC332qqOtTk-sNPoAe4t5A7i-B9rCnuN6isMcwCH4T2nB-m1nYDwpqeb7mHykqxIlx99n7J5li0zlzaqs-qUGbRehaF0OP8ejabJQKFes-a-WfquE/s1600/SQLSat695_Speaking_600x300_01.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
I&#39;m thrilled to announce that one of my proposals has been chosen to be presented in Guatemala&#39;s SQL Saturday that will be held on February 3rd at the Francisco Marroquin University (UFM).&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you will be in town and are an enthusiast of SQL Server, you should definitely plan to attend, did I mention is Free?&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You can check the agenda and register &lt;a href=&quot;http://www.sqlsaturday.com/695/EventHome.aspx&quot; target=&quot;_blank&quot;&gt;here&lt;/a&gt;&amp;nbsp;there are a lot of great speakers, some of them are Data Platform MVP&#39;s.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The session I&#39;ll be presenting is:&lt;/div&gt;
&lt;div&gt;
&quot;Implementing Row Level Security (RLS)&quot;&lt;/div&gt;
&lt;div&gt;
I&#39;ll be presenting what it is, what you need and how to implement it, as well as some scenarios where you can benefit with it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So if you haven&#39;t register, what are you waiting?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
See you there!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/59453393795132850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2018/01/ive-been-chosen-to-speak-at-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/59453393795132850'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/59453393795132850'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2018/01/ive-been-chosen-to-speak-at-sql.html' title='I&#39;ve been chosen to speak at SQL Saturday Guatemala'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVOe205zd8lwJyybePdsMHYLpfoJQC332qqOtTk-sNPoAe4t5A7i-B9rCnuN6isMcwCH4T2nB-m1nYDwpqeb7mHykqxIlx99n7J5li0zlzaqs-qUGbRehaF0OP8ejabJQKFes-a-WfquE/s72-c/SQLSat695_Speaking_600x300_01.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-5454791983339853913</id><published>2017-12-04T07:57:00.002-06:00</published><updated>2017-12-04T08:09:54.084-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Backups"/><category scheme="http://www.blogger.com/atom/ns#" term="BCP"/><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="DR"/><category scheme="http://www.blogger.com/atom/ns#" term="HA"/><category scheme="http://www.blogger.com/atom/ns#" term="New Version"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer 2017"/><category scheme="http://www.blogger.com/atom/ns#" term="Users"/><title type='text'>Configure Always on AG with SQL 2017</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
One of the new
features that we have with SQL 2017 is that you no longer need a Windows
cluster to enable the AlwaysOn feature with SQL server (remember we discuss the
requirements to configure that &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-always-on.html&quot;&gt;here&lt;/a&gt;
those are valid for versions 2012 to 2016) , if you want to review what&#39;s new
in SQL 2017 you can check it &lt;a href=&quot;https://onedrive.live.com/view.aspx?resid=D32C839B89998022%217972&amp;amp;id=documents&amp;amp;wd=target%28SQL%20Server%202017.one%7CF94723CD-7D35-4912-8E64-AD9CE4F0101B%2FConfigure%20Always%20on%20AG%20with%20SQL%202017%7CAB819ABB-8462-4648-9C37-9D97A882AFE5%2F%29&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In this post I&#39;ll be
showing you how to configure an Always On availability group with SQL Server
2017, most of the steps are the same for the older versions and I&#39;ll be telling
the differences on each of the steps so lets get started.&lt;br /&gt;
First I&#39;ll amuse you already have SQL Server installed in two servers as stand alone instances, that is a requirement for this post.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;1. Enabling AlwaysOn: In order
     to do that, you need to go to SQL Server Configuration Manager, and on the
     SQL Server Services, hit properties over the MSSQLSERVER&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoTr__8zRA0fkeHb1CxozyOi6tn8rN4qLq5y3m4b6XAyw0xbW01LdWWZxs5pb3d4kJNBz4FpzrfFtsN9A4OitXoTH7NXZpKGkKWRvI6VA5pkkweQk1ZWLArx92wu96st13vixJc3A_B0/s1600/DAG1.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;333&quot; data-original-width=&quot;654&quot; height=&quot;162&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoTr__8zRA0fkeHb1CxozyOi6tn8rN4qLq5y3m4b6XAyw0xbW01LdWWZxs5pb3d4kJNBz4FpzrfFtsN9A4OitXoTH7NXZpKGkKWRvI6VA5pkkweQk1ZWLArx92wu96st13vixJc3A_B0/s320/DAG1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;2.&amp;nbsp; &amp;nbsp;In
the properties window, look for &quot;AlwaysOn High Availability&quot;, if you
are running with an older version, the checkbox &quot;Enable AlwaysOn
Availability Groups&quot; won&#39;t be availabile until you make the machine where
SQL Server part of a cluster but just part of the windows cluster, the SQL
Server instance remains as an Stand Alone type. Once that you have the checkbox
enabled, check it, and click apply and Ok. Enabling this feature requires a
Service restart so take that in account. Also, you need to do this in all the
SQL instances that will be part of the Availability Group.&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhERmyMCBgBCrxkgFipiSj4ga-FaXtD47b1leZ7mBUMZl3Xpe9clRcu_VRcfSd-ECPMZB5dXDQwPWAiEModtp6gcRtzzk2-rlgxm-E7wXDUllXV4fKQ_0K2z9ziO3XmFhzC7jG2xT2uNQ8/s1600/DAG2.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: Calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;616&quot; data-original-width=&quot;515&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhERmyMCBgBCrxkgFipiSj4ga-FaXtD47b1leZ7mBUMZl3Xpe9clRcu_VRcfSd-ECPMZB5dXDQwPWAiEModtp6gcRtzzk2-rlgxm-E7wXDUllXV4fKQ_0K2z9ziO3XmFhzC7jG2xT2uNQ8/s320/DAG2.png&quot; width=&quot;267&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;3. Go
to SQL Management studio, connect to any of the SQL instances that will be part
of the group, look for the &quot;Always On High Availability&quot; folder,
expand it and you will see a folder with the name &quot;Availability
Groups&quot; do a right click on it and select &quot;New Availability Group
Wizard…&quot;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipSIsvIjPTdqPuv4-tNVohOcDs2Fzn4hRfiG5urrDDg4GN5hNfBItnP9uPt158P_bOG6VXchg_tGhd-1XAS6lEQtIl95B_MOTK6dWEeaJUa5p0iuSDDwhRDAeG6a2Tr2bLCZzRu4_7uDc/s1600/DAG3.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: Calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;379&quot; data-original-width=&quot;465&quot; height=&quot;260&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipSIsvIjPTdqPuv4-tNVohOcDs2Fzn4hRfiG5urrDDg4GN5hNfBItnP9uPt158P_bOG6VXchg_tGhd-1XAS6lEQtIl95B_MOTK6dWEeaJUa5p0iuSDDwhRDAeG6a2Tr2bLCZzRu4_7uDc/s320/DAG3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;4. In the availability group
     wizard, configure the name you want for your availability group.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;a.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;Cluster Type (New with SQL
     2017): you have 2 options here (the official documentation shows 3),&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; External or None, if you choose External, it means that you will joining
     this availability group to an external cluster, E.g. if you have a windows
     cluster on your primary datacenter that is on a different network or you
     want to add it to a Linux cluster.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;b. Database health level
     detection (New with SQL 2017), this will enable a constant validation of
     the databases that are part of the availability group that if anything
     goes wrong with any of the databases it will trigger an automatic failover&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;c. Per Database DTC support (New
     with 2016 SP1) Allows the Distributed Transaction Coordinator through the
     availability group, feature that was not available in older versions of
     SQL (2012 and 2014)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;If
you don&#39;t have a cluster created and just like this scenario, choose &lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt; font-weight: bold;&quot;&gt;NONE&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMIR_nJNe84VZev-OKg5qsNJarAg2AvLUO6rb29ILZYzBUSsCNfJBixZ7CywCFkh8fr8ikPjRrHujIOqmDoicSiMmBZ4vnZ9hyphenhyphentdJZJ4MX8CSXJTG7gT8oLNo06C2u9f8niMY7LkklBSw/s1600/DAG4.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: Calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;416&quot; data-original-width=&quot;890&quot; height=&quot;149&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMIR_nJNe84VZev-OKg5qsNJarAg2AvLUO6rb29ILZYzBUSsCNfJBixZ7CywCFkh8fr8ikPjRrHujIOqmDoicSiMmBZ4vnZ9hyphenhyphentdJZJ4MX8CSXJTG7gT8oLNo06C2u9f8niMY7LkklBSw/s320/DAG4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;5.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;Select the databases that
     will be part of the availability group. Requisites for a database to be
     considered:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;a. Be on Full
      recovery model&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;b. Have a full backup&lt;/span&gt;&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifD8IDPJiicsi9_Z_u_hZ_5kLlfh4WtnA4FCW69zKpdWI4NFW0hi84nk10lFTSy-p7wXlHvNHxOBPACZM6IXSNFiYqUOkE7tt2h585jHWTu1d9SNV5wjZ0sqV3EnZ2XNnXcfT_YxMcxcw/s1600/DAG5.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;431&quot; data-original-width=&quot;1025&quot; height=&quot;167&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifD8IDPJiicsi9_Z_u_hZ_5kLlfh4WtnA4FCW69zKpdWI4NFW0hi84nk10lFTSy-p7wXlHvNHxOBPACZM6IXSNFiYqUOkE7tt2h585jHWTu1d9SNV5wjZ0sqV3EnZ2XNnXcfT_YxMcxcw/s400/DAG5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;6.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;In here you will be choosing
     the replicas that you want to add to your group. Important features here:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Initial Role: You will set
     the role that each replica will have once that the group becomes available&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Failover Mode: Manual or
     Automatic&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Availability Mode:
     Synchronous commit or Asynchronous commit&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Readable Secondary: No, Yes -
     Read Intent Only and Yes. If you choose No or Yes - Read Intent Only, you
     won&#39;t be available to query your replicas, the Read Intent is when you
     enable that feature that routes the read operations to your available
     replicas. With the Yes option you will be able to query the databases in
     your replica.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;The endpoints tab will show
     you the URL and ports each replica is set to.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Backup preferences tab: in
     here you can configure if you want to take the backups from the primary or
     the secondary servers.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Listener tab: In this window
     it lets you set the parameters to configure the availability group
     listener, however my advice is to do it later, configure your group first
     and once that is done, configure it later.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Read-Only Routing: tab This
     lets you configure your read only routing for the read-intent setup, this
     allows you to load balance the queries so you have only the queries that
     will Insert, Delete or Update on the primary and all the Select queries
     routed to your secondary&#39;s so they don&#39;t consume resources the Primary
     will use (I&#39;ll explain it in another post)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGL0I4VLLwEnXVjyb-kxBmAvPYABElhKXLFzK9QXCGwPo_JZIPCUuEm_Sm2EI1FMcEpntji1HpQ8MO_7PoFX-YGb2_EFv55W7j483ifJONwv9_yFPqbxnz-tObk-M5avZOqKuunjL-zY/s1600/DAG6.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;570&quot; data-original-width=&quot;1108&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHGL0I4VLLwEnXVjyb-kxBmAvPYABElhKXLFzK9QXCGwPo_JZIPCUuEm_Sm2EI1FMcEpntji1HpQ8MO_7PoFX-YGb2_EFv55W7j483ifJONwv9_yFPqbxnz-tObk-M5avZOqKuunjL-zY/s640/DAG6.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;7.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Automatic seeding (Starting SQL 2016): With this type, SQL Server will do everything for you, it will use the default folders configured so make sure you have enough space available on it.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Full database and log backup: Same as the Automatic seeding, however in this case it lets you choose where do you want to generate the backups&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Join Only: With this one, you do prepare everything in your replica, important notice, you do a restore with norecovery in your replica and apply at least one log backup. This option is useful with really large databases.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Skip initial data synchronization: Same as before, however in this particular one, you need to restore everything just at the time before initializing the synchronization otherwise it will tell you that there are items pending to be restored.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Failover Mode: Manual or Automatic&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Availability Mode: Synchronous commit or Asynchronous commit&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;Readable Secondary: No, Yes - Read Intent Only and Yes. If you choose No or Yes - Read Intent Only, you won&#39;t be available to query your replicas, the Read Intent is when you enable that feature that routes the read operations to your available replicas. With the Yes option you will be able to query the databases in your replica.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;The endpoints tab will show you the URL and ports each replica is set to.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Backup preferences tab: in here you can configure if you want to take the backups from the primary or the secondary servers.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Listener tab: In this window it lets you set the parameters to configure the availability group listener, however my advice is to do it later, configure your group first and once that is done, configure it later.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;font-family: calibri; font-size: 11pt; margin-bottom: 0px; margin-top: 0px; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Read-Only Routing: tab This lets you configure your read only routing for the read-intent setup, this allows you to load balance the queries so you have only the queries that will Insert, Delete or Update on the primary and all the Select queries routed to your secondary&#39;s so they don&#39;t consume resources the Primary will use (I&#39;ll explain it in another post)&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaIY3wafCrAt5acwV9g8oUCm4JZHgXXGOMvLY94m4GEQSUAkuATVqILEp5kqtY7LPHe633v7BFykqSefi-z615w-cWSzszndxoRVbmaxki28mCZJxaue9rW5AcY8MkcLZp4m8U9EmQTGI/s1600/DAG7.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;640&quot; data-original-width=&quot;1088&quot; height=&quot;376&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiaIY3wafCrAt5acwV9g8oUCm4JZHgXXGOMvLY94m4GEQSUAkuATVqILEp5kqtY7LPHe633v7BFykqSefi-z615w-cWSzszndxoRVbmaxki28mCZJxaue9rW5AcY8MkcLZp4m8U9EmQTGI/s640/DAG7.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;8. Verify
that the validation runs successfully, this warning is because I didn&#39;t setup
the listener in step 6, but that is fine, every time that I&#39;ve tried to
configure it from the very first page it fails, so my advice is that you
configure it later (part of this post).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsDwe565SCNY0y6bgPnVuUWZldXHp0dniTE8f_qTwsdTUuF9uKspvOEDlyQPFDb0Lj_6AbhTcy8Fl3wGN8B3G2BN5jq2k1JFz4OhI57MMLtoi_UpriHMWMH3m_JkYYbR7dPQxJTxxGulo/s1600/DAG8.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;456&quot; data-original-width=&quot;1082&quot; height=&quot;167&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsDwe565SCNY0y6bgPnVuUWZldXHp0dniTE8f_qTwsdTUuF9uKspvOEDlyQPFDb0Lj_6AbhTcy8Fl3wGN8B3G2BN5jq2k1JFz4OhI57MMLtoi_UpriHMWMH3m_JkYYbR7dPQxJTxxGulo/s400/DAG8.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;9.&amp;nbsp; After
hitting finish and if none of the steps have failed you will see the screen
just like this.&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLf0YGiV_-W6aHd-j6xgY4ObnbPdUn-NDB_6uQqq_aidIyUN73zHC28UNPPnfGIFPmqDTsE9geN_IWVnRdTLyxTn_OLrVIgaE_0eNiFaQMemE4PxKl-IDMvZPtrjrNNEAasiWFZ1_MnA/s1600/DAG9.png&quot; imageanchor=&quot;1&quot; style=&quot;font-family: calibri; font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;543&quot; data-original-width=&quot;1024&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHLf0YGiV_-W6aHd-j6xgY4ObnbPdUn-NDB_6uQqq_aidIyUN73zHC28UNPPnfGIFPmqDTsE9geN_IWVnRdTLyxTn_OLrVIgaE_0eNiFaQMemE4PxKl-IDMvZPtrjrNNEAasiWFZ1_MnA/s400/DAG9.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt; text-align: center;&quot;&gt;&lt;b&gt;Setup of the listener&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;


&lt;div style=&quot;font-size: 11pt; margin: 0in;&quot;&gt;
The listener will be
your single point of entry for your availability group, no matter which server
is primary and which secondary, you will only need to configure your
applications to use the Listener fqn or the ip and that will give you that High
Availability you are looking with Always On.&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Go to the &quot;Always On
     High Availability&quot; folder, expand your availability group and look
     for the &quot;Availability group listener&quot; and right click on it.&lt;/span&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSsIS02QCKBK5MCM1Qbskh0SLx1P7CI45nIG33-6GgmRWOINM7DYVzKic1XrA8qUUOb1gDCbXq6dvZvwSwKRhqJ1k0tvWfcXtjCv8JouZk9Uai72ylAmdzS_8ipL-BElwVESDuJW_TyE/s1600/DAG10.png&quot; imageanchor=&quot;1&quot; style=&quot;font-size: 11pt; margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;409&quot; data-original-width=&quot;390&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitSsIS02QCKBK5MCM1Qbskh0SLx1P7CI45nIG33-6GgmRWOINM7DYVzKic1XrA8qUUOb1gDCbXq6dvZvwSwKRhqJ1k0tvWfcXtjCv8JouZk9Uai72ylAmdzS_8ipL-BElwVESDuJW_TyE/s320/DAG10.png&quot; width=&quot;305&quot; /&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;In the Configuration screen,
     Configure the domain name you want your listener to respond onto, this
     will be like another computer in the domain, so be sure that you have
     permissions to create objects in the active directory, if you don&#39;t ask
     your domain admin to provision that name and grant you permissions over it
     so you can enable it.&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Configure the
      port you want the listener to listen to, this needs to be different than
      the endpoints and than the usual 1433 that the SQL instance will be
      listen to.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Configure the IP: make sure
      that its an available IP in the domain, also make sure that you choose
      the ip from the same subnet that one of your replicas is running.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjglfjBWv-yTaKJAWU477_Q0vQ0Pnxskly-JNJF5-kxqTqgXhZKUC4lHtMKcxb5gMuCzgo6ziaW8WyhngbVYbj6olz7gFMoSwqwVYrzoZiG6hBBlLngu4GYR8usHydvV7905GlBNjwh1nM/s1600/DAG11.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;779&quot; data-original-width=&quot;859&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjglfjBWv-yTaKJAWU477_Q0vQ0Pnxskly-JNJF5-kxqTqgXhZKUC4lHtMKcxb5gMuCzgo6ziaW8WyhngbVYbj6olz7gFMoSwqwVYrzoZiG6hBBlLngu4GYR8usHydvV7905GlBNjwh1nM/s400/DAG11.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvKPPzd1aHbg5Y2PymW3gt6jivsHQH51FmL_CSxOjfzOestUeqBwVGR2mdxL2JDbSjV8iL8p7MuyYRnP_ytTldthM8cXq-YnfdL-SXaEeJRMCMffnK5i-S_UbcgYpX0w6_07GEfRxenVo/s1600/DAG12.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;424&quot; data-original-width=&quot;1185&quot; height=&quot;142&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvKPPzd1aHbg5Y2PymW3gt6jivsHQH51FmL_CSxOjfzOestUeqBwVGR2mdxL2JDbSjV8iL8p7MuyYRnP_ytTldthM8cXq-YnfdL-SXaEeJRMCMffnK5i-S_UbcgYpX0w6_07GEfRxenVo/s400/DAG12.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
You
are all set, you can start configuring your applications to the listener and
taking the advantages always On provides.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/5454791983339853913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/12/configure-always-on-ag-with-sql-2017.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5454791983339853913'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5454791983339853913'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/12/configure-always-on-ag-with-sql-2017.html' title='Configure Always on AG with SQL 2017'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjxoTr__8zRA0fkeHb1CxozyOi6tn8rN4qLq5y3m4b6XAyw0xbW01LdWWZxs5pb3d4kJNBz4FpzrfFtsN9A4OitXoTH7NXZpKGkKWRvI6VA5pkkweQk1ZWLArx92wu96st13vixJc3A_B0/s72-c/DAG1.png" height="72" width="72"/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-6362503083176260357</id><published>2017-11-27T08:04:00.001-06:00</published><updated>2017-11-27T08:04:21.526-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AAD"/><category scheme="http://www.blogger.com/atom/ns#" term="AD"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Domain"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="PaaS"/><category scheme="http://www.blogger.com/atom/ns#" term="SaaS"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Users"/><title type='text'>Create users in Azure AD</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In this post I&#39;ll
show you how to create new users in your Azure Active Directory so you can use
them as service accounts or to grant other users to login to your Servers or
services as well as how to enable them so you can use it, I didn&#39;t know that
and the documentation was not as explicit as you would love, however I
consolidate both tasks here.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Go to Azure Active Directory&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVeGd9RJv9Qn9eYBDPNUp_IJHCSZHOWdg-hr5jERIY09KBS0zyhWtLEppkoP6IBubObGQxUa3rufF2ESFqwDn7sDvqnlH5QsJ84W-Lr2lib1QMCds8ykGEUQGw8cJc3Orub7iGo7IRRk0/s1600/AD1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;56&quot; data-original-width=&quot;221&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVeGd9RJv9Qn9eYBDPNUp_IJHCSZHOWdg-hr5jERIY09KBS0zyhWtLEppkoP6IBubObGQxUa3rufF2ESFqwDn7sDvqnlH5QsJ84W-Lr2lib1QMCds8ykGEUQGw8cJc3Orub7iGo7IRRk0/s1600/AD1.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;2&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;In the &quot;Name&quot; field
     type in the give name of the user&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Type the fully qualified name
     name@domainname.onmicrosoft.com&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Configure the Profile details&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;It won&#39;t let you change the
     details so you can leave it that way&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Configure the Groups it will
     have access to&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Select the role it will have
     in the active directory the options are (Regular user, Global Admin,
     Limited Admin)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Password: &lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-weight: bold;&quot;&gt;Make sure to
     copy the password as you are not able to retrieve it later&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; this is auto generated and
     you are not able to change it, and the user is configure to change it at
     the first logon.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Before clicking create, your
     window will have to look like this&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;;&quot;&gt;&lt;span style=&quot;font-size: 14.6667px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9_fTPPNmx17Oqx95Ek1gLu3_oDy6QXt7DyslEe4Sz-dAh-vG2E6Z70aA_HtZ8feMz4H9f5BbkenxOkMfzkeQWkPrv5PU14_LjzZOAoSYt0JZKrdGn3LFMyTFfdkZ96VJCM4y9s3UydQU/s1600/AD2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;670&quot; data-original-width=&quot;373&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9_fTPPNmx17Oqx95Ek1gLu3_oDy6QXt7DyslEe4Sz-dAh-vG2E6Z70aA_HtZ8feMz4H9f5BbkenxOkMfzkeQWkPrv5PU14_LjzZOAoSYt0JZKrdGn3LFMyTFfdkZ96VJCM4y9s3UydQU/s320/AD2.png&quot; width=&quot;178&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Alright, you have
your account created, however it wont work until you synchronize the password,
or in other words, until you enable your user by logging in to the active
directory, however, how can you do that? This is something hard to find out
there in the web, even when the steps are simple, reason why I&#39;m including it
with this post.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;1. Navigate to this URL: &lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;a href=&quot;http://myapps.microsoft.com/&quot; style=&quot;font-size: 11pt;&quot;&gt;http://myapps.microsoft.com/&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;2. When asked for the logon
     user, use the one you just created&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW5qPz_EdeNA9biGhMYuFwqf28Rcvqcam0QSe-F1anQvIcA5D5rSJGsHzZefVEP2uKGuMXXNallsglzOUIq2kjw5h7NTa8B5GBejmyCE0K0VTsxMb_XI5c_kqhmNUm3M0BdbqFwS0Yoag/s1600/AD3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;484&quot; height=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiW5qPz_EdeNA9biGhMYuFwqf28Rcvqcam0QSe-F1anQvIcA5D5rSJGsHzZefVEP2uKGuMXXNallsglzOUIq2kjw5h7NTa8B5GBejmyCE0K0VTsxMb_XI5c_kqhmNUm3M0BdbqFwS0Yoag/s320/AD3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
3. Type
in the password you copy from the creation window, then it will route you to
this other page where it asks you to configure a new password, type in the new
password.&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4FtVjhy94SSE-ZSXCD7isRyIyZMGaWxW_T6eQeTuN9Oije8NGXl6pr0Fo_J9b6fz12LwlVRD2L-axfe8S1IvYHh8CiX2h982CEMhI71RkXVZEkZxZeh5KmPss7PEOonWOYsYgyvJ-uQ/s1600/AD4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;576&quot; data-original-width=&quot;484&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjm4FtVjhy94SSE-ZSXCD7isRyIyZMGaWxW_T6eQeTuN9Oije8NGXl6pr0Fo_J9b6fz12LwlVRD2L-axfe8S1IvYHh8CiX2h982CEMhI71RkXVZEkZxZeh5KmPss7PEOonWOYsYgyvJ-uQ/s320/AD4.png&quot; width=&quot;268&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And
you are done, once that you have successfully updated the password it will
route you to this screen meaning that you successfully create and activate the
account. Now you are ready to use it to join your machines to the domain,
configure it as service accounts, etc.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkdolBhaED_8URVYdV06rmCjG7UvzoJoIykRNTCSA92Q3DR7oGYn5moxX5eXCSMSqS91ml1vhfYw4BboHss47QHVOUejs5RM3amjL8aC8ynhiPsBh45dnMNDPrOY243VkjVhD-fPxzlpk/s1600/AD5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;304&quot; data-original-width=&quot;1169&quot; height=&quot;83&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkdolBhaED_8URVYdV06rmCjG7UvzoJoIykRNTCSA92Q3DR7oGYn5moxX5eXCSMSqS91ml1vhfYw4BboHss47QHVOUejs5RM3amjL8aC8ynhiPsBh45dnMNDPrOY243VkjVhD-fPxzlpk/s320/AD5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Hope this and the
post from last week lets you get started and working with Azure.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading!&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/6362503083176260357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/create-users-in-azure-ad.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/6362503083176260357'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/6362503083176260357'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/create-users-in-azure-ad.html' title='Create users in Azure AD'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVeGd9RJv9Qn9eYBDPNUp_IJHCSZHOWdg-hr5jERIY09KBS0zyhWtLEppkoP6IBubObGQxUa3rufF2ESFqwDn7sDvqnlH5QsJ84W-Lr2lib1QMCds8ykGEUQGw8cJc3Orub7iGo7IRRk0/s72-c/AD1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-3210590718477875541</id><published>2017-11-20T08:00:00.000-06:00</published><updated>2018-12-04T15:39:46.257-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AAD"/><category scheme="http://www.blogger.com/atom/ns#" term="AD"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Cloud"/><category scheme="http://www.blogger.com/atom/ns#" term="Domain"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="Network"/><category scheme="http://www.blogger.com/atom/ns#" term="PaaS"/><category scheme="http://www.blogger.com/atom/ns#" term="SaaS"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Users"/><title type='text'>Configure an Azure AD Domain Services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Problem: I was
working on getting a demo on how to setup Always On with SQL Server 2017
without the need of creating a windows cluster, I had my two VM&#39;s in Azure and
everything was working fine until the creation of the availability group, it
failed and it was because the account under which the server was running was
the default &quot;NT Service&quot; which is not allowed (not to mention is a
concerning security issue) so instead I decided to join both VMs to a domain,
as mentioned before, this were Azure VM&#39;s so the creation of a traditional
domain as you know it on premises was a hard task to do (not to mention the
cost for each of the servers) however by looking through I came across a
service, Azure AD
Domain Services that provides a seamless experience as a traditional domain
controller, but as a service (PaaS) which is great because it does almost
everything for you so here are the steps as to how to set that up.&lt;/div&gt;
&lt;div lang=&quot;es-GT&quot; style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span lang=&quot;es-GT&quot;&gt;All
the steps are in this URL&lt;/span&gt;&lt;span lang=&quot;en-US&quot;&gt;: &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-getting-started&quot;&gt;&lt;span lang=&quot;en-US&quot;&gt;https://docs.microsoft.com/en-us/azure/active-directory-domain-services/active-directory-ds-getting-started&lt;/span&gt;&lt;/a&gt;&lt;span lang=&quot;en-US&quot;&gt;&amp;nbsp;follow it thoroughly however, here are some annotations from my own experience:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Task 1: &quot;configure basic settings&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;DNS domain name:&lt;/span&gt; choose the name of your
preference with the add of &quot;.onmicrosoft.com&quot; unless you have
something else configured it won&#39;t check your name as valid.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Resource group:&lt;/span&gt; You can create a new resource
group or use an existing one, it won&#39;t break anything that you have in your
group if you choose &quot;Use Existing&quot;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Task 2:
&quot;Configure network Settings&quot;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In here you have the
option to either Create a new one or use an existing one, my recommendation,
create a new one, in my first attempt I choose an existing one and spent 2 days
cleaning everything up as in the middle of the creation it fail.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Task 3:
&quot;Configure administrative group&quot;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In this task you
create the equivalent of &quot;Domain Administrators&quot; group, so make sure
that you add the members you want to be domain admins in your Azure AD (AAD).&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
After finishing this
task, it will start the process on provisioning the resources, once this is
done, your domain will be almost ready, before that you still need to configure
your DNS. How to know when is done? When you go into the overview of the domain
you are able to see the section &quot;Update DNS Server settings for your
virtual network&quot;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Task 4: &quot;Update
DNS Server settings for your virtual network&quot;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Make sure that you
choose &quot;custom&quot; and copy both IPs onto the boxes as shown in the
steps, this step is so that you can configure you DNS servers with the ip of
the services (that will serve as Domain controller servers) Azure provided for
you, take this as a verification step of the process.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
With that you are
done, you have successfully configured your Active directory as a service and
you are good to go and work like if you were in an on premises domain, you will
only need to configure your accounts to the services or if you didn&#39;t do it in
the task #3, you can create an account to manage your domain (Join the
machines, create other accounts to configure as Service Accounts, ETC).&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In a following post
I&#39;ll show you how to create and enable users in your Azure AD.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading!&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/3210590718477875541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/configure-azure-ad-domain-services.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3210590718477875541'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3210590718477875541'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/configure-azure-ad-domain-services.html' title='Configure an Azure AD Domain Services'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7217039023922782174</id><published>2017-11-08T09:18:00.000-06:00</published><updated>2017-11-08T09:18:41.899-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Contained databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="DR"/><category scheme="http://www.blogger.com/atom/ns#" term="HA"/><category scheme="http://www.blogger.com/atom/ns#" term="Isolation"/><category scheme="http://www.blogger.com/atom/ns#" term="Recovery"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>Contained Databases setup</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&amp;nbsp;&lt;a href=&quot;https://sqldbagt.blogspot.com/2017/11/contained-databases.html&quot; style=&quot;font-size: 11pt;&quot;&gt;Last week&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
I wrote about what is a contained database, the benefits and challenges, today
as promised I&#39;ll show you how to setup one, how to configure a user and how to
connect to it so let&#39;s get started.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Step 1&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;

&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
After logging in to
your SQL Instance, go to the instance properties.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTaChK7dpd3Eh7VeLFeS2k9ukpXxsBa10Q8uzTTpnTxZ9dEWALD5GSDhIKZyLP9-ywo3KMYa4uMiK2IkZG3-imswsOSZImKm7rr69L3CWCnx1JlxuQSc2uUoWx1CDcywRBAgSZmAjR3Y/s1600/Step1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;415&quot; data-original-width=&quot;358&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTaChK7dpd3Eh7VeLFeS2k9ukpXxsBa10Q8uzTTpnTxZ9dEWALD5GSDhIKZyLP9-ywo3KMYa4uMiK2IkZG3-imswsOSZImKm7rr69L3CWCnx1JlxuQSc2uUoWx1CDcywRBAgSZmAjR3Y/s320/Step1.png&quot; width=&quot;276&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&amp;nbsp;&lt;span style=&quot;font-family: Calibri; font-size: 11pt; font-weight: bold;&quot;&gt;Step 2&lt;/span&gt;&lt;br /&gt;


&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In the properties
page, select advanced and in the first section choose &quot;Enable Contained
Databases = True&quot; With this you will be enabling the feature at the
instance level so that you can setup your databases this type.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqcPPpgEoCWsGGGDhyphenhyphen1pr6V687SVAUCEyykIG6ipFLFmu4-NA7-5ioNgFSmUJe1mdPHwHiq5FE2L5vXU7ATKXQPufn-L8hSCY3mwDFWor72wY6MsLjOGTmZRFG4wD3TR8SqF5gBGjPJNg/s1600/Step2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;680&quot; data-original-width=&quot;999&quot; height=&quot;217&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqcPPpgEoCWsGGGDhyphenhyphen1pr6V687SVAUCEyykIG6ipFLFmu4-NA7-5ioNgFSmUJe1mdPHwHiq5FE2L5vXU7ATKXQPufn-L8hSCY3mwDFWor72wY6MsLjOGTmZRFG4wD3TR8SqF5gBGjPJNg/s320/Step2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Step 3&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Go to the database
that you want to convert to a contained database and click properties, then go
to options and in the Containment Type choose Partial.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiByLn9JDSB2PtBUrthYZCBfEq_p5wkMPf0xrcBAtfnWBKYSCfGp3NBD9iC6ZQotqx8sGQC53VYOtwFaRK88nKkfCdY2O7VPU4CH77vXds-z43fXqEaGss0LA4sKSHRS3nc2q099EiZKBo/s1600/Step3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;626&quot; data-original-width=&quot;692&quot; height=&quot;289&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiByLn9JDSB2PtBUrthYZCBfEq_p5wkMPf0xrcBAtfnWBKYSCfGp3NBD9iC6ZQotqx8sGQC53VYOtwFaRK88nKkfCdY2O7VPU4CH77vXds-z43fXqEaGss0LA4sKSHRS3nc2q099EiZKBo/s320/Step3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
With the above steps
you have now your first contained database, however at this point there is
nothing different as if you try to connect to the database with the accounts or
users that are already granted at the instance level you will see no difference,
for you to see the difference you will need to configure one use or account at
the database level as follow.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;b&gt;Step 4&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Go to the security
folder inside the contained database, go to the Users folder and choose
&quot;Create new User&quot;, it will prompt you the following window where you
will create your user, remember to configure the privileges that you will allow
it to have, and always remember the best practice is to follow the least
privileged principle.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzqjxbyOogAUMlVIMj8hnW8fZQQ_E9sFSS0zG2I-tM1jhXKfzizISLvkIGZ___qz15X2M90YOpQEElf6kI2Q0bVeSuAvz18-SINtammFcsTOKfHc575BalrMopCBClirCwHHmuF2iXdjc/s1600/Step4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;627&quot; data-original-width=&quot;687&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzqjxbyOogAUMlVIMj8hnW8fZQQ_E9sFSS0zG2I-tM1jhXKfzizISLvkIGZ___qz15X2M90YOpQEElf6kI2Q0bVeSuAvz18-SINtammFcsTOKfHc575BalrMopCBClirCwHHmuF2iXdjc/s320/Step4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Ok so you have now
your user created, let&#39;s try to connect&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Step 5.1 &lt;/span&gt;connecting to SQL Server as usual&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrkbwQWbXZmVQXY3yNeE7izKVm4t1CpwSSDPBWeM99nNfBUL99K4IR7TDBvoZAdmtwcPNcvUc368AD9Sa2mNXa4iWTjRH1XXmuY1tW4K4eRPNrEv3-GhgfmwbrCyj8Tu6zmojST-0QQnY/s1600/Step5.1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;395&quot; data-original-width=&quot;616&quot; height=&quot;205&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrkbwQWbXZmVQXY3yNeE7izKVm4t1CpwSSDPBWeM99nNfBUL99K4IR7TDBvoZAdmtwcPNcvUc368AD9Sa2mNXa4iWTjRH1XXmuY1tW4K4eRPNrEv3-GhgfmwbrCyj8Tu6zmojST-0QQnY/s320/Step5.1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Wait, what happened?
We created the user, now it is not able to connect?&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Step 5.2&lt;/span&gt; To take advantage of the containment,
you will need to select directly the database that you want to connect, you can
do this by clicking on the &quot;Options Button&quot; at the bottom right
corner of the screen, the logon window will change, so then you will need to go
to the Connection Properties tab and in the &quot;Connect to Database&quot;
section, you will need to write the Database name, it shows the option to
lookup, however if you are not logged in it will tell you that you need to
login first and you will end up in a circle where you can&#39;t authenticate, so
better write down the database name so you can enter it here.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCQewFSdQgfRLgZpCmG93SdBm70JBRQ4vV-YoR70Xhy9y79boax-T9JKRu01cMIvy-2VDavPzKM-fLxAvtbgf8CVuc_8MccD-7IiFwAicqVHb9Bz79lJI0_oxdW-p6Mp63br4VCB3itM/s1600/Step5.2.1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;521&quot; data-original-width=&quot;478&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCQewFSdQgfRLgZpCmG93SdBm70JBRQ4vV-YoR70Xhy9y79boax-T9JKRu01cMIvy-2VDavPzKM-fLxAvtbgf8CVuc_8MccD-7IiFwAicqVHb9Bz79lJI0_oxdW-p6Mp63br4VCB3itM/s320/Step5.2.1.png&quot; width=&quot;293&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Step 6&lt;/span&gt; Welcome you are now connected directly
to your database. Can you see the difference? With an account that is granted
at the server level you can see all the databases in the SQL Instance, however
when you are connected to your contained database, it shows you only the
database that you have permissions, creating an isolation of the environment.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW_orB02PY8ToirSSd9HeVoeT5bLxg0AK-QiPZhmJd4GQCcN7vMzI0zRHyAXqd8PZCIfV6enKFEIG7S4WaVUTCBkcJ7HLAp-lySnINutvoj1F3vx8v_uG1__oP70PQnaOo6HbQyG3gvEI/s1600/Step5.2.2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;380&quot; data-original-width=&quot;403&quot; height=&quot;301&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgW_orB02PY8ToirSSd9HeVoeT5bLxg0AK-QiPZhmJd4GQCcN7vMzI0zRHyAXqd8PZCIfV6enKFEIG7S4WaVUTCBkcJ7HLAp-lySnINutvoj1F3vx8v_uG1__oP70PQnaOo6HbQyG3gvEI/s320/Step5.2.2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-1YiOmeGddJCEaC4YKr3wmrQgGEmoOciJKWVtApxofPm56EERGmTuFCyh9ZlqZ8EbD5bz1QFVdzMYdTHpuyhL4HRSdFBV8t-ovU_Xu8Ito5GQrUjx6ZPjzh3GEmujfqXrm9YUGv5i4cw/s1600/Step6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;328&quot; data-original-width=&quot;273&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-1YiOmeGddJCEaC4YKr3wmrQgGEmoOciJKWVtApxofPm56EERGmTuFCyh9ZlqZ8EbD5bz1QFVdzMYdTHpuyhL4HRSdFBV8t-ovU_Xu8Ito5GQrUjx6ZPjzh3GEmujfqXrm9YUGv5i4cw/s320/Step6.png&quot; width=&quot;266&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Calibri; font-size: 11pt; font-weight: bold;&quot;&gt;Tests:&lt;/span&gt;&lt;br /&gt;


&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Now lest do some
tests, imaging that you are sharing the account with someone from the
production control team and that person has a little bit of knowledge in SQL,
and tries to discover it there are more databases in the instance, the query
will only return 3, Master, tempdb and the contained database it has
permissions, why this 3? Well, master has the metadata that it needs to work
with, if you create temp objects you will need to rely on the tempdb, but
that&#39;s it.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV7XbpFapZ-91lPIwBsarMkb5vX-hdAEGzr2XECqbFfMrHYQqNfPCaHAwhtKd5nXiHcXAH3ddlbe60oxPEy-dAWhtKUB-IcdsIYpcHQXVDFxoaIx1Qk10OIw1D5YKSxzyotmZBwBgyLZ0/s1600/Test1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;538&quot; data-original-width=&quot;926&quot; height=&quot;185&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgV7XbpFapZ-91lPIwBsarMkb5vX-hdAEGzr2XECqbFfMrHYQqNfPCaHAwhtKd5nXiHcXAH3ddlbe60oxPEy-dAWhtKUB-IcdsIYpcHQXVDFxoaIx1Qk10OIw1D5YKSxzyotmZBwBgyLZ0/s320/Test1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
For
the second test, I created another contained database and tried to run queries
against, however it doesn&#39;t lets me do it, why? It was not mentioned in last
week&#39;s post but other of the limitations is that you can&#39;t run queries across
different databases, unless you have the guest account enabled, which is not
this case and that strongly not recommend. &lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia94HgaAoGQ4R0y0_UW0vXHTHYGz64gtM_CTbHF82YTjq8NWd9IhkMsX__7FUhUNBvDJ7LsbdK2ysaKrk9KRH2T9SgYmPq6RD7AYgPDzVE3_olu2jWEeaiVKs0sUesCYab63H1RWqe_9c/s1600/Test2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;596&quot; data-original-width=&quot;988&quot; height=&quot;193&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEia94HgaAoGQ4R0y0_UW0vXHTHYGz64gtM_CTbHF82YTjq8NWd9IhkMsX__7FUhUNBvDJ7LsbdK2ysaKrk9KRH2T9SgYmPq6RD7AYgPDzVE3_olu2jWEeaiVKs0sUesCYab63H1RWqe_9c/s320/Test2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Summary:
Contained databases is a feature that provides isolation between environments
if you are running databases that requires this kind of separation, also by
using this feature you don&#39;t have to worry about migrating users, roles, etc.
when you move your database from one server to another, either because you are
migrating, upgrading or recovering your server, also this portability eases the
configuration and security administration when you have Always On Availability
groups configured for you HA/DR environments.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7217039023922782174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/contained-databases-setup.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7217039023922782174'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7217039023922782174'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/contained-databases-setup.html' title='Contained Databases setup'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRTaChK7dpd3Eh7VeLFeS2k9ukpXxsBa10Q8uzTTpnTxZ9dEWALD5GSDhIKZyLP9-ywo3KMYa4uMiK2IkZG3-imswsOSZImKm7rr69L3CWCnx1JlxuQSc2uUoWx1CDcywRBAgSZmAjR3Y/s72-c/Step1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-6237988695907358071</id><published>2017-11-01T22:50:00.000-06:00</published><updated>2017-11-01T22:50:02.450-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Contained databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Database"/><category scheme="http://www.blogger.com/atom/ns#" term="DR"/><category scheme="http://www.blogger.com/atom/ns#" term="HA"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer 2017"/><title type='text'>Contained Databases</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Today&#39;s post is in
regards a feature that was released with SQL Server 2012, it hasn&#39;t gotten the
attention or used that it deserves even when it helps solving a lot of problems
you face when upgrading or migrating the database servers and is Contained databases.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
What is a Contained
database?&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
A contained database
is a database that is isolated from other databases and from the instance of
SQL Server that hosts the database. A contained database basically includes all
database settings and the metadata within itself thereby resulting in no configuration
dependencies on the instance of the SQL Server Database Engine where the
database is actually installed. Users will be able to connect to a contained
database without authenticating a login at the Database Engine level. This
feature really helps to isolate the database from the Database Engine thereby
making it possible to easily move the database from one instance of SQL Server
to another, this is incredibly useful when you have HA environments. The
Contained databases feature is available at the instance level and is not
enabled by default.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
What type are
available?&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Contained database
feature provides two containment modes:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
None – By default
each database has its mode set as NONE. This means there is no contained
database feature being used.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Partial – With
partially contained databases, we can define boundaries between databases and
the server, so the metadata will exist inside the databases. It makes SQL
Server databases more portable and less dependent on underlying hosts.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Advantages of
contained databases :-&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
1. User
authentication can be done at database level, so you only need to be sure to
grant the users permissions in your database.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
2. Have less
dependency on instance than conventional databases. Objects &amp;amp; features of
each database can be managed by them self, reduce workload of system database
&amp;amp; SQL instance&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
3. Easier &amp;amp;
Faster to migrate databases from one server to another. Errors related to
missing users and orphan users are no longer an issue.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
4. Contained
database users can be Windows and SQL Server authentication users.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
5. Contained
database user can access only contained database objects. They cannot access
system databases and cannot access server objects.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
6. This is the
preferred mode to be used with HADR (Always On)&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
7. Maintaining
database settings in the database, instead of in the master database increase
security &amp;amp; flexibility. Each database owner have more control over their
database, without giving the database owner sysadmin permissions.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
8. To close
collation issues in contained database. New feature catalog collation
introduced with contained database. Now database collation works for user
objects &amp;amp; catalog collation works for system objects in database. Catalog
collation will be same for all contained databases on all SQL instance, also
this collation cannot be changed.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Disadvantages and
Limitations of contained databases :-&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
1. A database owner
has more control on contained database, User can create contained database
users without the permission of a DBA that can lead to security issues &amp;amp;
data theft threat&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
2. Contained
databases cannot use replication, change data capture, change tracking,
numbered procedures, schema-bound objects that depend on built-in functions
with collation changes&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
3. Before changing
containment settings at database level from NONE to PARTIAL , contained
databases feature needs to be enabled at instance level, so make sure to enable
it before releasing your server and database to production.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
4. To connect to a
contained database, you need to specify the database name in the default
database option tab.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
5. Temporary stored
procedures are currently permitted. But can be removed from future versions of
contained database.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
6. Contained
database user can access other databases on the Database Engine, if the other
databases have enabled the guest account, which can be a security issue.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Changes cross
versions:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This feature hasn&#39;t
gotten any change since it got released with SQL 2012, mostly as the new
versions have been focused in improving the performance, security and
integrating Artificial Intelligence and Machine learning features, however,
personally if you have environments where you need High Availability and every
time that you failover your groups you need to resynch your users and
principals, this might work for you, however, you will need to remove you
database from your availability group if you want to enable this in your
database, but we will be working with it in next week&#39;s post.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading!&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Resources:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;http://www.sqlservercentral.com/blogs/mssqlfun/2014/06/23/sql-server-2012-contained-database/&quot;&gt;http://www.sqlservercentral.com/blogs/mssqlfun/2014/06/23/sql-server-2012-contained-database/&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;https://www.sqlshack.com/contained-databases-in-sql-server/&quot;&gt;https://www.sqlshack.com/contained-databases-in-sql-server/&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/databases/contained-databases&quot;&gt;https://docs.microsoft.com/en-us/sql/relational-databases/databases/contained-databases&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/6237988695907358071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/contained-databases.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/6237988695907358071'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/6237988695907358071'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/11/contained-databases.html' title='Contained Databases'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-3596433880261382352</id><published>2017-10-25T13:17:00.000-06:00</published><updated>2017-10-25T13:17:50.254-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Distributor"/><category scheme="http://www.blogger.com/atom/ns#" term="DR"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="New Version"/><category scheme="http://www.blogger.com/atom/ns#" term="Publication"/><category scheme="http://www.blogger.com/atom/ns#" term="Recovery"/><category scheme="http://www.blogger.com/atom/ns#" term="Replication"/><category scheme="http://www.blogger.com/atom/ns#" term="Snapshot"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer 2017"/><category scheme="http://www.blogger.com/atom/ns#" term="Subscription"/><title type='text'>Configuring a Subscription to an Azure SQL</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This is my first post where I utilize an hybrid cloud, item that I personally find very interesting and useful so expect more posts like this to come.&lt;br /&gt;
&lt;br /&gt;
Microsoft Azure
released at the beginning of this week the availability to add an Azure SQL
database as a subscriber for a transactional replication (&lt;a href=&quot;https://t.co/WlZSmOQhhT&quot;&gt;https://t.co/WlZSmOQhhT&lt;/a&gt;), so I was preparing
the post to show how to create a subscription to a transactional publication so
instead of adding the subscription of an on-premises server I set it up to the
Azure version. &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
The steps to
configure a Subscriber are the following:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-size: 11pt;&quot;&gt;1.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Start
     the subscription wizard&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;: You will go and look for the &quot;Replication&quot;
     Folder, expand the folder and go to &quot;Local Subscriptions&quot; in
     there right click and choose &quot;New Subscriptions…&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s1600/Distribution1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;216&quot; data-original-width=&quot;374&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s320/Distribution1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;2. Choose your publication:&lt;/span&gt; the first
step is connecting to a SQL Server that is configured as a publisher and the
published databases lastly select the publication you want to subscribe, in
this case, I&#39;m connecting to the publication created in a &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/10/configuring-transactional-replication.html&quot;&gt;previous
post&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26gKit_mxvFNNkMBDsnrSWv-I4CRP3nt4SbzXovr6r5ResjHwqpRi3zsYA-RwLZVQS33s6JRui7JrVS-DhsR6_DaIy-tWpbVoGHZmKImyH6fJuBilo_9-Jf16WIeH1LQiaX0Py9Axxdk/s1600/Subscription1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;562&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi26gKit_mxvFNNkMBDsnrSWv-I4CRP3nt4SbzXovr6r5ResjHwqpRi3zsYA-RwLZVQS33s6JRui7JrVS-DhsR6_DaIy-tWpbVoGHZmKImyH6fJuBilo_9-Jf16WIeH1LQiaX0Py9Axxdk/s320/Subscription1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;3. Choose the distribution agent location&lt;/span&gt;
You have two options here, creating Push or Pull subscriptions, what this
means? With Push subscriptions, you will rely on the Publisher to send (Push)
the replicated data to the subscribers, on the other side, with the Pull
subscriptions, the subscribers will go an connect to the Distribution database
and download the changes, this second one is particularly recommended with
environments that the minimum increase of workload affects dramatically and if
you plan to have multiple subscribers you can reduce that overhead in the
publisher by configuring Pull subscriptions, however with the Azure SQL release
it is recommended (for now) to add it as Push, mainly the reason why is because
you don&#39;t have (yet) SQL Server agent to configure the agent jobs to run, so
you need to use the one from the publisher.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsmZXkCcXmy_0RzSHU8VdiL5k7RIZoYQf2seh9WvxDJa4VAjqU0aHw0HbJV0f6SXIrGyt7qaO2CO_VhgWEEHzDEsjZItt8E2-IaP2RMMhUNtcLYZQMkIFY98Q0fMiPwT5wBeJpZa6S1nU/s1600/Subscription2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;557&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsmZXkCcXmy_0RzSHU8VdiL5k7RIZoYQf2seh9WvxDJa4VAjqU0aHw0HbJV0f6SXIrGyt7qaO2CO_VhgWEEHzDEsjZItt8E2-IaP2RMMhUNtcLYZQMkIFY98Q0fMiPwT5wBeJpZa6S1nU/s320/Subscription2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;4. Select your subscribers&lt;/span&gt; In this step
you will be adding the subscribers to the publisher you have chosen, initially
you will only see listed the current server where you are connected, however
you can add more, in order to do so, you need to click on &quot;Add
Subscriber&quot; and select &quot;Add SQL Server Subscriber…&quot;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsy1pp1G6VWIrmwqYyAC_Mhp3J88XfxRELNkEuO8s41iiKjOImxRACB861UGF-ma4un01zLJDW9BNP5wjszTbSyHkPlbyaf8E1pFiQnQovo_NAEG2SAwq9kvrTZBoEDLiyryXo88r5FvM/s1600/Subscription3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;455&quot; data-original-width=&quot;629&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhsy1pp1G6VWIrmwqYyAC_Mhp3J88XfxRELNkEuO8s41iiKjOImxRACB861UGF-ma4un01zLJDW9BNP5wjszTbSyHkPlbyaf8E1pFiQnQovo_NAEG2SAwq9kvrTZBoEDLiyryXo88r5FvM/s320/Subscription3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;5. Connect to your Subscriber server&lt;/span&gt;
After you click in the Add Subscriber button, you will need to connect to the
server or database that you will be adding, in this particular case, I&#39;m
connecting to my Azure SQL Database as you can see by the URL.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitvlTcRfTq85RPc_eVeDJ9VW-5ZlcG7fXV3I2qlbDOgaBARplmJlmXOD_wPXOC0IzsIWpOOeg5Z7nmtAQHFDxAWLYawOa6fhJ1RO0ALv3o6GdLPQAtYQnwp5UymHl9TGbCno5EJ0HDI8w/s1600/Subscription4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;315&quot; data-original-width=&quot;482&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitvlTcRfTq85RPc_eVeDJ9VW-5ZlcG7fXV3I2qlbDOgaBARplmJlmXOD_wPXOC0IzsIWpOOeg5Z7nmtAQHFDxAWLYawOa6fhJ1RO0ALv3o6GdLPQAtYQnwp5UymHl9TGbCno5EJ0HDI8w/s320/Subscription4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
Once
that you have connected successfully, you will see that server with the box at
the left checked, telling that you will be adding that as a subscriber as well
as the database that will receive the replicated data.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4xujNZSdz1lzrBCfjNAcuTloKmmDCGajjRcXPpK1BUFUq4WxJGNwjm5SxkW6_8nITcoGucSTTIXIJ07n6-z4IpRniOfclL7Wqn0n-guCeIdNnzXwG9_o8L71cav6XXD3YkJaNMnkyo10/s1600/Subscription5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;455&quot; data-original-width=&quot;629&quot; height=&quot;231&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4xujNZSdz1lzrBCfjNAcuTloKmmDCGajjRcXPpK1BUFUq4WxJGNwjm5SxkW6_8nITcoGucSTTIXIJ07n6-z4IpRniOfclL7Wqn0n-guCeIdNnzXwG9_o8L71cav6XXD3YkJaNMnkyo10/s320/Subscription5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;6. Configure the agents security:&lt;/span&gt; You
will then need to configure the accounts that you will be using to connect to
the distribution agent, in this particular case as I don&#39;t have an Active
directory configured I choose to connect using a local account from my VM,
important note, remember you will need to choose&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1QXFJlJs7cis_FmzNZZX3NMhQ5UHjx8UnVq3526MiGTUknBRZ8wbZLplZcl4snB51tFLBHb81JHajR7tD5RqpjhDups_VinwpGTfaCTVZvviaWCj6OC57PR82I83hX1Ws6Z1jILWlyUw/s1600/Subscription6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;662&quot; data-original-width=&quot;537&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1QXFJlJs7cis_FmzNZZX3NMhQ5UHjx8UnVq3526MiGTUknBRZ8wbZLplZcl4snB51tFLBHb81JHajR7tD5RqpjhDups_VinwpGTfaCTVZvviaWCj6OC57PR82I83hX1Ws6Z1jILWlyUw/s320/Subscription6.png&quot; width=&quot;259&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;7. Select the Synchronization Schedule&lt;/span&gt;
once that you have chosen the subscriber database, you configure the
Distribution agent security, you need to choose the Schedule, you can select
&quot;Run continuously&quot; or schedule to be run at a given times, this all
depends on how fast you need the updates to be replicated, when using
transactional replication I recommend use continuously as you would want each
transaction to be replicated immediately to the subscribers.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxyjgBfnXBaJZcnr2BELzPEuUb59mvthot8xF5ReUDhBQnaMTYMlnyV9ihAG_eIM0LFk2SXEM3ewVFDfRib066jIq_JNujAijx8J7YAYqmFP15d9-PhtLlNcMpYv2FIPw8ga65AJHuaB0/s1600/Subscription7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;557&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxyjgBfnXBaJZcnr2BELzPEuUb59mvthot8xF5ReUDhBQnaMTYMlnyV9ihAG_eIM0LFk2SXEM3ewVFDfRib066jIq_JNujAijx8J7YAYqmFP15d9-PhtLlNcMpYv2FIPw8ga65AJHuaB0/s320/Subscription7.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;8. Initialize subscriptions&lt;/span&gt; In this step
you will specify if your subscription will be initialized after finalizing the
wizard steps or if you want to do it later. My recommendation do it
Immediately, there are just few scenarios where you need to do that later.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGypmxXM8m98VpP7a8pg30UJoeweRlbyPFwkILD31nU-DvBASergV5j_psMCLX2F8sITzPRlfCo5LhdROP9oWW_8QhDcu7Uy0U8Sv5BcZfKisiheIcOaKprhu0Se2JMuwnD0W_RK-uN0s/s1600/Subscription8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;558&quot; height=&quot;257&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGypmxXM8m98VpP7a8pg30UJoeweRlbyPFwkILD31nU-DvBASergV5j_psMCLX2F8sITzPRlfCo5LhdROP9oWW_8QhDcu7Uy0U8Sv5BcZfKisiheIcOaKprhu0Se2JMuwnD0W_RK-uN0s/s320/Subscription8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;9. Confirm the actions&lt;/span&gt; Confirm if you
want to execute the commands immediately or you want to generate the scripts so
you can review it and run them at a later time.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GBkbq_nNdMstHobaNw1IZFprOGkVz4x3L3mCLzlsVvanZq7moG245sVW7Hb2VC4D6kwhnpLHmhXANB9iq6dYDPWAnIF7UiJjiJYc6mFglEonWhf_D2LM4KufK9kZYyMGUYr12-9Uq-0/s1600/Subscription9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;558&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2GBkbq_nNdMstHobaNw1IZFprOGkVz4x3L3mCLzlsVvanZq7moG245sVW7Hb2VC4D6kwhnpLHmhXANB9iq6dYDPWAnIF7UiJjiJYc6mFglEonWhf_D2LM4KufK9kZYyMGUYr12-9Uq-0/s320/Subscription9.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
And
you are all set, you just need to validate with the Replication monitor the
progress of your initialization process as well as if it is synchronizing the
data:&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhztGnXzmj4CslhfRvXwy64kz0MXD_2N2wNMyIUaYQBie09ptnU6-eOiDARrAWo53cv-xcfad_9VFX-7-N_B8CLSNes0eUOkpQOE_4QTGJWqUzWiEfy62DQCDt8r9dRuwR7xO_tO9kVfIk/s1600/Subscription10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;574&quot; data-original-width=&quot;692&quot; height=&quot;265&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhztGnXzmj4CslhfRvXwy64kz0MXD_2N2wNMyIUaYQBie09ptnU6-eOiDARrAWo53cv-xcfad_9VFX-7-N_B8CLSNes0eUOkpQOE_4QTGJWqUzWiEfy62DQCDt8r9dRuwR7xO_tO9kVfIk/s320/Subscription10.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
You can see that I had
some errors in there, but they were from another test cases, just wondered that
Triggers are not yet available in Azure SQL and I included some tables that had
triggers before, but if you don&#39;t have that set, it would be straight forward.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
The steps above
applies the same as if you are setting a subscription to an On-Premises server
or a SQL VM created in azure.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/3596433880261382352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/configuring-subscription-to-azure-sql.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3596433880261382352'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3596433880261382352'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/configuring-subscription-to-azure-sql.html' title='Configuring a Subscription to an Azure SQL'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s72-c/Distribution1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-3695372194236014700</id><published>2017-10-25T06:36:00.000-06:00</published><updated>2017-10-25T07:09:03.938-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Backups"/><category scheme="http://www.blogger.com/atom/ns#" term="BCP"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Distributor"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="Publication"/><category scheme="http://www.blogger.com/atom/ns#" term="Replication"/><category scheme="http://www.blogger.com/atom/ns#" term="Snapshot"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="Subscription"/><title type='text'>Configuring a Transactional replication</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Hello,&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This post is
intended to show you all the steps you will need to follow when you setup a
transactional replication, in fact the first 5 steps are one time only,
assuming this is the first time you will be creating a publication in your
database server, if you already have one set (Except for Log-Shipping,
Mirroring or Always On) you can skip the first 5 steps.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Step 1: Configuring the Distribution database&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
As discussed
previously (&lt;a href=&quot;https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-replication.html&quot;&gt;Replication
Basics&lt;/a&gt;) SQL Server will use this database to keep a track and distribute
all the changes that happen in your published objects (tables) to your
subscribers, so the first steps are in order to create it. So in order to
initialize that wizard, you connect to you SQL Server, and look for the
&quot;Replication&quot; folder, over there you do a right click and select the
first option &quot;Configure Distribution&quot;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s1600/Distribution1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;216&quot; data-original-width=&quot;374&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s320/Distribution1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Step 2 Selecting the type of distributor that
you will have&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;: You can select the type of distributor that you would
like for your database server to use, the default selection is that each server
serves as its own distributor, however, there are highly transactional
environments where the little overhead can severely impact the performance and
for that you will choose to use the distribution services from another server.
For this case, we will use the first option (own distributor).&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnjNoh_yJTAW2ffjzOhaIZX5aFi2O6pSHef-cj9l9W0ts-QlBBbEkkNgv_Q2q7zlyd0Ig2Mlhze2FEPNexuH_Ov3UpE5ufVWVvQYK94KFnMjPQDl7JzYu3j4eWaZ4Xr2IoLFwkaOHkpyg/s1600/Distribution2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;452&quot; data-original-width=&quot;557&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjnjNoh_yJTAW2ffjzOhaIZX5aFi2O6pSHef-cj9l9W0ts-QlBBbEkkNgv_Q2q7zlyd0Ig2Mlhze2FEPNexuH_Ov3UpE5ufVWVvQYK94KFnMjPQDl7JzYu3j4eWaZ4Xr2IoLFwkaOHkpyg/s320/Distribution2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Step 3: Configure the SQL Server agent:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
By default the SQL Server agent is configure to start manually, if you haven&#39;t
change that option you will get a message like this, If you already configure
it to start automatically you won&#39;t see this screen.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi73TeKjYtX3yrkvIv6LsGo-an0YLN7jB1Kvq5Jx4WBBuomLgo6RAqMqrRJooXoEwfIdXs-OEX1XqSges7z36NLtLTVaPzOarLmKe_MLR5xNgABEw8sN8NOhvOwyMo-PW4VhKfOsYLjsCE/s1600/Distribution3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;449&quot; data-original-width=&quot;558&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi73TeKjYtX3yrkvIv6LsGo-an0YLN7jB1Kvq5Jx4WBBuomLgo6RAqMqrRJooXoEwfIdXs-OEX1XqSges7z36NLtLTVaPzOarLmKe_MLR5xNgABEw8sN8NOhvOwyMo-PW4VhKfOsYLjsCE/s320/Distribution3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Step 4: Configure the snapshot folder&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
You will need to choose a location where SQL Server will be creating your
Publication snapshots, remember this are important as from this you will be
initializing your subscriptions. This folder can be later reconfigure in the
case that you need to do so to improve the performance, but that will be review
in another post.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpIjuOjFJDyw-LiucaY3Ie2LEWjGs8fi647jFGT5xqdI7D0XtJv7-rEujE4qkN70fM8jHmhHkHINafC011ZJ0cFMeias3_jrz8CTxbYl6zxXtP295hN20FkGSWaDGJgseuGVt_KxWpUas/s1600/Distribution4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;447&quot; data-original-width=&quot;559&quot; height=&quot;255&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpIjuOjFJDyw-LiucaY3Ie2LEWjGs8fi647jFGT5xqdI7D0XtJv7-rEujE4qkN70fM8jHmhHkHINafC011ZJ0cFMeias3_jrz8CTxbYl6zxXtP295hN20FkGSWaDGJgseuGVt_KxWpUas/s320/Distribution4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Step 5 choosing the name for the distribution
database and the location of the files:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; In this step you need to
configure the name that you would like to give to the database that the
distribution agent will be using, the default name is &quot;distribution&quot;
however you can choose the name that you like, for instance you can use Customer_distribution
to specify the name, this is useful if you will be using a separate server as
your distributor. After this screen you will get a summary of the setup and
will let you finish the wizard that will create and configure you Distribution
database and agent. With this you are all set to start publishing you
databases.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ1mbwJ4sCtZvgk0u82KhOl3gsAZt4aT8K9U9jQJHiaI1ynPpRUZLO8VvOyZiK24uQNUDAGNKx8tZqt1XakqwcNdc6TkeFBux1bi_uXN5rqPc12b0dw1VnPFiBDyi_1f1gm-pqyh863eU/s1600/Distribution5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;447&quot; data-original-width=&quot;558&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJ1mbwJ4sCtZvgk0u82KhOl3gsAZt4aT8K9U9jQJHiaI1ynPpRUZLO8VvOyZiK24uQNUDAGNKx8tZqt1XakqwcNdc6TkeFBux1bi_uXN5rqPc12b0dw1VnPFiBDyi_1f1gm-pqyh863eU/s320/Distribution5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Verification:&lt;/span&gt; if you like to verify if
your database got created properly you can go to the &quot;System
Databases&quot; folder and look for the database name you choose in step 5 to
verify.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsxkRN3eSeK0j46mVESKCPLCnlnVhMCiMNJQGGInCHINX5J9vfL3wR849qAPBEouPK2MD1I5n9BG3YYhUbh78OORTp1U2LJwJX6FyDqsLGzQPumJFyQjp1WmvJdexXuJeC5g2LLFCzad0/s1600/Distribution6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;149&quot; data-original-width=&quot;179&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsxkRN3eSeK0j46mVESKCPLCnlnVhMCiMNJQGGInCHINX5J9vfL3wR849qAPBEouPK2MD1I5n9BG3YYhUbh78OORTp1U2LJwJX6FyDqsLGzQPumJFyQjp1WmvJdexXuJeC5g2LLFCzad0/s1600/Distribution6.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Creating a publication&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Every time that you
need to create a Transactional replication publication you will need to follow
this steps:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt;1 Choose new publication&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11pt;&quot;&gt; Go to the
replication Folder (same folder you used to configure the distribution
database), expand the Tree and over the &quot;Local Publications&quot; hit
right click and select &quot;New publication&quot;, that will prompt the
&quot;New publication Wizard&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYYx-4TLXEAAxoU_y70fDmQbIwc8JL-wS_nuD9Kk_kyCLAtB2DHv2iSJUqBC6EVhJp7BF95pOSeI3CCw1H5Hw1xljuNIcasIprrjkGLIBwTZqifTG2XHdCA1RVUbfogDlPPdXBfKgA1AU/s1600/Publication1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;82&quot; data-original-width=&quot;377&quot; height=&quot;69&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYYx-4TLXEAAxoU_y70fDmQbIwc8JL-wS_nuD9Kk_kyCLAtB2DHv2iSJUqBC6EVhJp7BF95pOSeI3CCw1H5Hw1xljuNIcasIprrjkGLIBwTZqifTG2XHdCA1RVUbfogDlPPdXBfKgA1AU/s320/Publication1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;2 Choose the database to be published&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
Once that you are on the &quot;New publication Wizard&quot;, select the
database that you want to publish&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwku_sTb1OGCrf0c42hxIe_fsBIf8s2SxnmqmITa2e5K_AR9CgIFWeLZu9zO54AenNQMrjVlnMaYy8yE-B9kZV_LSdqZ90OmI23sYxPqYUy3vonq2z8_8EZUojutI7fhTZwgoMFFjEA34/s1600/Publication2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;558&quot; height=&quot;257&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwku_sTb1OGCrf0c42hxIe_fsBIf8s2SxnmqmITa2e5K_AR9CgIFWeLZu9zO54AenNQMrjVlnMaYy8yE-B9kZV_LSdqZ90OmI23sYxPqYUy3vonq2z8_8EZUojutI7fhTZwgoMFFjEA34/s320/Publication2.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;3 Select the Publication type&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; As
discussed before, there are 4 different types of publications that you can
choose from, in this post (&lt;/span&gt;&lt;a href=&quot;https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-replication.html&quot; style=&quot;font-size: 11pt;&quot;&gt;Replication
Basics&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;) I explain a little bit more each case of use, and in that screen
you can see a brief explanation of each one for you to choose, for this
particular case we will select &quot;Transactional Publication&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyXPud-MYy-6Omt9Tp5M3V4S83Tj8X87BGr_a7JdSx3Wt6vTNgj26uOdm9X4hqPLSSWcFF6fg1ipMv56M48CIeFCTj8m_Sl596j4SeQ-VzMoZYld1wgRjkIjWIs33RnAZLjyCKhkqNwpQ/s1600/Publication3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;452&quot; data-original-width=&quot;561&quot; height=&quot;257&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyXPud-MYy-6Omt9Tp5M3V4S83Tj8X87BGr_a7JdSx3Wt6vTNgj26uOdm9X4hqPLSSWcFF6fg1ipMv56M48CIeFCTj8m_Sl596j4SeQ-VzMoZYld1wgRjkIjWIs33RnAZLjyCKhkqNwpQ/s320/Publication3.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;4 Choose your articles&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; The articles
are the database objects that you want to get replicated, you can select from
tables, views or stored procedures, the only condition is that the table must
have a Primary key.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ6lbWu6iD8GFx22rGal7_oTUG7LQ2mLLm6nWOymkxfEwbWC8GMFomo2xYQqMS19VXG7yZanA4MjveYFajBr_3yWxCxMWmaM3wHi9wN0hHnSUba4y_Eg2EHvtFhvtiMZ3tEo_7ydKLA9Q/s1600/Publication4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;445&quot; data-original-width=&quot;556&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQ6lbWu6iD8GFx22rGal7_oTUG7LQ2mLLm6nWOymkxfEwbWC8GMFomo2xYQqMS19VXG7yZanA4MjveYFajBr_3yWxCxMWmaM3wHi9wN0hHnSUba4y_Eg2EHvtFhvtiMZ3tEo_7ydKLA9Q/s320/Publication4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;5 Filter table rows&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; You can choose to
filter the data that will be replicated, in here you can write a query that
will select the conditions the data needs to meet to be replicated, e.g.
filtered by a date range, a status, age, etc. You can also leave this blank and
will replicate the entire table.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9TyUf-XrGucYvBNO3v9-KehwkbPKrKz2CKIibZshL6WZBaUmhw6738q-mtd6gydrJXjyYzXAWrv-cDFEF-OIKRFs5IQf9oa6Jn-8ZQn0MC28i2nhdNJmZXswP0T6nMFSgBa-u4iapUdo/s1600/Publication5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;449&quot; data-original-width=&quot;560&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9TyUf-XrGucYvBNO3v9-KehwkbPKrKz2CKIibZshL6WZBaUmhw6738q-mtd6gydrJXjyYzXAWrv-cDFEF-OIKRFs5IQf9oa6Jn-8ZQn0MC28i2nhdNJmZXswP0T6nMFSgBa-u4iapUdo/s320/Publication5.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;6 Snapshot Agent&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; Each publication has
its own snapshot agent, this agent will be the one in charge of generating the
schema to be applied on each of your subscriptions, you can choose to generate
the snapshot immediately at the end of the wizard or schedule it to run at a
given time. You can also choose both, in the case that you would like to
reinitialize your subscriptions at a given day of the week although for
transactional replications that is not recommended.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpVY5OhzBmNxK_EAz89bo8qkRq3ffVaHA_ewHcFXRkJ15fSbx5XAjmWn7ue8ihxmLTIC7VJeGsxgLpwk_smFpDUwv89-HCgh6ql7DSoV8OguLnERfUPooXLl5eMUdcOeMCk2plDVKySN4/s1600/Publication6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;560&quot; height=&quot;257&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpVY5OhzBmNxK_EAz89bo8qkRq3ffVaHA_ewHcFXRkJ15fSbx5XAjmWn7ue8ihxmLTIC7VJeGsxgLpwk_smFpDUwv89-HCgh6ql7DSoV8OguLnERfUPooXLl5eMUdcOeMCk2plDVKySN4/s320/Publication6.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;7 Agents setup&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; you will need to
configure the security for the Snapshot and Log Reader agent. When clicking on
&quot;Security Settings&quot; it will drive you to another window where it will
ask you to configure the account you will like to use to connect to the distribution
agent to a) Generate the snapshot of the data and queue it and b) Read the
changes that are made to the published objects.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQJc4G05V3hCLmT-ZLkj9EUN14OsKqh7_tI-i01XeE1B2Y2ykyLThevsu1z5XfhUfd2F_ZYPrHjWjyjm7_s2i9twE4w864ACzYJYJJaTgGLLPlZz8L0mQy_pvYgA8uryyEELOF6EAWYAk/s1600/Publication7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;451&quot; data-original-width=&quot;562&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQJc4G05V3hCLmT-ZLkj9EUN14OsKqh7_tI-i01XeE1B2Y2ykyLThevsu1z5XfhUfd2F_ZYPrHjWjyjm7_s2i9twE4w864ACzYJYJJaTgGLLPlZz8L0mQy_pvYgA8uryyEELOF6EAWYAk/s320/Publication7.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&amp;nbsp;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;8 Choose the next action&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; In this step
it lets you choose which action you would like to do, if you want to create the
publication at that exact moment, or if you like to get the script generated to
create and configure and you will be executing it later.&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbKhk1aac-FuS5t827bgjZK5voI_VTMs-QgTYQO2lu-xMnqDZRI9WjLvmvyGwr6-YKEFVdc1UtFlxKLGdCoiEhsIqoaAikaOqmdzpdnF6Hw3HAxJJcSbCJJVi8vqx9i5QclkceTy3qJPM/s1600/Publication8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;448&quot; data-original-width=&quot;559&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbKhk1aac-FuS5t827bgjZK5voI_VTMs-QgTYQO2lu-xMnqDZRI9WjLvmvyGwr6-YKEFVdc1UtFlxKLGdCoiEhsIqoaAikaOqmdzpdnF6Hw3HAxJJcSbCJJVi8vqx9i5QclkceTy3qJPM/s320/Publication8.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;9 Confirmation&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; In this step it shows
you the summary of what you have chosen, but it is also an important step,
where you will be giving the name to the publication so you can identify later
what is it about, this is incredibly useful when you have several replications
configure in the same server, or when you have 2 or more publication from the
same database that each serves for different purposes (Reports, DR, etc.)&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYtiRFEqtrqdVV6Rqc6PPL1Ge3LZud8qLQ_zk7wHgShoto050Zv8SYTrYJ_N2UI-2LZFPerba0OpFGf6E_yU8-dEqAGiLHWnD5MVifTO-j3Ji3plq8MK0zWWZbTpX7J9c0Y0CKbnM1oy8/s1600/Publication9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;448&quot; data-original-width=&quot;560&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYtiRFEqtrqdVV6Rqc6PPL1Ge3LZud8qLQ_zk7wHgShoto050Zv8SYTrYJ_N2UI-2LZFPerba0OpFGf6E_yU8-dEqAGiLHWnD5MVifTO-j3Ji3plq8MK0zWWZbTpX7J9c0Y0CKbnM1oy8/s320/Publication9.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Once
you have complete all of this steps and after clicking finish you don&#39;t see any
error, you are all set, your publication is created and you are ready to start
creating the subscriptions.&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/3695372194236014700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/configuring-transactional-replication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3695372194236014700'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3695372194236014700'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/configuring-transactional-replication.html' title='Configuring a Transactional replication'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq9ZJXv4vAB5oOULp9_HtKbt8022mOEHvVrOEWM7FgZKYPpix5ZQzBtKXUKDQLdc0FxOUY9pcw6pwOy9CU-zeR5Sgh-wIXzONXV2K-VpYtOzi8dFrn42vxzNv2Z5FP8hX06MeqvzKJQVs/s72-c/Distribution1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7740977781582125673</id><published>2017-10-11T14:52:00.001-06:00</published><updated>2017-10-11T14:52:58.534-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="Docker"/><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><category scheme="http://www.blogger.com/atom/ns#" term="Machine Learning"/><category scheme="http://www.blogger.com/atom/ns#" term="New Version"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Features"/><category scheme="http://www.blogger.com/atom/ns#" term="SQLServer 2017"/><title type='text'>What&#39;s new in SQL 2017</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
SQL Server 2017
became General Availability (GA) on 10/2, I&#39;ve been sharing through the
different social media channels the different features and enhancements
included in this new version, however I want to consolidate in this posts most
of those that you will be seeing in most of the production scenarios with an
explanation of each one.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Resumable
     online index rebuild&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; resumes an online index rebuild operation from where it
     stopped after a failure (such as a failover to a replica or insufficient
     disk space), or pauses and later resumes an online index rebuild
     operation. See ALTER INDEX and Guidelines for online index operations.
     This is a great improvement specially with index operations where you run
     out of space or have to pause it due to performance degradation, you can
     later resume where you left it instead of having to cancel, wait the
     rollback and then start from the beginning.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;A
     new generation of query processing&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; improvements that will adapt optimization strategies to
     your application workload’s runtime conditions. For this first version of
     the adaptive query processing feature family, we have three new
     improvements: batch mode adaptive joins, batch mode memory grant feedback,
     and interleaved execution for multi-statement table valued functions. See &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/performance/adaptive-query-processing&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Adaptive query processing in
     SQL databases&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Automatic
     tuning&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; is a
     database feature that provides insight into potential query performance
     problems, recommend solutions, and automatically fix identified problems.
     Automatic tuning in SQL Server, notifies you whenever a potential
     performance issue is detected, and lets you apply corrective actions, or
     lets the Database Engine automatically fix performance problems. This
     feature in particular is one of the few Azure first, you can see this
     included in the Azure SQL database since at least V12 (current), for more
     reference See &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/automatic-tuning/automatic-tuning&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Automatic tuning&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;sys.dm_os_sys_info
     has three new columns&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;: socket_count, cores_per_socket, numa_node_count. This in
     particular helps you check if your current setup exceeds NUMA boundaries,
     in the case you exceed it, it will lead to an overcommitted host and in
     the end will cause you performance issues.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;A
     new column modified_extent_page_count&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;, is introduced in sys.dm_db_file_space_usage to track
     differential changes in each database file of the database. The new column
     modified_extent_page_count allows you to build smart backup solution,
     which performs differential backup if percentage changed pages in the
     database is below a threshold (say 70-80%) else perform full database
     backup.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;SELECT
     INTO … ON FileGroup&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
     - SELECT INTO now supports loading a table into a filegroup other than a
     default filegroup of the user using the ON keyword support added in SELECT
     INTO TSQL syntax. This feature in particular will help when you need to
     run the first step of an archive solution or if you create a
     &quot;troubleshoot filegroup&quot; so you move the data directly to it
     instead of you PRIMARY filegroup where you might be troubleshooting a
     performance issue or anything else and you want to isolate the problem.
     See &lt;/span&gt;&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/t-sql/queries/select-into-clause-transact-sql&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;SELECT INTO&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;A new DMF sys.dm_db_log_info
     is introduced to expose the VLF information similar to DBCC LOGINFO to
     monitor, alert, and avert potential transaction log issues caused due to
     number of VLFs, VLF size or shrink file issues experienced by customers.
     This dmv helps you to analyze the current health of your transaction log
     file that can become fragmented due to either an incorrect design or that
     the current management of your log is not the adequate. Pro Tip: If you
     have a large number of VLF&#39;s that could be one of the reasons why your
     replications are failing or some other CRUD operations are performing
     poorly, so go and check this number.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Cluster-less Availability
     Groups support added. Remember this post (&lt;/span&gt;&lt;a href=&quot;https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-always-on.html&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Introduction to SQL Server
     Always On&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;)
     where I explained the Key components of Always on, with SQL 2017 Windows
     Failover Clustering (WSFC) is no longer needed so you can enable the
     Always On feature even if the SQL Server is not part of a Windows cluster.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Linux. Did I mention SQL 2017
     can run in Linux? Well, this new version is fully supported either in
     Windows or Linux&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
The items described
above are related with the most frequently used with the database engine but
there are more, also in this post I&#39;m not reviewing features such as SSIS,
SSAS, SSRS or Machine Learning and in this last one Microsoft made a lot of
improvements with it.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
There are templates
already ready in Azure for you to go an create VM&#39;s with it or if you like to
create containers, there is one in Docker already with Linux (Ubuntu 16.04)and
SQL 2017 (&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker&quot;&gt;https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-docker&lt;/a&gt;)&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
For a complete list
of the new features you can see this sites:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/database-engine/whats-new-in-sql-server-2017&quot;&gt;https://docs.microsoft.com/en-us/sql/database-engine/whats-new-in-sql-server-2017&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017&quot;&gt;https://docs.microsoft.com/en-us/sql/sql-server/what-s-new-in-sql-server-2017&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;a href=&quot;https://blogs.technet.microsoft.com/dataplatforminsider/2017/10/02/sql-server-2017-on-windows-linux-and-docker-is-now-generally-available/&quot;&gt;https://blogs.technet.microsoft.com/dataplatforminsider/2017/10/02/sql-server-2017-on-windows-linux-and-docker-is-now-generally-available/&lt;/a&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7740977781582125673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/whats-new-in-sql-2017.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7740977781582125673'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7740977781582125673'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/whats-new-in-sql-2017.html' title='What&#39;s new in SQL 2017'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7968800101052857701</id><published>2017-10-06T12:07:00.000-06:00</published><updated>2017-10-06T12:07:13.168-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="BCP"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="DR"/><category scheme="http://www.blogger.com/atom/ns#" term="HA"/><category scheme="http://www.blogger.com/atom/ns#" term="Recovery"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><title type='text'>Introduction to SQL Server Always On</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Today I&#39;ll write
with one of the features I like the most and is Always On. There will be two
post of this subject, this first one is an overview of the changes it has gone
through, benefits and the scenarios where you can get it implemented, the
second will detail the steps on how you can get it implemented.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So I&#39;ll try to
answer this questions What is Always On? When was it Released? And How can it
be used?&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;What is Always On?&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Always On or Always
On availability groups (&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/database-engine/availability-groups/windows/always-on-availability-groups-sql-server&quot;&gt;Microsoft&lt;/a&gt;)
is an integrated high availability (HA) and disaster recovery (DR) solution
that provides redundancy within a datacenter and across datacenters to help
enable fast application failover during planned and unplanned downtime.
Specifically, Always On delivers failover cluster instances, multiple
secondary, active secondary, and connection director capabilities (multi-subnet
and read-only intent). &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
In English, this
means, Always On provides a highly available and Disaster recovery solution for
you database environment. As mentioned before is the next evolution of database
mirroring. Database mirroring is relatively easy to set up, and it provides an
almost instant failover when it’s used in High Safety mode.&amp;nbsp; However, database mirroring has several
important limitations.&amp;nbsp; First, database
mirroring is limited to a single failover partner.&amp;nbsp; In addition, database mirroring is capable of
failing over only a single database at a time.&amp;nbsp;
Database mirroring must be implemented either synchronously or asynchronously
you have to choose one or the other. Finally, the databases on the mirroring
server are in a state of recovery, so they can’t be directly accessed.&amp;nbsp; To use the data, you must take point-in-time
snapshots of the &lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
databases.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This function was
introduced with SQL Server 2012 and has received a lot of transformations with
the different releases of SQL Server&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This are some of the
enhancements:&lt;/div&gt;
&lt;ul style=&quot;direction: ltr; margin-bottom: 0in; margin-left: .375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;disc&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;Secondary replicas With 2012
     you could only have 4, with 2014 it was increased to 8 &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;You were not allowed to
     create a replica in Azure, with 2014 that option was introduced&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;In 2012 and 2014 it was
     limited to the Enterprise version, in 2016 SP1 you can use &quot;Basic
     Availability groups since the standard version&quot;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;In the previous versions you
     were limited to servers that belong to the same domain, with 2016 you can
     combine groups form different domains.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;In 2016 Databases with
     Transparent Data Encryption (TDE) are now supported&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;If you were using Grouped
     Managed Service accounts (&lt;/span&gt;&lt;a href=&quot;https://technet.microsoft.com/en-us/library/hh831782(v=ws.11).aspx&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;gMSA&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;) you were not able to
     configure the availability groups, it is now supported with 2016&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;In 2016 the Direct Seeding
     got introduced. Direct seeding takes all the initialization steps for you,
     it does a full backup and synchronizes the database in the background for
     you. &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;calibri&amp;quot;; font-size: 11.0pt;&quot;&gt;In 2014 the read intent was
     introduced, meaning that all of your read operations will be routed to
     your replicas so that you have the primary server to run I/U/D (Insert,
     Update, Delete), In 2016 the engine automatically load balance this across
     your replicas.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;How can it be used?&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Always On needs some
components to run:&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Two
     sets of IPs:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
     You will need one IP for the Windows failover cluster and one for your
     Listener.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Windows
     Failover cluster:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;
     You need to configure (create) a windows failover cluster (WSFC) so that
     you can enable the Always on Functionality in the SQL Server service, why?
     Because the failover cluster validates if the servers that will be part of
     the availability groups are running without problems.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Availability
     Groups:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; After
     you create your cluster and install SQL Server as Stand Alone instances,
     you will have to configure an availability group and add both SQL Server
     instances, this is where you Always On starts to takes life.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt; text-decoration-line: underline;&quot;&gt;Listener:&lt;/span&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt; This will be you single
     point of entry to you Availability group (AOG) it could be either by the
     domain name or the IP you will be assigning to it in the setup section,
     this will always route you to your primary server, unless you configure
     the Read-Intent routing and it will route your read operations to your
     replicas.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .375in; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Think of the an
Always On environment as an &quot;Share almost nothing&quot; environment&quot;
why? You are only sharing the failover clustering part, other than that you
will have independent hardware for each of your SQL Servers. Also when you
setup your environment with this type of setup, it reduces the changes (or
steps) that you need to take when doing a planned DR because everything is
already setup (At least the database part) and you only need to worry if the
synchronization was up to date.&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7968800101052857701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-always-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7968800101052857701'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7968800101052857701'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-always-on.html' title='Introduction to SQL Server Always On'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-5717821517403016256</id><published>2017-10-03T18:50:00.000-06:00</published><updated>2017-10-03T18:50:29.416-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="AlwaysOn"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Distributor"/><category scheme="http://www.blogger.com/atom/ns#" term="Publication"/><category scheme="http://www.blogger.com/atom/ns#" term="Snapshot"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="Subscription"/><title type='text'>Introduction to SQL Server replication</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
This time I&#39;ll talk
about some basis with SQL Server replication, whether you need it for High
availability (HA), Disaster Recovery (DR), load balance your applications or
any other reasons, you have ever considered one of the different types of
replication available with SQL Server, some of the components that come in play
when you will it setup as well as a brief description as to how each one works
and the benefits. So let&#39;s get started:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Requirements:&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Distribution DB:&lt;/span&gt; This is a system
database you need to setup before configuring three types of replication
(Transactional and Merge). This database comes into play when you need the
changes to be distributed across the different subscribers you have to your
publications. This is the database used by the Distribution agents to
distribute the pending transactions you can also query this database to
troubleshoot any errors shown in the replication monitor.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Publisher:&lt;/span&gt; This is the database server
supporting your database publications, this applies the same as if you think of
a book, you can find from a publisher different books (Publications).&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Publications:&lt;/span&gt; This are the published
databases for the replications in there you configure the articles (Tables)
that will be part of the publication.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Subscriber:&lt;/span&gt; This are the servers that
will receive the data from the publisher, the subscriber can be the same server
as the publisher or can be different.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Snapshot:&lt;/span&gt; This is a copy sort of speak
of the publication, it is used to initialize the subscribers or in the case
that you setup that type of replication (Snapshot) it synchrony you set it up.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Replication Types&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Snapshot&lt;/span&gt;: This type of replication is
usually used when you need to move some data for reporting purposes or in the
case that you will only read that data to run some extensive analysis and that
processing will impact the transactional server.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Transactional Replication:&lt;/span&gt; This
replication ships (depending on your settings) all the transactions from the
publisher to the subscriber, this type of replication is helpful when you have
reports that needs to be done online and you can&#39;t add more stress to your
current production database, this is also useful in scenarios of HA or DR
because it ships the data fast to the subscribers. This replication depends of
the Distributor database to send replicate the data.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Peer-to-Peer replication:&lt;/span&gt; This
publication enables multi-master replication. The publisher streams
transactions to all the peers in the topology. All peer nodes can read and
write changes and the changes are propagated to all the nodes in the topology.
With this type each of the servers work as publishers and subscribers and you
need to configure a Distribution database on each of the servers. This
replication depends of the Distributor database to send replicate the data.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Merge replication:&lt;/span&gt; This replication
&quot;merges&quot; the changes made at the publisher and the subscribers only
after they have been initialized with a snapshot, you need to setup a merge
schedule so that they can combine the changes from one site to another. This
replication depends of the Distributor database to send replicate the data.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Log Shipping:&lt;/span&gt; This type of replication
is one of the oldest but most trusted methods for Disaster recovery, what this
replication does is it backups the transaction log of your database, copies and
restore the file in your subscribers, all this based on the schedule that you
setup, the more frequent, the closer to the failure you can restore. The good
thing about this, is that it also helps you to keep your log files to a managed
size so they don&#39;t grow indefinitely as you are constantly running this
backups. You won&#39;t find this type of replication inside the replication folder
in the management tree, instead you will find it on the &quot;Properties&quot;
of each of the databases.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Mirroring:&lt;/span&gt; Database mirroring involves
redoing every insert, update, and delete operation that occurs on the principal
database onto the mirror database as quickly as possible. Redoing is
accomplished by sending a stream of active transaction log records to the mirror
server, which applies log records to the mirror database, in sequence, as
quickly as possible. Unlike replication, which works at the logical level,
database mirroring works at the level of the physical log record (&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/database-engine/database-mirroring/database-mirroring-sql-server&quot; target=&quot;_blank&quot;&gt;Microsoft&lt;/a&gt;). This type of replication is extremely useful when you seek scenarios of HA or
DR, because the fail-over time is considerably fast if you do it manually or you
can set up to do it automatically. I like to say, this is the preview
version of what Always On does now, that is one of the reasons why you will see
Microsoft&#39;s comment that this feature will be deprecated.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;text-decoration-line: underline;&quot;&gt;Always On:&lt;/span&gt; This is the newest feature
in terms of replication that was added to SQL Server, and thus the one that has
received a lot of enhancements with each of the versions. It was introduced
with SQL Server 2012 and received a lot of improvements with each version even
the name has changed, originally it was &quot;AlwaysOn&quot; and in SQL 2016
changed to &quot;Always On availability groups&quot;. This takes the
functionality described with the mirroring replication and the benefits of the
Log Shipping feature where you can have your replicas with Read-Only. An
specific post for Always On will be released were we will review all the
features as well as how to get it setup. This type is frequently used to
support both scenarios HA and DR.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
My wish is that you
can give a better idea as to which replication will work better for each of the
needs you have so you can get the better of what the SQL engine can provide to
you.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
Thanks for reading&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/5717821517403016256/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-replication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5717821517403016256'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5717821517403016256'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/10/introduction-to-sql-server-replication.html' title='Introduction to SQL Server replication'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7854216856876988704</id><published>2017-09-16T11:27:00.000-06:00</published><updated>2017-09-16T11:32:22.517-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Backups"/><category scheme="http://www.blogger.com/atom/ns#" term="Configuration"/><category scheme="http://www.blogger.com/atom/ns#" term="Databases"/><category scheme="http://www.blogger.com/atom/ns#" term="Recovery"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><title type='text'>SQL Server database basics</title><content type='html'>&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
So today I&#39;ll talk
about some of the basic items for SQL server that helps to understand the
reason of some performance recommendations. This first post will list and give
an explanation of each of the components and later on will explain in detail
how it works and what are the best practice to each one.&lt;/div&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;System databases&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;master - This
      database is the brain of SQL Server, in here you have the metadata for
      each object that is created in the SQL Server instance, that includes
      Logins, SQL Users, Databases, tables, startup parameters, etc. &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;model - This database has
      all the default templates for SQL Server, when the SQL instance first
      starts, it takes the all the setup for the databases from here, for
      example, every time that you restart your SQL Server instance, the tempdb
      is created base on a template stored in here.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;msdb -&amp;nbsp; This database is used to store all the
      information related with the SQL Server jobs, every time that a job is
      created, an entry is inserted here, you can also find the execution log
      for all those jobs in this database. The maintenance plans are also
      stored here.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;distribution - This database
      is created and utilized every time that you setup a replication, except
      in the cases when you use Mirroring or Always On Availability groups,
      however if you use Transactional or Merge you will use this database to
      distribute the commands to your subscribers.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;ssisdb - This database was
      introduced in SQL Server 2012, you won&#39;t find this database under the
      &quot;system databases&quot; folder as it needs to be created on demand.
      This database was introduced in order to provide portability to the SSIS
      catalog and improve the security, in the past, in a Disaster recovery or
      High availability solutions, you had to create your packages on each of
      your sites, whether on the SSIS instance or on disk, with this you can
      add the database to a mirroring or Always On solution and all your
      packages will be replicated.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;User Databases&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;font-family: Calibri; font-size: 11.0pt; margin-left: .75in; margin: 0in;&quot;&gt;
The
user databases regularly follow this structure:&lt;/div&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.75in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Data file (mdf) - This is the
     file where all the data is stored, this is your key file, if this gets
     corrupted, lost, or whatever, you will be losing all of your data if you
     don&#39;t have a backup, so make sure where this is stored and be sure that
     you backup your database regularly.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Log file (ldf) - This is the
     file that supports and stores all the transaction made in the database,
     this file plays a key role when: a. You setup your recovery model as Full,
     b. You replicate the database. One common mistake that is made is not to
     configure t-log backups, if you do so, you gain several benefits, &lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;You can manage
      the size of your log file, &lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Prevent that your file gets
      highly fragmented (vlf&#39;s)&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;You can do a restore in time&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Filegroups - By default the
     databases get created with a Primary filegroup, what does this filegroup?
     Think of this as an index at the beginning of a book, where you list all
     the Chapters. The Filegroup plays a key role when your database is
     becoming larger in time, because you can create an Archive filegroup,
     assign that filegroup to a different physical file, and move that ancient
     data into the new group, so that you Primary group remains supporting your
     daily operations. There are also more benefits you can gain when you setup
     different filegroups, but that will be discussed in a different post.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Recovery Model - You can have
     different recovery models set to a database, by default when you create a
     new database, the template from the model sets as full, however you have
     the following options:&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;i&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;FULL - This means
      that it will store all the data in the mdf file, and will write all the
      transactions in the ldf so that when you restore your database from a
      backup, it applies rolls forward or back the transactions based on their
      state in the Log to remain the integrity of the data. This also allows
      you to do in time restores.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Simple - This model is
      usually used when you only care of the data that is committed in the
      database, also some use it as a high performance model, because that
      millisecond that takes to be written in the log, can create an impact
      with the highly transaction applications that requires a millisecond
      response time, or in scenarios where you setup a Dev or QA environment
      and you don&#39;t need to restore in time.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Bulk-logged - With this
      model there are certain operations that won&#39;t be fully logged in the
      transaction log, thus this won&#39;t make it grow, operations such as BULK
      INSERT, CREATE INDEX, SELECT INTO.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;ol style=&quot;direction: ltr; font-family: Calibri; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;1&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;3&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Backups&lt;/span&gt;&lt;/li&gt;
&lt;ol style=&quot;direction: ltr; font-size: 11pt; margin-bottom: 0in; margin-left: 0.375in; margin-top: 0in; unicode-bidi: embed;&quot; type=&quot;a&quot;&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot; value=&quot;1&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Full backup - I
      would say this is the most frequently used type, however most of the
      times this is missed of failed to be reviewed and leads to loss of data.
      With this type, you are backing all the data that is stored in your
      database, at a given time.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Transaction Log backup - As
      discussed before, this type of backups helps to prevent the transaction
      log to grow indefinitely and also will allow you to restore in time.&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;margin-bottom: 0; margin-top: 0; vertical-align: middle;&quot;&gt;&lt;span style=&quot;font-size: 11pt;&quot;&gt;Differential backup - This
      backup will take all the changes made to the database since the last full
      backup.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7854216856876988704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/09/sql-server-database-basics_16.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7854216856876988704'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7854216856876988704'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/09/sql-server-database-basics_16.html' title='SQL Server database basics'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-5172415322408370273</id><published>2017-08-25T13:00:00.002-06:00</published><updated>2017-08-25T13:26:43.214-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BCP"/><category scheme="http://www.blogger.com/atom/ns#" term="Distributor"/><category scheme="http://www.blogger.com/atom/ns#" term="MaxBcpThreads"/><category scheme="http://www.blogger.com/atom/ns#" term="Parallelism"/><category scheme="http://www.blogger.com/atom/ns#" term="Publication"/><category scheme="http://www.blogger.com/atom/ns#" term="Replication"/><category scheme="http://www.blogger.com/atom/ns#" term="Snapshot"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL Server"/><category scheme="http://www.blogger.com/atom/ns#" term="Subscription"/><title type='text'>SQL Server Replication snapshot initialization taking long time to be applied</title><content type='html'>Hello all,&lt;br /&gt;
In today&#39;s post I want to share a tip that helped me troubleshoot an issue I was facing and couldn&#39;t find much documentation about it. To my friends that read and don&#39;t have much knowledge in databases, this entry will look like an estrange language but I promise I&#39;m working in some post to walk you through the database world and understated some of the terms used here.&lt;br /&gt;
&lt;br /&gt;
Issue: Had to reinitialize a subscription from a transactional replication. When doing the initialization with the snapshot, the process was taking a huge amount of time, about 13 hours and it has only applied the snapshot for 12 (out of 24) tables, based on that speed the entire process would have taken about 26-30 hours to complete.&lt;br /&gt;
&lt;br /&gt;
The snapshot was generated in 12 minutes and it was generated taking advantage of &amp;nbsp;parallelism, however I noticed that when the snapshot was getting applied it was processing one file at the time (due to the parallelism of the snapshot generation, it split the snapshot files in 48 chunks for each table) so I started to wonder why the initialization was sequential (Serialized) whereas the generation was in parallel.&lt;br /&gt;
&lt;br /&gt;
By doing a deep research on the web, I found lots of explanations such as this one (&lt;a href=&quot;https://blogs.msdn.microsoft.com/sqlsakthi/2011/08/07/maxbcpthread-parameter-for-snapshot-and-distribution-agent-in-sql-server-replication/&quot;&gt;https://blogs.msdn.microsoft.com/sqlsakthi/2011/08/07/maxbcpthread-parameter-for-snapshot-and-distribution-agent-in-sql-server-replication/&lt;/a&gt;) which explain how the parameter &quot;-MaxBcpThreads&quot; work, however it doesn&#39;t explains how to get it implemented. You can find that parameter in the Distribution Agent for the publisher server, however you can&#39;t change the value from the user interface (UI) of SSMS.&lt;br /&gt;
&lt;br /&gt;
So I stop trying to find for an specific solution through the web and started to build my own. Time to remove the dust and start managing the replications with T-SQL, so I looked for any stored procedures that would help me change that parameter so I found this &quot;sp_change_agent_parameter&quot; in there you can update the parameters for all the database agents. You can query your current Distributors but using the following query. lets call it Query1 for future reference:&lt;br /&gt;
SELECT&lt;br /&gt;
[publication] as Publication&lt;br /&gt;
,c.srvname as SubscriberName&lt;br /&gt;
,b.profile_name as Profile&lt;br /&gt;
,[name] as DistributionJobName&lt;br /&gt;
,b.profile_id&lt;br /&gt;
FROM [distribution].[dbo].[MSdistribution_agents] a&lt;br /&gt;
inner join msdb.[dbo].[MSagent_profiles] b&lt;br /&gt;
on a.profile_id = b.profile_id&lt;br /&gt;
inner join master..sysservers c&lt;br /&gt;
on a.subscriber_id = c.srvid&lt;br /&gt;
order by b.profile_name&lt;br /&gt;
&lt;br /&gt;
From those results, validate if the publication you want to update is listed there, and take the value from the profile_id column.&lt;br /&gt;
&lt;b&gt;Important note&lt;/b&gt;&amp;nbsp;before updating this values, in the URL mentioned above, there is an important note: &quot;When applying a snapshot that was generated at the Publisher using the concurrent snapshot option, one thread is used, regardless of the number you specify for MaxBcpThreads.&quot;&lt;br /&gt;
Meaning that you will need to verify the Sync_method that is configured with your publication, if it is Concurrent, then you will have to update your sync method before updating your Distribution agent properties, you can validate the method with this command &quot;EXEC sp_helppublication @publication = &#39;YourPublicationName&#39;&quot; and look for the 7th column, this command will need to be executed on your published database. The column value will be a number, you can match each result to this property:&lt;br /&gt;
Synchronization mode:&lt;br /&gt;
&lt;br /&gt;
0 = Native bulk copy program (bcp utility)&lt;br /&gt;
1 = Character bulk copy&lt;br /&gt;
3 = Concurrent, which means that native bulk copy (bcputility) is used but tables are not locked during the snapshot&lt;br /&gt;
4 = Concurrent_c, which means that character bulk copy is used but tables are not locked during the snapshot.&lt;br /&gt;
source(&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-helppublication-transact-sql&quot;&gt;https://docs.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-helppublication-transact-sql&lt;/a&gt;)&lt;br /&gt;
&lt;br /&gt;
Once that you have verify and noticed that you need to update the sync method to your publication, you can do it with the following command:&lt;br /&gt;
&lt;br /&gt;
sp_changepublication&lt;br /&gt;
@publication = &#39;YourPublicationName&#39;,&lt;br /&gt;
@property = &#39;sync_method&#39;,&lt;br /&gt;
@force_invalidate_snapshot =1,&lt;br /&gt;
@force_reinit_subscription =1,&lt;br /&gt;
@value = &#39;native&#39;;&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
Once that you have that set, you can use the following command to update the value you want for the maximum Bcp Threads where Profile_ID is the one you got from the Query1:&lt;br /&gt;
&lt;br /&gt;
sp_change_agent_parameter&lt;br /&gt;
@profile_id = 4, &lt;br /&gt;
@parameter_name = &#39;-MaxBcpThreads&#39;,&lt;br /&gt;
@parameter_value = &#39;4&#39;&lt;br /&gt;
go&lt;br /&gt;
&lt;br /&gt;
What would this change do? Enable you to use x number of threads (based on what you configure in @parameter_value)&amp;nbsp;to read the snapshot files and get it apply in parallel. One thing that worth&#39;s mentioning, when you check for your active executions (e.g. sp_who) you will notice that some of the parallel threads will get blocked, don&#39;t worry about it, is because you are dealing with the same table, you will gain that parallelism when you process various tables at the same time, so in here my advice is to configure that parameter_value to a number close to the half of the files that were generated always taking in account your available processors, you don&#39;t want to affect the performance for the other databases when trying to re-mediate one issue.&lt;br /&gt;
&lt;br /&gt;
The result? In my environment I was able to apply the snapshot (24 tables) in 6hrs and 13 minutes, the Published database was a 1.5TB database and the snapshot weighted 185GB, without the change the process ran for more than 13hrs and only 12 tables (50% in number 35% in data) were applied, hope this tip helps you get the snapshot applied faster.&lt;br /&gt;
&lt;br /&gt;
Thanks for reading!&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/5172415322408370273/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/sql-server-replication-snapshot.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5172415322408370273'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5172415322408370273'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/sql-server-replication-snapshot.html' title='SQL Server Replication snapshot initialization taking long time to be applied'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-7035542370552198154</id><published>2017-08-21T15:56:00.000-06:00</published><updated>2017-08-21T15:56:48.698-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="70-764"/><category scheme="http://www.blogger.com/atom/ns#" term="70-765"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="MCP"/><category scheme="http://www.blogger.com/atom/ns#" term="MCSA"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="MVA"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><title type='text'>Training and tips to get certified with Microsoft (Part 4 and last)</title><content type='html'>In the previous posts I posted some questions that I usually get when we talk about &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with.html&quot; target=&quot;_blank&quot;&gt;getting certified&lt;/a&gt; with SQL Server also listed some resources you can use to train for each of the exams &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_8.html&quot; target=&quot;_blank&quot;&gt;70-764&lt;/a&gt;&amp;nbsp;and &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_11.html&quot; target=&quot;_blank&quot;&gt;70-765&lt;/a&gt;&amp;nbsp;with this post I want to close that series and answer the last question Does it gives you any value? sometimes it is also asked as Why did you do it?&lt;br /&gt;
&lt;br /&gt;
In my personal case, getting an MCSA was a goal I wanted to achieve for a very long time which I kept postponing until now. Being certified was not a requirement in my current work, so one of the questions I get is, if it was not required why did you do it? My answer usually was, &quot;I&#39;ve been working with SQL server for the last 10 years so it was time to certify that knowledge&quot;, I must confess that was my initial thought, however after getting into the planning and training, my motivator changed not only I wanted to certify that knowledge, but at the same time every time I read and train more and more about it, I found features that could ease my work that were already there and I was not using it and it was because I encapsulated on the environments I was working on and closed my self to discover and apply those new features that were released in the newer versions of the database engine that I was only reading about.&lt;br /&gt;
&lt;br /&gt;
Between the end of last year and mostly at the beginning of this year, in my current work I started to get a lot of request to migrate to the newer versions, and asking of advice as to which would suit better for their needs, so I started to read and research a lot with regards of SQL 2016 and also some requests with Azure SQL so I had to put my self into a training path to be ahead of the requests I&#39;ve been getting from my customers and turns out that learning path matched with the learning path to earn the certification, so it became more obvious to get certified.&lt;br /&gt;
&lt;br /&gt;
What I didn&#39;t thought at the beginning was how this was going to change my life. I left behind that comfort state where I knew everything about a given version and started to train on a weekly basis in the new version and more specific in the new releases that are launch every week with Microsoft Azure so that DBA that was more than happy in their &quot;comfort zone&quot; changed to an active learner. I put &quot;comfort zone&quot; because it was comfort troubleshooting the performance issues on a daily basis and planning some improvements to address that for good but wasn&#39;t really innovating in technology and wasn&#39;t catching up with the current trends, so becoming certified looked like an up hill road.&lt;br /&gt;
&lt;br /&gt;
After setting up my own learning path, my habits started to change, stopped spending a lot of time in social media looking at others life and started to invest more time in my training so my explorer history started to fill up with training videos, Microsoft release notes and MVA&#39;s training courses. Also by getting and getting more training, I started to look for other certification paths to increase the knowledge and be updated with that technology as well, as I said before, now I&#39;m changing to an active learner which I lost somewhere in the past.&lt;br /&gt;
&lt;br /&gt;
So if you ask me for an answer if being certified gives you any value? Yes and it totally worth&#39;s it. Why, first of all, you are investing in you and there is not asset in the world that gives you better ROI (Return of Investment) than you. Second, it certifies to the world that you are prepared and have the knowledge to work with that tool(s) which is every time more demanded in this globalized world and Third, it helps you to start that desire to keep on learning and not loose the achieved pace to be updated.&lt;br /&gt;
&lt;br /&gt;
Lastly, being certified gives you also exposure to the world, why and how? once that you pass one of the exams, it lets you create your &lt;a href=&quot;http://www.mycertprofile.com/&quot; target=&quot;_blank&quot;&gt;Microsoft Professional profile&lt;/a&gt;&amp;nbsp;In that site Microsoft updates the certification each professional achieves, in the past Microsoft published the list of certified professionals but they stop doing so years ago, then there was another option, if a potential hiring manager requires you to check for &lt;a href=&quot;https://mcp.microsoft.com/Anonymous/Transcript/Validate&quot; target=&quot;_blank&quot;&gt;your transcripts&lt;/a&gt;&amp;nbsp; and this requires your transcript ID plus an access code, however if you ask me, it is easier, the professional profile shows almost the same information as your transcript, the only different between this and the transcript is the certification id. Also it helps you to keep motivated as you can see how do you stand worldwide, for instance there are only 57 professionals holding this certification, based on the portal, there could be more but it will be caused that those professionals haven&#39;t created their profile and thus were left out of the statistic.&lt;br /&gt;
&lt;br /&gt;
So summarizing, getting certified helps you to:&lt;br /&gt;
1. Reach your goals and advance in your career.&lt;br /&gt;
2. Become and active student.&lt;br /&gt;
3. &amp;nbsp;Puts you in the spotlight to the world.&lt;br /&gt;
&lt;br /&gt;
So my advice for you is, stop thinking and go for it!&lt;br /&gt;
Thanks for reading.</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/7035542370552198154/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_21.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7035542370552198154'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/7035542370552198154'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_21.html' title='Training and tips to get certified with Microsoft (Part 4 and last)'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-3049459969345749158</id><published>2017-08-11T14:19:00.000-06:00</published><updated>2017-08-11T14:19:30.376-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="70-764"/><category scheme="http://www.blogger.com/atom/ns#" term="70-765"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="MCSA"/><category scheme="http://www.blogger.com/atom/ns#" term="MSFTraining"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><title type='text'>Training and tips to get certified with Microsoft (Part 3)</title><content type='html'>&lt;br /&gt;
Welcome back, thanks for keep on reading me, and for the ones who read for the first time, welcome.&lt;br /&gt;
&lt;br /&gt;
With this third post I&#39;ll keep answering the question &lt;b&gt;Where did you train? &lt;/b&gt;addressing in specific the topics for the exam 70-765 &quot;Provisioning SQL Databases&quot;&lt;br /&gt;
&lt;br /&gt;
From both exams this was the one that I enjoyed the most, particularly because most of the topics evaluated were new to me, (Spoiler Alert) this one I&#39;ll dare to say is 75% over azure SQL.&lt;br /&gt;
&lt;br /&gt;
The Skills measured are:&lt;br /&gt;
1. Implement SQL in Azure (40 -45%)&lt;br /&gt;
2. Manage databases and instances (30 - 35%)&lt;br /&gt;
3. Manage Storage 30 - 35%)&lt;br /&gt;
&lt;br /&gt;
By no doubt the course that helped me the most was &lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/migrating-sql-server-databases-to-azure-16594?l=Ai7YOL3lC_5005121157&quot; target=&quot;_blank&quot;&gt;Migrating SQL Server Databases to Azure&lt;/a&gt;&amp;nbsp;that I mentioned in the previous post, in that course you will learn how to deploy a Microsoft Azure SQL Database, it will also explain the different options you have to create SQL as a Service (PaaS) or if you want to create an Azure VM (IaaS), also explains you the different storage options, their redundancy etc. That same course and eBook explains you how to secure your SQL Databases, just to mention some other skills that you will acquire with that course.&lt;br /&gt;
&lt;br /&gt;
The other area that is evaluated here is Storage, which you can find it in this &lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/microsoft-azure-for-it-pros-content-series-storage-17237?l=ToQqXzuZD_6306218965&quot; target=&quot;_blank&quot;&gt;course&lt;/a&gt;&amp;nbsp;also mentioned in the previous post. Yes at this point you could start noticing that most of the courses are shared among both exams, and I think that was the idea (the reason why it is called MCSA Database Administration) because the database role covers that, be that one who has the expertise not only in troubleshoot slowness, maintain the data in a way it can be retrieved faster, but at the same time be that person who can say, this is the infrastructure I recommend that will satisfy with your needs, specially with how IT is moving (Cloud).&lt;br /&gt;
&lt;br /&gt;
Lastly there are a few skills that aren&#39;t covered by those two courses and they belong to the On-Premises instances -For those who haven&#39;t heard of that term before, On-premises refers to the Servers (Application, storage, Database) that are provisioned in your own data center not in the cloud.&lt;br /&gt;
&lt;br /&gt;
The first of those topics is:&lt;br /&gt;
&lt;br /&gt;
1. Manage SQL Server instances&lt;br /&gt;
Create databases, manage files and file groups, manage system database files, configure tempdb&lt;br /&gt;
&lt;br /&gt;
This are regular DBA tasks and sometimes Dev tasks, but for those that are not familiar with that, you can find some training with this videos:&lt;br /&gt;
Create databases:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=WKWZZcrin5I&quot;&gt;https://www.youtube.com/watch?v=WKWZZcrin5I&lt;/a&gt;&amp;nbsp;even if the video is built with SQL 2012, the steps are the same&lt;br /&gt;
Manage Files and Filegroups:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=-8TuJgikCWk&quot;&gt;https://www.youtube.com/watch?v=-8TuJgikCWk&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
2. Perform database maintenance&lt;br /&gt;
Monitor DMVs, maintain indexes, automate maintenance tasks, update statistics, verify database integrity, recover from database corruption&lt;br /&gt;
&lt;br /&gt;
Monitor DMV&#39;s:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=AWFg6KdVoh4&quot;&gt;https://www.youtube.com/watch?v=AWFg6KdVoh4&lt;/a&gt;&amp;nbsp;this is an outstanding SQL Pass session you can use to get a bit of a knowledge as to what to use to monitor the Performance. Even if the video is form 5 years ago is a good resource to start getting familiar with it.&lt;br /&gt;
&lt;br /&gt;
This exam has practice test available so you can choose to buy that option when purchasing your exam or not. Personally I choose to buy it as mentioned before it helped me to get familiar with the evaluation method that is used, so is your choose if you want to buy that or not.&lt;br /&gt;
&lt;br /&gt;
In the exam you will see two scenarios, one with questions and multiple choice answers and the second with real case scenarios. Compared with the 764 exam this is shorter and less complicated that the other.&lt;br /&gt;
&lt;br /&gt;
I personally &amp;nbsp;believe that even if this exam is less complex that the other, is the one that gives you the best knowledge for a future career in the newer technologies.&lt;br /&gt;
&lt;br /&gt;
Enjoy the study and if you need any questions I&#39;ll be glad to help.</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/3049459969345749158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3049459969345749158'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/3049459969345749158'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_11.html' title='Training and tips to get certified with Microsoft (Part 3)'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-5316845377835675382</id><published>2017-08-08T08:30:00.001-06:00</published><updated>2017-08-08T08:30:12.882-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="70-764"/><category scheme="http://www.blogger.com/atom/ns#" term="70-765"/><category scheme="http://www.blogger.com/atom/ns#" term="Azure"/><category scheme="http://www.blogger.com/atom/ns#" term="MCSA"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><title type='text'>Training and tips to get certified with Microsoft (Part 2)</title><content type='html'>&lt;div dir=&quot;ltr&quot;&gt;
In my &lt;a href=&quot;https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with.html&quot;&gt;previous post&lt;/a&gt;&amp;nbsp;I answer the first of the regular questions I usually get in regards of the MCSA certification, if you haven&#39;t seen it I encourage you to go back and see it. In this post I&#39;ll try to explain the second question Where did you train? &lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;u&gt;&lt;b&gt;Where can you get prepared?&lt;/b&gt;&lt;/u&gt; By no doubt, the best resource you can get is experience, this will give you the best tools you need to pass this exams, however there are online resources you can use to train.&lt;br /&gt;
Lets go exam by exam.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
The first one (70-764) evaluates this 4 areas:&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
Configure data access and auditing (20-25%)&lt;br /&gt;
Manage backup and restore of databases (20-25%)&lt;br /&gt;
Manage and monitor SQL Server instances (35-40%)&lt;br /&gt;
Manage high availability and disaster recovery (20-25%)&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
In the exam you can see scenarios such as which would be the best options to backup the databases, the steps as to how to recover a database to the most recent state with the minimum data loss, which Azure tiers will be the best where you can be cost effective and at the same time support the different environments described, how to secure the databases, assignment of security roles, etc.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
One quick guide I initially found was this &lt;a href=&quot;https://www.mssqltips.com/sqlservertip/4696/exam-material-for-the-microsoft-70764-administering-a-sql-database-infrastructure/&quot;&gt;https://www.mssqltips.com/sqlservertip/4696/exam-material-for-the-microsoft-70764-administering-a-sql-database-infrastructure/&amp;nbsp; &lt;/a&gt;which gave me a great source of material where to start, however in that post you will find some payed resources as well as some that might be outdated.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
There is a good training in &lt;a href=&quot;http://shop.oreilly.com/product/0636920085287.do&quot;&gt;O&#39;Reilly&lt;/a&gt; specially designed with all the topics covered by the exam, however with most of the topics you are only able to see it at a glance but it provides some tips for when you present the exam.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
There are good courses you can take in the Microsoft Virtual Academy.&lt;br /&gt;
1. Securing your data in Microsoft Azure SQL Database:&amp;nbsp;&lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/securing-your-data-in-microsoft-azure-sql-database-16076?l=ds8WZndSC_3105121157&quot;&gt;https://mva.microsoft.com/en-US/training-courses/securing-your-data-in-microsoft-azure-sql-database-16076?l=ds8WZndSC_3105121157&lt;/a&gt;&amp;nbsp;this one will cover topics such as how to secure and audit SQL Databases in Azure (which is also part of the exam).&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
You can also find out there tips and tricks as to how to get data restored, but there is one in particular that is not well documented out there and is Piecemeal restore which you can find in this URL:&amp;nbsp;&lt;a href=&quot;https://www.youtube.com/watch?v=VuUAHI10o4E&quot;&gt;https://www.youtube.com/watch?v=VuUAHI10o4E&lt;/a&gt;&lt;br /&gt;
This storage training will help you understand key features where you can backup databases not only on premises but Azure SQL as well&amp;nbsp;&lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/microsoft-azure-for-it-pros-content-series-storage-17237&quot;&gt;https://mva.microsoft.com/en-US/training-courses/microsoft-azure-for-it-pros-content-series-storage-17237&lt;/a&gt;.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
With the Management and Monitor, I recommend you to focus on the configuration for Data Collector, one video you can use to learn how to configure it can be found &lt;a href=&quot;https://www.youtube.com/watch?v=osrDXCp-wzE&quot;&gt;here&lt;/a&gt;&amp;nbsp;although, the video is intended for SQL Server 2012 the steps are the same&amp;nbsp;and Query Store and a good video to learn from it is &lt;a href=&quot;https://www.youtube.com/watch?v=HZIkOGDpq3E&quot;&gt;this&lt;/a&gt;.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
This two are features included in recent versions which most of the time you are not related to and will help you not only to pass the exam but also in real life scenarios when you need to troubleshoot problematic queries.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
With Manage high availability and disaster recovery, do a thorough training with Always On, get familiar with the setup and troubleshooting, my best advice is that you to test it, Create an Azure account and test it, also download the evaluation version of SQL 2016 (or developer) and build your own scenarios, there are tons of videos and documentation in the web in regards of this but you will fully understand it until you get hands on it, so test it!&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
Also another MVA course that will help you for both exams&amp;nbsp; (764 and 765) is &lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/migrating-sql-server-databases-to-azure-16594?l=Ai7YOL3lC_5005121157&quot;&gt;Migrating SQL Server databases to &lt;/a&gt;&lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/migrating-sql-server-databases-to-azure-16594?l=Ai7YOL3lC_5005121157&quot;&gt;&lt;u&gt;Azure&lt;/u&gt;&lt;/a&gt;&lt;a href=&quot;https://mva.microsoft.com/en-US/training-courses/migrating-sql-server-databases-to-azure-16594?l=Ai7YOL3lC_5005121157&quot;&gt; &lt;/a&gt;this course is an incredible resounce to get the MCSA, specially the eBook that is given for free as it describes all the steps you need to follow to migrate your on premises database to Azure (SQL Azure or Azure VM) how to get the storage set, your recovery options, etc.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
Lastly, in the day of the exam, be relaxed, don&#39;t let your nerves to betray you, try to get a good sleep the night before and get on time to the examination center, if you decide to present the exam online, be sure to turn off all the possible distractions, I prefer to go to an evaluation center as it force me to unplug from the world during the time of the exam (Usually 2hrs) and avoid any sort of distractions so that my focus is a 100% on the exam and nothing else.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
For this exam in particular there is no practice test yet available or at least in the official site that you can use to practice or if you have never taken a Microsoft exam to get familiar with it, 70-765 does have practice test and that&#39;s the reason why I took that before as I wasn&#39;t familiar with any of this tests in the past and it let me get comfortable when I was going through it.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
I&#39;m already working with the material for the 70-765 post however I&#39;d like to keep each post short enough to give you the tools you need and not get you bored so I&#39;ll be publishing it in the next days.&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div dir=&quot;ltr&quot;&gt;
Thanks for reading.&lt;br /&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/5316845377835675382/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_8.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5316845377835675382'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5316845377835675382'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with_8.html' title='Training and tips to get certified with Microsoft (Part 2)'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5372290883884424090.post-5026928248689966373</id><published>2017-08-02T14:33:00.001-06:00</published><updated>2017-08-04T16:23:07.809-06:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="70-764"/><category scheme="http://www.blogger.com/atom/ns#" term="70-765"/><category scheme="http://www.blogger.com/atom/ns#" term="MCSA"/><category scheme="http://www.blogger.com/atom/ns#" term="SQL SERVER 2016"/><title type='text'>Training and tips to get certified with Microsoft (Part 1)</title><content type='html'>In the last weeks, while I was preparing for one of the certification exams, I got a lot of questions from collegues, asking questions such as How do you Schedule and Pay for the exam? Where do you train? How hard is it? Does it gives you any value?&lt;br /&gt;
&lt;br /&gt;
Based on that common questions which I also had in the past and pretty much had to solve it by my self by looking all over, is that I decided to do this as my first blog post.&lt;br /&gt;
&lt;u&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/u&gt;
&lt;u&gt;&lt;b&gt;How do you Schedule and Pay for the exam?&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;
I think the first question would be, are you informed as to which career path do you want to follow? The Microsoft certification program has been constantly changing and last year new paths were rolled out that anyone can follow.&lt;br /&gt;
If you want to pursue an SQL Server 2012/2014 MCSA this is the path that you need to follow: &lt;a href=&quot;https://www.microsoft.com/en-us/learning/mcsa-sql-certification.aspx#cp-section3-head&quot;&gt;https://www.microsoft.com/en-us/learning/mcsa-sql-certification.aspx#cp-section3-head&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you want to pursue the SQL Server 2016 MCSA this is the path that you need to follow:&lt;br /&gt;
&lt;a href=&quot;https://www.microsoft.com/en-us/learning/mcsa-sql-2016-certification.aspx&quot;&gt;https://www.microsoft.com/en-us/learning/mcsa-sql-2016-certification.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
If you look in detail, you will noticed that for 2012/2014 you require 3 exams to be passed, for 2016 you need only 2, this doesn&#39;t means the one for 2016 is easier, it simplifies the process? yes, and is mainly because it is more specialized for each path, you can see there are 3 different areas that you can get certified (Database Development, Database Administration and Business Intelligence Development).&lt;br /&gt;
&lt;br /&gt;
In this post in particular I&#39;ll be focusing on the Database Administration path, which is the one I followed, the process would be similar for each one though.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;What are the exams that you need to pass?&lt;/b&gt;&lt;br /&gt;
You need to pass two exams 70-764 and 70-765.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So now, how do you schedule those exams? In both URL&#39;s provided above, it gives you an option that says &quot;Take Exam ###&quot; that will redirect you to an URL, in there you will need to select the country where you will be presenting the exam, the cost varies from country to country so be sure that you choose the correct one. Also, there might be times where you can buy offer packs, such as Exam, Exam retake and Practice test, you can look for it in here: &lt;a href=&quot;https://www.microsoft.com/en-us/learning/offers.aspx?intcmp=lexexampage_belbutton&quot;&gt;https://www.microsoft.com/en-us/learning/offers.aspx?intcmp=lexexampage_belbutton &lt;/a&gt;however be sure if you buy that complete package that an practice test is available, for instance, when first looked at the career path there was only practice test available for the exam 70-765 and not for the 764 so first be sure if the practice test for the exam that you will be presenting is available, if that&#39;s not the case, you can buy either just the exam or the exam + the retake, When I purchased mines I bought it with the retake, thankfully didn&#39;t had the need to use the retake for any of the exams, but it reduces the anxiety when you are presenting it. If you buy any of this options you will receive and email with the coupon code that you will need when scheduling the exam.&lt;br /&gt;
&lt;br /&gt;
Either if you bought the coupons or not, you will be back at this URL: &lt;a href=&quot;https://www.microsoft.com/en-us/learning/exam-70-764.aspx&quot;&gt;https://www.microsoft.com/en-us/learning/exam-70-764.aspx&lt;/a&gt; this one in specific is for the 764 exam but you can only change the exam code in the address line so you are sure you schedule the right exam. Next you will need to click on &quot;Schedule Exam&quot; which will take you to login with your MSDN account. Make sure that you are using your correct address, whether if you would like to have your profile with your personal account or the one created with your corporate account as if you use the incorrect one and pass the exam, but later you want to transfer it to the other account you will need to create a ticket with the Regional support center so your Microsoft IDS can be merged or just transfer what you have earned.&lt;br /&gt;
&lt;br /&gt;
If this is the first exam that you are presenting, you will need to fill in some personal details. Once you are done with those details you then need to click on &quot;Submit&quot; which will transfer you to the Pearson portal which will give you 4 options:&lt;br /&gt;
I will be scheduling for a future date at a test center. (You will go to a test center)&lt;br /&gt;
I want to take this exam as an online proctored exam. (You will be presenting it at home)&lt;br /&gt;
I am taking this exam at a Certiport test center.&lt;br /&gt;
I have received a Private Access Code for this exam.&lt;br /&gt;
&lt;br /&gt;
If you choose the Test Center or Certiport test center it will then ask you to select your test center, it will show you the available dates and times for each center near you. Once that you have chosen your center, date and time you will be asked to go to the Checkout page, in there it will ask you to confirm your information, to you agree to the policies and then the payment information, if you purchased any of the options mentioned above and received the coupon information already, is here where you enter the information provided in that email, it won&#39;t ask you to pay for anything else as you already buy what you need, lastly you just need to confirm and submit, and you are done and scheduled to present your exam. &lt;br /&gt;
&lt;br /&gt;
Then is just matter to be prepared the best as you can for the exam date.&lt;br /&gt;
&lt;br /&gt;
The other questions will be resolved in the upcoming entries.</content><link rel='replies' type='application/atom+xml' href='https://sqldbagt.blogspot.com/feeds/5026928248689966373/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5026928248689966373'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/5372290883884424090/posts/default/5026928248689966373'/><link rel='alternate' type='text/html' href='https://sqldbagt.blogspot.com/2017/08/training-and-tips-to-get-certified-with.html' title='Training and tips to get certified with Microsoft (Part 1)'/><author><name>Christian Araujo</name><uri>http://www.blogger.com/profile/08865138964043367447</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieWWfImetiPUqkf6xoq1rTMHJU7Wn9h2wXvA8iKSu-xdXJEw3eVDiDEHDI4TdToW3jPYIK4WYFIiSGQdNJT_fUfaAs0UjXvX9lJsDXm1bEkns825VckJw0JVaJRxttCw/s64/2017-07-17+15.07.43.jpg'/></author><thr:total>6</thr:total></entry></feed>