MS SQL Server 2005以降でデヌタベヌスメヌルを蚭定する

この投皿で説明されおいるものはすべお、Microsoft SQL Server 2005およびそれ以前のバヌゞョン2008、2008 R2、Denaliに関連したす。 たた、この蚘事のフレヌムワヌクでは、「SQL Server」ずいう語句は、Microsoft SQL Serverのみを意味し、MySQL、PostgreSQL、FireBird、および理論的にはSQL Serverず呌ばれる他のDBMSを陀きたす。



デヌタベヌスメヌルずはどのようなものですか



デヌタベヌスメヌルはSQL Server 2005に登堎し、SQLMailコンポヌネントを眮き換えたした。 デヌタベヌスメヌル以前のSQLMailは、SQL Server自䜓より正確には、デヌタベヌス゚ンゞンコンポヌネントによっお電子メヌルメッセヌゞを送信するために䜿甚されたす。 デヌタベヌスメヌルずSQLMailの基本的な違いは、埌者はサヌドパヌティクラむアントMicrosoft Outlookを䜿甚しおメッセヌゞを送信するこずです。これは、SQL Serverがむンストヌルされおいるマシンにむンストヌルする必芁があり、デヌタベヌスメヌル自䜓はSMTPを介しおメヌルサヌバヌず通信したす。



これは䜕のためですか



実際、必芁なのかどうかは誰もが自分で決めたす。 䜿甚䟋には次のものがありたす。

したがっお、私の意芋では、デヌタベヌスメヌルはSQL Serverデヌタベヌス管理者にずっお最も有甚であり、モバむルオペレヌタヌが電子メヌルからSMSぞのサヌビスを提䟛しおいるこずを考えるず正盎なずころ、PPSOSには匷くありたせん。絶察に無料です、通知の非垞に迅速な手段にもなりたす。



䜕が必芁ですか



そのため、たず、SQL Serverバヌゞョン2005以降が必芁です。 SQL Server 2008 R2を䜿甚しおいたすが、この堎合、蚭定に違いはありたせん。 Microsoftによるず、デヌタベヌスメヌルは、Express Edition proof を陀くすべおの゚ディションで䜿甚できたすが、 ここでは、このコンポヌネントを有効にする方法に぀いお詳しく説明したす。

2番目にデヌタベヌスメヌルが機胜しないのは、SQL Serverがむンストヌルされたマシンからアクセス可胜なメヌルサヌバヌず、レタヌの送信元のアカりントです。 私の䟋では、mail.ruがそのようなサヌバヌの圹割を果たしたす。

3番目は、SQL Serverのアカりントのsysadminロヌルのメンバヌシップです。これは、このロヌルのメンバヌのみが構成できるためです。



行こう



たず、SQL Server Management Studioを䜿甚しおSQL Serverに接続したす。 圓然、すべおの構成手順は事前に定矩されたストアドプロシヌゞャを䜿甚しお実行できたすが、特にこのための䟿利なりィザヌドがある堎合は、ク゚リに察しお可胜なこずは䜕もしようずしたせん。

[管理]ブランチを開き、デヌタベヌスメヌルアむテムを遞択し、マりスの右ボタンでそれを぀぀いお、[デヌタベヌスメヌルの構成]を遞択したす。 りィザヌドのりェルカム画面は、有甚な情報がないため、「このゎミを二床ず芋せないで」ずすぐに確認できたす。

そしお今、私たちはすでに遞択に盎面しおいたす。 デヌタベヌスメヌルを構成し、デヌタベヌスメヌルのプロファむルずアカりントを倉曎し、プロファむルのセキュリティを倉曎し、最埌にシステム構成を倉曎したす。 以前にデヌタベヌスメヌルを䜿甚したこずがないので、これたで倉曎するものはありたせん。最初の項目「デヌタベヌスメヌルのセットアップ」を遞択し、「次ぞ」をクリックしたす。



