5分で出来る!HTTPサーバonWindows10

初心者・未経験でITの世界に飛び込む方がどんどん増えてるみたいですね。

そういう方向けの教育+転職支援サービスもあるようで。

私が仕事を探していた頃にそういうものがあれば、活用していたかも知れません。

していないかも知れません。やっぱり独学だったような気もします。

 

ですが、「とにかくやってみたい!だけど何をすればいいか解らない!」

といった独学ならでは(?)の初歩的な疑問に悩んだ事も多々ありました。

BASICしか知らなかった私がC言語に初めて触れた時の悩みは、

「Cってプログラム書いた後どうやって動かすの!?」でした。

(BASICはコード書いてRUNすれば実行された)

 

 

Web系のプログラムを勉強してみたい!っていう人が居たら、

やっぱり自由に触れるHTTPサーバがあった方がやりやすいのでは?

そう思って自分のPCにIIS環境を構築してみたらすごく簡単だったので。

テスト環境構築の一助になればと思い、以下に手順を書いてみます。

 

 

 

■使用環境

Windows 10 Pro(バージョン1909)

 

 

■作業手順

1.コントロールパネルを開く

 

2.[プログラム]をクリック

 

3.[Windowsの機能の有効化または無効化]をクリック

 

4.[インターネットインフォメーションサービス]にチェックを付けてOKをクリック

 

5.スタートメニューから[Windows管理ツール]>[インターネットインフォメーションサービス]をクリック

 

6.IISマネージャ画面が表示される

 

7.以下のどちらかの方法でドキュメントルートを参照

A:左ペインのツリーから[Default Web Site]を右クリックして、[エクスプローラー]をクリック

B:[ディレクトリの参照]アイコンをクリックし、右ペインの操作メニューから[基本設定]をクリックして、[物理パス]に表示された値を、エクスプローラーのアドレスバーにコピー&ペースト

 

8.ドキュメントルートのフォルダが表示される

 

9.ブラウザを開き(ここではIE)、アドレスバーに下記URLを入力する

http://localhost/

 

この時点で、HTTPサーバへのアクセスが出来る状態になっています。

ここまでなら、5分でなんとかなるんじゃないかと思います。

 

既にApacheでWebサーバ立ててるとか、Webサーバを内包するアプリ環境があるとか、

そういう場合にはポートがバッティングして上手くいかない事もあると思いますが、

そのレベルに有る方は意味も修正手順も分かるだろうし割愛しても問題ないでしょう。

 

 

 

10.先程開いたドキュメントルートのフォルダに、「Hello」というフォルダを作ります。

 

11.「world.htm」というファイルを作成し、Helloフォルダの中にコピーします。

htmファイルの中身は適当で構いません。

<!– サンプル –>

<html>
<head>
    <title>testpage</title>
</head>
<body>
Under construction!
</body>
</html>

 

12.ブラウザのアドレスバーに下記URLを入力する

http://localhost/hello/world.htm

 

 

 

基本のキまでも行かないくらいのレベルですが、まずはここまで。

ここから、やりたい事に応じて色々と設定が必要になると思います。

 

一人暮らしを経験するなら若いうちが吉

恥ずかしい話なのですが40代になるまでずっと親元で、

一人暮らしを経験した事がありませんでした。

何度か始めようと思った事はあったのですが、

結局本腰を入れるところまでは行きませんでした。

今思えば言い訳だなって理由です。

 

 

私は今日からGWに突入しました。

長期休みの最初には、必ずと言っていいほど掃除をします。

いつもより念入りに。

普段のリビング掃除なら掃除機にコロコロでおしまいなんですが、

窓や机周りのホコリ掃除、拭き掃除など、あれこれやりたくなります。

 

部屋がキレイになると、とても気持ちがイイんですよね。

よしやるぞ!ってテンションもアガる感じがしますアップ

 

 

掃除以外の代表的な家事といえば洗濯と料理でしょうか。

こういった「日常を送る為に必要な行為」について、

親元暮らしの頃は深く考える事はあまりありませんでした。

というか、考える必要性を感じなかったんでしょうね。

頼むわけでもなく知らないうち親がやってくれるという、

非常に恵まれた環境だったんですから。

 

そういった事の有り難みに気付き、

自分で片付けなければ永遠に終わらない、

そんな当たり前の事を知りました。

 

 

一人暮らしをしたかった理由の一つが

