| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | «  : 20-04-2004 10:37 »  |  | 
 
 база на филиале. дорваться до неё не могу, объём порядка 2,5 гигов, всё приходится разруливать по телефону. симптоматика следующая: медленно работает, виснет на резервировании (каждый раз в разных местах: то при записи таблиц, то индексов). проверка со включенными Check Database, Validate, ValidateFull показывает нарушений на уровне записей - 2, страниц - 11, индексов - 55.  Субд - жарптица 1.3., ОС - 2000 сервак на NTFS.
 требуется её всё-таки зарезервировать. последующее восстановление, по идее, ошибки почистит само. только вот как?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #1 : 20-04-2004 10:46 »  |  | 
 
 gfix - пробовали?Приведите ключи у gbak
 |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #2 : 20-04-2004 10:58 »  |  | 
 
 Oldy, шутите, какой там gbak. матрёна, которая там админом, с экспертом едва справляется. а в эксперте ключи были, как я указал.
 Oldy, она мне звонит как-то, и грит: я вот пароль набираю, а у меня вместо букв - звёздочки. что мне делать? с тех пор звёздочки она уже одолела, но сажать её за досовские тулзы...  хотя придётся, видимо.
 
 gfix не пробовал. спасибо за идею, завтра проверим. что посоветуешь? -mend?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #3 : 20-04-2004 11:24 »  |  | 
 
 x77,  матрёна, которая там админом
 
 Они везде    . что посоветуешь? -mend?
 
 Как вариант на копии базы. |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #4 : 20-04-2004 11:35 »  |  | 
 
 видимо, да... 
 1. делаем копию.
 2. gfix ... -two_phase
 3. делаем вторую копию
 3. пробуем резервирование на второй копии, если обламываемся -
 4. gfix ... -mend на первой копии
 
 план Маршалла, мля...
 
 альтернативы могут быть?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #5 : 20-04-2004 11:58 »  |  | 
 
 1. Делаем копию2. gfix -v -full копии (полный список проблем)
 3. gfix -mend копии
 4. gfix -v -full копии
 5. gbak -b -v -ig копии (подробно о backup)
 и 6.gbak -b -v -ig -g если ошибки в пункте пять
 
 Как альтернатива? :?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #6 : 20-04-2004 12:12 »  |  | 
 
 смысла в валидации я не вижу, покажет то же, что и IBExpert. единственное, что - это запускаться будет с коммандной строки. ibexpert сам по себе отнюдь не безгрешен, и при выводе отчёта о быкапе 2-х с половиной гиговой базы виснуть может именно он. этого я тоже не учитывал, хотя должен был бы.
 чем тебе двухфазное восстановление не нравится? менд, насколько я понимаю, не столько исправляет ошибки, сколько готовит базу с ошибками к архивации. что он даст сам по себе?
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #7 : 20-04-2004 13:18 »  |  | 
 
 x77,  смысла в валидации я не вижу,
 
 Ну в общем-то да. чем тебе двухфазное восстановление не нравится?
 
 Почему не нравится, при наличии лимбо транзакций самое то.  Я привел как альтернативу рекомендованное здесь http://www.ibase.ru/devinfo/db_repair.htm#gfix |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #8 : 20-04-2004 13:32 »  |  | 
 
 Oldy, во. объясни мне толком, что такое лимбо-транзакции? не завершённые? если базу принялись архивировать, она зависла, задачу сняли, итогом будут лимбо-транзакции? |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #9 : 20-04-2004 13:34 »  |  | 
 
 x77, да, незавершенные транзакции. Могли возникнуть при "зависании" базы. (при наличии многопользовательского доступа) |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #10 : 20-04-2004 13:38 »  |  | 
 
 x77,  а там такое повторяется уже не первый день.  ладно, бум лечить. потом расскажу, чем дело кончилось. спасибо   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #11 : 20-04-2004 13:42 »  |  | 
 
 о, сам с собой заговорил. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #12 : 20-04-2004 13:45 »  |  | 
 
 Эт я все пытался мысли яснее выразить. Вот и помешал. |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #13 : 21-04-2004 07:42 »  |  | 
 
 x77,  x77, да, незавершенные транзакции. Могли возникнуть при "зависании" базы. (при наличии многопользовательского доступа)
 
 Прошу прощение за неверное определение limbo Вот верное Limbo: Транзакция, стартовавшая в режиме 2PC (two phase commit) вызовом процедуры Prepare. Эта транзакция может быть живой или нет. В любой момент такая транзакция может возобновиться и запросить подтверждение или отмену. Изменения, произведенные транзакцией, оставшейся в состоянии in limbo не могут быть приняты или игнорированы, соответственно они не могут быть удалены из БД.
 
 |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #14 : 21-04-2004 08:23 »  |  | 
 
 угу. я тож уже разобрался вчера к вечеру. все эти лимбы можно просто игнорировать при бэкапе, да и всё. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #15 : 21-04-2004 11:03 »  |  | 
 
 написал этой дуре: gfix forsec.gdb -v -full -user sysdba -password masterkey > 1.txt gfix forsec.gdb -mend -user sysdba -password masterkey > 2.txt gfix forsec.gdb -v -full -user sysdba -password masterkey > 3.txt у неё все три файла оказались пустыми, а на экран выдались те же сообщения об ошибках. то ли она дура, то ли для gbak'а перенаправление вывода не работает. в чём я сильно сомневаюсь. уродство   |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #16 : 21-04-2004 11:35 »  |  | 
 
 x77, Не ругайтесь. GBAK действительно не перенаправляет вывод по >.Есть опция -y [file | supress_output].
 |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #17 : 21-04-2004 11:52 »  |  | 
 
 о , чёрт. Спасибо, Oldy. ну а gfix? там таких опций нет   завтра буду опять бороться. на данный момент факт в том, что gfix -mend практически ничего не дал. кажется, остаётся попробовать gbak с игнорированием check-sum'ов, лимбо и пр. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #18 : 21-04-2004 12:13 »  |  | 
 
 Вроде-бы опций нет. Удачи. |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #19 : 21-04-2004 12:20 »  |  | 
 
 ото ж. 
 ладно, прорвёмся. на крайняк - буду писать прогу для копирования данных в другую базу. идиотизм, конечно, но не вижу вариантов. отказать от базы - нереально, объяснить ей, как вылить данные в external tables и потом залить заново - нереально в принципе.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Never | 
								|  | « Ответ #20 : 24-04-2004 12:11 »  |  | 
 
 Алле, народ! А что такое  Транзакция, стартовавшая в режиме 2PC (two phase commit)
 
  этот самый режим? |  
						| 
								|  |  
								|  |  Записан | 
 
 не умеете летать- не мучайте метлу! |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #21 : 24-04-2004 13:31 »  |  | 
 
 Never,   Еще одна особенность транзакций IB кроме разных комбинаций параметров, это двухфазный коммит (2PC). Двухфазная транзакция IB, в отличие от других серверов, не требует дополнительного программирования, и может быть выполнена над любым количеством серверов (или баз данных), причем независимо от их платформы. Смысл двухфазного коммита состоит в том, что в отличие от обычного старта и завершения транзакции в нее вводится фаза проверки, когда ядро IB должно убедиться в том, что все сервера, участвующие в транзакции, могут ее завершить. Таким образом, если в какой-то из моментов между серверами, участвующими в двухфазной транзакции, оборвали провода, то всегда есть возможность выяснить, на каком этапе это произошло. И соответственно, произвести либо commit либо rollback после восстановления соединения. (С) www.ibase.ruЭто и другое о 2PC транзакции, а так-же вообще о транзакциях в IB посмотрите здесь:http://www.ibase.ru/devinfo/ibtrans.htm |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #22 : 24-04-2004 14:21 »  |  | 
 
 x77, Простите мне мой склероз (доканал он меня    ). gfix свои сообщения выводит в firebird.log (interbase.log). |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| Never | 
								|  | « Ответ #23 : 24-04-2004 15:25 »  |  | 
 
 Oldy, cпасибо, это интересно. |  
						| 
								|  |  
								|  |  Записан | 
 
 не умеете летать- не мучайте метлу! |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #24 : 26-04-2004 08:21 »  |  | 
 
 gbak в досовской сессии также виснет. идиотизм. пришлось за два часа наваять прогу, которая копирует данные. делаем резервирование с опцией metadata only, потом запускаем прогу, указываем исходную и пустую базы, она даст список таблиц, отмечаем нужные, при необходимости меняем их порядок (для соблюдения внешних ключей), и нажимаем кнопочку. дешёво и сердито. 
 Oldy, если надо, могу скинуть. отличие от тулзов типа datapump, котороми, в принципе, тоже можно обойтись, в том, что на экран выводяться все копируемые записи. так что если что-то гнётся, видно, на какой конкретно записи это произошло.
 |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #25 : 26-04-2004 08:32 »  |  | 
 
 кстати, никакого упоминания о работе gfix в логах я не нашёл. только запуски гварда и облмавшиеся попытки коннекта. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| Oldy | 
								|  | « Ответ #26 : 26-04-2004 11:18 »  |  | 
 
 никакого упоминания о работе gfix в логах я не нашёл
 
 Чудеса да и только.     Специально перепроверил на заведомо убитой базе - все ошибки в firebird.log есть.  FireBird 1.5 W1-V6.3.0.4290 на WinNT4WS, NTFS. пришлось за два часа наваять прогу, ... если надо, могу скинуть.
 
 Если только вас это не обременит. Спасибо. |  
						| 
								|  |  
								|  |  Записан | 
 
 С уважением, Oldy. |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #27 : 26-04-2004 11:49 »  |  | 
 
 у меня fb1.03, логи его живут в interbase.log. и там пусто. странно, действительно. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	| 
			| 
					
						| x77 
								Модератор
								
								   Offline 
								Пол:    
								меняю стакан шмали на обратный билет с Марса.
								
								
								
								
								
							 | 
								|  | « Ответ #28 :  26-04-2004 12:56 »   |  | 
 
 Если только вас это не обременит. Спасибо. Oldy, я почту за честь    только отправлю чуть позже, возможно, - завтра, я там переделал кое-что, хочу причесать код и проверить всё сегодня вечером. сдуру сделал сначала на стандартных компонентах. они кладут записи в буфер для отображения на экране, скроллинга и т.д. на тестовой пол-гиговой базе с таблицами по полтора миллиона записей тормоза получились дикие - расчётное время копирования по 15-20 часов. переделал чтение на однонаправленный режим доступа - те же таблицы стали копироваться меньше, чем за час. всё-таки насколько тормозит эта дельфя со своей буферизацией, это вилы просто. стандартный BDE-шный подход для работы с базами - это просто клиника в некоторых ситуациях: когда таблицу достаточно просто читать, без всяких db-aware контролов, на порядки быстрее делать всё руками через родное апи. |  
						| 
								|  |  
								|  |  Записан | 
 
 |  |  | 
	|  |