Имя: Пароль:
1C
Админ
Как вы повышаете отказоустойчивость базы 1С и снижаете даунтайм?
,
0 mrWatson
 
15.01.13
10:52
1. Другое 57% (4)
2. Ежедневный бакап 14% (1)
3. Зеркало 14% (1)
4. Бубен 14% (1)
5. Доставка логов 0% (0)
Всего мнений: 7

Бакап восстанавливается довольно долго до нескольких часов вряд ли бизнес будет ждать так долго. Элементарно куда вбивать заказы в это время?

Расскажите ваш опыт.

База 200Гигов + MS SQL 2005 SP4

Приходу к мысле что ежедневный бакап не достаточен.
26 mrWatson
 
15.01.13
12:05
(22) да это и есть лог шиппинг или доставка логов, читал об этом но практики нет

сейчас модель записи логов симпл
27 rs_trade
 
15.01.13
12:06
(24) Не гоже имея 200-гиговую базу не знать про разностные и бекапы лога транзакций.
28 mrWatson
 
15.01.13
12:07
(25)(27) да, пробелы надо закрывать
если есть хорошие ссылки на статьи сообщите, спасибо
29 artems
 
15.01.13
12:09
(0) 10 рейд из 8 ssd дисков. Восстановление БД (50 ГБ) занимает чуть более 1 минуты. На корзине из sas дисков эта же база восстанавливается не более 5 минут. Смотри свой массив дисковый :)
30 Sorm
 
15.01.13
12:10
(0) 200 ГБ несколько часов?:) Меняй оборудование. 192 ГБ из ближайших ко мне баз - 20 минут.
31 rs_trade
 
15.01.13
12:10
32 prog0101
 
15.01.13
12:14
три задания
лог часто
разностная реже
полная 1 раз в сутки
хранить там же чтобы не тащить несколько часов по сети
а в сеть класть чтобы мало ли что и осталось
можно ещё сжатие чек и прочее по мелочи добавить

Копирование UPP Log

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\UPP\UPP_backup_log ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP LOG [UPP] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\\FULL\ACC\ACC_backup_log ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP LOG [ACC] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightAcc\SunLightAcc_backup_log ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP LOG [SunLightAcc] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightRetail\SunLightRetail_backup_log ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP  LOG [SunLightRetail] TO  DISK = @n
GO



--Копирование разностное

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\UPP\UPP_backup_diff ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [UPP] TO  DISK = @n WITH  DIFFERENTIAL
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\\FULL\ACC\ACC_backup_diff ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [ACC] TO  DISK = @n WITH  DIFFERENTIAL
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightAcc\SunLightAcc_backup_diff ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [SunLightAcc] TO  DISK = @n WITH  DIFFERENTIAL
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightRetail\SunLightRetail_backup__diff ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [SunLightRetail] TO  DISK = @n WITH  DIFFERENTIAL
GO

DBCC FREEPROCCACHE
go

-- полное


use [UPP]
go

--sp_msforeachtable N'DBCC INDEXDEFRAG (upp_prog1, ''?'')'
sp_msforeachtable N'DBCC DBREINDEX (''?'')'
go

exec sp_msforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'
go

DBCC SHRINKDATABASE(N'UPP' )
GO

DBCC SHRINKFILE (N'UPP' , 0, TRUNCATEONLY)
GO
--------------------------------------------------------------------------------------------------------------------------
use [ACC]
go

--sp_msforeachtable N'DBCC INDEXDEFRAG (upp_prog1, ''?'')'
sp_msforeachtable N'DBCC DBREINDEX (''?'')'
go

exec sp_msforeachtable 'UPDATE STATISTICS ? WITH FULLSCAN'
go

DBCC SHRINKDATABASE(N'ACC' )
GO

DBCC SHRINKFILE (N'ACC' , 0, TRUNCATEONLY)
GO
--------------------------------------------------------------------------------------------------------------------------
DBCC FREEPROCCACHE
go

---------------------------------------------------------------------------------------------------------------------------------

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\UPP\UPP_backup_FULL ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [UPP] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\\FULL\ACC\ACC_backup_FULL ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [ACC] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightAcc\SunLightAcc_backup_FULL ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [SunLightAcc] TO  DISK = @n
GO

declare @n varchar(1000)
select @n = 'G:\AVTOBACKUP\FULL\SunLightRetail\SunLightRetail_backup_FULL ' + REPLACE(convert(varchar, getdate()), ':', '') + '.bak'
select @n = rtrim(@n)
BACKUP DATABASE [SunLightRetail] TO  DISK = @n
GO
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
xp_cmdshell 'del G:\AVTOBACKUP\*log*.* /q /s'
go
xp_cmdshell 'del G:\AVTOBACKUP\*diff*.* /q /s'
go
33 prog0101
 