「生きるために必要な行為を知らない事が恥ずかしい」

という思いだったので、まずはチャレンジ走る人

結局、代行サービス頼むほどではないな?

と感じたので、そのまま自分でやってます。

 

時給換算すれば多少は頼むほうが安くもつきますが、

知らない(信用出来るか解らない)人を部屋にあげるのも、

あまり気持ちよく思えない性格なのも一因だとは思いますがあせる

 

 

学生時代は食べ物を扱うバイトをしていたので、

包丁もまったく使えないという事はなかったお陰で、

自炊もすんなり始められました。

とはいえ最初はエンゲル係数高かったですが…

「食べたいものを作る」から「ある材料で出来るものを考える」

に変わってからは、かなり食費を抑えられるようになりました。

買い物の仕方も変わりましたし、料理自体も楽しくなってきて

 

 

 

これらは、全く触れないままで暮らし、生きていく事も可能でしょう。

実際そういう人もたくさん居るみたいです。

ただ、知らない事でもやるしかない、って得難い学びだと感じるんですよね。

お金に繋がるとかは知りませんが、確実に自分の幅を広げてくれる。

それを若いうちに経験できるなら素晴らしい事だと思うんです。

学びの時期がいつだからダメとかはありませんけど、

どうせやるならいつの方がイイ、ってのはあるんじゃないかなと。

 

 

迷ってる方が居たら、ぜひオススメしたいです。

 

英語はとにかく聞いて慣れる系男子

最近また英語を勉強しています。
というか、聞く機会を増やしています。
一応字幕付きですが、なんとなく聞くのではなく、「今何を話してるのか?どんな言葉か?」を意識して聞くようにしています。
以前のエントリでも書いた気がしますが、スリランカ旅行の際には英語で夢を見るレベルまで行きました。
英語でしかコミュニケーションできない環境に飛び込んだので、なんとかしようと必死でしたから。
それからラジオを聞いたり映画を見たりと、耳に英語を馴染ませる為に役立ちそうな事をちょこちょことしてました。
まあ、話せる様にはなってないんですけどね。
それでも、道を聞かれたら教えてあげられる程度にはやりとり出来ます。

続けないとと思いながら何度も中断してますが、今回もふと気が向いたのをきっかけにしばらくやっでみようかなと。

などと色々言ってますが、単に洋物ゲームをやってるだけだったりします(笑)

Witcher3、ストーリー重視なので登場人物がかなり喋ります。
情報伝達だけに留まらない情感豊かな語り口なので、楽しんで聞けてます。

こんな方法も、まあアリかなあなんて。

SQLServer2012のバックアップファイル圧縮

弊社の基幹システムDBは、数段のバックアップ手法で信頼性を確保しています。

 

①毎日夜中にストレージ内でD2Dのコピー

 NEC製ストレージの仕組みです。よくわかってません。

②①のコピー先ディスクをLTOにバックアップ

 コピー先ディスクをバックアップサーバにマウントしてARCserve

③①、②の導入前からSQLServerのメンテナンスプランで稼働しているバックアップ

 週次でフル、平日の朝バッチ後と昼休みに差分でバックアップ

 

ただ、現場の古株に聞いたところ③の作業は誰もやった事がないそうで。

DB自体のロールフォワード回復は一般的な手順で当然出来ますが、

業務の回復手段が確立されていません。

というか、システム処理が個別処理単位でコミットされてしまうので、

トランザクション全体の整合性が取れない(そういう思想の)作りになってます。

 

なので、③のバックアップは意味をなしていないのだし不要ではないか、

と何度も進言しているのですが、直近まで回復したい病の上司には通じず。

あろうことか、使いみちのなさそうなバックアップの処理が容量不足でコケて、

対策までさせられる事になりました。

 

 

 

というのが、タイトルに書いたバックアップファイル圧縮の前置きになります。

やってみたらめっちゃくちゃ簡単で影響も少ない作業でした。

 

■バックアップ圧縮について

docs.microsoft.comにて詳細が解説されています。

  1. デバイスI/O削減により高速化
  2. 1つのバックアップセット内に圧縮・非圧縮のデータ共存不可
  3. 設定の有効範囲には「バックアップ処理単位」と「サーバー全体」の二種類
  4. 規定ではサーバー全体の設定無効(構成オプション:backup compression default)
  5. バックアップ処理単位の設定はサーバー全体設定より優先

