SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Author Archive

VyOS で作る帯域制御可能なネットワークと NAT 経由の外部アクセス

leave a comment

以前、Vyatta で作る帯域制御可能なネットワークと NAT 経由の外部アクセス という投稿を書いたのですが、現在、Vyatta は無償版が提供されておらず、無償版を使用したい場合には Vyatta からフォークした、VyOS を使う必要がありますので、VyOS 版を書いてみたいと思います。

VyOS については  vyos.net / User Guide / vyos-users.jp から情報を追うとよろしいかと。

基本的な操作内容は Vyatta と同じだと思いますので VyOS の勉強には以下の書籍も有効かと。

なお、Vyatta の投稿と同様に、NIC 3 枚で構築を行っています。
# Windows Server 2012 R2 + Gen1 のゲスト OS で構築しています。
image

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 24th, 2014 at 12:30 pm

Posted in VyOS

Tagged with

Enterprise Edition の DB バックアップを Standard Edition にリストア

leave a comment

SQL Server 2014 の環境でテストをしていますが、基本的には 2005 から同様な動作だったはずです。

エディションの違いによる機能比較はこちらを。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 24th, 2014 at 10:03 am

Posted in SQL Server

Tagged with

AlwaysOn 可用性グループと TDE の組み合わせについて

leave a comment

AlwaysOn 可用性グループと TDE (透過的なデータ暗号化) の組み合わせ方法について少しまとめてみたいと思います。
BOL としては 暗号化されたデータベースと AlwaysOn 可用性グループ (SQL Server) に記載されているのですが、これだと少しわかりずらいので。

データベースが暗号化されているか、データベース暗号化キー (DEK) を含んでいる場合、新しい可用性グループ ウィザード または 可用性グループへのデータベース追加ウィザード を使用してそのデータベースを可用性グループに追加することはできません。

とありますが、これは可用性グループのウィザードを使用して設定ができないということを表しており、AlwaysOn 可用性グループと TDE を組み合わせることは可能です。

細かな手順については Encrypting Your SQL Server 2012 AlwaysOn Availability Databases がとても参考になります。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 23rd, 2014 at 11:13 pm

Posted in SQL Server

Tagged with

SQL Server 2014 CU5 の SSMS の SQL Database v12 対応は英語版に限定されているようです

leave a comment

SQL Server 2014 CU5 の SSMS で SQL Database v12 対応がされたことについていくつかアナウンスがされています。
# ちなみに v12 のコードネームは Sterling だそうです。

SQL Server 2014 Management Studio – updated support for the latest Azure SQL Database Update V12 (preview)

これらについては、CU5 のリリースノートにも記載がされています。
2014 の SQL Server 用の累積的な更新プログラム パッケージ 5

3708148
Sterling での機能のオブジェクト エクスプ ローラーには、次のノードが追加されます。

  • ストレージ ([データベース] ノード)
  • アセンブリ (データベースのノード プログラミング->)
  • 規則 (プログラミング-> データベース ノード)
  • 既定値 (-> のプログラミングのデータベース ノード)
  • 計画ガイド (-> プログラミングのデータベース ノード)
  • シーケンス (-> プログラミングのデータベース ノード)
  • 集計関数 (関数-> のデータベース ノード)
  • アプリケーション ロール (セキュリティ ロール->-> データベース ノード)
  • ユーザー定義のオブジェクト型 (CLR の型) (-> 型-> のプログラミングのデータベース ノード)
  • XML スキーマ コレクション (-> 型-> のプログラミングのデータベース ノード)

SQL サービス

英語版の SSMS で接続をすると以下のように今回のアップデートが利用できるのですが、日本語版の SSMS で接続した場合には、従来通りの内容となっていました。
imageimage

英語版だけしか対応していないのかなと思って、Connect でフィードバックしてみたところ、

Thank you for submitting this feedback. Unfortunately, CU5, like most Cumulative Updates, is English only.

 

との回答をいただくことができました。
CU5 で追加されたものが使えるのは、現状英語版だけのようですね。

Written by Masayuki.Ozawa

12月 22nd, 2014 at 3:50 pm

Posted in SQL Database

Tagged with

SQL Database v12 Preview で SQLCLR を使用する

leave a comment

SQL Database の v12 Preview では、SQLCLR を使用することができるようになりました。
ということで少し使ってみたいと思います。

私はコードを書くのが苦手なので、TaaS せんせーが後日素晴らしい SQLCLR のアセンブリを作ってくれると思います。

あと、えろす師匠、鰻奢ってください。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 21st, 2014 at 11:29 pm

Posted in SQL Database

Tagged with

SQL Server / SQL Database の IDENTITY プロパティの連番の保証性について

leave a comment

