1つのSQL Server 2005インスタンスに2つのデータベースがあり、それらの間でトランザクションレプリケーションが行われていました(記事として3つのテーブル)。このサーバーは、パブリッシャーとディストリビューターの両方として機能しました。
次に、サーバーのRAIDに障害が発生しました。しかし.mdf
、クラッシュする前に、ほぼすべてのファイルを切り離してコピーすることができました。
システムの復元後、SQL Serverを再インストールし、システムデータベース(master、model、msdb)を復元して、.mdf
ファイルを同じパスに配置しました。それで始まった。
レプリケーションで問題が発生しました。ローカルパブリケーションのフォルダは、空であったけれどもローカルサブスクリプション問題のサブスクリプションが含まれていたフォルダ。私が新しい出版物を追加しようとしたとき、私は得ました:
新しいパブリケーションウィザードで、パブリケーション名の取得中に1つ以上のエラーが発生しました。
Transact-SQLステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo)
無効なオブジェクト名 'dbo.syspublications'。(Microsoft SQL Server、エラー:208)
左側のサブスクリプション(最終的にはなんとか管理できました)を削除して、サーバーでの公開と配布を無効にすることを試みることにしました。
SQL Serverは 'someserver'での公開と配布を無効にできませんでした。
無効なオブジェクト名 'dbo.syssubscriptions'。EXECUTEの後のトランザクション数は、COMMITまたはROLLBACK TRANSACTIONステートメントが欠落していることを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。EXECUTE後のトランザクションカウントは、COMMITまたはROLLBACK TRANSACTIONステートメントがないことを示しています。以前のカウント= 0、現在のカウント=1。データベースコンテキストを「マスター」に変更しました。(Microsoft SQL Server、エラー:208)
システムデータベースバックアップから一部の情報が復元されなかったようです(おそらくdistribution
データベースに何かが欠落している可能性があります)。
また、公開と配布を無効にできないという質問に答えるようにしました。しかし、成功しませんでした。私が作成しようとしたsyspublications
の両方をmaster
してdistribution
、何も変わっていません。
では、このサーバーでレプリケーションを機能させるにはどうすればよいですか?
サーバー上で他のデータベースを公開しようとしましたが、うまくいきました。したがって、問題は公開されたデータベースに関連しているようです。どうすればそれをクリアして、その上に新しいパブリケーションを作成できますか?
System Tables
問題のあるデータベースのサブフォルダは、データベースがパブリッシュされたときに作成されるレプリケーションテーブルを見逃します。
レプリケーションモニターでは、これらの古いサブスクリプションを確認できますが、レプリケーションフォルダーでは使用できません 。