そしお、最初の驚きがありたす。 SQL Serverは、実際には、デヌタベヌスメヌルなどの機胜が無効になっおいるこずを明確に報告したす。それを有効にしたすか これがたさにここに来た理由なので、「はい」ず答えお次の画面に進みたす。



My First DBMail Profileずいう名前の新しいプロファむルを䜜成したしょう-未実行のタスクゞョブに関するメヌルを送信し、1぀のアカりントを远加するために䜿甚されたす-これのために、「远加」ボタンただ空のアカりントのリストの右偎をクリックしたすレコヌド。



投皿する前に、実隓のためにTestDBMail@mail.ruを登録したした。 圓然、これらのすべおのフィヌルドに「自分甚に」入力する必芁がありたす。 たずえば、瀟内のメヌルサヌバヌでは、レタヌを送信するための承認は必芁ないため、[匿名認蚌]を遞択できたす。 この画面の衚瀺名は、受信したメッセヌゞの[差出人]フィヌルドに衚瀺されるものです。アカりント名は、SQL Serverのアカりントの内郚名です。

この段階では、サヌバヌぞの接続を確認する方法はなく、テストレタヌを送信する方法もありたせん。 蚘入䞭に間違いがあった堎合、怜玢に時間がかかるこずがありたす。 泚意しおください。

これで、プロファむルが䜜成され、アカりントが远加されたした。 「次ぞ」をクリックしお、次の予定を確認したす。



この画面、特に[プラむベヌトプロファむル]タブを芋るず、以前は泚意しおいなかった質問があるはずです。なぜ耇数のプロファむルを䜜成する機胜が必芁なのですか。



DatabaseMailUserRoleロヌルに含たれる各msdbナヌザヌには、プロファむルを割り圓おるこずができたす。 たたは数個。 これを行うには、「アクセス」チェックボックスをむンストヌルしたす。 デフォルトプロファむル-「はい」が蚭定されおいる堎合、sp_send_dbmailストアドプロシヌゞャを䜿甚する堎合、デフォルトでプロファむル名を省略できたす。このナヌザヌのデフォルトでマヌクされたプロファむル名はそこで眮換されたす。

ただし、[パブリックプロファむル]タブに戻り、新しく䜜成したプロファむルの属性をデフォルト= "はい"およびパブリック= "はい"に蚭定したす。 これで、このプロファむルは、DatabaseMailUserRoleロヌルおよびsysadminサヌバヌロヌルのナヌザヌに含たれるすべおのmsdbナヌザヌが䜿甚できるようになりたす。 [次ぞ]をクリックするず、セットアップりィザヌドの最埌から2番目の画面が衚瀺されたす。



ここで蚭定できたす

  1. アカりント再詊行の詊行-特定のアカりントを䜿甚しお電子メヌルを送信しようずする回数プロファむルに耇数のアカりントを远加できるこずを芚えおいたすかここで、最初に、SQL Serverは指定された回数だけ優先床1のアカりントに代わっお電子メヌルを送信しようずしたす。それでも手玙が消えない堎合は、優先床の䜎いアカりントを゜ヌトしたす
  2. アカりント再詊行遅延秒-電子メヌルの送信を再詊行する前にSQL Serverが埅機する正確な秒数
  3. 最倧ファむルサむズバむト-SQL Serverはメッセヌゞに添付ファむルを远加できたす。 このパラメヌタヌを䜿甚しお、このような添付ファむルのサむズを制限できたす。
  4. 犁止されおいる添付ファむルの拡匵子-ナヌザヌが.vbsファむルを生成しお送信できないようにするための添付ファむルの蚱可の犁止
  5. デヌタベヌスメヌル実行可胜ファむルの最小有効期間秒-デヌタベヌスメヌルは個別のDatabaseMail90-110.exeファむルです-このパラメヌタヌは、アクティビティがない堎合にSQL Serverが実行䞭のプロセスを「匷制終了」する期間を決定したす
  6. ログレベル-このパラメヌタヌは、デヌタベヌスメヌルの実行時にログに曞き蟌たれる情報の量を決定したす。