といった特徴があるとの事でした。

 

■テスト

まずは普通にバックアップ

1.適当にメンテナンスプラン(全DBフル)を作成

3枚めにある「バックアップの圧縮の設定」、ここではデフォルトのままです。

 

2.「規定のサーバー設定」の内容確認

「バックアップを圧縮する」のチェックは外れています。

 

3.バックアップ実行

作成したメンテナンスプランを右クリックして「実行」

 

4.結果確認

ファイルサイズと実行時間ですが、時間短縮は見えそうにないですね。。。

 

■バックアップ圧縮の設定手順

パターンA:メンテナンスプランの個別設定

 1.メンテナンスプランのオプションタブから下記を設定

これだけです。

 

2.結果確認

 

ファイルサイズが約1/6、実行時間は半分(4秒減)でした。

ちなみに実行時間は、メンテナンスプランの履歴を参照しています。

 

 

パターンB:サーバーレベル構成オプションでの設定

1.メンテナンスプランのバックアップ設定を「サーバーの規定」に戻しておきます

2.サーバーのプロパティから圧縮にチェックしてOKをクリック


 

※以後サーバープロパティの全般タブに以下のメッセージが表示されるようになります。

 SQLServerのサービス再起動後も消えませんでした。

 

3.結果確認

時間、サイズともパターンAと同様です。

 

 

 

■結論

設定一つ触るだけで簡単にバックアップファイルが圧縮出来ました。

バックアップ容量に悩んでいるなら活用しない手はないと思います。

 

弊社の本番サーバーには既に反映済なのですが、

バックアップファイル240GBが140GBまで減りました。

バックアップ領域が溢れて処理がコケるので、

この240GBを退避する作業を、毎週人手でやってました。。。

 

インフラ、この先

しばらくの間休日出勤やら翌週準備に追われて更新出来ませんでした。

コロナ怖いですね、怖いですがオンプレ環境の運用となるとリモートワークが中々許可下りません。

 

さて、そんな中弊社、というか出向先の企業(本体1万人オーバーの結構な規模)では、

社内システムの大規模刷新プロジェクトが進んでいるそうです。

進んでいる、と話には聞くのですが。実際関係者はかなり忙しそうなのですが。

インフラを検討する要員は居ないそうです。ふむふむ。大変な事になりそうですね。

 

 

って他人事と思ってたら、現行システム運用に携わるメンバー、つまり私なんですが、

「この拠点のシステムの未来像を検討してくれないか?」というぼやかしたお言葉で、

お仕事が回ってきてしまいました。

未来像って、刷新後の環境が前提ですよね…

 

とはいえ普通に要件定義や設計をしてしまうのは契約範囲を超えるので、

プロパーの若者を主役に、私は補佐として関わる事になりました。

 

 

まずは経緯を知るために去年のトレンドがどうだったのか、と調べてみました。

いくつか読んでみて、端的でわかりやすいと思ったのが下の記事。

 

今後の企業におけるインフラ&オペレーションに影響を与える10のトレンド

 

@ITさんは定番という感じですね。昔から随分お世話になっています。

先日ご紹介した芦屋広太氏のコラムを知ったのも@ITさんだったと思います。

 

 

特に目を引いたのが記事冒頭の一文。

 「インフラ&オペレーション(I&O)で肝心なのは、もはやハードウェアやソフトウェアではない。ビジネスニーズを満たすサービスを提供することが肝心だ。インフラの未来がどこにあるかについては、あらゆる可能性がある。それを決めるのは、ビジネスでインフラをどう使うかだ」(ウィンザー氏)

 

 

私みたいな古い人間は、それこそメモリは640KBの時代を生きてきたので、

”インフラといえばハードウェア”みたいな感覚なのですが。

 

若者世代にとってのインフラとはどのようなものになるのでしょうね。

ネットワーク同様、実体の見えづらいベールにくるまれた何か。

何がどうなって出来上がる”モノ”なのかを意識する事なく、”何が出来る”という視点で、

サービスのように見えるのでしょうかね。

 

水のように、電気のように、本当は何か誰かが供給してくれているのだけど、

当たり前のように提供されるサービス。

 

本当の意味での”インフラ”になっていくのかも知れません。

 

 

 

さて、話を戻してインフラ、この先。

前述の記事中で、現在の職場にすぐ効きそうな(というか取り組み中の)ポイントを一つ。

