カテゴリー: 技術系

  • FreeBSD 12.2 から 13.1 へメジャーバージョンアップ

    FreeBSDを、12.2 から 13.1 にメジャーバージョンアップをしたので、そのメモ。

    アップデートのコマンドと流れは下記。

    freebsd-update fetch
    freebsd-update install
    freebsd-update upgrade -r 13.1-RELEASE
    freebsd-update install
    shutdown -r now
    上がってこない。30分くらい。sshdは起動していたが、反応なし。ここからコンソールで作業した
    freebsd-update install
    (再度の実行を求められたのでもう一回)
    freebsd-update install
    shutdown -r now
    pkg-static upgrade -f

    FreeBSD 13.1の最初の “freebsd-update install” のあとに再起動したときに、OSは起動している状態になっていても、SSHで接続できない状態になった。確認してみると、sshdは起動していた。でも接続はできなかった。

    途中からコンソール接続して、アップデートを続けたので、リモートで作業する場合には要注意。PINGは飛んでいたので、OSは上がっているようにみえるのだけど、状態の確認ができなかった。

    参考

    https://www.freebsd.org/releases/13.1R/installation/#upgrade-binary

  • WordPressのプラグイン更新中に誤ってページ移動してしまい、ずっとメンテナンスモードになったときの対処

    WordPressでプラグインの更新中に、うっかりページ移動をしてしまった。そうしたら、メンテナンスモードのままになり、下記のメッセージが表示されるだけになった。

    現在メンテナンス中のため、しばらくの間ご利用いただけません。

    これの対処は、Wordpressがインストールされている(配置されている)ディレクトリにある「.maintenance」のファイルを消す。

    これがあるとメンテナンスモードとして認識されてしまうので、消す必要あり。

    rm .maintenance

    消した後は、Wordpressにアクセスして、メンテナンスモードが解除されたことを確認する。そして管理画面にアクセスして、残っているアップデートを実施する。

    例)

    zen@xxxxxx:/var/www/html/blog$ ls -a
    .             readme.html           wp-content         wp-settings.php
    ..            wp-activate.php       wp-cron.php        wp-signup.php
    .maintenance  wp-admin              wp-includes        wp-trackback.php
    0.txt         wp-blog-header.php    wp-links-opml.php  xmlrpc.php
    index.php     wp-comments-post.php  wp-load.php
    inf2.php      wp-config-sample.php  wp-login.php
    license.txt   wp-config.php         wp-mail.php
    zen@xxxxxx:/var/www/html/blog$
    zen@xxxxxx:/var/www/html/blog$
    zen@xxxxxx:/var/www/html/blog$ rm .maintenance
  • SQL Serverで分散トランザクションのエラーが出たときの対処

    Windows Server 2022とSQL Server 2019組み合わせで、リンクサーバの設定をして、リンクサーバのテーブルにアクセスしたところ、下記のメッセージが表示された。

    分散トランザクションを開始できなかったので、この操作を実行できませんでした。

    これの対処して、下記の手順で設定変更を行う。

    1.Windowsキーを押して、「コンポーネント サービス」(途中に半角スペースあり)と入力して、コンポーネント サービスを起動する

    2.「コンソール ルート」→「コンポーネント サービス」→「コンピューター」→「マイ コンピューター」→「Distributed Transaction Coordinator」→「ローカル DTC」の順に選択する

    3.「ローカル DTC」を右クリックし、プロパティを開く

    4.プロパティの「セキュリティ」タブを選択する

    5.下記の5つにチェックを入れて、適用をクリックする。

        * ネットワーク DTC アクセス
        * リモートクライアントを許可する
        * リモート管理を許可する
        * 受信を許可する
        * 送信を許可する

    6.MSDTCサービスの停止と再開の警告がでるので、「はい」をクリックする。成功すると、MSDTCサービスを再開した旨のポップアップがでる。

    7.SQL Serverのサービスを再起動する(もしくはOSを再起動する)

    これを、リンクサーバで設定する相互のサーバで行う。

    参考)

  • .NET6のランタイムがインストールされているか調べる方法

    .NET6 のアプリケーションを動作させるために、Windowsに「.NET6のランタイム」がインストールされているかを調べた。同じ方法で、「.NET core」のランタイムがインストールされているかも調べることができる。(.NET6 は、Core系の系譜なので)

    ランタイムがインストールされているかどうかは、Powershellを開いて、下記のコマンドを実行する。

     dotnet --list-runtimes

    .NETのランタイムがインストールされていないときは、dotnetコマンドがエラーになる。dotnetコマンドが正常に実行されれば、ランタイムのリストが表示される。

    .NET6などのランタイムがインストールされているときの例)

    PS C:\>  dotnet --list-runtimes 
    Microsoft.AspNetCore.App 3.1.23 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 3.1.25 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 5.0.10 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 5.0.15 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.AspNetCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] 
    Microsoft.NETCore.App 3.1.23 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 3.1.25 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 5.0.10 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 5.0.15 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.NETCore.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] 
    Microsoft.WindowsDesktop.App 3.1.23 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 3.1.25 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 5.0.10 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 5.0.15 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 6.0.0 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 6.0.3 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    Microsoft.WindowsDesktop.App 6.0.5 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App] 
    PS C:\>

    .NET6などのランタイムがないときの例)

    PS C:\>  dotnet --list-runtimes 
    dotnet : 用語 'dotnet' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されま 
    せん。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してく 
    ださい。 
    発生場所 行:1 文字:2 
    +  dotnet --list-runtimes 
    +  ~~~~~~ 
        + CategoryInfo          : ObjectNotFound: (dotnet:String) [], CommandNotFoundException 
        + FullyQualifiedErrorId : CommandNotFoundException 
    PS C:\>

  • SQL Server 2019でsaでログインできない

    SQL Server 2019で、インストール後に、saでログインしようとしたらエラーでログインできず。サーバー認証は「SQL Server 認証モードと Windows 認証モード」にしてある。パスワードはインストール時に設定したものと同じはず。

    念のため、saのパスワードを再設定したところ、無事にログインできた。

  • SQL Serverのプロシージャー作成でANSI_NULLSオプションのエラーが発生

    古いSQL Server 2005 からバージョンの新しいSQL Server 2019に、プロシージャーを移行しようとしたところ、下記のエラーが表示され、プロシージャーが作成できなかった。

    異種クエリでは接続時に ANSI_NULLS オプションと ANSI_WARNINGS オプションが設定されている必要があります。これは一貫したクエリ セマンティクスを保証します。これらのオプションを有効にし、クエリを再実行してください。

    これの対応として、プロシージャーの最初に、「SET ANSI_NULLS ON」と「SET ANSI_WARNINGS ON」の設定を追加した。これを追加した後に、実行すると、正常にプロシージャーの作成ができた。

    参考)

    SET ANSI_NULLS ON 
    GO 
    SET QUOTED_IDENTIFIER ON 
    GO 
    SET ANSI_NULLS ON 
    GO 
    SET ANSI_WARNINGS ON 
    GO
  • Edge IEモードで、タブ移動できない問題にあたる

    2022年6月のWindows Updateに不具合があり、Edge IEモードでShowModalDialogでポップアップを上げているときに、Edgeのタブの部分までロックされてしまい、移動できない。

    「Microsoft Edge」のIE モードタブが無反応になる問題が発生 ~Windowsパッチに問題
    https://forest.watch.impress.co.jp/docs/news/1420144.html

    ものの見事に、これに該当した。1日たったけれど、まだロールバックが有効になっていない。集中管理の端末は対象外ということだが、これはもしかしてADに参加している場合も含まれているのだろうか。

  • Chrome OSのLinux開発環境がDebian11に。

    ChromebookのChroms OSのアップデートをしたところ、Linux開発環境のアップグレードの通知が出た。

    もともとDebian GNU/Linux 10 (buster)だったのが、Debian 11 (Bullseye)になるとのこと。ちゃんと通知してくれるのだから、便利。

  • 特定条件化でシンプロビジョニングでもVMDKが肥大化する

    VMwareの仮想マシンのバックアップをVeeam Backupで取得している。Windows Server 2022のバックアップを新しく追加し、スケジュール実行したところ、他の仮想マシンのバックアップも含めて大量に失敗していた。

    ログを調べたところ、下記のような表記があり。VMware ESXiのデータストアの空き容量が足りずにスナップショットに失敗し、その結果、バックアップに失敗している。

    Getting VM info from vSphere 
    Production datastore datastoreX is getting low on free space (0.0 B left), and may run out of free disk space completely due to open snapshots. 
    Error: Insufficient free disk space on production datastore datastoreX.

    詳細を調べてみると、新しくバックアップを追加したWindows Server 2022のVMDKファイルの容量が増えていた。シンプロビジョニングで、Windows OS上から見たときの使用量は増えてい居ない。VMDK上はディスクの割り当てがされており、限界まで肥大化していた。

    VMwareのナレッジを調べてみると、下記のナレッジがあることが分かった。

    Thinly provisioned Virtual Disks inflates to a larger size during snapshot removal process (56608)
    https://kb.vmware.com/s/article/56608?lang=ja

    これによると、「一連の手順を実行すると、シンプロビジョニングされた仮想ディスクのディスク使用量が増加することがある。」という迷惑なもの。VMFS6のデータストアを使用しているので、これに該当したようだ。Windows Serverのバージョンは、Windows Server 2012以降ということなので、影響するOSは多い。

    とても厄介。

  • Window Server 2022でCドライブを小さくして別ドライブをつくる

    Windows Server 2022のインストール時に、CドライブとDドライブを作ろうとしたところ、全部Cドライブとしてフォーマットされてしまった。Windows Serverのインストール後に、Cドライブを小さくして、別ドライブを作る。

    やりたいこと

    ■変更前

    Cドライブ = 200GB弱

    ■変更後

    Cドライブ = 約100GB
    Eドライブ = 約100GB
    ※Dはディスクドライブとして割り当てられたので、これを避けるため、Eドライブ。

    やり方

    1. 「スタート」を右クリックし、「ディスクの管理」を開く。

    2. Cドライブを選択して、右クリックし、「ボリュームの縮小」を選ぶ。

    3. 縮小可能かどうかのチェックがあるので、待つ。

    4. 縮小可能なサイズが表示されるので、サイズを確認したうえで、小さくするサイズを入力する。

    5. 「縮小」を選択する、Cドライブの縮小が始まる。

    6. ディスクの管理に、「未割り当て」の領域が表示される。

    7. 「未割り当て」領域を右クリックし、「新しいシンプル ボリューム」を選択する。

    8. ウィザードが始まるので、ボリュームとして設定する。

    以上で終わり。