powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.0, восстановление с исп. журналов транзакций
3 сообщений из 3, страница 1 из 1
ASE 12.0, восстановление с исп. журналов транзакций
    #32791899
Бурундук
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, плиз, как можно автоматизировать процесс восстановления базы с использованием журналов транзакций? Что хочется: один раз в день снимать полный дамп, поднимать его на другом серваке. Потом каждые полчаса дампировать на первом серваке журнал транзакций, копировать их на другой сервак и там поднимать. Проблема в том, что, как я понял, каждый дамп журнала надо писать в отдельный файл. Это так? Если да, то каким образом можно автоматизировать процесс поднятия этих журналов на втором серваке в нужном порядке, особенно, если иногда хочется указать ключ until_time?
...
Рейтинг: 0 / 0
ASE 12.0, восстановление с исп. журналов транзакций
    #32793169
sn1251
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Perl|VBScript + /dev/hands
...
Рейтинг: 0 / 0
ASE 12.0, восстановление с исп. журналов транзакций
    #32794570
Перла не знаю, поэтому сделал просто bat и sql

1. файл log.bat

@echo off
echo Started: %DATE% %TIME% >> logprot.log

echo Processing... Do not cancel!

echo %TIME% EXECUTE COMMAND: isql -U USER -P ******** -S SYBASE_SERVER -H HOSTNAME -i log.sql >> logprot.log
isql -U USER -P PASSWORD -S SYBASE_SERVER -H HOSTNAME -i log.sql >> logprot.log

echo Finished: %DATE% %TIME% >> logprot.log
echo -=------------------------------------------------------------------- >> logprot.log

файл log.sql

declare
@devname varchar(100),
@chDay char (2),
@chMonth char (2),
@chHour char (2),
@chMin char (2),
@curdate datetime,
@error int

select @curdate=getdate()
select @chDay=convert(char(2), datepart(day,@curdate))
if (datepart(day,@curdate)<10) select @chDay="0"+@chDay
select @chMonth=convert(char(2), datepart(month,@curdate))
if (datepart(month,@curdate)<10) select @chMonth="0"+@chMonth
select @chHour=convert(char(2), datepart(hour,@curdate))
if (datepart(hour,@curdate)<10) select @chHour="0"+@chHour
select @chMin=convert(char(2), datepart(minute,@curdate))
if (datepart(minute,@curdate)<10) select @chMin="0"+@chMin

select @devname = 'e:\@log\'+@chDay+@chMonth+'-'+@chHour+@chMin+'.dmp'

dump tran DATABASE_NAME to @devname

select @error = @@error

go

3. log.bat и log.sql положить в одну папку, создать "e:\@log" или переделать под себя и log.bat запустить в Sheduled Task. Еще неплохо раз в день вечером делать move e:\@log\*.* e:\@log\old\

Для автоматизации восстановления написал маленькую программку, создающую sql-файл типа:

load tran DATABASE from "e:\@log\0211-0830.dmp"
load tran DATABASE from "e:\@log\0211-0845.dmp"
load tran DATABASE from "e:\@log\0211-0900.dmp"
...

если надо, брошу почтой, хотя тут большого ума не надо.

------------------
ASE 12.0 EBF11541
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / ASE 12.0, восстановление с исп. журналов транзакций
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]