それが、「トレンド6:デジタルダイバーシティの管理」の中で課題として挙げられている、

“分析まひ”からの脱却、正確なインベントリの維持、可視化不足による膨大な無駄の回避、資産管理

ですね。

 

忙しい事を理由に管理をサボる事で、更なる忙しさを招くサイクルの原点ですね。

 

 

ウェブサイトのブックマーク整理に似ていると思います。

ブックマークする時に、単にお気に入りに追加するのか、分類をその時に考えるのか、

既に分類された領域に登録するのか、ブラウザのブックマーク機能に頼らず別管理するのか、

やり方は色々あると思います。

ただ、一旦適当に扱った情報を後から整理するのは非常に非常に非常にコストが掛かるものです。

これはどなたも経験があると思います。

その為、これはこうやって管理しよう、とそれぞれに知恵を絞る訳ですし、

整理術の本がたくさん売れる訳です。

 

 

話が逸れそうなので元に戻しますと。

きちんと情報を管理出来ない事が様々な無駄を招き、

それが「情報を必要とする際の行動コスト」に跳ね返る。

場合によっては、情報の見落としによるトラブルへと発展する。

だからこそ軽視してはならない管理項目なんだと思います。

 

ここで何より大事だと感じるのが”決めたルール通りに行動するかどうか”です。

 

結局色々な管理基準を定めて運用を初めても、忙しさを理由にサボってしまっては、

全く何も意味がなくなってしまいますので。

 

 

日本人は謹厳実直、と表現されるのをよく見ますが、それなのに何故こんなことに?

答えは簡単だと思っているのですが、日本人は謹厳実直なのではなくて、

人の目を気にして見かけをつくろっているのでしょう。

だから、人の目につかない所で手を抜いたりいい加減な事をする。

 

縁の下の管理業務の杜撰さに、そういった側面が現れているのではないでしょうか。

 

 

 

未来を考えるよりも、足元をちゃんと固めるべきではないか。

そんな風に感じた「インフラ、この先」考察でした。

仕事で大事なコミュ能力

『プログラマーは延々プログラムだけ書いてるから人と喋らなくていい仕事』

みたいなイメージって、風聞としては耳にしたことがありますけど。

現実にそう思ってる人って居るんでしょうか。

 

確かに、ほぼ語らずに与えられた仕様に沿って、

黙々とコーディングしてる方もいらっしゃいますので、

そういう人がいない訳でもないですが。

 

仕様書だけ渡されて会話というか対話せずに仕事が完結する、

って事、有り得るのでしょうか。

完璧な仕様書とそれを作れる現場を知らないだけで、

大昔にウィザードと呼ばれたような人達が跳梁跋扈する最前線では

そういう仕事が当たり前なのでしょうか…

 

 

書きながら何となく自分の住んでる場所がぬるま湯なのかと

不安感が首をもたげてきたのですが。

別に明日明後日に住処を変えるでもなし、忘れようと思います。

 

 

言いたかったのは、仕事するのにコミュニケーション能力って大事で、

別にプログラマだからって変わらないよ!って事です。

前述したような完璧な仕様書でなければ、

製造の最中に実装について「どうあるのが正解なのか?」と

疑問が湧く事が多々あると思います。

他者は分かりませんが、私はありました。多々。

 

納得出来てコードに落とせるまで、

設計したSEを捕まえて延々対話してました。

 

 

コードをどのように書くか、はプログラマの力で成す事で、

コードが動いた結果がどうなる(べき)か、は設計者が決める事、

だと言う事がよく判っていなかったプログラマ時代。

忙しいSEさんに延々相手してもらう事をとても申し訳なく思ってました。

今なら「こんな適当な設計で何を作るつもり?」と突き返してますね。

 

そんな当時一緒の現場に居た開発者に、

「仕様書に書いてない事は何もしません」

というスタンスの方が居られました。

あのぐらい割り切れるのはすごいなと思ってました。

仕様書の内容が矛盾しててもそのまま実装して、

テストでおかしな結果になっても「仕様通り」と言い張る。

 

確かに仰る通りなんですけど、それで良い訳ないよね?

とSEが指摘しても

「設計を勝手に変えるのは良いんですか」と宣う。

ダメに決まってるけど、仰る通りなんですけど。

 

 

なんで「不備の仕様を放置する」か「仕様を勝手に変更する」の二択なの。

 

 