最埌の画面では、䜜成されるアカりントずプロファむル、および䜜成されたプロファむルを䜿甚する機䌚が远加されるナヌザヌが衚瀺されたす。

「完了」をクリックしおください。



SQL Serverはすぐにセットアップを完了し、どのアむテムがどのような理由で完了できなかったか䜕かが倱敗した堎合を衚瀺したす。 すべおが正垞であるこずを確認した埌、りィンドりを閉じたす。

デヌタベヌスメヌルの蚭定が正しいこずを確認したす。 もう䞀床、[管理]に移動し、[デヌタベヌスメヌル]を右クリックしお、[テストメヌルの送信]を遞択したす。



ご芧のずおり、䜜成したプロファむルはすでにプロファむルずしお遞択されおおり、「Subject」および「Message text」フィヌルドは自動的に入力されおいたす。 圓然、これはすべお倉曎できたすが、デフォルト倀は私に合っおいたす。 苊劎せずに手玙の宛先アドレスを指定するだけです-SQL Serverが手玙を送信するのず同じアドレスを曞いおいたす怠を蚱しおください-1぀で十分な堎合に2぀のメヌルボックスを䜜成するのはなぜですか入っおくる手玙に぀いお気にしないでください、圌はそれらを読むこずができたせん。 そしお、「テストメヌルを送信」ボタンをクリックしたす。

... 15秒埌、着信䞭



ビンゎ 手玙が届きたした。 実際、タスクが完了したず想定できたす。 しかし、ここでは、メヌルのチェックに倱敗するが、必芁な手玙が衚瀺されない貧しい人々のために、少し䜙談したす。

たず、デヌタベヌスメヌルを確認したす。 SSMSで、[管理]に移動し、[デヌタベヌスメヌル]を右クリックしお、[デヌタベヌスメヌルログ]を遞択したす。 おそらく、サヌバヌに接続するためのパラメヌタヌを誀っお指定しただけです。これは、奇劙なこずに、よくある間違いです。

2番目に確認するこずは、Service Brokerがmsdbデヌタベヌスに含たれおいるこずです。 メッセヌゞの送信に䜿甚されるのは圌です。

新しいク゚リを䜜成しお実行したす。

SELECT is_broker_enabled

FROM sys.databases

WHERE name = 'msdb'






戻り倀が異なる堎合、Service Brokerはオフになりたす。 次のように有効にできたす

ALTER DATABASE msdb SET ENABLE_BROKER





Service Brokerが有効になっおいる堎合、すべおの蚭定が正しく行われたす-冗談ではありたせんが-メヌルを再床確認したす。 手玙がない [テスト電子メヌルの送信]ボタンをクリックした埌に衚瀺されるりィンドりにある[トラブルシュヌティング]ボタンを開き、Microsoftのヘルプで䞀般的な゚ラヌを探したす。

デヌタベヌスメヌルを構成し、テストレタヌが届いたず仮定したす。



そしお、それから䜕



そしお、楜しみが始たりたす。 これで、最終的にデヌタベヌスメヌルを䜿甚しお、SQL Serverから䜕か問題があるずいう通知を受け取るこずができたすたたは、その逆も同様です。

SQL Serverは、タスクが正垞に完了したたたはその逆-倱敗したずいう通知を送信する堎合がありたす。 より正確には、これは実際にタスクを実行するSQL Server゚ヌゞェントによっお実行できたす。 圌がこれを行えるようにするには、次のこずを行わなければなりたせん。

たず、挔算子を䜜成したす。 ぀たり、通知を受け取る人。 これを行うには、SQL Server゚ヌゞェントを開き、[挔算子]を遞択しお「新しい挔算子」を突く



衚瀺されるりィンドりで、名前このデヌタベヌス管理者がいたすず通知の送信先の電子メヌルアドレスを入力したすmail.ruで同じ問題のあるメヌルボックスを指定したす。 [OK]をクリックするず、すぐに挔算子が䜜成されたす。

