View Full Version : مشکل در replication
Elham_gh
سه شنبه 18 بهمن 1384, 08:56 صبح
زمان راه اندازی replication رو از طریق Wizard پیغام خطای زیر را می دهد :
Error msg: SQL server agent on "my m/c" currently uses a
system
account, which cause replication between servers to fail. specify a
domain
account for the service startup account.
به جای System account , از "This account " استفاده کردم. در از "This account " خودش اتوماتیک "Localsystem" گذاشته همراه با passwordش. که این account نه در SQL server هست نه درWin2003 . این پیغام را ندید گرفته و در ادامه , زمانی که Finish آخر کار زده می شود , پیغام می دهد:
distributor_admin is not defined as a remote login at the server.
remote login
for the remote server 'repl-distributor' has been dropped
مشکل کجاست؟
(من قبلا زمان تنظیم replication چنین مشکلی نداشتم)
AminSobati
سه شنبه 18 بهمن 1384, 09:12 صبح
سرویس SQL Server و Agent رو با اکانت YourDomain\Administrator فعال کنین و مجددا Replication کنین. اگر Domain ندارین، همون اسم کامپیوتر خودتون رو بگذارین جای YourDomain
Elham_gh
سه شنبه 18 بهمن 1384, 09:27 صبح
مرسی مشکل پیغام اول حل شد . اما مشکل پیغام دوم باقیست.
Elham_gh
سه شنبه 18 بهمن 1384, 10:44 صبح
اون مشکل با این روش حل میشه
-- Use the Master database
USE master
GO
-- Declare local variables
DECLARE @serverproperty_servername varchar(100),
@servername varchar(100)
-- Get the value returned by the SERVERPROPERTY system function
SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
-- Get the value returned by @@SERVERNAME global variable
SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
-- Drop the server with incorrect name
EXEC sp_dropserver @server=@servername
-- Add the correct server as a local server
EXEC sp_addserver @server=@serverproperty_servername, @local='local'
AminSobati
سه شنبه 18 بهمن 1384, 11:13 صبح
Add کردن Local Server باید توسط خود Wizard انجام بشه، تعجب میکنم که چرا کار به Add کردن Manually کشید!
Elham_gh
سه شنبه 18 بهمن 1384, 11:53 صبح
نه مشکل add کردن Local Server نیست. مشکل اینکه حتما باید اسم سرور در شبکه با اسم registration یکسان باشه.
مشکل این بود که سرور در شبکه با نام Barez بود اما با Ip address , register شده بود
AminSobati
سه شنبه 18 بهمن 1384, 12:26 عصر
registration منظورتون در Enterprise Manager هست؟
Elham_gh
سه شنبه 18 بهمن 1384, 12:38 عصر
بله !
(من چه جوری باید "بله" رو در 10 کاراکتر بنویسم که سایت قبول کن؟!!!!!)
AminSobati
سه شنبه 18 بهمن 1384, 14:05 عصر
نه مشکل add کردن Local Server نیست. مشکل اینکه حتما باید اسم سرور در شبکه با اسم registration یکسان باشه.
مشکل این بود که سرور در شبکه با نام Barez بود اما با Ip address , register شده بود
نام عمومی مثل Local و همچنین IP، برای Replication قابل قبول نیستند اما اینکه نام Registration باید حتما نام خود سرور در شبکه باشه رو شک دارم. چون شما میتونین یک Alias برای نام سرور بسازین و با این نام Alias عمل Replication انجام بدین.
Elham_gh
سه شنبه 18 بهمن 1384, 14:16 عصر
چرا مشکل دقیقا همین است. و در تمتم سایتها هم به آن اشاره شده.
اما من یک مشکل دیگه پیدا کردم. Replication تعریف شده . اما اجرا نمی شود و Error نمی گیرد. در Agent Job ها که نگاه می کنم . نوشته
a snapshop was not generated because no subscriptions need initialization
مشکل کجاست؟؟
Elham_gh
سه شنبه 18 بهمن 1384, 17:38 عصر
این مشکلم هم حل شد. :) مشکل Non-Trusted Domains بود.
اما یک مشکل دیگه باقی مونده!!
replication در جداول مبدا تغییراتی ایجاد می کند. از جمله در هر جدول فیلدی اضافه می کند که
Not Null است. این مسئله زمان Insert رکورد جدید ایجاد مشکل می کند. را حل چیه؟؟
(عجیبه که من قبلا این مشکل رو هم نداشتم!! )
AminSobati
چهارشنبه 19 بهمن 1384, 00:19 صبح
اگر فیلدی اضافه کنه، قائدتا باید GUID باشه. حتما مقدار Default براش در نظر گرفته. از کجا مطمئن هستین که مشکل از این فیلده؟
AminSobati
چهارشنبه 19 بهمن 1384, 00:21 صبح
چرا مشکل دقیقا همین است. و در تمتم سایتها هم به آن اشاره شده.
ممکنه آدرس سایت رو بدین تا بیشتر مطالعه کنم
Elham_gh
چهارشنبه 19 بهمن 1384, 00:53 صبح
اگر فیلدی اضافه کنه، قائدتا باید GUID باشه. حتما مقدار Default براش در نظر گرفته. از کجا مطمئن هستین که مشکل از این فیلده؟
چون موقع Insert ها Null میمونه. و عمل Insert انجام نمی شود و Error می گیرد.
Omid Rekabsaz
چهارشنبه 19 بهمن 1384, 14:24 عصر
با سلام
فیلد زیر احتمالا فیلد rowguid از جنس UniqueIdentifier است که در صورتی که مقدار از تابع newid بگیرد مشکل حل می شود...
Elham_gh
چهارشنبه 19 بهمن 1384, 14:35 عصر
و اگه نگیرد؟؟؟؟
AminSobati
چهارشنبه 19 بهمن 1384, 15:31 عصر
چون موقع Insert ها Null میمونه. و عمل Insert انجام نمی شود و Error می گیرد.
Insert رو از چه طریقی آزمایش کردین؟ نرم افزار خاص خودتون، Enterprise Manager یا Query Analyzer یا...؟
AminSobati
چهارشنبه 19 بهمن 1384, 15:32 عصر
و اگه نگیرد؟؟؟؟
اگر این فیلد رو Replication ایجاد کرده و مقداردهی نمیکنه، ممکنه در مراحل انجام Wizard، خود برنامه این مشکل رو ایجاد کرده باشه (غیر عادی). Service Pack نصب کردین؟
Elham_gh
چهارشنبه 19 بهمن 1384, 15:35 عصر
بله !!
به این ترتیب فکر می کنم دوباره باید replication م رو نصب کنم.
Elham_gh
چهارشنبه 19 بهمن 1384, 15:45 عصر
ممکنه آدرس سایت رو بدین تا بیشتر مطالعه کنم
http://www.alegsa.com.ar/Visitas/i77/Configuring%20replication.php
http://support.microsoft.com/default.aspx?scid=kb;en-us;818334
http://www.mcse.ms/message328878.html
http://www.alegsa.com.ar/Visitas/i77/Configuring%20replication.php
http://www.developersdex.com/sql/message.asp?p=582&ID=%3CuO9gjUYJFHA.4060%40TK2MSFTNGP14.phx.gbl%3E
این یکی متفاوته !!!!
http://support.microsoft.com/default.aspx?scid=kb;en-us;321822
AminSobati
پنج شنبه 20 بهمن 1384, 00:10 صبح
به نظرم منظور نویسنده های این مطالب رو به شکل دیگه ای برداشت کردین. اسمی که شما استفاده میکنید تا SQL Server مورد نظر رو در Enteprise Maneger رجیستر کنید فرق میکنه با موضوع Network Name و نتیجه select @@servername
همونطور که قبلا هم عرض کردم شما به هر نامی میتونین SQL Server رو رجیستر کنین و حتی براش Alias بسازین و با این نام Alias، که اصلا شباهتی با Network Name و select @@servername نداره، عمل Replication انجام بدین
Elham_gh
جمعه 21 بهمن 1384, 13:03 عصر
با سلام
فیلد زیر احتمالا فیلد rowguid از جنس UniqueIdentifier است که در صورتی که مقدار از تابع newid بگیرد مشکل حل می شود...
مقدار اولیه آن ()NewID است. اما زمان ایجاد رکورد جدید عمل نمی کند.
rohollahmahmoodiany
سه شنبه 01 فروردین 1385, 12:25 عصر
سرویس SQL Server و Agent رو با اکانت YourDomain\Administrator فعال کنین و مجددا Replication کنین. اگر Domain ندارین، همون اسم کامپیوتر خودتون رو بگذارین جای YourDomain
اگه میشه در مورد این دوتا سرویس توضیح بدید.همچنین بفرمایید که چه لزومی دارد که با این اکانت فعال شود؟
AminSobati
سه شنبه 01 فروردین 1385, 19:45 عصر
سرویس SQL Server همون چیزیه که بهش میگیم SQL Server! یعنی اگر Stop باشه، SQL Serverی وجود نداره.
سرویس Agent وظیفه داره کارهای زمان بندی شده (Jobs) رو سر وقتش انجام بده. اگر Stop باشه، کارهای مورد نظر شما در زمان مقرر انجام نخواهد شد.
اکانت LocalSystem در هر ویندوزی وجود داره و اختیاراتش در حد Admin داخلی هست. لذا هیچ سرویسی با این اکانت نمیتونه فرا تر از کامپیوتر Local خودش بره.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.