何かおかしいよ?どこ?これ。ふんふんそういうケースもあるのか。

って、5分くらいの対話で事足りる事なのに…

 

開発者が設計者に不備を伝えるのも、管理者が問題点を拾いあげるのも、

設計者が不要な仕様変更を怒らせずに断るのも、

コミュニケーション能力の側面なんだろうなと思います。

 

 

 

本当に言いたい事をうまく伝える。相手の言い分をうまく理解する。

どちらもとても難易度の高い事ではありますが。

よいコミュニケーションは仕事をうまく進めてくれて、

その時は大変でも最後には丸く収めてくれる、と感じます。

 

 

これらはいわゆる「ヒューマンスキル」と呼ばれるものですが、

若い頃にとても参考にしていたのが、@ITというサイトで連載されていた

芦屋広太氏のコラムでした。

メールの書き方から、対話シナリオの考え方、物事の伝え方、

いろんな観点で芦屋氏の影響を受けたと思います。

古いコラムなので今読めるか分からないのですが、

こちらの書籍が同ジャンルの内容でしたので、オススメしたいと思います。

 

 

 

WindowsBackupの罠(backuptargetにローカルフォルダは指定できない)

今回、サーバのバックアップを取る事になったんですが、

別サーバで手順確認をサラっと、と思っていたら丸一日かかってしまったので、

記録しておこうとおもいます。

 

1.バックアップをどこに取るか?

Windowsバックアップは、バックアップの取得先を3つから選べます。

A.ローカルドライブ B.ボリュームGUID C.ネットワークパス

本番作業に先駆けての作業でしたので、Cで対応する予定でした。

 

が、時間的にシステム稼働中にテストする必要がある為、

ネットワーク負荷を考慮して、サーバとPCをクロスLANケーブルで直結し、

Cを実施する、という方針としました。

 

2.実際に接続

自分のPCに共有フォルダを作成し、Everyoneフルコントロール権限に設定。

クロスケーブルでサーバと接続し、Ping確認もOK。

 

しかし、エクスプローラが開かない。

 

 

3.調査開始

ここで凡ミスをしたせいで非常に時間がかかったというか、

タイトルにも書いた罠にかかってしまう事になったのですが。

 

PC、サーバ共にドメイン配下の機器であったせいか、

権限を処理するサーバが見つからない、といったようなエラーが表示され、

エクスプローラではサーバ→PCの接続が出来ませんでした。

\\ホスト名、 \\IPアドレス、共有フォルダ名有り無しといろいろ試してみて、

毎回同じことで怒られます。

 

幸い、同サーバのDドライブがガッツリ空いてましたので、

そこにバックアップをしよう、という風に方針変更しました。

 

 

4.バックアップがコケる

バックアップ前にはサービス停止が必要だね、という事で、

net start で表示されたサービスを可能な限り止めました。

そしてバックアップはコマンドラインから実施。

 wbadmin start backup

コマンド入力しながら、オプションそれぞれ問題ないかなと再チェックをしていてふと。

 

-backupTarget   このバックアップの保存場所を指定します。ハード ディスクの
                ドライブ文字 (f:)、ボリュームの GUID ベース形式のパス
                (\\?\Volume{GUID})、またはリモート共有フォルダー
                への汎用名前付け規則 (UNC) 形式のパス
                (\\<サーバー名>\<共有名>\) が必要です。

 

 

ドライブ文字???

DドライブのdirAってフォルダにバックアップ取りたいのだけど・・・

ドライブ単位でしか指定できないという事だろうか?

勝手にD全部消されたら(データが一杯入ってるから)大変な事になる・・・

 

と思い至ったので、DドライブのdirAフォルダを共有して、

-backuptarget \\LOCALHOST\dirA と指定する事で

擬似的にローカルフォルダにバックアップしようと試みました。

 

ちなみにこの時付与したオプションはこれらです。

backuptarget, include, systemstate, allcritical, vssFull, quiet

 

 

5.エラー対処①

最初のエラーは「システムライターがバックアップに見つかりません」

原因の一つは、必須サービスが停止している、でした。

コチラを参考にさせて頂いて対処。

(私は「Cryptographic Services」を停止していました)

 

コマンドを再度実行すると、即落ちしてたコマンドが実行されはじめ・・・

よし、これでOKか!と喜び勇んだ次第です。ぬか喜びでしたが。

 

