SlideShare a Scribd company logo
1 of 45
Download to read offline
SQL Server 管理者におくる
SQL Server on Linux Tips
DA06
本日の内容
SQL Server on Linux
SQL Server on Linux Tips
• Tip #1 :
• Tip #4 :
https://github.com/MasayukiOzawa/decode-2018-demo
SQL Server on Linux
SQL Server は稼働プラットフォームを選択可能に
• Windows Server / Windows Client
• RedHat Enterprise Linux (RHEL) 7.3/7.4
• SUSE Enterprise Linux (SLES) v12 SP2
• Ubuntu 16.04 LTS
• Docker: Windows & Linux containers
Windows
Linux/Windows
container
Linux
メモリ 2 GB
※
ファイルシステム XFS or EXT4 (and NFS 4.2 以上)
ディスク領域 6 GB
プロセッサ速度 2 GHz
プロセッサコア 2 Cores
プロセッサの種類 X64 と互換性のある CPU のみ
Installation guidance for SQL Server on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup
Technical support policy for Microsoft SQL Server
https://support.microsoft.com/ja-jp/help/4047326/support-policy-for-microsoft-sql-server
SQL Server on Linux
Windows Linux
エディション Developer, Express, Web, Standard, Enterprise  
サービス
Database Engine, Integration Services  
ML Services, Analysis Services, Reporting Services, MDS, DQS 
ミッションクリティカル
パフォーマンス
最大コア数 無制限 無制限
インスタンスごとの最大メモリサイズ 24 TB 12 TB
最大データデータベースサイズ 524 PB 524 PB
基本的な OLTP (Basic In-Memory OLTP, Basic operational analytics)  
高度な OLTP (Advanced In-Memory OLTP, Advanced operational analytics, adaptive query processing)  
基本的な高可用性 (2 ノード 単一データベースのフェールオーバー, 読み取り不可能なセカンダリ)  
高度な高可用性 (複数ノードの Always On, 複数データベースのフェールオーバー, 読み取り可能なセカンダリ)  
セキュリティ
基本的なセキュリティ (基本的な監査, 行レベルセキュリティ, 動的データマスク, Always Encrypted)  
高度なセキュリティ (透過的なデータ暗号化 (TDE : Transparent Data Encryption))  
データウェアハウス
PolyBase 
基本的なデータウェアハウス/データマート (基本的な In-Memory 列ストア, パーティショニング, 圧縮)  
高度なデータウェアハウス(高度な In-Memory 列ストア)  
高度なデータ統合 (あいまいグループ化と参照)  
ツール
Windows エコシステム : 全機能の管理 & 開発ツール (SSMS & SSDT), コマンドラインツール  
Linux/OSX/Windows エコシステム : 開発ツール (VS Code), DB 管理のための GUI ツール (SQL Operations Studio ), コマンドラインツール  
開発
プログラミング (T-SQL, CLR, Data Types, JSON, Graph)  
Windows ファイルシステム統合 – File テーブル 
BI & 高度な解析
企業のビジネスインテリジェンス (多次元モデル, 基本的な表形式モデル) 
Machine Learning Services (R / Python 統合) 
ハイブリッドクラウド Stretch Database 
SQL Server
SQL Server on Linux Architecture
SQL OS
Direct API
SQL OS v2
Win32 like APIs
Library OS
Database Engine SSIS
Linux Host Extension
Mapping to OS System Call
(IO / Memory / CPU Scheduling)
Linux Kernel
SQL Server 用ツールの提供状況
ツール
GUI
SQL Server Management Studio SQL Server の標準的な管理ツール ✔
Visual Studio Code クロスプラットフォームに対応した高機能エディター
SQL Server 向けの拡張機能の追加によりクエリ実行が可能
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-develop-use-vscode
✔ ✔
Microsoft SQL Operations Studio クロスプラットフォームに対応した GUI の管理ツール
https://github.com/Microsoft/sqlopsstudio
✔ ✔
CUI
sqlcmd コマンドラインから T-SQL を実行 ✔ ✔
bcp コマンドラインでデータをインポート / エクスポート ✔ ✔
mssql-scripter スキーマ定義 / データ INSERT 用スクリプトを生成する
Python ベースのツール
https://github.com/Microsoft/sql-xplat-cli
✔ ✔
DBFS FUSE を使用してDMV / カスタムクエリで取得したデータを
仮想ファイルシステムとしマウントするツール
https://github.com/Microsoft/dbfs
✔
mssql-cli 新しいコマンドラインツール
対話型のクエリ実行を、入力補完を使用しながら実行可能
https://github.com/dbcli/mssql-cli
今後のリリースでパイプによるコマンドラインの連携/出力データフォーマットの拡充/非対話型実行等を
サポート予定
https://github.com/dbcli/mssql-cli/blob/master/doc/roadmap.md
✔ ✔
PowerShell SQL Server PowerShell モジュールのフルセットを使用可能
https://docs.microsoft.com/ja-jp/sql/powershell/download-sql-server-ps-module
✔
PowerShell Core 6.0 クロスプラットフォーム対応の PowerShell
2018/5 時点ではSQL Server PowerShell モジュールのサブセットを使用可能
https://www.powershellgallery.com/packages/Sqlserver/
✔ ✔
プロセスとディレクトリ構成
プロセスの構成
ディレクトリ構成
SQLPAL Monitor
SQLPAL / sqlservr.exe
SSIS は「/opt/ssis」「/var/opt/ssis」が使用されるが、関係性については mssql と同様
ファイルレイアウト
データベースの互換性
互換性レベル
100 SQL Server 2008
110 SQL Server 2012
120 SQL Server 2014
130 SQL Server 2016
140 SQL Server 2017
ALTER DATABASE (Transact-SQL) 互換性レベル
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-database-transact-sql-compatibility-level
SQL Server on Linux のログ
次のログを利用することができる
RAISERROR (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/raiserror-transact-sql
RAISERROR WITH LOG でメッセージを出力することも可能※
(Windows の場合、WITH LOG はイベントログに出力される)
マクロ名 出力内容
programname sqlservr
facility daemon
priority info ※出力するメッセージはシングルバイト文字を使用または、メッセージを
出力するログインの言語設定は「English」の利用を検討
2 バイト文字については、syslog の出力が想定通り行われないことがある
Troubleshoot SQL Server on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-troubleshooting-guide
Demo
Tip #1 :
SQL Server on Linux の
インストールと構成変更ツール
SQL Server on Linux のインストール
「/opt/mssql/bin/mssql-conf setup」でインストール
特定の照合順序の設定
1. 環境変数に照合順序を指定して、セットアップを実行
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-configure-environment-variables
2. インストール後に「mssql-conf」で照合順序を変更
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-configure-mssql-conf
MSSQL_COLLATION=Japanese_XJIS_140_CI_AS /opt/mssql/bin/mssql-conf setup
/opt/mssql/bin/mssql-conf set-collation
sys.fn_helpcollations (Transact-SQL)
https://docs.microsoft.com/ja-jp/sql/relational-databases/system-functions/sys-fn-helpcollations-transact-sql
「SQL Server 構成マネージャー」相当のスクリプトベースの構成ツール
• 「/var/opt/mssql/mssql.conf」に各種設定が出力される
「/opt/mssql/bin/mssql-conf help」 「/opt/mssql/bin/mssql-conf list」
で設定項目を確認
mssql-conf
SQL Server が利用可能な物理メモリの制限
既定では、物理メモリの 80% が利用可能
SELECT
physical_memory_kb
FROM sys.dm_os_sys_info
SELECT
total_physical_memory_kb,
available_physical_memory_kb
FROM sys.dm_os_sys_memory
/opt/mssql/bin/mssql-conf set memory.memorylimitmb <サイズ (MB)>
16 GB の環境の、既定の設定でのメモリ使用状況
参考) SQL Server on Linux の構成のベストプラクティス
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-performance-best-practices
対象 設定内容 設定
SQL Server プロセス / NODE アフィニティの設定 NUMA ノードが 1 ノードの場合でも、「PROCESS AFFINITY」を設定し、SQL Server が使用するプロセッサの
アフィニティを指定
• ALTER SERVER CONFIGURATION
https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-server-configuration-transact-sql
tempdb のデータファイルの設定 SQL Server on Linux では、インストール時の CPU コア数に関わらず、データファイルが 1 ファイルで構成されてい
るため、手動で複数のデータファイル化を実施
• Recommendations to reduce allocation contention in SQL Server tempdb database
https://support.microsoft.com/ja-jp/help/2154845/
mssql-conf によるメモリ上限の設定 既定の設定では物理メモリの 80% までしか利用されないため、残り 20% のサイズによっては、メモリ上限の設定
変更を実施
Linux OS カーネルのハイパフォーマンス設定 (CPU) cpupower / x86_energy_perf_policy / min_perf_pct / max_cstate
カーネルのハイパフォーマンス設定 (ディスク) blockdev / sched_min_granularity_ns / sched_wakeup_granularity_ns / dirty_ratio /
dirty_background_ratio / swappiness
複数 NUMA ノード環境のカーネル設定 numa_balancing
仮想アドレス空間のカーネル設定 max_map_count
マウントオプション noattime オプションの指定
Tip #2 :
SQL Server 2017 の更新プログラム
SQL Server 2017 以降の更新プログラムの提供形態
SQL Server 2017 以降、Service Pack は廃止され、更新は
累積修正プログラム (CU) / 重要な更新プログラム (GDR) で提供
https://support.microsoft.com/ja-jp/help/4041553/
https://blogs.msdn.microsoft.com/sqlreleaseservices/announcing-the-modern-servicing-model-for-sql-server/
リリース後、最初の 12 か月間は毎月 CU が提供
CU の提供状況 (2018/5 時点)
SQL Server on Linux 特有の改善点SQL Server 2017 build versions
https://support.microsoft.com/ja-jp/help/4047329
SQL Server on Linux の CU の適用
Linux では、新しいバージョンのパッケージにアップデートすることで
CU の適用が行われる
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes#release-history
Platform Package update command(s)
RHEL sudo yum update mssql-server
SLES sudo zypper update mssql-server
Ubuntu sudo apt-get update
sudo apt-get install mssql-server
Platform Package update command(s)
RHEL sudo yum downgrade mssql-server-<version_number>.x86_64
SLES sudo zypper install --oldpackage mssql-server=<version_number>
Ubuntu sudo apt-get install mssql-server=<version_number>
sudo systemctl start mssql-server
アップデート ダウングレード
Installation guidance for SQL Server on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup#upgrade
Tip #3 :
SQL Server on Linux の
パフォーマンス情報の取得
SQL Server 固有情報の取得方法
パフォーマンスモニターが使用できないため、SQL Server
固有のパフォーマンス情報については DMV から取得
https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys-
dm-os-performance-counters-transact-sql
cntr_type 取得値の加工方法 値の例
65792 瞬間的な値を示し、値をそのまま利用 SQLServer:Memory Manager¥Database Cache memory (KB)
272696576 1 秒あたりのイベント発生率を示す
後続の値との差を取り、2値間のタイムスタンプの秒数で除算
(A2 – A1) / (A2 Timstamp – A1 Timestamp)
SQLServer:SQL Statistics¥Batch Requests/sec
537003264
1073939712
比率をパーセントで表すことができる値
Base Counter の値で除算することで、比率を算出
RAW_FRACTION (537003264) / RAW_BASE (1073939712) * 100
SQLServer:Buffer Manager¥Buffer cache hit ratio
SQLServer:Buffer Manager¥Buffer cache hit ratio base
SQL Server のパフォーマンスモニタリングの構成例
SQLCAT から公開されている Monitoring Tool から学ぶ
https://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-lab-is-monitoring-sql-on-linux/
https://github.com/Microsoft/mssql-monitoring
https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-data-sources-collectd
Demo
Tip #4 :
SQL Server on Linux で
利用可能な機能
サポートされていない機能
機能領域 サポートされていない機能 / サービス
データベースエンジン トランザクションレプリケーション / マージレプリケーション
ストレッチデータベース
Polybase
3rd Party の接続による分散クエリ
MSDTC を必要とする分散トランザクション
システム拡張ストアドプロシージャ (xp_cmdshell 等)
ファイルテーブル/FILESTREAM
EXTERNAL_ACCESS / UNSAFE な CLR アセンブリの実行 (SQLCLR)
バッファプール拡張
名前付きインスタンス
SQL Server エージェント 次のサブシステム
CmdExec/PowerShell/キューリーダー/SSIS/SSAS/SSRS
警告 / ログリーダーエージェント / 変更データキャプチャ / 管理対象バックアップ
SSMS メンテナンスプラン
データコレクション
機能領域 サポートされていない機能 / サービス
高可用性 データベースミラーリング
セキュリティ 拡張キー管理
OS のローカルアカウントを使用したWindows 認証
AD 認証を使用したリンクサーバー / 可用性グループ
サービス SQL Server Browser
SQL Server R Services (ML Services)
StreamInsight
Analysis Services (SSAS)
Reporting Services (SSRS)
Data Quality Services (DQS)
Master Data Services (MDS)
Release notes for SQL Server 2017 on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes
Editions and supported features of SQL Server 2017 on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-editions-and-components-2017
SSMS の on Linux の接続では、メンテナンスプランが利用できない
代替方法として、次の 2 種類を検討
メンテナンスプラン
Linux 版に接続した場合、
メンテナンスプランは表示されない
DB メンテナンス用 SSIS パッケージの作成
バックアップ先は UNIX 形式で指定 クリーンアップタスクのパスは、
「C:<UNIX 形式のパス>」※で指定
※ファイル削除で使用される「master.dbo.xp_delete_file」が
UNIX 形式のパスの指定では、無効なパラメーターとして認識してしまうため
MSDTC による分散トランザクション
SQL Server on Linux では、MSDTC の利用はできない
• 分散トランザクションの昇格の例 :
• 「BEGIN DISTRIBUTED TRANSACTION」による MSDTC の分散トランザクションの実行
• トランザクション内でリンクサーバー経由でリモート の DB を更新
• Transaction Scope 内で「複数の接続」※
をオープンし、分散トランザクションに昇格
トランザクションの昇格
https://docs.microsoft.com/ja-jp/sql/relational-databases/clr-integration-data-access-transactions/transaction-promotion
DTC のトランザクションに昇格しようとしたが、
MSDTC が使用できないためエラーとなる
DTC を使用したトランザクションの利用の確認
既存環境で、DTC を使用したトランザクションを利用しているか
確認したい場合、次の情報を取得
bcp / sqlcmd は一部の挙動が Windows と異なる
• bcp
参考) コマンドラインツールの動作の違い 1/2
bcp による接続
https://docs.microsoft.com/ja-jp/sql/connect/odbc/linux-mac/connecting-with-bcp
• sqlcmd
参考) コマンドラインツールの動作の違い 2/2
sqlcmd による接続
https://docs.microsoft.com/ja-jp/sql/connect/odbc/linux-mac/connecting-with-sqlcmd
iconv -f Shift-JIS -t UTF-8 /mnt/share/Query.sql ¥
| sed ¥
-e 's/$$var1/de:code 2018/' ¥
-e's/$$var2/DB 管理者/' > Query2.sql
sqlcmd -S xxxx -U xxx -P xxxx -i /mnt/share/Query2.sql
sqlcmd -S xxxxx -U xxxxx -P xxxx
-i E:¥share¥Query.sql
-v Var1="de:code2018"
-v Var2 = "DB 管理者"
SELECT
'$(Var1)' AS C1,
'$(Var2)' AS C2,
'ツール' AS C3
:setvar Var1 "$$var1"
:setvar Var2 "$$var2"
SELECT
'$(Var1)' AS C1,
'$(Var2)' AS C2,
'ツール' AS C3
Demo
Tip #5 :
SQL Server on Linux の
可用性環境の構成
SQL Server on Linux のクラスター環境
https://docs.microsoft.com/ja-jp/sql/sql-server/partner-hadr-sql-server
SQL Server
(Standby)
Configure failover cluster instance - SQL Server on Linux (RHEL)
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-shared-disk-cluster-configure
Availability groups for SQL Server on Linux
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-availability-group-overview
2 台の同期レプリカ + 構成のみのレプリカ
読み取りのスケール / データ保護 / 高可用性
3 台の同期レプリカ
読み取りのスケール / データ保護 / 高可用性
2 台の同期レプリカ
読み取りのスケール / データ保護
AlwaysOn 可用性グループ (AG) のノード数の考慮点
SQL Server on Linux で AG を「自動復旧可能な高可用性環境」※
の
構成とするためには「3 ノード構成」が必要
High availability and data protection for availability group configurations
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-availability-group-ha
※自動フェールオーバー/自動的な更新可能なプライマリへの昇格が
可能な構成
プライマリ レプリカ セカンダリ レプリカ プライマリ レプリカ セカンダリ レプリカ セカンダリ レプリカ プライマリ レプリカ セカンダリ レプリカ 構成のみのレプリカ
メタデータのみ同期
Appendix
SQL Server on Linux 参考情報 1/5
https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-pricing
https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-overview
https://support.microsoft.com/ja-jp/help/4047329/sql-server-2017-build-versions
https://support.microsoft.com/ja-jp/help/4047326/support-policy-for-microsoft-sql-server
https://www.microsoft.com/en-us/sql-server/developer-get-started/
https://www.microsoft.com/ja-jp/sql-server/
https://github.com/Microsoft/sql-server-samples
https://github.com/Microsoft/mssql-server-ha
SQL Server on Linux 参考情報 2/5
https://www.microsoft.com/ja-jp/cloud-platform/documents-search
https://info.microsoft.com/JA-SQLDB-WBNR-FY18-01Jan-19-SQLServer-MCW0002801_02OnDemandRegistration.html
https://info.microsoft.com/JA-SQLDB-WBNR-FY18-02Feb-07-SQLServer2017NewFunctionforLinuxUsers-MCW0002855_02OnDemandRegistration-
ForminBody.html
https://info.microsoft.com/JA-SQLDB-WBNR-FY18-01Jan-31-SQLServerLinuxversion-MCW0002852_02OnDemandRegistration.html
https://info.microsoft.com/JA-AzureOSS-WBNR-FY18-02Feb-27-WebSeminarLetsputSQLServeronLinux-MCW0003096_02OnDemandRegistration-
ForminBody.html
https://info.microsoft.com/JA-SQLDB-WBNR-FY18-03Mar-07-SQLServerSecurityforLinux-MCW0002860_02OnDemandRegistration-
ForminBody.html
SQL Server on Linux 参考情報 3/5
http://www.pass.org/marathon/2017/december/Schedule.aspx
http://www.pass.org/24hours/2018/april/Schedule.aspx
https://mva.microsoft.com/en-US/training-courses/installing-configuring-and-managing-microsoft-sql-server-on-linux-18305
https://info.microsoft.com/SQL-Server-on-Linux-Webinar-OnDemand.html
https://info.microsoft.com/sql-server-on-linux-town-hall-sql-server-agent-on-demand.html
https://info.microsoft.com/sql-server-on-linux-town-hall-backup-on-demand.html
https://info.microsoft.com/sql-server-2017-on-linux-webinar-series.html
https://info.microsoft.com/sql-server-on-linux-town-hall-monitoring-on-demand.html
https://info.microsoft.com/SQLTownHall-Troubleshooting-Techniques-for-SQL-Server-on-Linux-OnDemand.html
SQL Server on Linux 参考情報 4/5
https://info.microsoft.com/sql-server-on-linux-town-hall-high-availability-on-demand.html
https://info.microsoft.com/sql-server-on-linux-town-hall-client-tools-on-demand.html
https://info.microsoft.com/linux-town-hall-sql-server-on-linux-tools-mssql-cli-and-mssql-scripter-on-demand-registration.html
https://info.microsoft.com/sql-server-on-linux-town-hall-security-on-demand.html
https://info.microsoft.com/sql-server-on-linux-town-hall-new-servicing-model-on-demand-registration.html
https://info.microsoft.com/sql-server-on-linux-town-hall-upgrade-migration-OnDemandRegistration.html
https://info.microsoft.com/Configuring-SQL-Server-on-Linux-ondemand.html
https://info.microsoft.com/Always-on-Availability-Groups-on-Kubernetes-and-Open-Shift-Registration.html
https://info.microsoft.com/Migrating-from-Oracle-to-SQL-Server-on-Linux-Registration.html
SQL Server on Linux 参考情報 5/5
https://channel9.msdn.com/Events/Build/2018/BRK3308
https://channel9.msdn.com/Events/Build/2018/BRK3315
https://channel9.msdn.com/Events/Build/2018/BRK2202
https://channel9.msdn.com/Events/Build/2018/BRK3316
© 2018 Microsoft Corporation. All rights reserved.
本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。