15.01.13
12:15
удаление спецом не писал чтобы удаляя ручками удостовериваться тому что копии делаются
34 Sorm
 
15.01.13
12:17
(32)+ "DBCC FREEPROCCACHE" - а он есть в случае 1с?:)
35 prog0101
 
15.01.13
12:18
(9)(22)"А вот такая фигня требует тщательного расследования"
+100500
думайте пока база не развалилась
причем что хуже всего развалиться она может задолго до того как учетчики поднимут тревогу по причине того что поплывут данные
36 prog0101
 
15.01.13
12:19
(34)на самом деле кешей ещё больше
только рекомендаций нет для их чистки
а этот реально есть и реально глючит при изменении базы
37 Галахад
 
гуру
15.01.13
12:25
Я за зеркалирование баз данных на MS SQL.
В другой сервеной комнате, в другом здании.
Туда же продублировать терминальники.
38 ЧеловекДуши
 
15.01.13
12:25
Без магии ни куда :)

Бубен
39 Fragster
 
гуру
15.01.13
12:25
я понял. автор в .dt бэкапит
40 ЧеловекДуши
 
15.01.13
12:26
(39)Хм... похожу так оно и есть :)
41 mrWatson
 
15.01.13
12:27
(39) нет, не в dt
42 prog0101
 
15.01.13
12:27
(41)не знаешь что такое дт? )))
43 Fragster
 
гуру
15.01.13
12:30
(41) у нас база 500 гиг восстанавливается 30 минут средствами скуля. а вот с .dt - да, несколько часов.
44 prog0101
 
15.01.13
12:31
(37)если не допустима потеря даже 15 минут тогда да конечно
45 mrWatson
 
15.01.13
12:33
(42) а логи которые ты бакапишь, ты их где-то восстанвливаешь на копии? или как? как они помогут ускорить восстановление из бакапа?
46 mrWatson
 
15.01.13
12:34
(42) можешь рассказть методику аварийного восстанволения по твоей методе резервного копирования (не в виде скрипта, а просто словами).
47 IamAlexy
 
15.01.13
12:34
(0) даунтайм в офисах у работников 1Сне снижается.. как правило даунтайм у них 7/24/365
48 Галахад
 
гуру
15.01.13
12:35
Не понимаю обсуждения развертывания бекапа на тот же SQL сервер.

Думаю стоит обсудить ситуации:
- потеря нескольких дисков массива
- выход из строя RAID контроллера
- отказ SQL сервера
49 mrWatson
 
15.01.13
12:35
реально большинство 1Сников я уверен умеют только делать бакап рестор в MsSQL ну и детач аттач. если мы тут подробнее осветим проблему, то это поможет многим.
50 prog0101
 
15.01.13
12:38
(48)копия делается сразу быстро туда же
а потом в фоне тащи куда хочешь на случай форсмажора железа
(45)(46)
http://msdn.microsoft.com/ru-ru/library/ms189275(v=SQL.90).aspx
51 prog0101
 
15.01.13
12:39
52 Mikeware
 
15.01.13
12:39
(49) может, тем, кто "умеют только делать бакап рестор в MsSQL ну и детач аттач." - сходить поучиться, или как минимум почитать вполне доступную документацию, книжки?
53 prog0101
 
15.01.13
12:41
(46)произошел сбой
пытешся забекапить лог в добавок к цепочке ранее сделанного копирования
потом не важно вышло или нет забекапить лог
восстанавливашь базу из цепочки
всё
54 mrWatson
 
15.01.13
12:42
(52) я тоже так считаю... хотя если придираться, то MSSQL DB Admin это отдельная вакуха и тоже от 100 тыр
55 prog0101
 
15.01.13
12:43
к (53) реально попыток забекапить лог после аварии не пришлось делать
а вот восстановление из цепочки в другую базу проходило успешно
56 rs_trade
 
15.01.13
12:43
(49) Эта тема в интернетах освещена уже 100500 раз. Надо читать книжки от издательства Мелкософта. Ну и msdn никто не отменял.
57 mrWatson
 
15.01.13
12:44
(55) ну да тестовые учения надо проводить это тоже важно, бакапы то могут и не восстановиться
58 prog0101
 
