人生中盤から色々学ぶ(ブ)ログ -12ページ目

人生中盤から色々学ぶ(ブ)ログ

IT、経済、英語、その他今必要だなと思う事を学びつつ、自分用の記録ついでにブログ化。
あん時やっときゃ良かった、をそろそろ終わりにしたい!

■前提

・現行環境(現)は、Win2012、SKYSEA v16.1(最新のちょっと前)、内蔵DBはSQLserver2008sp2、ドメインメンバーとして構成

・新環境用(新)マシンはWin2016、インストールするSKYSEAは v16.3、内蔵DBはSQLserver2014sp3

・移行前後で、現行環境から新環境へIPアドレスおよびホスト名を挿げ替え

 

 

 

■作業の流れ

1.(新)事前作業

・(新)をドメイン離脱後、LAN抜線

・(新)のIPアドレス・ホスト名を現行と同じ値に設定

・(新)の初期セットアップ用に(現)のバージョンのライセンスキーとインストーラを取得

 → SKYSEAの保守サイトから取得する

・(新)のバージョンアップ用に最新ライセンスキーとアップデータを取得

 → 同上

・(新)に(現)と同じバージョンのSKYSEAをインストール

 → サーバ移行補助ツールにてSKYSEA通信を遮断状態にしておく

 

 

2.(現)事前作業

・(現)※の死活監視を停止

 ※IPアドレスとホスト名は挿げ替える為、(現)というよりはSKYSEAサーバ用のIPアドレスへの監視

・移行直前日の業務終了後に(現)をドメインから離脱し、システムバックアップ取得

 → システムリストアが想定されるタイミングでは(新)がドメイン参加しているはずなので、ドメイン参加状態で取得した(現)のバックアップはリストアできない可能性を考慮

 

 

3.切り替え当日作業

・(現)のSQLserverをアップグレード&再起動 

 → データ移行の保証前提として現新サーバのSQLserverバージョンが一致している必要あり

 → (現)のSQLserverと同じバージョンで(新)を構築する場合はSKYSEAv10でインストールする必要があるが、v10はWin2016非サポート

・(現)のSKYSEA設定バックアップ

 → 外付けHDDに保存

・(現)のLAN抜線

 

・(新)に設定をリストア及びリストア後の設定作業

・(新)のLAN接続

 → サーバ移行補助ツールで遮断していたSKYSEA通信を許可状態に変更

・(新)のリストア直後動作確認

・(新)のドメイン参加

・(新)のドメイン参加後動作確認

・(新)のSKYSEAバージョンをアップデート&再起動

 

4.切り替え後確認

・管理機、端末機のエージェントアップデート確認

 → 運用環境へのアップデート配布確認

・業務運用作業の確認

・(新)の死活監視を再開

 → (現)と同じIPになっている為

・(新)のシステムバックアップ取得

・(新)の資産情報バックアップ取得

 

 

 

 

このような感じでした!

今回は設定作業をベンダSEさんにやってもらったので、詳細な内容は把握していません。

現新環境での設定バックアップリストアによる移行では、現新のIPアドレスとホスト名が一致している必要があるそうです。

それを考慮しての前準備が色々あり、抜け漏れチェックや新たに気付いた課題の対応検討などが楽しかったです♪


 

初めて触れたんですが、これすごい仕組みですね・・・!

 

 

 

新システムのバックアップ方式として導入されていたのですが、

 

 

旧来のバックアップの思想とは一線を画しています!

 

 

 

一回フルバックアップを取れば、あとは増分バックアップがフルバックアップデータを更新していく。。。

 

 

 

システムのメンテナンスも楽になりますし、環境変更時の予備作業時間も短縮できます。

 

 

 

こういう衝撃に出会うと、新しい技術情報をちゃんと追いかけないとな、と思いますね><

 

 

 

 

今週は休日出勤だったので、簡素に💦

 

■やりたい事

①定型フォーマットのExcelファイル(=対象ファイル)が複数存在

②対象ファイルは全て同じフォルダに保存

