SQLSERVER

CentOS インストール実機 x SQLSERVER on Linux

オフィスの中に転がっているPCに、CentOSを入れようとしたが、
起動しなかったりと、面倒なので、
省スペース型PCに、インストールしてみることに。

 

ヤフオクで探してみると、HPのThin Clientが安売りされている。

https://page.auctions.yahoo.co.jp/jp/auction/l417363451

2010年ごろに発売された機体で、CPU1GHzと弱小だが、
Linuxを入れるには十分なスペック(だと思う)

※シンクライアント (Thin client) とは、ユーザーが使うクライアント端末に必要最小限の処理をさせ、ほとんどの処理をサーバ側に集中させたシステムアーキテクチャ全般のことを言う。

>> Thin Client @Wikipedia 

フラッシュメモリー(小容量のSSD)にWindowsが入っているが、
IDE HDDに交換して使える様子。
※普通の44pinのIDEケーブルのようだが、MB側オス/フラッシュメモリー側メスと反対になっているようで、変換ケーブルが要るらしい。(普通のIDEの仕様は、MB側メス/HDDメス)
>> 変換名人 2.5″IDE HDD接続ケーブル 44ピンIDE(メス-メス) IDE-44BB @Amazon

http://speedhelp.net/Bilder/ThinClient/HP/hp_t5730_new_5.jpg

オフィスに転がっている使わなくなったSSDがあるはずだが、
サブメイン機のSSDを入れ替えようと思って、
Amazon探してみたところ、2017年1月に購入済みとあり、
結局、入れ替えようと持ったが、そのまま忘れてしまっている様子・・・

現在、11480円となっているが、購入時は7480円!

 

サブメイン機のSSD入替えて、余ったSSDをこのシンクラに移植。

mSATAなので、44pinIDEに変換ケースで、接続。

 

参考

-

SQLSERVER Expressのバックアップ

ありがたいことに、無料で使わせて頂ける、SQLSERVER Express

SQL Server 2017 Express エディション

このエントリ レベルの無料のデータベースで、最大 10 GB サイズの小規模なデータ ドリブンの Web アプリケーションとモバイル アプリケーションを構築します。

10GBを、小規模というのだろうか?

1日~1500件の受注をしている物流システムを作っていたが、
10GBには達していなかったと思うので、
結構、使えるわけですよ。
フルバックアップファイルは、20GBとかになっていましたが。

※有償のSQLSERVER Standardを使用

おまけに、SQLSERVER Management Studio(SSMS)まで無料なので、
※データベースの操作をするソフト
使わない手はないわけで、

弥生会計も、このSQLSERVER Expressを使っています。

 

なにより、商用でも無償で使えるのがありがたいが、機能制限がされており、

  • レプリケーション/ミラー(冗長性)
  • ジョブ(スケジュール)

など、バックアップ系が全くダメだけど、
参 >> ここまで使えるSQL Server Express Edition @IT

外部のジョブ機能を使うなりして、なんとか凌ぐわけですが、
ダウンタイム最小に!ということで、

まず、

SQLSERVERを、GoogleDriveにバックアップ

直接、GoogleDriveにDATAと、BACKUPを作って、指定しようすると怒られるので、

  1. SQLSERVERを停止する。(ファイルのロックを解除する)
  2. \Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL以下にある、DATA / Backupを、まるごとGoogle Driveにコピーする。
  3. Google Drive上のDATA/Backupのシンボリックリンクを、\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL に作る。
    ※大事なことは、Google Drive上にメインデータを置くことです。

シンボリックリンクは、コマンドプロンプトを、管理者モードで起動し、

CD \Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL
mklink /d DATA "\Users\ユーザー名\Google ドライブ\DATA"
mklink /d Backup "\Users\ユーザー名\Google ドライブ\Backup"

を実行。

※ユーザー名のところだけ、書き換え

参 >> Windowsのシンボリックリンクとジャンクションとハードリンクの違い

  1. SQLSERVERを再開する

以上で、自動的に、ファイルがクラウド上にコピーされます。
※おそらく、SQLSERVERの停止時=Windowsの再起動時に、ファイルが保存され、起動時に、クラウドに反映されていると思います。

追記 >> 実際にやってみたら、ファイルがロックされていて、同期が出来ません!

SQLSERVER Expressの定期バックアップを作る

メインファイル以外にも、一般的なスケジュールによるバックアップもやっておきましょう。

Expressでは、ジョブが使えないので、代案として、

  • Windowsのタスクでバックアップ
  • 運用するソフト上で、タイマーを使ってバックアップ

いずれも、上記の設定で、Backupに保存すれば、自動的にクラウド上に保存されます。

例 >>

BACKUP DATABASE [TestDB] TO DISK = N'C:\backup\TestDB.bak' WITH NOFORMAT, NOINIT, NAME = N'TestDB-完全 データベース バックアップ', SKIP, NOREWIND, NOUNLOAD, STATS = 10
 GO

参 >> SQL Server Expressで自動バックアップを作成する方法

 

SQLSERVER Express の冗長化

クラスタ・ミラーが使えないので、別のPCにSQLSERVERを用意しましょう。

追記 >> 上記の通り、コピーさせてくれないので、コールドスタンバイにバックアップから、復元してやるしか、方法はないようです。

  1. 同様にシンボリックリンクを作り、
  2. 起動時に自動実行されないように、サービスを手動にしておきます。=コールドスタンバイ

PCが故障しないかぎり、眠ったままとなりますが、
万が一の時は、

  1. サービスを起動し、
  2. 最新のデータかどうかだけ確認し、
    (足りない時は、バックアップから復元)
  3. 問題なければ、データベースの接続先を変更

死んだPCから、データを抜く必要もないため、ダウンタイムは最小になるはずです。

 

-