Software Architect at Genzeon Corporation in Malvern, Pennsylvania, Microsoft .NET MVP, Husband, Dad and Geek.
19388 stories
·
21 followers

Managing SQL Server high availability and disaster recovery

1 Share

In this sample chapter from Exam Ref 70-764 Administering a SQL Database Infrastructure, learn how to design appropriate high availability and disaster recovery solutions in SQL Server with special attention to installation, configuration, and administration processes.



It is important to understand the difference between high availability and disaster recovery. It is not uncommon for management in organizations to misunderstand these concepts and use the wrong technology for their SQL Server infrastructure. In this last chapter, we examine the high availability technologies available in SQL Server, as promised in Chapter 2, “Manage backup and restore of databases.”

With high availability, you are using technology in SQL Server to minimize the downtime of a given database solution to maximize its availability. With disaster recovery, however, you are using technology to recover from a disaster incident, potentially minimizing the amount of data lost. In some cases, data loss is acceptable, because the imperative is to get your database solution online as soon as possible. That is why it is critical to engage with all stakeholders to determine the business requirements. With both high availability and disaster recovery people and processes play a key part, so make sure you don’t focus solely on the technology.

The exam will test your ability to design the appropriate high availability solution for a given scenario, which is why Skill 4.1 starts with a discussion about high availability and the primary considerations for designing a particular solution. Skill 4.2 then covers the designing of a disaster recovery solution, which commonly goes hand-in-hand with a high availability solution. Given how we covered disaster recovery in Chapter 2, a detailed discussion will not be required here. Skill 4.3 examines the log shipping technology in SQL Server and how it is primarily used to provide disaster recovery. Skill 4.4 then details Availability Groups and examines how they can be used to provide both high availability and scale-out capability to your databases. Finally, in Skill 4.5 we implement failover clustering solutions. Although this high availability technology has been available since SQL Server 2000, it’s commonly used in the industry and should not be discounted as an old, unused technology. Microsoft keeps investing in failover clustering, and we will learn about how SQL Server can take advantage of cluster shared volumes.

High availability technologies are complex and involve a lot of set up and configuration, so this chapter has many figures that show you their installation, configuration, and administration processes. Make sure you examine the various options in the figures and listings in this chapter to best prepared for the exam.

Skills covered in this chapter:

  • Design a high availability solution

  • Design a disaster recovery solution

  • Implement log shipping

  • Implement Availability Groups

  • Implement failover clustering

Read this chapter at the Microsoft Press Store.

Read the whole story
alvinashcraft
9 hours ago
reply
West Grove, PA
Share this story
Delete

Azure Table Storage in ASP.NET Core 2.0 – Tahir Naushad's Blog

1 Share

        public async Task<List<T>> GetList()

        {

            //Table

            CloudTable table = await GetTableAsync();

            //Query

            TableQuery<T> query = new TableQuery<T>();

            List<T> results = new List<T>();

            TableContinuationToken continuationToken = null;

            do

            {

                TableQuerySegment<T> queryResults =

                    await table.ExecuteQuerySegmentedAsync(query, continuationToken);

                continuationToken = queryResults.ContinuationToken;

                results.AddRange(queryResults.Results);

            } while (continuationToken != null);

            return results;

        }

        public async Task<List<T>> GetList(string partitionKey)

        {

            //Table

            CloudTable table = await GetTableAsync();

            //Query

            TableQuery<T> query = new TableQuery<T>()

                                        .Where(TableQuery.GenerateFilterCondition("PartitionKey",

                                                QueryComparisons.Equal, partitionKey));

            List<T> results = new List<T>();

            TableContinuationToken continuationToken = null;

            do

            {

                TableQuerySegment<T> queryResults =

                    await table.ExecuteQuerySegmentedAsync(query, continuationToken);

                continuationToken = queryResults.ContinuationToken;

                results.AddRange(queryResults.Results);

            } while (continuationToken != null);

            return results;

        }

        public async Task<T> GetItem(string partitionKey, string rowKey)

        {

            //Table

            CloudTable table = await GetTableAsync();

            //Operation

            TableOperation operation = TableOperation.Retrieve<T>(partitionKey, rowKey);

            //Execute

            TableResult result = await table.ExecuteAsync(operation);

            return (T)(dynamic)result.Result;

        }

        public async Task Insert(T item)

        {

            //Table

            CloudTable table = await GetTableAsync();

            //Operation

            TableOperation operation = TableOperation.Insert(item);

            //Execute

            await table.ExecuteAsync(operation);

        }

        public async Task Update(T item)

        {

            //Table

            CloudTable table = await GetTableAsync();

            //Operation

            TableOperation operation = TableOperation.InsertOrReplace(item);

            //Execute

            await table.ExecuteAsync(operation);

        }

        public async Task Delete(string partitionKey, string rowKey)

        {

            //Item

            T item = await GetItem(partitionKey, rowKey);

            //Table

            CloudTable table = await GetTableAsync();

            //Operation

            TableOperation operation = TableOperation.Delete(item);

            //Execute

            await table.ExecuteAsync(operation);

        }

