2022年05月
2022年05月05日
サーバーのメンテナンスをしていました。
マニュアルでは、ローカルのサーバーに接続するには、 127.0.0.1 を利用してください。
そのように記載されていました。
たしかにそのIPは自身のことを指しているので、特に問題無いと思いました。
しかしそれではアクセスできないのです。
プログラムに原因があるのかと思って、SQL Server Management Studio でIPアドレスで接続を試してみました。
しかし同様にエラーになってしまうことがわかりました。
過去にも色々試行錯誤しているようでした。
2007年06月28日: SQL Server 2005 Express Edition
今回も同じような感じでした。
SQL Server 構成マネージャーを起動
SQL Server ネットワークの構成から、TCP/IPのプロパティ
有効をはいに変更。
「IPアドレス」タブの、IPAll のTCPポートを1433に変更。またTCP動的ポートは空欄に変更。
これで SQL Server を再起動することで 1433 が Listen していました。
FWも適切に設定します。
マニュアルでは、ローカルのサーバーに接続するには、 127.0.0.1 を利用してください。
そのように記載されていました。
たしかにそのIPは自身のことを指しているので、特に問題無いと思いました。
しかしそれではアクセスできないのです。
プログラムに原因があるのかと思って、SQL Server Management Studio でIPアドレスで接続を試してみました。
しかし同様にエラーになってしまうことがわかりました。
過去にも色々試行錯誤しているようでした。
2007年06月28日: SQL Server 2005 Express Edition
今回も同じような感じでした。
SQL Server 構成マネージャーを起動
SQL Server ネットワークの構成から、TCP/IPのプロパティ
有効をはいに変更。
「IPアドレス」タブの、IPAll のTCPポートを1433に変更。またTCP動的ポートは空欄に変更。
これで SQL Server を再起動することで 1433 が Listen していました。
FWも適切に設定します。
2022年05月04日
いつからだったか不明ですが、 SQL Server Agent が起動しません。
ログを見た限りでは、エラーになっておらず、サービスを開始させると、起動してすぐに停止しているようです。
なぜかエラーにはなっていません。
SQL Server Management Studio からサーバーに接続し、
管理-SQL Server ログという場所があるので、それを確認してみました。
「現在」となっているところを開くと、ログの選択画面が出てきて、SQL Server エージェントという項目がありました。
しかしここにもエラーはでていませんでした。
今回の件は結構対応が難しいと思いました。だってエラー出てないんだもの。
でもAgentを利用した、バックアップなどの処理はすべて失敗していました。
サービスから SQLAgentの起動権限を変更してみました。
まずはデフォルトの Network Service アカウントからローカルシステムアカウントに変更しました。
サービスの起動終了の症状には変化がありませんでした。
しかし SQL Server Management Studio から確認できるログには変化がありました。
以下のエラーが出ていました。
[298] SQLServer エラー: 229, EXECUTE 権限がオブジェクト 'sp_sqlagent_update_agent_xps'、データベース 'msdb'、スキーマ 'dbo' で拒否されました。 [SQLSTATE 42000] (DisableAgentXPs)
このエラーが出ていたので、サービス起動時のローカルシステムアカウントでは権限がないと思われました。
再度サービスを起動するアカウントに Admin 権限を有するアカウントを設定しました。
そしてサービスを起動すると無事に起動し、停止しませんでした。またエラーログも出なくなりました。
ログを見た限りでは、エラーになっておらず、サービスを開始させると、起動してすぐに停止しているようです。
なぜかエラーにはなっていません。
SQL Server Management Studio からサーバーに接続し、
管理-SQL Server ログという場所があるので、それを確認してみました。
「現在」となっているところを開くと、ログの選択画面が出てきて、SQL Server エージェントという項目がありました。
しかしここにもエラーはでていませんでした。
今回の件は結構対応が難しいと思いました。だってエラー出てないんだもの。
でもAgentを利用した、バックアップなどの処理はすべて失敗していました。
サービスから SQLAgentの起動権限を変更してみました。
まずはデフォルトの Network Service アカウントからローカルシステムアカウントに変更しました。
サービスの起動終了の症状には変化がありませんでした。
しかし SQL Server Management Studio から確認できるログには変化がありました。
以下のエラーが出ていました。
[298] SQLServer エラー: 229, EXECUTE 権限がオブジェクト 'sp_sqlagent_update_agent_xps'、データベース 'msdb'、スキーマ 'dbo' で拒否されました。 [SQLSTATE 42000] (DisableAgentXPs)
このエラーが出ていたので、サービス起動時のローカルシステムアカウントでは権限がないと思われました。
再度サービスを起動するアカウントに Admin 権限を有するアカウントを設定しました。
そしてサービスを起動すると無事に起動し、停止しませんでした。またエラーログも出なくなりました。
2022年05月02日
初めて Docker を利用します。
練習する材料として、ちょうどよさそうなので、 group session を Docker 環境で動かしてみたいと思います。
GroupSession
※構成方法が全然わかっていないので、ベストプラクティスに沿っていないと思います。
こういう例で動作した環境があるという程度の参考にしてください。
docker のインストール等については標準的な方法で行いました。
groupsession の変更点が保持されるように webapps はローカルにマウントしています。
groupsession のバージョンなどが勝手に変更されないように、 war ファイルはローカルに保持しています。
tomcat のバージョンは本日時点の最新を選択しました。
例えばこの docker 環境で tomcat のバージョンを変えれば、tomcat アップデートのテストが簡単にできそうな気がします。
java についても、ローカルに保存しているものを利用しています。
以下のディレクトリを作成します。
/root/my-gsession-test
/root/my-gsession-test/tomcat9
/root/my-gsession-test/webapps
Temurin の java ファイルをダウンロードし、以下のフォルダに保存します。(Temurin 11)
/root/my-gsession-test/tomcat9 に保存します。
groupsession の war ファイルを/root/my-gsession-test/webappsに保存します。
以下の通り yml ファイルを作成します。
# vi /root/my-gsession-test/docker-compose.yml
version: '3'
services:
tomcat:
container_name: my-gsession-test
build: ./tomcat9
ports:
- "8080:8080"
volumes:
- ./webapps:/usr/local/tomcat/webapps
Dockerfile を作成します。
# vi /root/my-gsession-test/tomcat9/Dockerfile
FROM tomcat:9.0.58
ADD OpenJDK11U-jdk_x64_linux_hotspot_11.0.15_10.tar.gz /usr/local/java
ENV JAVA_HOME="/usr/local/java/jdk-11.0.15+10"
ENV PATH="$JAVA_HOME/bin:$PATH"
※ADD に tar.gz ファイルを指定することで解凍してくれるようです。※ただし解凍するときに少しだけ時間がかかっています。
環境変数を追加しています。
これで以下のコマンドで docker を実行します。
# docker-compose up -d --build
起動状況を確認します。
# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
my-gsession-test "catalina.sh run" tomcat running 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
次にやりたいこと
apache との連携
group session のメモリ調整
練習する材料として、ちょうどよさそうなので、 group session を Docker 環境で動かしてみたいと思います。
GroupSession
※構成方法が全然わかっていないので、ベストプラクティスに沿っていないと思います。
こういう例で動作した環境があるという程度の参考にしてください。
docker のインストール等については標準的な方法で行いました。
groupsession の変更点が保持されるように webapps はローカルにマウントしています。
groupsession のバージョンなどが勝手に変更されないように、 war ファイルはローカルに保持しています。
tomcat のバージョンは本日時点の最新を選択しました。
例えばこの docker 環境で tomcat のバージョンを変えれば、tomcat アップデートのテストが簡単にできそうな気がします。
java についても、ローカルに保存しているものを利用しています。
以下のディレクトリを作成します。
/root/my-gsession-test
/root/my-gsession-test/tomcat9
/root/my-gsession-test/webapps
Temurin の java ファイルをダウンロードし、以下のフォルダに保存します。(Temurin 11)
/root/my-gsession-test/tomcat9 に保存します。
groupsession の war ファイルを/root/my-gsession-test/webappsに保存します。
以下の通り yml ファイルを作成します。
# vi /root/my-gsession-test/docker-compose.yml
version: '3'
services:
tomcat:
container_name: my-gsession-test
build: ./tomcat9
ports:
- "8080:8080"
volumes:
- ./webapps:/usr/local/tomcat/webapps
Dockerfile を作成します。
# vi /root/my-gsession-test/tomcat9/Dockerfile
FROM tomcat:9.0.58
ADD OpenJDK11U-jdk_x64_linux_hotspot_11.0.15_10.tar.gz /usr/local/java
ENV JAVA_HOME="/usr/local/java/jdk-11.0.15+10"
ENV PATH="$JAVA_HOME/bin:$PATH"
※ADD に tar.gz ファイルを指定することで解凍してくれるようです。※ただし解凍するときに少しだけ時間がかかっています。
環境変数を追加しています。
これで以下のコマンドで docker を実行します。
# docker-compose up -d --build
起動状況を確認します。
# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
my-gsession-test "catalina.sh run" tomcat running 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp
次にやりたいこと
apache との連携
group session のメモリ調整