More Related Content

What's hot

Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートMasayuki Ozawa
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史Insight Technology, Inc.
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresMasayuki Ozawa
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Masayuki Ozawa
 
Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Masayuki Ozawa
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之Insight Technology, Inc.
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internalsMasayuki Ozawa
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチMasayuki Ozawa
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するMasayuki Ozawa
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓貴仁 大和屋
 
Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802wintechq
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tipsMasayuki Ozawa
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイントMasayuki Ozawa
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたMasayuki Ozawa
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能Masayuki Ozawa
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシートMasayuki Ozawa
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルMasayuki Ozawa
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Oda Shinsuke
 

What's hot (20)

Windows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデートWindows エンジニア向け sql server on linux のためのスキルアップデート
Windows エンジニア向け sql server on linux のためのスキルアップデート
 
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
C12 AlwaysOn 可用性グループとデータベースミラーリングのIO特製の比較 by 多田典史
 
Sql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new featuresSql server 2016 always on 可用性グループ new features
Sql server 2016 always on 可用性グループ new features
 
Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)Oracle と sql server 比べてみよう (sql server)
Oracle と sql server 比べてみよう (sql server)
 
Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果Sql server よく聞く設定とその効果
Sql server よく聞く設定とその効果
 
DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016DBTS2015_B35_SQLServer2016
DBTS2015_B35_SQLServer2016
 
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之C34 Always On 可用性グループ 構築時のポイント by 小澤真之
C34 Always On 可用性グループ 構築時のポイント by 小澤真之
 