15.01.13
12:45
(54)а потом окажется что админ считает что достаточно там фулл выставить чтобы потом если что всё хорошо восстановилось на сервак тебя не пустит так как он для этого а то что 1с тормозить так этож 1С будет там деньги тратить на дисковые массивы вместо того чтобы собрать десятый райд и воткнуть несколько дисков где-то в сети на форсмажор
59 prog0101
 
15.01.13
12:46
(57)точно, особенно дт )))
(56)только вменяемых скриптов для фулл не так уж и часто нарыть можно
мне например по материалам инета самому писать пришлось
60 mrWatson
 
15.01.13
12:47
(58) у вас в санлайт модель симпл?
61 prog0101
 
15.01.13
12:51
(60)санлайт это случайным образом сгенеренное имя для примера
там где это использовалось модель стала фулл
62 КонецЦикла
 
15.01.13
12:53
(0) Резервный сервер в другом здании
63 mrWatson
 
15.01.13
12:55
(62) зеркальный mssql?
64 prog0101
 
15.01.13
12:57
вообще правильно было бы пригласить архитектора корпоративных информационных систем из крупного системного интегратора с опытом внедрения сапа в крупных британских компаниях для эффективного отжима бабла на процессное управление развитием корпоративной информационной системы
а то что я пишу это "зачем вам в цирке программист спросила говорящая лошадь"
65 Hazer79
 
15.01.13
13:00
Не 1С, но..

1. кластеризация сервера БД.
2. Файлы баз данных на отдельном СХД в 10 рейде на SAS винтах enterprise класса.
3. Ежедневный бэкап на отдельное железо
4. Постоянный мониторинг производительности всех компонентов.

Другое
66 Sorm
 
15.01.13
13:01
(0) "Постоянный мониторинг производительности всех компонентов." Ну уж:)...
67 Hazer79
 
15.01.13
13:03
(66) Что не так ?
68 Fragster
 
гуру
15.01.13
13:04
всякие "заркалирования" не спасаю когда у буха открыта массовая обработка и слышишь вдруг "оймля!"
69 Sammo
 
15.01.13
13:04
Переходите на 2008 скуль
Архивы можно сжимать средствами самого скуля + существенный выигрыш по времени на сжатие и восстановление.
70 Fragster
 
гуру
15.01.13
13:05
(68)+ а ведь бухи иногда и на ночь обработки оставляют
71 Sorm
 
15.01.13
13:07
(67) Постоянный мониторинг - избыточно, имхо. По расписанию.
72 aspirant
 
15.01.13
13:07
2 разных железных сервера SQL - с распределенной базой. Обмен каждые 10 минут в обе стороны.
2 разных железных сервера предприятия
2 терминала

время простоя за почти 1,5 года было пару раз минут по 10 - когда мне все позвонили и уточнили, надо ли уходить на вторую линию. Все просто и работает. База 40 гиг УПП пользователей более 45 в базе не бывает.

Другое
73 aspirant
 
15.01.13
13:09
самое важное во всей этой истории - чтобы люди могли работать без сисадмина и программиста. чтоб рейды сами ребилдились,  чтоб линии вторые сами поднимались, пока не появятся айтишники.
74 aspirant
 
15.01.13
13:10
сейчас рассматриваю вопрос размещения "теневой" копии для бекапа в облаке. чтоб даже пожар не мог помешать нашим планам порабощения мира...
75 mrWatson
 
15.01.13
13:11
+(0) в лога SQL было такое

01/12/2013 01:04:17,spid53,Unknown,SQL Server detected a logical consistency-based I/O error: incorrect checksum (expected: 0x7dcf9c24; actual: 0x7dcf1c24). It occurred during a read of page (1:28792043) in database ID 5 at offset 0x000036ea9d6000 in file 'C:\sql_data\MyBase.mdf'.  Additional messages in the SQL Server error log or system event log may provide more detail. This is a severe error condition that threatens database integrity and must be corrected immediately. Complete a full database consistency check (DBCC CHECKDB). This error can be caused by many factors; for more information<c/> see SQL Server Books Online.
76 Sorm
 
15.01.13
13:11
(74) Как красиво компетентные органы изымут оттуда теневую копию...
77 mrWatson
 
15.01.13
13:12
(76) админ-обортень быстрее спионерит данные
78 aspirant
 
15.01.13
13:12
(76) да пусть два раза в день вынимают. все пушисто.
79 Sorm
 
15.01.13
13:16
(77) Тоже верно
(78) пушисто... пушисто-то оно пушисто, а список контрагентов, а договоры, а цены, а скидки, а клиенты?
80 aspirant
 