Read the whole story
alvinashcraft
9 hours ago
reply
West Grove, PA
Share this story
Delete

Start off the Year with a Bang with the Kendo UI R1 2018 Release

1 Share

Learn what's new in the Kendo UI January 2018 release with new React, Angular, Vue, and jQuery enhancements to our JavaScript component library. We've got something for every JavaScript developer.

The year has barely started and I'm already delivering great news: the R1 2018 release of Kendo UI is officially here! I know, we're all still struggling with writing 2017 2018 whenever we need to add a date to something, but that doesn't mean we can't start the year off right by updating to the latest-and-greatest within Kendo UI I'm always excited to write these posts but this one feels special. I'll get to highlight our new React components, the features we've added to our jQuery, Angular, and Vue components, as well as our continued support for ASP.NET Core developers with the expansion of our TagHelper support.

There's something for every JavaScript developer in here, so keep on reading to catch all the highlights!

Quick note: every release seems to get bigger and bigger, so here's a table of contents to help you navigate this long list of new components and features.

Table of Contents

  1. New React Components Built from the Ground Up
  2. React Wrappers Expand
  3. Highly Requested Components Released for Angular
  4. Updates to jQuery and UI for ASP.NET MVC
  5. Vue Components now Fully Cover all of Kendo UI
  6. TagHelpers for all with UI for ASP.NET Core
  7. Want to See this in Action?
  8. Got Feedback?

New React Components Built from the Ground Up

This is a big one: R1 2018 introduces a brand new set of components, built from the ground up, for React. These components are React through and through and I'm very excited to finally get these in your hands! This initial release includes:

  • Grid
  • DropDownList
  • Calendar
  • DateInput
  • NumericTextBox
  • PanelBar
  • TabStrip
  • Animation framework

Of course the big ticket item here is the Grid (everyone loves a Grid) and it includes the ability to:

  • Bind to various forms of data (arrays, data stores like Redux, etc.)
  • Page
  • Sort
  • Filter
  • Virtualization
  • Edit (through external forms)
  • Nest Grids (hierarchy)
  • Column and detail row templates
  • Select rows

On top of all of this the components are fully accessible and are compliant with Section 508, WCAG 2.0, and WAI-ARIA standards. They also support all of our existing Sass-based themes including Default, Bootstrap (v4), and Material.

There's a lot more that I could cover in these components, but I'll let the demos and documentation do most of the talking here.

Click here to check out the new React components in all their glory!

React Wrappers Expand

Along with the exciting news of our brand new components, I also want to highlight that the Kendo UI wrappers for React have expanded to include almost every Kendo UI widget! These can live side-by-side with the new React components that we're offering, which is great news for anyone building a React app.

This means that if you find a certain component or feature missing from the new widgets, you can supplement them easily by including these wrapped components. As a React developer you'll have the full arsenal of Kendo UI widgets to choose from when developing your applications. All versions also support the same set of themes, so using both sets of widgets in the same app, or transitioning from one to the other, should be a breeze!

Check out our React overview page for a full list of available components.

Highly Requested Components Released for Angular

Angular usage within the JavaScript world continues to grow and we're looking to grow with it! R1 2018 introduces a set of highly requested components (some among the top five in our feedback portal), namely:

TreeView

Treeview

Figure 1: New Angular TreeView component in action!

Splitter

Splitter

Figure 2: Adjusting, collapsing and expanding sections of the Splitter

Window


Window

Figure 3: Minimize, maximize, close and open a Window component