Sql server data store data access internals
Sql server data store data access internalsSql server data store data access internals
Sql server data store data access internals
 
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチSql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
Sql server エンジニアに知ってもらいたい!! sql server チューニングアプローチ
 
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解するdb tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
db tech showcase 2019 SQL Database Hyperscale 徹底分析 - 最新アーキテクチャの特徴を理解する
 
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓SQL Server運用実践 - 3年間80台の運用経験から20の教訓
SQL Server運用実践 - 3年間80台の運用経験から20の教訓
 
Sql server 運用 101
Sql server 運用 101Sql server 運用 101
Sql server 運用 101
 
Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802Ws2012フェールオーバークラスタリングdeep dive 130802
Ws2012フェールオーバークラスタリングdeep dive 130802
 
Sql server 構築 運用 tips
Sql server 構築 運用 tipsSql server 構築 運用 tips
Sql server 構築 運用 tips
 
待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント待ち事象から考える、Sql server の改善ポイント
待ち事象から考える、Sql server の改善ポイント
 
オンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみたオンプレのDbaがazureのデータベースを使ってみた
オンプレのDbaがazureのデータベースを使ってみた
 
SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能SQL Server 2014 データベースエンジン新機能
SQL Server 2014 データベースエンジン新機能
 
Managed Instance チートシート
Managed Instance チートシートManaged Instance チートシート
Managed Instance チートシート
 
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアルCOD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
COD2012 T2/T3 : 実機で試す SQL Server の現状取得 ハンズオンマニュアル
 
Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版Sql server 2014 新機能の紹介 改訂版
Sql server 2014 新機能の紹介 改訂版
 