③対象ファイルの必要項目を抽出して、VBAマクロを実行するブック(=自ブック)内に一覧シート作成

④一覧シートを作成するブックに対して、別内容の表を作成する既存処理あり

⑤一覧シートの内容は、対象ファイルのキー項目で昇順ソート

 

 

 

■やった事

Option Explicit
Const SAVEFOLDER As String = "保存フォルダ名"
Public Sub 一覧作成()
    Application.ScreenUpdating = False '画面描画 停止
    Application.Calculation = xlCalculationManual  '再計算 手動
    If offAlert Then Application.DisplayAlerts = False 'アラートの非表示

    Dim fs As Object: Set fs = CreateObject("Scripting.FileSystemObject")
    Dim fpath As String: fpath = ThisWorkbook.path & "\" & SAVEFOLDER & "\"
    Dim files As Object: Set files = fs.GetFolder(fpath).files()
    Dim file As Object


    ThisWorkbook.Activate
    Sheets.Add
    Cells(1, 1) = "ヘッダ1" 'ヘッダ行項目名記入
    '(中略)
 

    Dim row As Integer: row = 2
    For Each file In files '既存表作成
        '対象ファイルからデータ取得
        Call Workbooks.Open(file.path, ReadOnly:=True)
        Dim data As Variant
        data = Range("A1:G999")
        ActiveWorkbook.Close

        Cells(row, 1) = data(1, 2)  'Range配列データを対象セルへ入力 斜体はサンプル値
        '(中略)
        row = row + 1
    Next
    Set files = Nothing
 

    data = Range(Cells(1, 1), Cells(row, 10))  '既存表からデータ取得
 

    Sheets.Add  '一覧シート作成
    Range("a1").Activate
    Dim intRow, intCol As Integer
    For intRow = 2 To row
        For intCol = 28 To 49
            If data(intRow, intCol) <> "" Then
                ActiveCell.Value = data(1, intCol)
                ActiveCell.Offset(0, 1).Value = data(intRow, 1)
                ActiveCell.Offset(1, 0).Activate
            End If
        Next intCol
    Next intRow


    With ActiveSheet
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=.Range("A1"), Order:=xlAscending
        .Sort.SortFields.Add Key:=.Range("B1"), Order:=xlAscending
        .Sort.SetRange .Range("A:C")
        .Sort.Header = xlNo
        .Sort.Apply
    End With

    Application.ScreenUpdating = True '画面描画 再開
    Application.Calculation = xlCalculationAutomatic '再計算 自動
    If offAlert Then Application.DisplayAlerts = True 'アラートの表示
End Sub

 

 

■■■以下カンタンに説明■■■

■おまじない

マクロを実行する前後で不要な処理の振る舞いを変更するプロパティですね。

諸先輩の残したファイルを読むとだいたい書いてます。どれかは。

 

 

 

 

 

 

 

■①と②について

「特定フォルダの全ファイル」の指定の仕方については、サンプルコードがあったので、ほぼそのまま流用。

MicrosoftのドキュメントにFor Eachを使っての繰り返し処理まで含めたものが掲載されてます。

 

 

 

 

 

■③と④について

対象ファイルの必要データ範囲からなるrangeオブジェクトを、variant型変数に配列として代入してました。

 

 

 

 

 

■⑤について

ソートはいつも調べてしまうのですが、直感的に分かりづらい気がします・・・

 

 

 

 

 

 

 

ちなみに今回ブログ書いてる途中でQiitaのエントリを見かけたんですが、こちらの方がずっとオシャレでした。

 

 

 

 

 

事務作業でアンケート集計の必要があったんですが、「既存表は各ファイルの一部をもってきて集計」

という処理をしているにも関わらず、そのあとで

「各ファイルを開いて必要項目を転記(人手で!)して一覧を作成」

というトンデモ作業になっていた為、苦手なVBAを久しぶりに触りました。

 

 

1時間単位のWBSとか作る前にこういう無駄をなんとかしようぜー