Build 2016 も終わりましたので、直近でアナウンスのあった SQL Server / SQL Database 関連のアップデートをまとめてみようかと。
SQL Database に SQL Srever 2016 の機能がいくつかプレビュー実装されています
Public preview: JSON in Azure SQL Database
JSON のデータを取り扱う / JSON の形式に変換するための JSON 関数が使えるようになったようです。
JSON Data (SQL Server)
現状の SQL Server では、JSON 型というデータ型はないため、文字列型に格納した JSON のデータを操作したり、SELECT の結果をクエリで JSON に変換して、それを利用するという形ですね。
Public preview of Azure SQL Database Temporal Tables
Temporal の機能ですね。
データの履歴管理をするための機能が SQL Database でも使えるようになったようです。
UPDATE / DELETE によるデータの変更を履歴テーブルを使用してトラッキングし、データの管理を行うための機能ですね。
Premium であれば、In-Memory OLTP との組み合わせもできるかもしれないですね。
Temporal Tables
Windows 上での Bash 実行についてあとで見るメモ
Build に合わせて情報が出てきたものですが。
われらが、ぺんぺん師匠がまとめてくださっています。ぺんぺん師匠、まじ、ぺんぺん。
Windows で Ubuntu バイナリ(bash)が動作することの概略
Windows 10でUbuntuのBashが動作可能に?
[速報]マイクロソフト、BashシェルをWindowsに搭載。Emacs、VT100などサポート。Build 2016
詳細はこちら。
CommandLine-Documentation
BASH Running in Ubuntu on Windows
Run Bash on Ubuntu on Windows
Ubuntu on Windows — The Ubuntu Userspace for Windows Developers
Developers can run Bash Shell and user-mode Ubuntu Linux binaries on Windows 10
開発者がWindows 10でBashシェルとユーザー モードのUbuntu Linuxバイナリを実行可能に
現状は、Ubuntu 14.04 LTS となっているようですが、Ubuntu 16.04 LTS への置き換えは行われるようですね。
apt でパッケージ入れたりと、Windows 上で Ubuntu 動いている感じで環境整えられるんですね。
今後の情報は、Windows Command Line を見ておくとよさげです。
Channel9 の Running Bash on Ubuntu on Windows! がデモも含まれていておすすめです。
vi / gcc / Ruby の実行などが行われているデモが確認できるかと。
仕組みとしては以下のスライドが基本かと。
Windows 上で、Ubuntu のユーザーモード(ユーザーランド)が実行され、ネイティブの Linux のバイナリが実行できるようになっています。
システムコールについては、Windows のものをマッピングすることで、動作するようですね。
Linux Command Line on Windows / Windows Command Line Improvements (Day1) / Windows Command Line Improvements (Day3) でも、このあたりの話があるようですので、ビデオが公開されるのをまとうかと。
Linux の sqlcmd でセキュリティ接続 (-E) を使用してみる
昨年、Linux 版の sqlcmdや BCP の提供が開始されました。
Azure SQL Database: SQLCMD and BCP on Ubuntu Linux
これらのツールでは、セキュリティ接続 (-E オプション) がサポートされています。 ![]()
Linux 版の場合、どのように動作するのかが気になって、Linux の勉強と合わせて触ってみた際のメモを。
Linux が理解できていないので、いくつかの手順が間違っているかもしれませんが…。
Linux は Ubuntu Server 14.04 を使用して検証を行っています。
SQL Server 2016 で Temporal Table と Stretch Database を組み合わせて使用する
SQL Server 2016 の Temporal Table と Stretch Database は組み合わせることが可能です。
組み合わせることで、
- Temporal Table の履歴テーブルを Stretch Database により SQL Database に格納する
というようなことができます。
Stretch Database
Stretch Database の概要
設定までの流れを軽く見ていきたいと思います。
なお、今回は SQL Server 2016 RC1 を使用していますが、RC1 の Stretch Databas は RC0 とは異なり、SQL Server Stretch Database が使用されるのがデフォルトの動作となっています。
Azure の仮想マシン上に構築された SQL Server のデータベースメールで SendGrid を使用する
Configure Database Mail on SQL Server Azure VM using T-SQL で紹介されている内容ですが、SQL Server の データベースメール のメール送信元として、SendGrid を使用することができます。
日本語の情報が少ないかなと思ったので、軽くまとめてみたいと思います。
SQL Server 2016 のファイルスナップショットバックアップを使用してみる
機能としては知っていたのですが、あまり触っていなかったので情報収集としてまとめてみました。
現状の最新は SQL Server 2016 RC1 ですが、環境をまだ作っていなかったので CTP 3.3 で確認をしています。
基本的な情報としては、File-Snapshot Backups for Database Files in Azure を。
非対称ストレージを使用したクォーラムの設定
今まで設定したことがなかったのですが、Windows Server 2008 / Windows Server 2008 R2 SP1 に以下の Htofix を適用した環境では、クラスターで非対称ストレージ (非対称ディスク) を使用することができます。
2012 以降ではデフォルトで利用できるようですね。
軽く試してみた内容をまとめてみたいと思います。
ドキュメントとしては、以下が参考になります。
WSFC クォーラム モードと投票の構成 (SQL Server)
Building a High Availability and Disaster Recovery Solution by Using Failover Cluster Instances and Availability Groups
Configure and Manage the Quorum in a Windows Server 2012 Failover Cluster
Failover Cluster Step-by-Step Guide: Configuring the Quorum in a Failover Cluster
SQL Server HA and DR Design Patterns, Architectures, and Best Practices Using Microsoft SQL Server 2012 AlwaysOn
SQL Server 2016 RC0 の Stretch Database を使用して Hot データと Cold データに分割する
SQL Server 2016 RC0 以前にもできたのかもしれませんが、先週気づきました。
Stretch Database が発表された際に、
- ローカルに Hot データを格納
- Azure に Cold データを格納
というような、説明がされることがありました。
そのようなデータを分割する方法をまとめてみたいと思います。
詳細については、以下を参照してください。
Stretch Database
Use a Filter Predicate to Select Rows to Migrate (Stretch Database)
Enable Stretch Database for a database
Read the rest of this entry »
SQL Server 2016 RC0 で使える新しい AlwaysOn のセカンダリの初期同期方法
SQL Server 2016 RC0 関連の情報を眺めていて知ったのですが、RC0 では、セカンダリの同期方法として「SEEDING_MODE = AUTOMATIC」という方法が追加されています。
High Availability Enhancements
[RC0] Direct seeding allows a secondary replica to be automatically seeded over the network (rather than manual seeding that requires a physical backup of the target database to be restored on the secondary). Direct seeding is specified by setting SEEDING_MODE=AUTOMATIC in the CREATE AVAILABILITY GROUP (Transact-SQL) or ALTER AVAILABILITY GROUP (Transact-SQL) statements. You must also specify GRANT CREATE ANY DATABASE with ALTER AVAILABILITY GROUP (Transact-SQL) on each secondary replica that is used with direct seeding.
これについて、少しまとめてみたいと思います。