Similar to de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips

[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...Insight Technology, Inc.
 
Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Norio Sashizaki
 
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)Tomoyuki Oota
 
Microsoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようMicrosoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようNorio Sashizaki
 
System Center Operations Manager 2019
System Center Operations Manager 2019System Center Operations Manager 2019
System Center Operations Manager 2019Norio Sashizaki
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理Oshitari_kochi
 
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseMicrosoft
 
Windows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewWindows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewKazuki Takai
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell CoreKazuki Takai
 
SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門Tomoyuki Oota
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門Insight Technology, Inc.
 
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性de:code 2017
 
[簡易提案書] Windows Server2019
[簡易提案書] Windows Server2019[簡易提案書] Windows Server2019
[簡易提案書] Windows Server2019Toshihiko Sawaki
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!decode2016
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 日本マイクロソフト株式会社
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版Kishima Masakazu
 
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプTech Summit 2016
 
Linux and System Center Operations Manager
Linux and System Center Operations ManagerLinux and System Center Operations Manager
Linux and System Center Operations ManagerNorio Sashizaki
 

Similar to de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips (20)

[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
[db tech showcase Tokyo 2017] E26: 窓は開かれた! SQL Server on Linux で拡がる可能性 by 日本マ...
 
Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}Hyper-V + Linux {which Microsoft Loves}
Hyper-V + Linux {which Microsoft Loves}
 