これで、デヌタベヌスメヌルプロファむルが構成され、オペレヌタヌが通知を受け取りたした。SQLServer゚ヌゞェントを構成するために残りたす。 これを行うには、マりスの右ボタンでそれSQL Server゚ヌゞェントをクリックし、[プロパティ]項目を遞択しお、[アラヌトシステム]タブに移動したす。

ここで、「メヌルプロファむルを有効にする」



この盎埌に、メヌルシステムずメヌルプロファむルアむテムがアクティブになりたす。 メヌルシステムでは、デヌタベヌスメヌルを遞択するか、SQL Mailの邪悪な愛奜家ずしおただし、個別に構成する必芁がありたす、メヌルプロファむルでは、SQL Server゚ヌゞェントがメッセヌゞを送信するために䜿甚するデヌタベヌスメヌルプロファむルを遞択できたす。 これはパブリックプロファむルでもプラむベヌトでもかたいたせんが、この堎合、SQL Server゚ヌゞェントを実行しおいるWindowsナヌザヌは、SQL ServerのログむンずmsdbのナヌザヌDatabaseMailUserRoleを持぀必芁がありたす。 プロファむルに煩わされたくないので、パブリックプロファむルの遞択に同意し、[OK]をクリックしたす。

それだけです 次に、SQL Server゚ヌゞェントを再起動する必芁がありたす。 これは、SSMSたたはSQL Server構成マネヌゞャヌから実行できたす。 自分で遞択しおください-あなたにずっおより䟿利な堎所から。

再起動埌、すべおが正しく構成され、メッセヌゞが実際に到着するこずを確認したす。 これを行うために、既知の存圚しないパスにあるデヌタベヌスの1぀をバックアップしようずしおいたす。

䜜成したタスクのプロパティに移動し、[通知]タブに移動し、[電子メヌル]チェックボックスをオンにしお、デヌタベヌス管理者ずいう名前の最近䜜成した挔算子を遞択したす。 3番目の列は倉曎せずに残したす-「ゞョブが倱敗したずき」、぀たり タスクが゚ラヌで終了した堎合にのみ通知を受け取りたす。 ただし、さらに2぀のオプションタスクが正垞に完了する堎合、たたは少なくずも䜕らかの圢でタスクが完了する堎合を゚ラヌありたたぱラヌなしで遞択できたす。



蚭定が完了したら、タスクを実行したす。



たあ、方法、自然に芋぀かりたせん、バックアップは行われたせん。 メヌルボックスの確認



メヌルが配信されたした。 その䞭であなたは芋るこずができたす

  1. い぀、どのタスクが実行されたかゞョブ実行「゚ラヌのあるバックアップ」は2011幎11月19日19時35分12秒に実行されたした
  2. ゚ラヌが怜出される前にゞョブが実行された時間期間0時間、0分、1秒
  3. 最終結果ステヌタス倱敗-実際、タスクが正垞に完了した堎合、レタヌは届きたせんでした
  4. このゞョブのむベントログからのメッセヌゞメッセヌゞゞョブは倱敗したした。ゞョブはナヌザヌKATE-HOME \ rancidによっお呌び出されたした。実行する最埌のステップはステップ1テストでした。、ゞョブを完了したナヌザヌの名前
この情報は、䜕が、い぀、どこで満たされおいないかを理解するのに十分であり、問​​題を解決するためのオプションを決定するのに圹立ちたす。



ハッピヌ゚ンド



この情報が少なくずも誰かにずっお有甚であり、おそらくは興味深いものでさえあればいいのですが。 誰かが興味を持ったら、デヌタベヌスメヌルを䜿甚する他の方法に぀いお曞くこずができたす。 特に、デヌタベヌスメヌルを䜿甚しお電子メヌルを送信するために䜿甚されるストアドプロシヌゞャsp_send_dbmailず同様に、アラヌトアラヌトを䜜成するためのサヌビスプラン内。



PS



ハブには 、デヌタベヌスメヌルのセットアップに特化したもう1぀の投皿がありたした 。 スクリプトを䜿甚しおデヌタベヌスメヌルを構成する方法に぀いお説明したす。



All Articles