技術:2011年
2011年12月20日
お客様環境で IIJ GIOホスティングパッケージサービス を利用しており、それのメンテナンスをすることになりました。
まったく初めての状態で、ある程度構築されたサーバーを渡されたので、試行錯誤しながらでした。
構成としては、以下の感じです。
ということで、負荷分散・冗長化構成です。
■やりたいこと
http の冗長化
https の冗長化
SSH でのログイン
■仕組み
LBの設定をしてから負荷分散が行われるようになります。分散方式はすいません後ほど調べます。
https も分散できるようですが、仕組みはちゃんとわかっていません。
FW無効のときには、各サーバー毎にグローバルIPが付与されます。FWを有効にするとLB配下になります。
そのためFW有効のときには、各サーバーに割り当てられているグローバルIPにアクセスすることができません。(そもそもグローバルIPが無くなるっぽい?)
ということで、近日中に http / https / ssh / ftp を公開する方法を掲載したいと思います。
まったく初めての状態で、ある程度構築されたサーバーを渡されたので、試行錯誤しながらでした。
構成としては、以下の感じです。
ということで、負荷分散・冗長化構成です。
■やりたいこと
http の冗長化
https の冗長化
SSH でのログイン
■仕組み
LBの設定をしてから負荷分散が行われるようになります。分散方式はすいません後ほど調べます。
https も分散できるようですが、仕組みはちゃんとわかっていません。
FW無効のときには、各サーバー毎にグローバルIPが付与されます。FWを有効にするとLB配下になります。
そのためFW有効のときには、各サーバーに割り当てられているグローバルIPにアクセスすることができません。(そもそもグローバルIPが無くなるっぽい?)
ということで、近日中に http / https / ssh / ftp を公開する方法を掲載したいと思います。
2011年12月19日
SQL サーバーでバックアップを取得する際には、以下のコマンドを利用します。
BACKUP DATABASE [DB名] TO DISK = N'D:\BK\[バックアップファイル名].bak'
WITH NOFORMAT, INIT, NAME = N'nDB名-完全バックアップ', SKIP, COMPRESSION
※コマンド
NOFORMAT:
INIT: 上書き(追記じゃないから1回分しかバックアップが保持されません)
NAME: バックアップセットの名称
SKIP: 有効期限の確認をしない
COMPRESSION: 圧縮する
上記コマンドを実行させます。とりあえず簡単なのは SQL Server 2008 であれば、SQL Serverエージェントからジョブを作成します。
以下メモ。
・新しいジョブの作成
全般:
カテゴリはデータベースのメンテナンスを選択
ステップ:
新しいステップで、種類は Transact-SQL を選択
データベースで DB名を選択
コマンドに上記コマンドを貼り付け
スケジュール:
毎日もしくは毎週で時間と曜日を指定
通知:
イベントログに書き込む ジョブ失敗時
以上でOKです。
※なお1日分しか取得されないので、必要に応じてフォルダでローテーションするなどが必要です。
※完全バックアップのみなので、トランザクションログも必要になります。
BACKUP DATABASE [DB名] TO DISK = N'D:\BK\[バックアップファイル名].bak'
WITH NOFORMAT, INIT, NAME = N'nDB名-完全バックアップ', SKIP, COMPRESSION
※コマンド
NOFORMAT:
INIT: 上書き(追記じゃないから1回分しかバックアップが保持されません)
NAME: バックアップセットの名称
SKIP: 有効期限の確認をしない
COMPRESSION: 圧縮する
上記コマンドを実行させます。とりあえず簡単なのは SQL Server 2008 であれば、SQL Serverエージェントからジョブを作成します。
以下メモ。
・新しいジョブの作成
全般:
カテゴリはデータベースのメンテナンスを選択
ステップ:
新しいステップで、種類は Transact-SQL を選択
データベースで DB名を選択
コマンドに上記コマンドを貼り付け
スケジュール:
毎日もしくは毎週で時間と曜日を指定
通知:
イベントログに書き込む ジョブ失敗時
以上でOKです。
※なお1日分しか取得されないので、必要に応じてフォルダでローテーションするなどが必要です。
※完全バックアップのみなので、トランザクションログも必要になります。
2011年12月17日
2011年12月16日
Pleskを利用しているのですが、VPSサーバーのスペックの問題もあって、すぐにメモリエラーになってしまいます。
今回は以下のようなエラーが。
Unable to connect to the mysql database, relay will work in closed mode & white list will not work
この時はCCにて10名以上の方にメールを送信すると出てしまうようでした。他にも以下のようなログも。
Unable_to_fork:_out_of_memory
今までは concurrencylocal / concurrencyremote で調整していましたが、今回は上記の通り mysql のエラーもでていたので、こちらも調整しました。
なおステータスは以下のようになっていました。
mysqladmin -u [管理者ユーザー名] -p extended-status | egrep '(Max|Threads_)'
| Max_used_connections | 18 |
| Threads_cached | 6 |
| Threads_connected | 1 |
| Threads_created | 1056976 |
| Threads_running | 1 |
とりあえず
wait_timeout=240
thread_cache=20
で様子を見たいと思います。
※参考
MySQL の wait_timeout と thread_cache_size の関係
MySQLのチューニング?
今回は以下のようなエラーが。
Unable to connect to the mysql database, relay will work in closed mode & white list will not work
この時はCCにて10名以上の方にメールを送信すると出てしまうようでした。他にも以下のようなログも。
Unable_to_fork:_out_of_memory
今までは concurrencylocal / concurrencyremote で調整していましたが、今回は上記の通り mysql のエラーもでていたので、こちらも調整しました。
なおステータスは以下のようになっていました。
mysqladmin -u [管理者ユーザー名] -p extended-status | egrep '(Max|Threads_)'
| Max_used_connections | 18 |
| Threads_cached | 6 |
| Threads_connected | 1 |
| Threads_created | 1056976 |
| Threads_running | 1 |
とりあえず
wait_timeout=240
thread_cache=20
で様子を見たいと思います。
※参考
MySQL の wait_timeout と thread_cache_size の関係
MySQLのチューニング?
2011年12月15日
メールのログを見るときに、grep をよく利用しています。
plesk の関係で接続してきた時には、必ず以下のようなログが出力されます
[日時] [サーバー] relaylock: /var/qmail/bin/relaylock: mail from [IP]:57780 ([ホスト名])
ということで、スパムや極端にアクセスが多い場所を調べることができます。
しかしこの方法だと、安全だと分かっている接続もたくさん表示されます。例えば gmail だったり、自社からの接続だったりと。
ということでこれらについては除外がしたかったのです。
以下の2通りの方法があるようです。
grep -v [除外文字列]
ただし上記方法だと複数の場合、例えばgmail と ocn のような時、2回指定し無ければならないようです。
grep -v gmail | grep -v ocn という感じ。
これでは不便だったので、 egrep を利用します。
egrep -v 'gmail|ocn'
ということで無事に除外の設定ができました。
plesk の関係で接続してきた時には、必ず以下のようなログが出力されます
[日時] [サーバー] relaylock: /var/qmail/bin/relaylock: mail from [IP]:57780 ([ホスト名])
ということで、スパムや極端にアクセスが多い場所を調べることができます。
しかしこの方法だと、安全だと分かっている接続もたくさん表示されます。例えば gmail だったり、自社からの接続だったりと。
ということでこれらについては除外がしたかったのです。
以下の2通りの方法があるようです。
grep -v [除外文字列]
ただし上記方法だと複数の場合、例えばgmail と ocn のような時、2回指定し無ければならないようです。
grep -v gmail | grep -v ocn という感じ。
これでは不便だったので、 egrep を利用します。
egrep -v 'gmail|ocn'
ということで無事に除外の設定ができました。
2011年12月14日
2011年12月13日