6.エラー対処②

次は「ファイルシステム制限のため、要求された操作を完了できませんでした。」

これの意味が分からず、色々試す事になりました。

コマンド実行から15分くらい、進捗30%あたりでエラーになるので、

トライアンドエラーにも随分時間がかかってしまいました。

ウイルススキャンソフトの停止、マシン再起動、他に必要なサービスは?など・・・

 

7.結果的には

2.をリトライして他のマシンの共有フォルダに書き込む事で、

スルっと成功してしまいました。

コマンドはbackuptargetの指定を変更しただけ。

どうやら、ローカルフォルダにはバックアップを取れないみたいですね。

systemstateを指定してる事も原因なのでしょうか。

 

 

2.の時点で実はnet useでPCとの接続を図っていたのですが、

/USERの指定値を /USER:\\PCのIPアドレス\ユーザ名 としていました。

最初の\\が要らないだけだった・・・!

ドメインユーザを指定していた事も一因かもですね。

サーバとPCを直結した事により、双方が認証DCと通信できない状況でしたので。

これを懸念して、ローカルマシンで認証させる為に、

テスト用のローカルユーザーを作成し、そのユーザで共有フォルダを作成しなおし。

 

 

 

今回のポイントは、

・WindowsBackupはローカルフォルダを指定できない(みたい)

・net useでのユーザ指定の記述を間違えていた(気付きにくい)

だったという反省ブログでした。

 

 

 

 

以下は、この話の前日譚になります。

 

先日、勤務先の場内法定電源検査がありまして。

全サーバをシャットダウン、再起動という作業をすることになりました。

 

VMware上のサーバを落とす前にデータストアが全部乗っかったストレージを落とす、

っていう胃が痛くなるようなオペミスをやらかされたりして、吐きそうな一日でした。

最悪DBとファイルサーバ(20TB)死ぬかなと思ってましたが、こっちは無事復活しました。

 

ところが、思いもよらぬサーバで障害が発生してしまい・・・

電源投入して動作確認してから、わずか30分後の話でした。。。

 

 

 

というのがタイトルにつながる話になります。

 

メーカーサポートに問い合わせて機器調査の上で、マザーボード交換対応となりました。

個人的に、念の為バックアップが必要かなと思ったので、

「このサーバって日次バックアップって何を取ってます?」

と質問すると、

「バックアップ?????? ・・・??????????」

みたいなリアクションが返ってきたのですね。

 

 

あ、してないのかなと思って、じゃあシステムバックアップは

Cドライブだけですか?CとDでフルバックアップ取ってますか?

と質問すると、

「バックアップ?????? ・・・??????????」

みたいなリアクションが返ってきたのです。

 
 
バックアップの要否についての議論はおいておきますが、
とにかくそういう事なら今回ちゃんとバックアップしましょう、と。
そういう流れになりました。
 
MSサイトと以前関わったプロジェクトの資料から
なんとか手順書を錬成し、使ってないサーバを洗い出し、
リストアテストで潰れてもOKとの言質を上司から引き出し、
なんとかテストにこぎつけました。
 
 
やっておいてよかったです。また一つナレッジが増えました。

インフラSEのメシのタネ(2)

今の現場は7時55分出社で、なかなか朝がツライです。

毎日眠くて眠くてたまに寝過ごしながら業務に勤しんでおります。

 

 

さてメシのタネですね。。。

私自身は、良くも悪くも思うままに仕事をしています。

一応リピート案件も多いので、クライアントもサービス提供先も、

一定の満足は得て頂いているのだと思います。

ここ数年は、サービス提供先企業のIT担当者から

直接御連絡を頂く事も増えてきており、

ただただありがたいの一言ですね。。。

 

 

ともあれ、当たり前の事しかやってないのですが、

こんな高卒SE(※いきさつ)でも食っていけてるのは、

あるプロジェクトのマネージャに言われた事が、

一つのポイントなのかなと感じています。

 

 

「○○さん(=わたし)は、グレーゾーンをきっちり埋めてくれるよね」

 

 

当たり前の事しかしてないつもりなんですけどね。

分業体制という今の世の仕組がうまく自分にマッチしてるのかも知れません。

 

 

 

分業すれば当然自分の範囲という区切りが出来ますが、

それはあくまで「全体の一部」なのであり、

前後、最初から最後、がキチィンと繫がっていなければなりません。

 

