А посмотрите что за строки в файле дублируются. Такое может быть например если дамп делается в неверной кодировке, и два разных значения из уникального текстового поля превращаются в одно, например в пустую строку или "?????".
Экс-битриксоид.
Компонент (и.с.) - существительное мужского рода (ГОСТ 34.003-90).
Артур, в вашем случае произошла, похоже другая ситуация. Дело в том, что создание дампа делается по шагам. По всей видимости, у вас изменилась база данных между шагами, в результате одна и та же запись попала в дамп дважды.
Просто откройте файл дампа базы в редакторе и удалите дублирующую запись.
Denis Sharomov пишет: Дело в том, что создание дампа делается по шагам. По всей видимости, у вас изменилась база данных между шагами, в результате одна и та же запись попала в дамп дважды.
Почти 2 недели потратил на восстановление сайта, борясь с кучей ошибок при запуске restore.php. Перелопатил кучу форумов и т.д. В итоге написал небольшую инструкцию для восстановления сайта. Буду рад, если она кому-то поможет)
# # Параметры MySQL-сервера. # [mysqld] # Кодировка баз данных по умолчанию. default-character-set = cp1251 init-connect = "set names cp1251" skip-character-set-client-handshake # Временная директория. tmpdir = /tmp # # Обработывать запросы ТОЛЬКО с локальной машины (повышает безопасность). # Если вы хотите, чтобы MySQL-сервер был доступен из сети, # уберите следующую ниже директиву. # bind-address = 127.0.0.1 # Порт сервера. port = 3306 socket = /tmp/mysql5.sock lower-case-table-names = 2 # Различные настройки, оптимизированные для небольшого объема памяти. skip-locking key_buffer = 16K max_allowed_packet = 64M table_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K wait_timeout = 100000 # # Вообще не слушать TCP/IP порт. Это может служить для усиления # безопасности, если все процессы, работающие с демоном MySQL, запущены # на том же хосте. Однако при этом всё взаимодействие может проиходить # ТОЛЬКО через сокеты Unix или именованные каналы Windows (доступны лишь # в NT-версиях, при использовании mysqld-nt или mysqld-max-nt). Если # в Windows при этом НЕ включить опцию "enable-named-pipe", демон MySQL # станет бесполезен #skip-networking # См. коментарий выше #enable-named-pipe # Server ID. server-id = 1 # Раскомментируйте для журналирования UPDATE-запросов #log-bin # # Раскомментируйте следующие строки, если вы хотите изменить # настройки InnoDB по умолчанию. # #innodb_data_home_dir = /usr/local/mysql-5.1/var/ #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /usr/local/mysql-5.1/var/ #innodb_log_arch_dir = /usr/local/mysql-5.1/var/ # Вы можете установить .._buffer_pool_size размером до 50 - 80 % # оперативной памяти, но опасайтесь перерасхода #innodb_buffer_pool_size = 16M #innodb_additional_mem_pool_size = 2M # Устанавливайте .._log_file_size to 25 % от _buffer_pool_size #innodb_log_file_size = 5M #innodb_log_buffer_size = 8M #innodb_flush_log_at_trx_commit=1 #innodb_lock_wait_timeout = 50
[mysqldump] quick max_allowed_packet = 64M
[mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates
В этом файле нас больше всего интересуют параметры: max_allowed_packet = 64M – максимальный размер файла с запросом. По умолчанию стоит размер в 1М но для битрикса это мало, поэтому меняем на большое значение wait_timeout = 100000 – время ожидания ответа от mysql сервера (по умолчанию 28800) Если не изменить эти параметры, то будут возникать ошибки. Например, «server has gone away», т.е. сервер не отвечает. 5. В файле Z:\usr\local\php5\php.ini уберём комменты со следующих параметров и изменим их: mbstring.internal_encoding = UTF-8 – меняем кодировку на UTF-8 mbstring.func_overload = 2 – какой то параметр для работы со строками 6. Чтобы изменённые параметры вступили в силу необходимо перезапустить Denwer 7. Архив необходимо разархивировать с помощью TotalCommander 2 раза: сначала из *.gz в *.tar, а уже потом в обычные файлы. Если разархивирование запускать с помощью restore.php – сей файл споткнётся об Thumb.db, а тотал выведет сообщение и распакует архив должным образом. 8. Итак: файлы готовы, запускаем через браузер наш рестор: http://localhost/restore.php 9. Выбираем пункт «архив распакован…». Настраиваем подключение к базе вручную. Сервер: localhost Пользователь: root Пароль: Название базы: bitrix (можно и по-другому) И ставим галку «создать базу» если база ещё не создана. 10. И ждём до победного. Если восстановление базы зависнет – необходимо перезапустить.
В этом файле нас больше всего интересуют параметры: max_allowed_packet = 64M – максимальный размер файла с запросом. По умолчанию стоит размер в 1М но для битрикса это мало, поэтому меняем на большое значение wait_timeout = 100000 – время ожидания ответа от mysql сервера (по умолчанию 28800) Если не изменить эти параметры, то будут возникать ошибки. Например, «server has gone away», т.е. сервер не отвечает.