twitter で質問をいただいたので少しまとめてみたいと思います。

SQL Server  / SQL Database では、数値型の連番を簡単に設定するためのプロパティとして IDENTITY があります。
これを設定しておくと自動的に連番が付与されますが、サーバーの再起動等が発生した場合には連番は保証されません。

これについては
IDENTITY (プロパティ) (Transact-SQL)
IDENTITY プロパティ使用時の動作について
に記載されています。

SQL Server 2012 以降は、IDENTITY の説明として以下が追加されています。

サーバーの再起動または他のエラーが発生した後の連続した値: SQL Server では、パフォーマンス上の理由から ID 値をキャッシュすることがあります。割り当てられた値の一部は、データベースの障害やサーバーの再起動が発生したときに失われることがあります。  その結果、挿入時に非連続的な ID 値が生成される場合があります。 非連続的な値が許可されない場合、アプリケーションでは、シーケンス ジェネレーターを NOCACHE オプションを指定して使用するか独自のメカニズムを使用して、キー値を生成する必要があります。

この動作について少し見ていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 21st, 2014 at 6:22 pm

SQL Server における可変長文字列の末尾の空白について

one comment

SQL Server の可変長文字列 (varchar / nvarchar) では、

  • ‘AAAA’

というような文字列をデータとして登録した場合、可変長文字列では

  • ‘AAAA’

というように設定されている文字列のみが登録されます。

char(10) というような固定長文字列型にデータを入れた場合には、

  • ‘AAAA      ‘

といった形で空白が付与されて固定長文字列として処理がされます。
それでは、

  • ‘AAAA   ‘

というようなデータに空白が含まれるものを入れた場合にはどうなるかを本投稿で見ていきたいと思います。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 20th, 2014 at 5:36 pm

Posted in SQL Server

Tagged with

SQL Server 2014 を使用したメンテナンスプランの移行方法について

leave a comment

SQL Server 2014 としていますが、SQL Server 2005 SP1 以降であれば、おそらく使えるのではと思っています。
# SQL Server 2008 は CU3 以降かもしれませんが…。

以下の情報も参考になります。

Automating Deployment of SQL Server Maintenance Plans
SSIS package query
SSIS Package Extract from MSDB
How to Transfer(Copy) Maintenance Plans from One Server to other???….

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 17th, 2014 at 8:58 pm

Posted in SQL Server

Tagged with

SQL Server のバックアップのリストアと互換性レベルの整理

leave a comment

SQL Server 2014 データベース エンジンの非推奨機能SQL Server ではバックアップのリストアに下位互換があり、リストアしようとするバックアップを取得した SQL Server のバージョンにも依存するのですが、上位のバージョンでは下位のバージョンのバックアップをリストすることが可能です。
上位互換はないため、新しいバージョンで取得したバックアップを下位のバージョンにリストアすることはできません。
また、デタッチ / アタッチシナリオを利用して、データベースを新しいバージョンの SQL Server にアタッチした場合、アタッチしたタイミングでデータベースの内部のバージョンアップが行われています。
そのため、新しいバージョンでアタッチしたデータベースを下位のバージョンの SQL Server にアタッチするということもできません。

新しいバージョンに移行をした際の、切り戻し方法としてはデータベースのバックアップ / リストア、デタッチ / アタッチではなく、データベースのインポート / エクスポートを用いて実施する必要があります。

基本的には直近三世代のバージョンの SQL Server のバックアップをリストアすることが可能となっており、それ以前の世代のバックアップについてはリストアをすることができません。

簡単にではありますが、バックアップ / リストアについてまとめてみたいと思います。

本投稿では、

  • SQL Server 2000
  • SQL Server 2005
  • SQL Server 2008 R2

で取得したバックアップを

  • SQL Server 2008 R2
  • SQL Server 2012
  • SQL Server 2014

でリストアするパターンについて記述しています。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 14th, 2014 at 11:19 am

Posted in SQL Server

Tagged with

SQL Server の TRUNCATE TABLE は何を実行しているか

leave a comment

テーブルのデータを瞬時に削除する方法として、TRUNCATE TABLE があります。

TRUNCATE TABLE (Transact-SQL)

DELETE との違いは以下になります。

DELETE ステートメントは、一度に 1 行ずつ削除し、削除した各行のエントリをトランザクション ログに記録します。  TRUNCATE TABLE は、テーブル データを格納するのに使用するデータ ページの割り当てを解除することによってデータを削除し、ページの割り当ての解除だけをトランザクション ログに記録します。

ということで、TRUNCATE TABLE が何をやっているかをざっくりと。

Read the rest of this entry »

Written by Masayuki.Ozawa

12月 14th, 2014 at 12:10 am

Posted in SQL Server

Tagged with