こういった「全体の一部」を作っている時に生じる

疑問、不明点、そういったものを

「明示されてないから好きなようにしていい」

と考えるのか

「明文化されていない件のコンセンサスを得る必要がある」

と考えるのか、そしてそれを

「偉い人がまとめる事(であって自分の仕事ではない)」

と考えるのか。

 

人それぞれでしょうけど、私はそれがハッキリしていないとイヤなタチで、

こういう事で合ってるよね?こういう認識でお互い揃ってるよね?

などと、ほうぼうに聞き回る事になります。

 

・判っているけど自分の仕事じゃないから言わなかった、

・このままならトラブるのは当たり前だと思ってた、

みたいに嘯く人もぼちぼち見かけるのですが。

そんなにIT業界には仕事が溢れてるのでしょうか。

私は常に自分が今後も仕事が頂けるか不安で不安で・・・

分のやるべき範囲はここからここまでなのだから、

範囲外の仕事は(たとえ全体がどうなろうと)やりません、

みたいな態度で、次も仕事もらえるような気がしません。

 

プロジェクトが成功して、満足頂けて、

それで初めて我々SEのやる事に価値が生まれるのだ、

と考えていますし。

そもそもIT部門って、システムの導入効果が見えないと、

ただお金食うだけの部署ですしね。

 

仕事(≒プロジェクト)が問題なく終わるために、

それだけの仕事でいいのか?

って事です。

 

自分の仕事が自分の満足いくレベルに達する為に、必要な事はすべてやる。

それが、私にとっての「当たり前の仕事」だったというだけです。

 

 

 

余計な事までやる意味が一体何があるんだ、

と思う方も居るかも知れませんが。

 

SQLserver2012のログファイル物理サイズ縮小

今勤めているのは出戻り現場。5年前から2年間お世話になってました。

 

当時、まともにドキュメントもなく管理されていないシステムを前に、

サーバーの一覧(すらなかった!)を初めに、管理資料や手順書群を作り、

後続要員に半年かけて引き継いだのですが。

全く運用されてないしドキュメントも修正されてない有様で…

5年前と同じく、調査とドキュメント作成に勤しむ毎日です。

 

そんな愚痴から始まる今回の記事は、

昨日からトライ&エラーでやってた事を書いてみようかと。

SQLserverの基本的な事は知ってる前提になりますが、

それがそもそも何なのかは私もわかりません。。。

 

■発端

テスト用DBサーバのDBバックアップが失敗してました。

調べてみると、容量不足。

 

■原因調査

で、SSMSからDBのプロパティを眺めていると、

初期サイズ50GBも取ってる癖に使用可能が49GBという、

なかなかの乱暴者を発見。

主に利用するチームのリーダーに確認した所、

当初要件でサイズ見積したが、要件ドロップした為

DBのサイズは小さくしても構わない。

但し今テストで使ってるので、中身は壊すな、との事。

 

■愚痴

要件落ちた時点で再見積もりしてくれよ…

ディスク領域には限りがある事を意識したまえ。

サポート問い合わせしようとしたら、契約切れてました。。。

取り敢えず自宅PCにSQLserverをインストールして、

あれこれ試してみることに。

 

■手順確認

まずGUIでSSMSからの容量削減を試す。

①初期サイズとしてデータ1000MB、ログ10MBのDBを作成。

②適当にテーブルを作ってデータを投入

③SSMSのプロパティで初期サイズを小さくしてみる。

 

あっさり縮小可能。物理ファイル(.mdf)も小さくなっているし、

中身も問題なくselect出来る。

 

次に、

④初期サイズを超えるくらいデータを作成する

⑤データを一旦truncate後、再度データを少しだけ入れてみる

⑥ここで③同様の操作で初期サイズまで削減

 

これも問題なく動作。

じゃあ、もっとガツンと小さくしたらどうなるのか?

という興味が湧いて、サイズを1MBに指定してみました。

すると、初期サイズの指定値が”3”に変化しました。

 

 

つまり、指定値が小さすぎたからと言ってDBが破損する訳ではなく、

可能な限りで頑張って小さくしてくれる、という事みたいです。

 

 

■疑問が増える

あれこれ試したせいか、トランザクションログが大きくなってしまいました。

これをDBと同じようにちいさく…できませんでした。そうですよね。

DBを作成する時に完全復旧モデルにしていたので、