Monitoring あれこれ
Monitoring あれこれMonitoring あれこれ
Monitoring あれこれ
 
SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)SQL Server コンテナ入門(Docker編)
SQL Server コンテナ入門(Docker編)
 
Microsoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみようMicrosoft製品でOSSを監視してみよう
Microsoft製品でOSSを監視してみよう
 
System Center Operations Manager 2019
System Center Operations Manager 2019System Center Operations Manager 2019
System Center Operations Manager 2019
 
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
SQL Beginners Day #1 - SQL Server および Azure SQL のインストールと管理
 
[Japan Tech summit 2017] DAL 001
[Japan Tech summit 2017]  DAL 001[Japan Tech summit 2017]  DAL 001
[Japan Tech summit 2017] DAL 001
 
SQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain JapaneseSQL Server 2022 New Features Explain Japanese
SQL Server 2022 New Features Explain Japanese
 
Windows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition OverviewWindows Server 2022 Datacenter Azure Edition Overview
Windows Server 2022 Datacenter Azure Edition Overview
 
Recap: PowerShell Core
Recap: PowerShell CoreRecap: PowerShell Core
Recap: PowerShell Core
 
SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門SQL Server エンジニア のための コンテナ入門
SQL Server エンジニア のための コンテナ入門
 
SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門SQL Server エンジニアのためのコンテナ入門
SQL Server エンジニアのためのコンテナ入門
 
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性
[DI01] 窓は開かれた! SQL Server on Linux で拡がる可能性
 
[簡易提案書] Windows Server2019
[簡易提案書] Windows Server2019[簡易提案書] Windows Server2019
[簡易提案書] Windows Server2019
 
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
INF-009_PowerShell を 使いこなして、自動化対応 エンジニア になろう!!
 
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること 【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
【BS11】毎年訪れる .NET のメジャーバージョンアップに備えるために取り組めること
 
SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版SC2012 VMM SP1 Update ヒーロー島 版
SC2012 VMM SP1 Update ヒーロー島 版
 
Cld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプCld002 windows server_2016_で作るシンプ
Cld002 windows server_2016_で作るシンプ
 
Linux and System Center Operations Manager
Linux and System Center Operations ManagerLinux and System Center Operations Manager
Linux and System Center Operations Manager
 

More from Masayuki Ozawa

Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheetMasayuki Ozawa
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)Masayuki Ozawa
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモMasayuki Ozawa
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得Masayuki Ozawa
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターMasayuki Ozawa
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料Masayuki Ozawa
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料Masayuki Ozawa
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep diveMasayuki Ozawa
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスMasayuki Ozawa
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Masayuki Ozawa
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるにはMasayuki Ozawa
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようMasayuki Ozawa
 

More from Masayuki Ozawa (12)

Power apps formula cheat sheet
Power apps formula cheat sheetPower apps formula cheat sheet
Power apps formula cheat sheet
 
K8s install (single cluster)
K8s install (single cluster)K8s install (single cluster)
K8s install (single cluster)
 
Pacemaker 操作方法メモ
Pacemaker 操作方法メモPacemaker 操作方法メモ
Pacemaker 操作方法メモ
 
ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得ここからはじめる SQL Server の状態取得
ここからはじめる SQL Server の状態取得
 
SQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンターSQL Server パフォーマンスカウンター
SQL Server パフォーマンスカウンター
 
SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料SQL Server 簡易診断サービス ご紹介資料
SQL Server 簡易診断サービス ご紹介資料
 
SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料SQL Server 現状診断サービス ご紹介資料
SQL Server 現状診断サービス ご紹介資料
 
A25 sql server data page structure deep dive
A25 sql server data page structure deep diveA25 sql server data page structure deep dive
A25 sql server data page structure deep dive
 
Data consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンスData consistency 入門 data partitioning ガイダンス
Data consistency 入門 data partitioning ガイダンス
 
Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介Sql database 基本構成と直近で追加されていた機能の紹介
Sql database 基本構成と直近で追加されていた機能の紹介
 
和牛をおいしく食べるには
和牛をおいしく食べるには和牛をおいしく食べるには
和牛をおいしく食べるには
 
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみようSql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
Sql serverデータアクセスの基本動作。荒ぶった方法で確認してみよう
 

