Решено Domino Replication Fundamentals And Troubleshooting

Тема в разделе "Lotus - Администрирование", создана пользователем puks, 6 янв 2015.

  1. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
  2. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    ссылка что-то не робит
     
  3. puks

    puks Lotus team
    Lotus team

    Регистрация:
    3 фев 2007
    Сообщения:
    1.967
    Симпатии:
    16
    Ага. Послал им запрос. (Надо было скачать док)
     
  4. rinsk

    rinsk Lotus team
    Lotus team

    Регистрация:
    12 ноя 2009
    Сообщения:
    797
    Симпатии:
    78
    Успел почитать, но не сохранить(
    Там не раскрыта тема разьезжания реплик в кластере после краха\рестарта одного из серверов кластера. Ясно что оно лечится очисткой истории репликации, но руками эт делать как то достало.
    Наваял скрипт, запускаемый при старте сервера.
    Код (LotusScript):
    %REM
    *********************************************
    Agent ClearHistoryAll
    Created Jan 13, 2015 by Rinat N. Karimov
    Description: Comments for Agent
    %END REM

    Option Public
    Option Declare
    Sub Initialize
        GoTo begin
    errors: MsgBox Error & " Initialize:"& Erl
        Exit Sub
    begin:On Error GoTo errors
        Dim s As New NotesSession, dbdir As New NotesDbDirectory(""), dbcl As NotesDatabase
        Dim vcl As NotesView, ncl As NotesViewEntryCollection, nc As NotesViewEntry
        Dim db As NotesDatabase, rep As NotesReplication, srvname As New NotesName(s.Currentdatabase.Server)
        Dim srvlist As Variant,isProcess As Variant
        Set dbcl=s.Getdatabase("","cldbdir.nsf")
        If Not dbcl.Isopen Then Exit Sub
        Set vcl=dbcl.Getview("($ReplicaID)")
        vcl.Autoupdate=False
        Set db = dbdir.GetFirstDatabase(1247)
        While Not (db Is Nothing)
            Set ncl=vcl.Getallentriesbykey(Left(db.Replicaid,8)+":"+Right(db.Replicaid,8),True)
            If ncl.Count>1 Then ' есть несколько серверов на базу - значит чистим историю репликации
                isProcess=False
                Set nc=ncl.Getfirstentry()
                Do While Not nc Is Nothing ' собираем список серверов для команды replicate
                    If nc.Columnvalues(1)="0" Then 'только включенные базы
                        If InStr(UCase(srvlist),UCase(nc.Columnvalues(2)))=0 And UCase(nc.Columnvalues(2))<>UCase(srvname.Canonical) Then srvlist=srvlist & "," & nc.Columnvalues(2)
                        IsProcess=True ' есть
                    End If
                    Set nc=ncl.Getnextentry(nc)
                Loop
                If IsProcess Then
                    If Not db.isOpen Then Call db.Open("","")
                    If db.Isopen Then
                        On Error Resume Next
                        Set rep=db.Replicationinfo
                        Call rep.Clearhistory()
                        Call rep.Save()
                        On Error GoTo errors
                    End If
                 
                End If
            End If
            Set db = dbdir.GetNextDatabase
        Wend
        srvlist=FullTrim(Split(srvlist,",")) ' реплицируемся со всеми серверами кластера
        ForAll cmd In srvlist
            If cmd<>"" Then
                MsgBox "Console command:" & "replicate " & cmd
                Call s.Sendconsolecommand("","replicate " & cmd)
            End If
        End ForAll
    End Sub
     
    #4 rinsk, 14 янв 2015
    Последнее редактирование модератором: 20 апр 2016
  5. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    не уверен что был крах и т.п.
    есть доки в реплике на одном из серверов они, по времени изменения, старее, чем на др. (с кот. активно работают)
    причем разница >полгода
    хистори чистил, pull делал (с сервера на кот. "старее" доки)
    ничего не помогает - изменения не прилетают
    куда покопать?
     
  6. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    @puks, вдогонку http://www.notesdesign.com/ndfiles/ReplicationFundamentals.pdf
    эта статья?
    [DOUBLEPOST=1461162067,1461161960][/DOUBLEPOST]ЗЫЖ я конечно понимаю - можно seqnum сравнивать - новпадлумне ;)
    [DOUBLEPOST=1461162194][/DOUBLEPOST]и да - seqnum этих доков не совпадают, но сцуко, не реплицируются
     
  7. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    еще деталь вспомнил - делал compact -F на одном из серверов, но это уже после обнаружения траблы
    доки "нормально" открываются интерактивно
     
  8. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.082
    Симпатии:
    300
    постучал в бубен изменил чуть способ и кажись засинхронилось,
    делал pull <Имя кластера>, сделал pull <Имя сервера> и срослось
     
Загрузка...

Поделиться этой страницей