SQL Server on Linux

現在、うちで開発している主力製品のサブシリーズのデータベースは、
Microsoft SQLServer Expressで動いているが、
クライアント兼サーバー(親子)としているので、
その機を不意に再起動してしまうと、全滅してしまう・・・

ということで、

別にサーバーを立ててくれとの要望があり、
単独でとなると、やはりそれなりの気を使う。

 

そもそも、親子で使っているのが間違っているんだが、
PC1台分のコストでも、下げてあげたい。
と思った訳だけど、

出来ることなら、別にして、せめて

  • RAID0でも組んだPC上に、(BIOS RAIDでもいい)
  • サーバーOSを載せた上で、

データベース・サーバーぐらいは、動かしたい!

***

ということで、サーバーOSにWindowsを選ぶと、
楽ちんだけど、お金がかかるので、
やっぱり、

帝王のLINUXの登場となる。

「SQL Server Linux」で検索してみると、
まさかと思ったけど、リリースしている。

Editions and supported features of SQL Server 2017 on Linux

SQL Server のエディションを選択します:
1) Evaluation (無料、製品使用権なし、期限 180 日間)
2) Developer (無料、製品使用権なし)
3) Express (無料)
4) Web (有料)
5) Standard (有料)
6) Enterprise (有料)

Expressもあり、無償みたいなので、
OS・DBサーバーともに、無料で使えそう。

※小規模のデータベースで、On Linuxなら、
Mysqlやpostgresqlでいいんだけど、
これまで、SQL Server で構築してきたノウハウがある分、
SQL Serverを選んでしまう。

 

古いPentium D機をRAID 0したやつが、どっかに転がっていたはずなので、
とりあえず、運用テストでもしてみることに。

 

続く。

PS.
Red Hat系Linuxの派生。
途中で消えたやつもあったり、まだ生きてるやつが居たり。
でも、2012年でツリーの更新終了?(笑

Red Hat Family Tree / Wikipedia
-

Delphi 2010 + Unicode

?ステップアップグレードのススメ

  • ?Win9x対応最終版 → Delphi 7
  • Ansi対応最終版 → Delphi 2007
  • Unicode 対応版 → Delphi 2009

Delphi 2009ではじめるUnicodeアプリケーション – 既存コード移行のポイント –?より

D7 > DXE に上げようとしたけど、いろいろと互換性に躓いたので、
いったん、D2010に上げようとしたんだけども、

型の修正は、まーそれなりに、置換するだけでよかったんだけども、、、

  • String > AnsiString
  • array [0.. 1 -1] of Char > array [0.. 1 -1] of AnsiChar

今回、Sqlserver2008 のText型で、どっぷり1年悩まされた・・・

?nTextなら、と思ったけど、結果は同じ。

varcharは、普通に表示されるんだけど、
text型が、途中で見切れる。(ちょうど半分)

原因は、絶対Unicode

日本には、ずばりの回答がなく、
これだけは、英語圏の案件を調べても、マルチバイト文字なだけに、
事例がなく、困り果てていたが、

やっところさ、糸口が・・・

?TMemoField > TWideMemoFIeld

たった、これだけ・・・

BlobTypeは、ftMemoのままで、おk

ながかった・・・。ようやく・・・

追伸。
Sqlserver側の型をText > nTextにもしないと、だめみたいです。
あと、TMemoFieldのまま、nTextを読み込んでも、文字化けします。

追伸。
ntext?text、および?image?の各データ型は、将来のバージョンの Microsoft SQL Server で削除される予定です。
代わりに、nvarchar(max)varchar(max)varbinary(max)?を使用してください。
http://msdn.microsoft.com/ja-jp/library/ms187993.aspx より

試してみたところ、Delphi7で作ったソフトからも、
nText、nvarchar(max)ともに、読み書き正常でした。

-