de:code 2018 DA06 SQL Server 管理者におくる SQL Server on Linux Tips

  • 1. SQL Server 管理者におくる SQL Server on Linux Tips DA06
  • 2. 本日の内容 SQL Server on Linux SQL Server on Linux Tips • Tip #1 : • Tip #4 : https://github.com/MasayukiOzawa/decode-2018-demo
  • 4. SQL Server は稼働プラットフォームを選択可能に • Windows Server / Windows Client • RedHat Enterprise Linux (RHEL) 7.3/7.4 • SUSE Enterprise Linux (SLES) v12 SP2 • Ubuntu 16.04 LTS • Docker: Windows & Linux containers Windows Linux/Windows container Linux メモリ 2 GB ※ ファイルシステム XFS or EXT4 (and NFS 4.2 以上) ディスク領域 6 GB プロセッサ速度 2 GHz プロセッサコア 2 Cores プロセッサの種類 X64 と互換性のある CPU のみ Installation guidance for SQL Server on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup Technical support policy for Microsoft SQL Server https://support.microsoft.com/ja-jp/help/4047326/support-policy-for-microsoft-sql-server
  • 5. SQL Server on Linux Windows Linux エディション Developer, Express, Web, Standard, Enterprise   サービス Database Engine, Integration Services   ML Services, Analysis Services, Reporting Services, MDS, DQS  ミッションクリティカル パフォーマンス 最大コア数 無制限 無制限 インスタンスごとの最大メモリサイズ 24 TB 12 TB 最大データデータベースサイズ 524 PB 524 PB 基本的な OLTP (Basic In-Memory OLTP, Basic operational analytics)   高度な OLTP (Advanced In-Memory OLTP, Advanced operational analytics, adaptive query processing)   基本的な高可用性 (2 ノード 単一データベースのフェールオーバー, 読み取り不可能なセカンダリ)   高度な高可用性 (複数ノードの Always On, 複数データベースのフェールオーバー, 読み取り可能なセカンダリ)   セキュリティ 基本的なセキュリティ (基本的な監査, 行レベルセキュリティ, 動的データマスク, Always Encrypted)   高度なセキュリティ (透過的なデータ暗号化 (TDE : Transparent Data Encryption))   データウェアハウス PolyBase  基本的なデータウェアハウス/データマート (基本的な In-Memory 列ストア, パーティショニング, 圧縮)   高度なデータウェアハウス(高度な In-Memory 列ストア)   高度なデータ統合 (あいまいグループ化と参照)   ツール Windows エコシステム : 全機能の管理 & 開発ツール (SSMS & SSDT), コマンドラインツール   Linux/OSX/Windows エコシステム : 開発ツール (VS Code), DB 管理のための GUI ツール (SQL Operations Studio ), コマンドラインツール   開発 プログラミング (T-SQL, CLR, Data Types, JSON, Graph)   Windows ファイルシステム統合 – File テーブル  BI & 高度な解析 企業のビジネスインテリジェンス (多次元モデル, 基本的な表形式モデル)  Machine Learning Services (R / Python 統合)  ハイブリッドクラウド Stretch Database 
  • 6. SQL Server SQL Server on Linux Architecture SQL OS Direct API SQL OS v2 Win32 like APIs Library OS Database Engine SSIS Linux Host Extension Mapping to OS System Call (IO / Memory / CPU Scheduling) Linux Kernel
  • 7. SQL Server 用ツールの提供状況 ツール GUI SQL Server Management Studio SQL Server の標準的な管理ツール ✔ Visual Studio Code クロスプラットフォームに対応した高機能エディター SQL Server 向けの拡張機能の追加によりクエリ実行が可能 https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-develop-use-vscode ✔ ✔ Microsoft SQL Operations Studio クロスプラットフォームに対応した GUI の管理ツール https://github.com/Microsoft/sqlopsstudio ✔ ✔ CUI sqlcmd コマンドラインから T-SQL を実行 ✔ ✔ bcp コマンドラインでデータをインポート / エクスポート ✔ ✔ mssql-scripter スキーマ定義 / データ INSERT 用スクリプトを生成する Python ベースのツール https://github.com/Microsoft/sql-xplat-cli ✔ ✔ DBFS FUSE を使用してDMV / カスタムクエリで取得したデータを 仮想ファイルシステムとしマウントするツール https://github.com/Microsoft/dbfs ✔ mssql-cli 新しいコマンドラインツール 対話型のクエリ実行を、入力補完を使用しながら実行可能 https://github.com/dbcli/mssql-cli 今後のリリースでパイプによるコマンドラインの連携/出力データフォーマットの拡充/非対話型実行等を サポート予定 https://github.com/dbcli/mssql-cli/blob/master/doc/roadmap.md ✔ ✔ PowerShell SQL Server PowerShell モジュールのフルセットを使用可能 https://docs.microsoft.com/ja-jp/sql/powershell/download-sql-server-ps-module ✔ PowerShell Core 6.0 クロスプラットフォーム対応の PowerShell 2018/5 時点ではSQL Server PowerShell モジュールのサブセットを使用可能 https://www.powershellgallery.com/packages/Sqlserver/ ✔ ✔
  • 8. プロセスとディレクトリ構成 プロセスの構成 ディレクトリ構成 SQLPAL Monitor SQLPAL / sqlservr.exe SSIS は「/opt/ssis」「/var/opt/ssis」が使用されるが、関係性については mssql と同様
  • 10. データベースの互換性 互換性レベル 100 SQL Server 2008 110 SQL Server 2012 120 SQL Server 2014 130 SQL Server 2016 140 SQL Server 2017 ALTER DATABASE (Transact-SQL) 互換性レベル https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-database-transact-sql-compatibility-level
  • 11. SQL Server on Linux のログ 次のログを利用することができる RAISERROR (Transact-SQL) https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/raiserror-transact-sql RAISERROR WITH LOG でメッセージを出力することも可能※ (Windows の場合、WITH LOG はイベントログに出力される) マクロ名 出力内容 programname sqlservr facility daemon priority info ※出力するメッセージはシングルバイト文字を使用または、メッセージを 出力するログインの言語設定は「English」の利用を検討 2 バイト文字については、syslog の出力が想定通り行われないことがある Troubleshoot SQL Server on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-troubleshooting-guide
  • 12. Demo
  • 13. Tip #1 : SQL Server on Linux の インストールと構成変更ツール
  • 14. SQL Server on Linux のインストール 「/opt/mssql/bin/mssql-conf setup」でインストール
  • 16. 「SQL Server 構成マネージャー」相当のスクリプトベースの構成ツール • 「/var/opt/mssql/mssql.conf」に各種設定が出力される 「/opt/mssql/bin/mssql-conf help」 「/opt/mssql/bin/mssql-conf list」 で設定項目を確認 mssql-conf
  • 17. SQL Server が利用可能な物理メモリの制限 既定では、物理メモリの 80% が利用可能 SELECT physical_memory_kb FROM sys.dm_os_sys_info SELECT total_physical_memory_kb, available_physical_memory_kb FROM sys.dm_os_sys_memory /opt/mssql/bin/mssql-conf set memory.memorylimitmb <サイズ (MB)> 16 GB の環境の、既定の設定でのメモリ使用状況
  • 18. 参考) SQL Server on Linux の構成のベストプラクティス https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-performance-best-practices 対象 設定内容 設定 SQL Server プロセス / NODE アフィニティの設定 NUMA ノードが 1 ノードの場合でも、「PROCESS AFFINITY」を設定し、SQL Server が使用するプロセッサの アフィニティを指定 • ALTER SERVER CONFIGURATION https://docs.microsoft.com/ja-jp/sql/t-sql/statements/alter-server-configuration-transact-sql tempdb のデータファイルの設定 SQL Server on Linux では、インストール時の CPU コア数に関わらず、データファイルが 1 ファイルで構成されてい るため、手動で複数のデータファイル化を実施 • Recommendations to reduce allocation contention in SQL Server tempdb database https://support.microsoft.com/ja-jp/help/2154845/ mssql-conf によるメモリ上限の設定 既定の設定では物理メモリの 80% までしか利用されないため、残り 20% のサイズによっては、メモリ上限の設定 変更を実施 Linux OS カーネルのハイパフォーマンス設定 (CPU) cpupower / x86_energy_perf_policy / min_perf_pct / max_cstate カーネルのハイパフォーマンス設定 (ディスク) blockdev / sched_min_granularity_ns / sched_wakeup_granularity_ns / dirty_ratio / dirty_background_ratio / swappiness 複数 NUMA ノード環境のカーネル設定 numa_balancing 仮想アドレス空間のカーネル設定 max_map_count マウントオプション noattime オプションの指定
  • 19. Tip #2 : SQL Server 2017 の更新プログラム
  • 20. SQL Server 2017 以降の更新プログラムの提供形態 SQL Server 2017 以降、Service Pack は廃止され、更新は 累積修正プログラム (CU) / 重要な更新プログラム (GDR) で提供 https://support.microsoft.com/ja-jp/help/4041553/ https://blogs.msdn.microsoft.com/sqlreleaseservices/announcing-the-modern-servicing-model-for-sql-server/ リリース後、最初の 12 か月間は毎月 CU が提供
  • 21. CU の提供状況 (2018/5 時点) SQL Server on Linux 特有の改善点SQL Server 2017 build versions https://support.microsoft.com/ja-jp/help/4047329
  • 22. SQL Server on Linux の CU の適用 Linux では、新しいバージョンのパッケージにアップデートすることで CU の適用が行われる https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes#release-history Platform Package update command(s) RHEL sudo yum update mssql-server SLES sudo zypper update mssql-server Ubuntu sudo apt-get update sudo apt-get install mssql-server Platform Package update command(s) RHEL sudo yum downgrade mssql-server-<version_number>.x86_64 SLES sudo zypper install --oldpackage mssql-server=<version_number> Ubuntu sudo apt-get install mssql-server=<version_number> sudo systemctl start mssql-server アップデート ダウングレード Installation guidance for SQL Server on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-setup#upgrade
  • 23. Tip #3 : SQL Server on Linux の パフォーマンス情報の取得
  • 24. SQL Server 固有情報の取得方法 パフォーマンスモニターが使用できないため、SQL Server 固有のパフォーマンス情報については DMV から取得 https://docs.microsoft.com/ja-jp/sql/relational-databases/system-dynamic-management-views/sys- dm-os-performance-counters-transact-sql cntr_type 取得値の加工方法 値の例 65792 瞬間的な値を示し、値をそのまま利用 SQLServer:Memory Manager¥Database Cache memory (KB) 272696576 1 秒あたりのイベント発生率を示す 後続の値との差を取り、2値間のタイムスタンプの秒数で除算 (A2 – A1) / (A2 Timstamp – A1 Timestamp) SQLServer:SQL Statistics¥Batch Requests/sec 537003264 1073939712 比率をパーセントで表すことができる値 Base Counter の値で除算することで、比率を算出 RAW_FRACTION (537003264) / RAW_BASE (1073939712) * 100 SQLServer:Buffer Manager¥Buffer cache hit ratio SQLServer:Buffer Manager¥Buffer cache hit ratio base
  • 25. SQL Server のパフォーマンスモニタリングの構成例 SQLCAT から公開されている Monitoring Tool から学ぶ https://blogs.msdn.microsoft.com/sqlcat/2017/07/03/how-the-sqlcat-customer-lab-is-monitoring-sql-on-linux/ https://github.com/Microsoft/mssql-monitoring https://docs.microsoft.com/ja-jp/azure/log-analytics/log-analytics-data-sources-collectd
  • 26. Demo
  • 27. Tip #4 : SQL Server on Linux で 利用可能な機能
  • 28. サポートされていない機能 機能領域 サポートされていない機能 / サービス データベースエンジン トランザクションレプリケーション / マージレプリケーション ストレッチデータベース Polybase 3rd Party の接続による分散クエリ MSDTC を必要とする分散トランザクション システム拡張ストアドプロシージャ (xp_cmdshell 等) ファイルテーブル/FILESTREAM EXTERNAL_ACCESS / UNSAFE な CLR アセンブリの実行 (SQLCLR) バッファプール拡張 名前付きインスタンス SQL Server エージェント 次のサブシステム CmdExec/PowerShell/キューリーダー/SSIS/SSAS/SSRS 警告 / ログリーダーエージェント / 変更データキャプチャ / 管理対象バックアップ SSMS メンテナンスプラン データコレクション 機能領域 サポートされていない機能 / サービス 高可用性 データベースミラーリング セキュリティ 拡張キー管理 OS のローカルアカウントを使用したWindows 認証 AD 認証を使用したリンクサーバー / 可用性グループ サービス SQL Server Browser SQL Server R Services (ML Services) StreamInsight Analysis Services (SSAS) Reporting Services (SSRS) Data Quality Services (DQS) Master Data Services (MDS) Release notes for SQL Server 2017 on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-release-notes Editions and supported features of SQL Server 2017 on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-editions-and-components-2017
  • 29. SSMS の on Linux の接続では、メンテナンスプランが利用できない 代替方法として、次の 2 種類を検討 メンテナンスプラン Linux 版に接続した場合、 メンテナンスプランは表示されない
  • 30. DB メンテナンス用 SSIS パッケージの作成 バックアップ先は UNIX 形式で指定 クリーンアップタスクのパスは、 「C:<UNIX 形式のパス>」※で指定 ※ファイル削除で使用される「master.dbo.xp_delete_file」が UNIX 形式のパスの指定では、無効なパラメーターとして認識してしまうため
  • 31. MSDTC による分散トランザクション SQL Server on Linux では、MSDTC の利用はできない • 分散トランザクションの昇格の例 : • 「BEGIN DISTRIBUTED TRANSACTION」による MSDTC の分散トランザクションの実行 • トランザクション内でリンクサーバー経由でリモート の DB を更新 • Transaction Scope 内で「複数の接続」※ をオープンし、分散トランザクションに昇格 トランザクションの昇格 https://docs.microsoft.com/ja-jp/sql/relational-databases/clr-integration-data-access-transactions/transaction-promotion DTC のトランザクションに昇格しようとしたが、 MSDTC が使用できないためエラーとなる
  • 33. bcp / sqlcmd は一部の挙動が Windows と異なる • bcp 参考) コマンドラインツールの動作の違い 1/2 bcp による接続 https://docs.microsoft.com/ja-jp/sql/connect/odbc/linux-mac/connecting-with-bcp
  • 34. • sqlcmd 参考) コマンドラインツールの動作の違い 2/2 sqlcmd による接続 https://docs.microsoft.com/ja-jp/sql/connect/odbc/linux-mac/connecting-with-sqlcmd iconv -f Shift-JIS -t UTF-8 /mnt/share/Query.sql ¥ | sed ¥ -e 's/$$var1/de:code 2018/' ¥ -e's/$$var2/DB 管理者/' > Query2.sql sqlcmd -S xxxx -U xxx -P xxxx -i /mnt/share/Query2.sql sqlcmd -S xxxxx -U xxxxx -P xxxx -i E:¥share¥Query.sql -v Var1="de:code2018" -v Var2 = "DB 管理者" SELECT '$(Var1)' AS C1, '$(Var2)' AS C2, 'ツール' AS C3 :setvar Var1 "$$var1" :setvar Var2 "$$var2" SELECT '$(Var1)' AS C1, '$(Var2)' AS C2, 'ツール' AS C3
  • 35. Demo
  • 36. Tip #5 : SQL Server on Linux の 可用性環境の構成
  • 37. SQL Server on Linux のクラスター環境 https://docs.microsoft.com/ja-jp/sql/sql-server/partner-hadr-sql-server SQL Server (Standby) Configure failover cluster instance - SQL Server on Linux (RHEL) https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-shared-disk-cluster-configure Availability groups for SQL Server on Linux https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-availability-group-overview
  • 38. 2 台の同期レプリカ + 構成のみのレプリカ 読み取りのスケール / データ保護 / 高可用性 3 台の同期レプリカ 読み取りのスケール / データ保護 / 高可用性 2 台の同期レプリカ 読み取りのスケール / データ保護 AlwaysOn 可用性グループ (AG) のノード数の考慮点 SQL Server on Linux で AG を「自動復旧可能な高可用性環境」※ の 構成とするためには「3 ノード構成」が必要 High availability and data protection for availability group configurations https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-availability-group-ha ※自動フェールオーバー/自動的な更新可能なプライマリへの昇格が 可能な構成 プライマリ レプリカ セカンダリ レプリカ プライマリ レプリカ セカンダリ レプリカ セカンダリ レプリカ プライマリ レプリカ セカンダリ レプリカ 構成のみのレプリカ メタデータのみ同期
  • 40. SQL Server on Linux 参考情報 1/5 https://www.microsoft.com/ja-jp/sql-server/sql-server-2017-pricing https://docs.microsoft.com/ja-jp/sql/linux/sql-server-linux-overview https://support.microsoft.com/ja-jp/help/4047329/sql-server-2017-build-versions https://support.microsoft.com/ja-jp/help/4047326/support-policy-for-microsoft-sql-server https://www.microsoft.com/en-us/sql-server/developer-get-started/ https://www.microsoft.com/ja-jp/sql-server/ https://github.com/Microsoft/sql-server-samples https://github.com/Microsoft/mssql-server-ha
  • 41. SQL Server on Linux 参考情報 2/5 https://www.microsoft.com/ja-jp/cloud-platform/documents-search https://info.microsoft.com/JA-SQLDB-WBNR-FY18-01Jan-19-SQLServer-MCW0002801_02OnDemandRegistration.html https://info.microsoft.com/JA-SQLDB-WBNR-FY18-02Feb-07-SQLServer2017NewFunctionforLinuxUsers-MCW0002855_02OnDemandRegistration- ForminBody.html https://info.microsoft.com/JA-SQLDB-WBNR-FY18-01Jan-31-SQLServerLinuxversion-MCW0002852_02OnDemandRegistration.html https://info.microsoft.com/JA-AzureOSS-WBNR-FY18-02Feb-27-WebSeminarLetsputSQLServeronLinux-MCW0003096_02OnDemandRegistration- ForminBody.html https://info.microsoft.com/JA-SQLDB-WBNR-FY18-03Mar-07-SQLServerSecurityforLinux-MCW0002860_02OnDemandRegistration- ForminBody.html
  • 42. SQL Server on Linux 参考情報 3/5 http://www.pass.org/marathon/2017/december/Schedule.aspx http://www.pass.org/24hours/2018/april/Schedule.aspx https://mva.microsoft.com/en-US/training-courses/installing-configuring-and-managing-microsoft-sql-server-on-linux-18305 https://info.microsoft.com/SQL-Server-on-Linux-Webinar-OnDemand.html https://info.microsoft.com/sql-server-on-linux-town-hall-sql-server-agent-on-demand.html https://info.microsoft.com/sql-server-on-linux-town-hall-backup-on-demand.html https://info.microsoft.com/sql-server-2017-on-linux-webinar-series.html https://info.microsoft.com/sql-server-on-linux-town-hall-monitoring-on-demand.html https://info.microsoft.com/SQLTownHall-Troubleshooting-Techniques-for-SQL-Server-on-Linux-OnDemand.html
  • 43. SQL Server on Linux 参考情報 4/5 https://info.microsoft.com/sql-server-on-linux-town-hall-high-availability-on-demand.html https://info.microsoft.com/sql-server-on-linux-town-hall-client-tools-on-demand.html https://info.microsoft.com/linux-town-hall-sql-server-on-linux-tools-mssql-cli-and-mssql-scripter-on-demand-registration.html https://info.microsoft.com/sql-server-on-linux-town-hall-security-on-demand.html https://info.microsoft.com/sql-server-on-linux-town-hall-new-servicing-model-on-demand-registration.html https://info.microsoft.com/sql-server-on-linux-town-hall-upgrade-migration-OnDemandRegistration.html https://info.microsoft.com/Configuring-SQL-Server-on-Linux-ondemand.html https://info.microsoft.com/Always-on-Availability-Groups-on-Kubernetes-and-Open-Shift-Registration.html https://info.microsoft.com/Migrating-from-Oracle-to-SQL-Server-on-Linux-Registration.html
  • 44. SQL Server on Linux 参考情報 5/5 https://channel9.msdn.com/Events/Build/2018/BRK3308 https://channel9.msdn.com/Events/Build/2018/BRK3315 https://channel9.msdn.com/Events/Build/2018/BRK2202 https://channel9.msdn.com/Events/Build/2018/BRK3316
  • 45. © 2018 Microsoft Corporation. All rights reserved. 本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。