восстановление данных

скопируем скрипт создания менеджера и создадим нового, в название добавим «restr»

cp createmqmgr createmqrestr

#!/bin/bash
echo '—————Create MQM————-'
. ~/.bash_profile
endmqm -p QML1
#######
dltmqm QML1
######
echo «—————-crtmqm—————«
crtmqm -q -md /home/mqm/data -ld /home/mqm/log -ll -lf 8096 'MQL1'
# ll - линейный лог
#lf размер журнала в блоках 4096
#
#
strmqm 'MQL1'
#———————————————
runmqsc 'MQL1' < 2.sc > report.log

~

vim 2.sc

* ———————— настройки менеджера
ALTER QMGR SCMDSERV (QMGR)
ALTER QMGR DESCR ('test arministrator for restore')
ALTER QMGR DEADQ (badqueue)
* Создание очередей
DEFINE QLOCAL ('badqueue') DESCR ('очередь отвергнутых сообщений')
DEFINE QLOCAL (QL.A) MAXDEPTH (100) MAXMSGL(100) DEFPSIST(YES)
DEFINE QLOCAL (QL.B) MAXDEPTH (100) MAXMSGL(100) DEFPSIST(YES)

запустим

./createmqrestr

После этого подключимся к менеджеру

runmqsc QML1

посмотрим все очереди

DIS QL (Q*)

поместим в них сообщения

amqsput QL.A QML1
Sample AMQSPUT0 start
target queue is QL.A
aaaa
a1
a2
Sample AMQSPUT0 end

amqsput QL.B QML1
Sample AMQSPUT0 start
target queue is QL.B
bbbb
b1
b2
Sample AMQSPUT0 end

просмотрим статус очереди

DISPLAY QSTATUS (QL.A)

Видим длинну очереди

создадим алиасы

DEFINE QALIAS (A) TARGET (QL.A) DEFPSIST (NO) REPLACE
DEFINE QALIAS (B) TARGET (QL.B) DEFPSIST (NO) REPLACE\\

Если в очереди DEFPSIST=YES , а в алиасе DEFPSISTT=NO, и обращение через алиас, то данные на диск не пишутся

Посмотрим состояние алиасов DISPLAY qa (A)
DISPLAY qa (B)
Состояние алиаса мы увидеть не можем, можем только описание

добавим по 2 сообщения в алиасы

amqsput A QML1
Sample AMQSPUT0 start
target queue is A
1111
1111
Sample AMQSPUT0 end

amqsput B QML1
Sample AMQSPUT0 start
target queue is B
2222
2222
Sample AMQSPUT0 end

посмотрим статусы очередей

DISPLAY QS (Q*)
AMQ8450I: Сведения команды Показать состояние очереди.
QUEUE(QL.B) TYPE(QUEUE)
CURDEPTH(5)
AMQ8450I: Сведения команды Показать состояние очереди.
QUEUE(QL.A) TYPE(QUEUE)
CURDEPTH(5)

обе очереди имеют по 5 ообщений

перезагрузим сервер

после перезаргузки увидим что сообщений осталость по 3

ВОССТВНОВЛЕНИЕ ПОТЕРЕННЫХ СООБЩЕНИЙ

просмотрим ~/log/QML1/active

Используем утилиту

rcrmqobj -m QML1 -t all QL.A
rcrmqobj -m QML1 -t qlocal QL.B

Данные восстановить не удалось

рассмотрим другую ситацию - проблема с диском

для эмуляции проблемы удалим

/home/mqm/data/QML1/queues/QL!1

перезапустим менеджер очередей и проверим статусы очередей

DISPLAY QS (Q)
1 : DISPLAY QS (Q
)
AMQ8450I: Сведения команды Показать состояние очереди.
QUEUE(QL.B) TYPE(QUEUE)
CURDEPTH(3)


DISPLAY QS (QL.A)
2 : DISPLAY QS (QL.A)
AMQ8149S: Объект IBM MQ поврежден.

попробуем восстановить

rcrmqobj -m QML1 -t qlocal QL.A

проверим состояние очереди

DISPLAY QS (QL.A)
1 : DISPLAY QS (QL.A)
AMQ8450I: Сведения команды Показать состояние очереди.
QUEUE(QL.A) TYPE(QUEUE)
CURDEPTH(3) CURFSIZE(1)
CURMAXFS(2088960) IPPROCS(0)
LGETDATE( ) LGETTIME( )
LPUTDATE( ) LPUTTIME( )
MEDIALOG(S0000000.LOG) MONQ(OFF)
MSGAGE( ) OPPROCS(0)
QTIME( , ) UNCOM(NO)

чередь восстановилась

получим из нее данные

amqsbcg QL.A QML1

Все данные доступны.

Сделаем ХОЛОДНУЮ копию сервера

Необходимо остановить все менеджеры

посморим какие запущены

dspmq QMNAME(servermqg1/M1) STATUS(Выполняется)
QMNAME(MQL1) STATUS(Выполняется)
QMNAME(QML1) STATUS(Выполняется)

остановим менеджеры

endmqm QML1
endmqm MQL1
endmqm servermqg1/M1

проверим еще раз

dspmq QMNAME(servermqg1/M1) STATUS(Стандартное завершение)
QMNAME(MQL1) STATUS(Стандартное завершение)
QMNAME(QML1) STATUS(Стандартное завершение)

выключаем и делаем копию виртуальной машины или всех папок(data,log) касаемых mqm

DokuWiki Appliance - Powered by TurnKey Linux