06.03.2013 17:44
Disk_Retail_05.02.80.004\Installer\Install\SET\Data\Ses_Archive.bkp
11.03.2013 07:52
Уважаемые гуру!
база SES Archive с дистриба восстановлена (сделал restore базы). Прошу написать скрипт, для переноса чеков с оперативных данных в архивную базу, например старше 30 дней, тот скрипт что писал ранее не работает.
и можно будет пояснить как правильно должно быть настроено в management studio и в Set Retail, чтобы чеки нормально хранились и переносились в архив, можно ли будет удалить с базы чеки с прошлого года например (и это не повредит ли), и моя база растер гигабайтами каждый день, это правильно?
в настройках Set-а есть где прописываешь путь к архивной базе, но нет кол-во дней после их истечения чтобы чеки переносились. есть пункт "путь для архивов БД" там нужно указывать путь к бэкапу базы SES Archive?
Спасибо за понимание!
Миниатюры
Нажмите на изображение для увеличения
Название: Снимок.JPG
Просмотров: 562
Размер:	34.3 Кб
ID:	1820  
11.03.2013 08:27
Цитата:
в настройках Set-а есть где прописываешь путь к архивной базе, но нет кол-во дней после их истечения чтобы чеки переносились.
Количество операционных дней, оставляемых в операционной БД - указывает сколько дней оставить в операционной базе, а остальные автоматически переносятся в архивную базу при выполнении задания.
Цитата:
есть пункт "путь для архивов БД" там нужно указывать путь к бэкапу базы SES Archive?
Да.
Цитата:
можно ли будет удалить с базы чеки с прошлого года например (и это не повредит ли)
Да, можно. Нет, не повредит.
Код:
delete from chequehead where operday<'20130101'
delete from opergang where operday<'20130101'
Цитата:
и моя база растер гигабайтами каждый день, это правильно?
Не уверен что правильно. Что конкретно растет база или лог-файл? Если лог-файл, то что-то криво выполняется (или совсем не выполняется), ну и соответственно растет лог.
11.03.2013 12:25
Посмотреть в свойствах базы сес модель восстановления. Должна стоять простая.
12.03.2013 07:31
еще 1 вопрос:
как при создании бэкапа сжимать или архивировать через winrar, чтобы памяти меньше занимало? а то 1 бэкап базы SES = 16 Гб, SES Archive = 10 Гб.

Добавлено через 4 минуты 4 секунды
и есть скрипт для ручного переноса чеков в архив? с определенным периодом?
12.03.2013 08:18
Цитата:
и есть скрипт для ручного переноса чеков в архив? с определенным периодом?
Копируем хранимую процедуру MoveChequeToArchive, ищем там строки:
Код:
-- выбираем OperDay и ShopIndex
SET @DaysDelta = Cast(dbo.GetParm('OperDaysInOperDB') AS int)
SET @ShopIndex = Cast(dbo.GetParm('ShopIndex') AS int)
SET @SaveCheques = ISNULL(Cast(dbo.GetParm('MoveChequesToArchive') AS int),1)
SELECT @StartDay = MAX(OperDay) 
FROM OperDaysLastArchived
WHERE ShopIndex = @ShopIndex
@DaysDelta - количество дней хранимых в оперативной БД
@StartDay - последний заархивированный операционный день.

Соответственно если сегодня 12.03.2013, а заархивировать мы хотим с 01.03.2013 по 10.03.2013, тогда
@DaysDelta=2
@StartDa='20130301'
Как-то так.
12.03.2013 15:07
а как в winrar сжимать?
12.03.2013 17:14
Сжимать то можно скриптом или пакетником. Только мне кажется, что 16 Гб для бэкапа базы сес - это ахтунг. я бы даже разбираться не стал. По новой сет проинсталил и загрузил из бэка..
14.03.2013 09:18
Цитата:
Shift Копируем хранимую процедуру MoveChequeToArchive, ищем там строки:
Код:
-- выбираем OperDay и ShopIndex
SET @DaysDelta = Cast(dbo.GetParm('OperDaysInOperDB') AS int)
SET @ShopIndex = Cast(dbo.GetParm('ShopIndex') AS int)
SET @SaveCheques = ISNULL(Cast(dbo.GetParm('MoveChequesToArchive') AS int),1)
SELECT @StartDay = MAX(OperDay) 
FROM OperDaysLastArchived
WHERE ShopIndex = @ShopIndex
@DaysDelta - количество дней хранимых в оперативной БД
@StartDay - последний заархивированный операционный день.

Соответственно если сегодня 12.03.2013, а заархивировать мы хотим с 01.03.2013 по 10.03.2013, тогда
@DaysDelta=2
@StartDa='20130301'
Как-то так.
я не до конца понял, можно будет по подробнее, пожалуйста!
Копируем хранимую процедуру MoveChequeToArchive, ищем там строки: - где ищем?
Код:
-- выбираем OperDay и ShopIndex
SET @DaysDelta = Cast(dbo.GetParm('OperDaysInOperDB') AS int)
SET @ShopIndex = Cast(dbo.GetParm('ShopIndex') AS int)
SET @SaveCheques = ISNULL(Cast(dbo.GetParm('MoveChequesToArchive') AS int),1)
SELECT @StartDay = MAX(OperDay) 
FROM OperDaysLastArchived
WHERE ShopIndex = @ShopIndex
- куда вставлять?
14.03.2013 15:24
Цитата:
ищем там строки: - где ищем?
В теле процедуры.
Цитата:
Код:
-- выбираем OperDay и ShopIndex
SET @DaysDelta = Cast(dbo.GetParm('OperDaysInOperDB') AS int)
SET @ShopIndex = Cast(dbo.GetParm('ShopIndex') AS int)
SET @SaveCheques = ISNULL(Cast(dbo.GetParm('MoveChequesToArchive') AS int),1)
SELECT @StartDay = MAX(OperDay) 
FROM OperDaysLastArchived
WHERE ShopIndex = @ShopIndex
- куда вставлять?
Вставлять не куда не надо. Как раз этот кусок ищем и ставим то-что надо, например:
Код:
-- выбираем OperDay и ShopIndex
SET @DaysDelta = 2
SET @ShopIndex = Cast(dbo.GetParm('ShopIndex') AS int)
SET @SaveCheques = ISNULL(Cast(dbo.GetParm('MoveChequesToArchive') AS int),1)
SET @StartDay = '20130301'
Часовой пояс GMT +3, время: 19:30.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.