DB内のオブジェクトを更新日が新しい順に取得

今回は、SQLServerに関する話です。

稼働中のシステムを改修し、本番環境へ反映する際に、
プログラムの入替のみではなく、
データベースの更新作業が必要なことがあります。

あまり考えたくありませんが、
例えば、テーブルやビューにフィールドの追加や
新しく作成したストアドプロシージャやユーザー関数を追加などです。

確実なのは、作業リストを作成し、
改修した機能について、どのテーブル・ビューなどが改修されたか記録を取ることでしょう。

ただし、改修に時間が掛かったり、
複数の機能改修をまとめて反映する際には、
記録漏れが出ることも有ります。

これを回避するため、
DB内のテーブル・ビュー・ユーザー関数を更新された順に取得したいと思います。

該当のDBに対し、以下のSQLを実行します。


SELECT name, modify_date
FROM sys.objects
WHERE type in ('V', 'U', 'FN', 'P')
ORDER BY modify_date desc

sys.objects はデータベース内のオブジェクトを管理しているテーブルです。

SELECT句にはオブジェクト名(name), 更新日(modify_date)を指定します。
WHERE句には抽出する条件を指定します。
今回は、新しく更新された順に、
テーブル名・ビュー名・関数名・ストアドプロシージャが取得できればよいので、
U:テーブル(ユーザー定義)
V:ビュー
FN:スカラー関数
P:ストアドプロシージャ
の4文字をtypeに指定します。
ORDER BYにて、変更日の降順に出力すれば、
変更日が新しい順に更新したテーブル等が確認できる、ということになります。

typeはこれ以外にもありますが、
改修時に変更の頻度が高いのは上記の4つかな、と思いましたので、
この様に記述しています。

sys.objectsについて、詳しくはこちらに記述が有ります。
sys.objects(Transact-SQL)

[Oracle初心者運用メモ]リスナーのHOST名変更

Oracle DBサーバとして使用しているPCをドメイン参加に変更したところ、
Oracle DBへ接続できなくなってしまいました。

よく考えたら、ドメイン参加にしたことで
コンピュータ名が下記のように変わったためでした。
「pcname.testdomain.local」

DBサーバのリスナー(listener.ora)で指定しているHOST名を変更し
接続できるようになりました。

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pcname.testdomain.local)(PORT = 1521))
)
)

ちなみに、リスナーを変更した場合、リスナー再起動が必要です。

 

RAIDレベルについて

RAID構成はRAIDレベルとも呼ばれ、
RAID0からRAID6まで7種類有ります。
すでにRAIDの構成を行ったことが有る方は、
「そんなに有ったか?」と思う方もいらっしゃるかもしれません。
と言うのも、現行のRAIDコントローラやソフトウェアRAIDでは、
RAID0, RAID1, RAID5, RAID6の扱いが主で
RAID2~4は目にすることはまずありません。
理由は様々ですが、実用性が無かったり、
他の構成に比べ、メリットが少なかったりなどが原因です。

●各レベルの簡単な構成とメリット・デメリットについて。

・RAID0
複数台のHDDにデータを分散して書き込む。
RAID後の容量はHDDの最低容量 × HDD数となります。
300GBと500GBのHDDをRAID0で構成すると、
300GB × 2台 = 600GBとなります。
500GBのHDDで未使用領域である200GB分は使用不可となります。
(以降のRAIDレベルでも同様)

メリット
・HDDの数が増えるに従い、アクセス速度が上がります。
デメリット
・冗長化されない
・HDDが1台でも故障すれば、データは全て喪失します。

・RAID1
複数台(偶数)のHDDに同時に同じ内容のデータを書き込む。
RAID後の容量はHDDの最低容量 × HDD数 ÷ 2 となります。
300GBと500GBのHDDをRAID1で構成すると、
300GB × 2台 ÷ 2 = 300GBとなります。

メリット
・故障がHDD数-1台であれば、正常なHDDと入れ替えることで、復旧が可能。
デメリット
・ディスク容量は実容量の半分となる。

・RAID5
複数台のHDDにデータを分散して書き込み、その内1台には、誤り訂正用のデータを書き込む。
この訂正用のデータが結果として、1ドライブ分のデータ容量を使用するため、
RAID後の容量はHDDの最低容量 × (HDD数-1) となります。
300GBと500GB(2台)のHDDをRAID5で構成すると、
300GB × (3台-1)= 600GBとなります。

メリット
・RAID0に比べて障害性が高く、RAID1に比べて容量が多い。
デメリット
・読込は早いが、書込は遅い
・HDDが1台壊れても使用できるが、信頼性は低下し、アクセス速度も低下する。

以上、使用頻度が高い3レベルについて簡単に触れました。

RAIDは便利な仕組みですが、目的に沿った選択をしないと、デメリットに悩まされることにもなります。

他にも、RAID6といった今回記載していないレベルや、
RAID0とRAID1を組み合わせたRAID0 + 1やRAID1+0 なども存在しますが、
そちらについては、また機会があれば。

【WordPress】意外と知られていない「Contact Form 7」の機能

私がWordPressでホームページ制作をした際の内容をご紹介します。
ホームページを制作するときに、よくお問い合わせフォームを設置することがあると思います。
WordPressでホームページを制作するとき、簡単にお問い合わせフォームを設置できるプラグインとして代表的なものが、「Contact Form 7」です。

Contact Form 7は簡単にお問い合わせフォームを設置でき、フォームからのお問い合わせを受け付けられるのはもちろん、お問い合わせをした方にも、フォームに入力した内容のメールを受け取ることができます。

通常の設定では、確認画面が存在しないため、お問い合わせフォームに入力した後に送信ボタンを押すとすぐに送信が完了してしまいます。
それによって、入力の途中でうっかり送信ボタンを押してしまったり、お問い合わせフォームを通して迷惑メールを大量に送りつけられることもあります。

そこで、確認画面ではなく、確認用のチェックボックスを追加します。
下記の一文を、送信ボタンの前に追加して保存します。

[checkbox* use_label_element "上記内容にて送信しますので、よろしければチェックを入れてください。"]

これだけで、確認用のチェックボックスを追加し、うっかり送信なども防ぐことができます。
方法論の一つとして、お試しください。