15.01.13
13:19
(79) чаще всего в туалете на подоконники расчетные листочки с зарплатами лежат. а не через Компетентные органы утечка случается. У нас 50 торговых представителей с КПК бегают по 3 областям - там у них у клиенты и цены и скидки и договоры. Каналов утечки информации, более вероятных к использованию, гораздо больше.
81 aspirant
 
15.01.13
13:22
(79) у Вас кстати сайт за неуплату остановили. совсем наверное плохи дела финансовые.
82 Hazer79
 
15.01.13
13:24
(80) На месте твоего работодателя, я бы тебя уволил за такой образ мыслей в отношении политики безопасности
83 aspirant
 
15.01.13
13:25
(82) Да нет у меня работодателя. Уволили уже. Давно. 1.5 года назад.
84 Sorm
 
15.01.13
13:26
(81) С ходу переход на личности?:)...Я не понял такого сильного аргумента.
85 aspirant
 
15.01.13
13:26
(82) ну а если предметно - выколоть глаза торговым представителям? У них там помимо всего, что перечислил (79) есть более важная инфа - сверки, долги, объемы и т.д.
86 aspirant
 
15.01.13
13:27
(84) да не ничего личного, не огорчайся, если задел.
87 aspirant
 
15.01.13
13:30
(82) Я ведь не против безопасности, но только от реальности не надо отходить - а то ворота с охранником будут, а забора не будет. Речь идет о простоях и безотказности - я привел свой вариант.
88 Sorm
 
15.01.13
13:32
(87) Казалось бы, причем тут чужие сайты:):) О торговых представителях - если у него в планшете " клиенты и цены и скидки и договоры." а не номенклатура и заказы - возникает вопрос - кто такую систему придумал:)
89 ptiz
 
15.01.13
13:38
А к у нас сделано - мне не очень нравится.
Бэкап дважды в сутки + 1 раз бэкап лога (с начала недели копится).
По-уму, надо зеркало или хотя бы логшиппинг.
90 aspirant
 
15.01.13
13:39
(88) видимо, у Вас нет торгашей с кпк. Я, конечно не разработчик сей системы, но вощникает логичный вопрос: ну как он наберет заказ без КЛИЕНТА, без СУММЫ заказа, без отчетов по долгам всевозможных, без отчетов по отгрузкам, истории заказов, возвратов и т.д.?
91 Hazer79
 
15.01.13
13:39
(85) Не об этом речь. А о том что если уж думать о защите информации, то думать масштабно, по всему периметру. А не так что "А, если конкуренты захотят, то и через ТП всё узнают, поэтому и сервак с БД нет надобности защищать. Чё париться-то?"
Я лично такую философию в (80) увидел.

(88) +1
92 Lexusss
 
15.01.13
13:39
100+ баз в десятки и сотни гигов, десятки серверов, 7 лет с 1С. Ни разу не приходилось поднимать для работы основную промышленно используемую рабочую базу из бекапа. Что за железо используете, что у вас валится железо боевых SQL серверов?
Да и про какие "несколько часов" для базы в 200 гигов говорится? Дисковый массив из 2х дисков SATA 7.2к 250Гб на софтрейде у вас что ли?
Со стримера такое счастие поднимается едва ли за полчаса.

Для отказоустойчивости и надежности используем ежедневный бекап на стримеры в другом здании + RAID массив.

Другое
93 Sorm
 
15.01.13
13:41
(90) :):):) "Без отчетов по долгам всевозможных, без отчетов по отгрузкам, истории заказов, возвратов и т.д.?"... Мда. У нас в качестве торговых агентов - таджики. Хватает как-то.
94 Hazer79
 
15.01.13
13:41
(90) Отчёты, истории, возвраты и прочее, ЧТО БЫЛО - нафиг не надо ТП на кпк. Нужна только номенклатура и её цена.
95 prog0101
 
15.01.13
13:42
(95)однажды один архитектор с опытом в крупных британских компаниях ощутил что стример не лепится на юсб под варей )))
96 prog0101
 
15.01.13
13:42
к (95) и так и бросили этот стример валяться пылиться )))
97 aspirant
 
15.01.13
13:55
(93) (94) вы не путайте пожалуйста простых сборщиков заявок с торговым представителем, который занимается заключением договоров, сбором денег, организаций работый мерчей в торговой точке и т.д.
98 aspirant
 
15.01.13
13:56
(93) только не принимай на личный счет: таджики хоть без знания русского я языка? а то разболтают цены на номенклатуру.
99 Hazer79
 
15.01.13
13:58
(97) Это у тебя супервайзер тогда получается
100 Sorm
 