Gauges

Guages 

Figure 4: Kendo UI for Angular Gauges in action

Grid

We also added a bunch of new functionality to our Grid:

Resizing

Figure 5: Resizing columns in a Kendo UI Grid

Reordering

Figure 6: Re-ordering single column and multi-header columns in the Grid

Filtering

Figure 7: The new filter menu of the Kendo UI Grid 

Full Accessibility with Keyboard Navigation

The Grid now follows Section 508, WCAG 2.0, and WAI-ARIA standards which includes keyboard navigation – making the Grid a perfect fit for any scenario where accessibility is a concern.

There are also a lot of other fixes and functionalities added throughout the other Angular packages of course, so these are just a couple of the bigger items.

Updates to jQuery and UI for ASP.NET MVC

The core Kendo UI library, and by extension our UI for ASP.NET MVC, UI for ASP.NET Core, wrappers for React, and wrappers for Vue, have all been a part of a huge bug-squashing effort that makes R1 2018 one of the most stable releases to date. Since the last release we have closed over 250 issues across our public and internal issue trackers, closing over 30% more issues than were logged during the last few months.

With this release we also took a step to get closer to full OData v4 compliance. We've already supported OData for quite some time, but there are a few items that are missing to make us fully compliant with v4 of the protocol. With this release we have introduced batch processing to the DataSource (responsible for data communication in Grids etc.) and we will continue to provide more support in the coming months.

Finally we also took out the ButtonGroup from the list of hybrid-specific UI components and added the widget to the regular Kendo UI component list, removing the need to call from the mobile namespace and adding this component in all your responsive desktop web applications.

Button Group

Figure 8: The ButtonGroup no longer specific to the hybrid framework

Vue Components now Fully Cover all of Kendo UI

Vue.js developers rejoice: all Kendo UI components are now available to use in your Vue applications! Are you already using Kendo UI and looking to pick up Vue? We've got you covered. Are you a Vue developer looking to pick up a set of gorgeous UI components? We've definitely got you covered as well!

Treelist

Figure 9: Sample code for a TreeList in Vue.js

Beyond adding coverage for all of our components, we also wanted to make our Vue integration that much better. As a part of this, and based on feedback from current Vue developers, we now officially support using Vue.js templates along with our components! This was a big piece of feedback from people that picked up our initial version of Vue support and I'm very happy to see it be a part of the R1 2018 release.

Tag Helpers for all with UI for ASP.NET Core

ASP.NET Core continues to gain traction with traditional .NET developers and new developers alike. While many enjoy working with ASP.NET Core as the backend for their applications and have Angular, React, Vue, or another framework on the front-end, there are plenty of people looking to work with the new style of developing UI in ASP.NET Core: Tag Helpers. Without diving into what Tag Helpers are (the documentation I just linked should help), we can think of them as HTML-like way to work with Razor files (versus the fluent API of HtmlHelpers in ASP.NET MVC).

With R1 2018 I'm proud to announce that we added over 15 new Tag Helpers to our ever-expanding list, including everyone's favorite: the Grid. This component is also served by the DataSource Tag Helper that we are introducing with this release. This has been highly requested by ASP.NET Core developers and I hope you're as pumped as I am!

Tag Helper

Figure 10: Sample Tag Helper code for the UI for ASP.NET Core Grid

So, if you're an ASP.NET Core developer, or are looking to be, I highly recommend checking out these new Tag Helpers! For more information you can refer to our UI for ASP.NET Core overview page.

Want to See this in Action?

If you want to see all of these highlights, plus more, then I recommend signing up for our upcoming webinar on February 1st, at 11 AM EST. The Kendo UI Dev Rel team and myself will be taking everyone through the new Kendo UI release so don't miss out on all that fun! Seats are limited so be sure to sign up soon to reserve your spot!

Save Your Spot

Got Feedback?

As always, I want to hear any and all feedback you may ave around the release! Loving a new component? Missing a component or feature? Feel free to provide any and all feedback in the comments below! I'll also post the links to all of our public feedback portals in UserVoice so you can submit your ideas for future releases there:

Read the whole story
alvinashcraft
9 hours ago
reply
West Grove, PA
Share this story
Delete

Telerik R1 2018 Release is Here—Say 'No' to Ugly Apps!

1 Share