正しいお作法で縮小しないといけないようです。

 

1,初期状態

 

まずはDB圧縮を試してみました。

 

2.DB圧縮後

お、ちょっと縮んだ。

 

そういえばトランザクションログはバックアップで切り捨てられるんだっけ、

という何となくの記憶に従って、次はバックアップを実行。

 

結果。あれ?小さくならない…

 

再圧縮してみる。

 

おおー、小さくなった!

 

つまり、トランザクションログのバックアップを実行して、

中身が切り捨て可能な状態になってから圧縮するのだな!

よし、もう一回確認しておこう。

 

同じSQLを流してログを増やしてから、

 

ログをバックアップしてサイズ確認。この時点ではこのくらい。

 

今度はファイル指定の圧縮を試す。

 

・・・あれ?バックアップ後と一緒??

 

この後、DBの完全バックアップ→DB単位の圧縮→ファイル単位のログ圧縮、

と繰り返してみましたが、ログの容量が小さくならない。

困ってしまったので、DBを削除して1からやり直しました。

 

■結局正しい手順は・・・

MSの正規の手順というものがあるのだとは思いますが。

見つけられませんでしたので、あくまで個人的な実験の結果として。

 

1.まず圧縮(どっちのやり方でもOKみたいです)

2.次にトランザクションログのバックアップ

3.最後にもう一度圧縮(こちらはファイル単位圧縮しか試してません)

 

この方法で3度くらい試して、毎回ログは縮小されました。

 

 

無事に来週を迎えられそうで、ホッとしています。

 

インフラSE的メシのタネ(1)

昨日のエントリを見返しと、タイトルが の ばっかりですね…

ということで、ちょっとだけタイトルを変えてみました。

 

今日から仕事の話をボチボチと書いていこうかなと思います。

 

 

そもそもインフラSEって何をするのか?と言いますと。

多分、業種や立場でかなり内容に差があるのではないかと思います。

 

企画が必要な人は最新情報を追いかけてるでしょうし、

管理が必要な人は過去実績の把握に務めるのでしょうし、

構築が必要な人はその具体的作業を深堀りするのでしょう。

 

ネットワークを絡めて考える必要もあれば、

セキュリティを意識して検討する必要があったり、

現行資産を可能な限り活用できるプランニングだとか。

 

 

私は主に設計~導入までの業務に従事しています。

だいたいのパターンで考えると、

1.要件定義があって

2.稼働中システムについて調査して、

3.1と2の情報を元に環境や運用の設計を行い、

4.設計した環境を構築する。

5.出来上がった環境が設計意図通りに動作するかをテストし、

6.アプリケーションを含めたシステム全体のテストを経て、

7.本番稼働を迎える

といった流れが多いですね。

 

世の中にはデスマーチの話がたくさん転がっていて、

私自身も朝7時出社の深夜2時退社などを経験してきましたが、

携わったプロジェクトの本番稼働が遅れた事はありません。

運なのか巡り合わせなのか、幸せな事なんだと思います。

 

 

 

インフラSEに必要なスキルとしては、

ノイマン型コンピュータの構成が理解できている、

が最低限の知識レベルになるかと思います。

ここに、ネットワーク的な素養としてTCP/IPの知識であるとか、

データベース関連の素養としてRDBMSの知識であるいった、

コンピュータ上で動作するものについての理解が求められます。

 

開発だけやってるメンバーなんかは、

ちょっと○○を××したいから準備しておいて!

なんて軽く言ってくるのですが、

その為に必要になるバックボーンについては、

全くといっていいほど無知な事が多いです。

 

コンピュータは動くもの、やりたい事は出来るもの、

といった「当たり前」を提供するのが、

インフラSEに求められる仕事の一つです。

 

こういう無茶振り依頼をなるべく簡素に、間違いなく、

素早く完了する為の方法を編み出していく事も、

インフラSEの仕事(というより業務改善)なのでしょう。

 

その為には、WindowsバッチやUNIXシェルの作成も必要ですし、

あるデータを参照するのに、テキスト/Excel/DB化のどれがいいか、

判断出来る力も求められます。

 

管理対象となる機器だけでなく、そういった自作ツールなどの情報も、

業務の引継を意識して普段から整理・可視化する事も必要になります。

 

プログラマに比べて広範囲な知識を求められるケースが多い、

というのが特徴なのかも知れません。

 

今回は、ここまで。