SQL Server Express を使ったレプリケーション その4


前回のつづき

Azureの無料クレジットが無くなってしまったので、もはやこの話題の内容を検証する手立てが無くなってしまった。
一か月無料って表現だけ、デカデカと載ってるけど、実は2万円ちょっとの限界付きだんだよね。20日くらいで終わっちゃった。
秒単位で課金するくせに、実際に使った使用料の確認は2日遅れとかで表示されるので、下手をするととんでもない請求がくるorz

さて、僕が経験したレプリケーション時のエラーと対処をまとめておく。

接続できない系

コーディングしたログオン名や、パスワードをもう一度チェック。なんせ最低5アカウントはつくるからごっちゃになるorz
あとは、サブスクラバーからパブリッシャーの接続がSQL認証に統一されているかどうか。その3で使用したソースコードは、Windows認証を使っていたので、最初全然動かなくて苦労したorz

スキーマ スクリプト '*****.sch' は、サブスクライバーに反映されませんでした。

これが一番悩ませた難問でした。原因はパブリッシャーの共有フォルダ(repldata)にアクセスする権限がないとうことでした。この対処がその3で書いた実行前のチェックです。
その3で書いたコードだと、そのプログラム実行時のみ有効な資格情報が使われるらしく、その時にネットワーク共有で接続していないと資格情報がないため、共有フォルダにアクセスできないと推測します。
そして、一番最初の同期処理が成功したときに、ネットワーク共有で接続している資格情報をSQLサーバーが保存するみたいです。だから一回でも同期が成功すれば、再起動等で共有がきれても、保存した資格情報を使って同期できるみたい。

このあたり、仕組みをしっかりと調べればよいのかもしれませんが、そんな根気はありませぬ。結果オーライである。

では、おしまいー