Our first release of the year is here. We're excited to share all the latest updates across our tools as we pursue the goal of making Modern UI easier for you.

Every day as I open the telerik.com home page, I am reminded of the goal we are pursuing—to make Modern UI easy for you. On the web, on desktop and on mobile, with your framework and programming language of choice. Enabling you to be the best developer you can possibly be.

Our first release of the year packs exactly that, allowing you to expand into modern frameworks and use modern themes—with new Kendo UI React components, Fluent design theme, massive Xamarin suite advancement and over 30 new backend database providers for our reporting solution, just to name a few. With so many platforms and frameworks we cover, there is simply too much to lay out in a single blog. So, just head over to our what's new page and browse around!

The whole release is designed to allow you to quickly and easily build apps with sleek and intuitive designs. Seeing is believing, so if you are an existing Telerik customer, dig right into the release by logging to your account and download the latest bits. Or, if you haven't recently checked out our products, I'd appreciate if you gave it another look and let me know how you like them or what we need to improve.

Stay tuned to our blogs for product-by-product summary of all improvements we brought to you. Be prepared for some surprises—for a few product lines we delivered more than we initially laid out in our roadmap. 

Lastly, please join me, my partner-in-crime Carl Bergenhem (Product Manager, Kendo UI) and our complete Developer Advocate team for our release webinars:

Telerik R1 2018 Release Webinar: Tuesday, Jan 30 @ 11 am ET

Kendo UI R1 2018 Release WebinarThursday, Feb 1 @ 11 am ET
Read the whole story
alvinashcraft
9 hours ago
reply
West Grove, PA
Share this story
Delete

Finding NEW Evil: Detecting New Domains with Splunk

1 Share
This post discusses how to use Splunk (and Splunk Enterprise Security) to find domains that are "new" to your organization and why you should care (HINT: YOU SHOULD! THEY ARE VERY OFTEN NAUGHTY). It uses basic Splunk statistics along with some more exciting (and faster) tstats.
Read the whole story
alvinashcraft
10 hours ago
reply
West Grove, PA
Share this story
Delete

The January release of SQL Operations Studio is now available

1 Share

This blog post was authored by Alan Yu, Program Manager, Microsoft SQL Server.

We are excited to announce the January release of SQL Operations Studio is now available.

Download SQL Operations Studio and review the release notes to get started. SQL Operations Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB, and SQL DW from Windows, macOS, and Linux. To learn more, visit our Github.

sql-operations-studio-main

SQL Operations Studio was announced for public preview on November 15, 2017 at Connect(), and this January release is the second major update since the announcement. If you missed the December release announcement, you can learn more on the SQL Server blog.

The January release includes several major repo updates and feature releases, including:

  • Enable the HotExit feature to automatically reopen unsaved files.
  • Add the ability to access saved connections from Connection Dialog.
  • Set the SQL editor tab color to match the Server Group color.
  • Fix the broken Run Current Query command.
  • Fix the broken pinned Windows Start Menu icon.

For a complete list of updates, please refer to the release notes.

HotExit feature

hotexit

A highly requested feature for SQL Operations Studio is to remember unsaved changes when the program is exited, similar to VSCode and other editors. We are excited to announce that HotExit has been enabled as demonstrated in the GIF above. SQLQuery2 represents an unsaved query, and the user can quit SQL Operations Studio and simply reload it again to retain the unsaved query.

This feature is not enabled by default. To enable HotExit by default, go to Settings with Ctrl + , and  copy "files.hotExit": "onExit" into your settings.

Saved connections available in Connection Dialog

saved-connections

The Connection Dialog now contains a “Saved Connections” tab next to “Recent Connections”. This contains a list of saved server connections from the server’s “Object Explorer” viewlet, as well as the Server Group.

SQL editor tab color to match Server Group color

sql-editor-tab-color

SQL query editor and dashboard windows will have the same color as the Server Group used to open the window. This feature is not enabled by default. To enable Tab Colors by default, go to Settings with Ctrl + , and  copy "sql.enableTabColors": true into your settings.

Contact us

If you have any feature requests or issues, please submit them to our Github issues page. For any questions, feel free to comment below or tweet us @sqlopsstudio.

Read the whole story
alvinashcraft
10 hours ago
reply
West Grove, PA
Share this story
Delete
Next Page of Stories