15.01.13
14:00
(98) Все как один - без. Они только цифры понимают, а как продукцию идентифицируют - вообще непонятно. Но не ошибаются.
(99) Вот-вот, только хотел написать...
101 aspirant
 
15.01.13
14:01
(99) супервайзер - это "начальник" торговых, он на 50% в офисе сидит, у него - контроль работы торговых, выполнение планов, отчетность, разбор тяжелых случаев, распределение зон между торговыми.
102 aspirant
 
15.01.13
14:03
(100) Про Региональных менеджеров, которые "начальники" супервайзеров писАть?
103 aspirant
 
15.01.13
14:04
(100) а сколько у Вас таких?
104 Sorm
 
15.01.13
14:08
(103) Да человек 100, приб.
105 aspirant
 
15.01.13
14:09
(104) а суперов сколько для этих 100? Они русские?
106 Jaffar
 
15.01.13
14:40
(105) наверное хохлы. все равно дешевле, чем россияне :-) (94) "Нужна только номенклатура и её цена."
а если цен несколько, и для каждого клиента они могут быть произвольными (в зависимости от выбранной клиентом формы оплаты конкретного заказа)? или сообщать клиенту точную сумму заказа - не обязательно?
107 Hazer79
 
15.01.13
15:06
(106) Мы тут вроде как не логику системы разрабатываем.
Ссуть в том, что вовсе не обязательно ТП иметь на КПК отчётные данные.
108 aspirant
 
15.01.13
15:10
(107) да облачные технологии и КПК - это вообще изобретение рейдеров. И данные для минимизации даунтайма не надо ни в коем случае на второй сервак копировать - вдруг украдут. За одним то проще углядеть.
109 Aprobator
 
15.01.13
15:15
(0) хм - чем бэкапишь то? А вообще, имхо - восстанавливать бэкапы надо в пустую базу.
110 YF
 
15.01.13
15:16
закладка
111 Aprobator
 
15.01.13
15:17
+(109) соответственно, все фоновые задания и т.п. на сервере предприятия при этом стопорить надо.
112 aspirant
 
15.01.13
15:19
вообще где-то статья была хорошая по рейтингу способов повышения отказоустойчивости, попробую найти сейчас.
113 Jaffar
 
15.01.13
15:24
(107) отчетные - не нужно
учетные (клиенты, цены) - нужно
другое дело, что как минимум можно не всех клиентов грузить всем ТП
114 rs_trade
 
15.01.13
15:28
(112) Тут все в кучу смешали. Отказоустойчивость и бекапы. Ну ну.
115 aspirant
 
15.01.13
15:29
(114) сверился с темой ветки - я в тренде! я вообще про бекапы ничего не знаю...
116 aspirant
 
15.01.13
15:30
(113) это точно. У меня по 100 клиентов на ТП примерно. Максимум - 118. Грузится быстро, да и лишние не нужны.
117 Mikeware
 
15.01.13
15:36
(116) вообще-то, это азбука - иметь только те данные, которые необходимы (товары в пределах матрицы, цены в пределах доступных). Плюс  еще - при загрузке от "утерянного" КПК - тереть базу. Можно вообще актуализировать только тек клиентов, которые в сегодняшнем плане посещений.
118 Hazer79
 
15.01.13
15:37
(112) ждёмс
119 aspirant
 
15.01.13
15:39
(117) к этому стремимся. Уперлись в маршрутные листы, чтоб только по ним на "сегодня" выгружать 20 клиентов и все. Но там чисто организационные проблемы.
(118) да ищу я.
120 mrWatson
 
15.01.13
15:47
(96) т.е в модели симпл твой метод бакапа не сработает и равно как и лог шиппинг, а значит доступен только полный бакап.

модель фулл тормозит работу базы, что является ее оборотной стороной медали
121 krbIso
 
15.01.13
16:14
(120) если у вас фул тормозит работу базы то это указывает на узкое место в оборудовании.
122 mrWatson
 
15.01.13
16:22
(121) еще вопрос есть, если мы хотим воспользоваться нашим хитрым бакапом логов и откатиться на заданную точку, то где гарантия, что в заданной точке данные 1С согласуются между собой?
123 Fragster
 
гуру
15.01.13
16:27
(122) называется "механизм транзакций". если вы пишете код так, что 1с может быть неконсистентна сама по себе - то тут уж вы сами злобные буратины.
124 ssh2006
 
15.01.13
16:28
(122) по поставляется "как есть", накат лога до заданной точки - штатная процедра
125 МуМу
 
15.01.13
17:58
Все не читал ибо лень.
(0) Тебя спасет логшиппинг. Правда он тоже не защищает от потери последних транзакций.