Автор | Сообщение |
|
| |
Пост N: 7866
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.11.23 19:18. Заголовок: Копирование открытых баз данных
Имею непонятку. Cтал в последнее время замечать что скорость копирования базы а она на данный момент весит 10 гиг , стало занимать до ~15 минут , хотя пару недель назад это время было всего ~32 секунды. Провел эксперимент , в базах ни кого нет , время копирования базы заняло ~32 секунды , зашел в прогу и перешел в раздел где открывается много баз и снова запустил копирование , цирк ...время заняло ~ 33 секунды и ни какими минутами и не пахнет. Копирую базы так FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) hb_releaseCPU() Next Винт SSD и ему почти 2 года. Не пойму куда копать ....есть какие мысли у кого ?
|
|
|
Ответов - 84
, стр:
1
2
3
4
5
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1691
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.11.23 08:38. Заголовок: А при каком условии ..
А при каком условии долго? Когда больше одного работает?
|
|
|
|
| |
Пост N: 7867
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.11.23 11:48. Заголовок: PSP пишет: А при ка..
PSP пишет: цитата: | А при каком условии долго? Когда больше одного работает? |
| Да выяснил вчера , что при повторном копировании время занимает почему то в 2.5 - 3 раза больше чем при первоначальном копировании. А копирование происходит 1 раз в час , соответственно через часов 7-8 выйдем на результат в 15 минут. Почему не понял.
|
|
|
|
| постоянный участник
|
Пост N: 1692
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.11.23 12:35. Заголовок: А если интервал увел..
А если интервал увеличить или уменьшить? Эффект какой будет?
|
|
|
|
| постоянный участник
|
Пост N: 4459
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.23 13:11. Заголовок: Попробуй XCopy, у ме..
Попробуй XCopy, у меня каждые 2-а часа планировщик запускает получение zip+xcopy на др. PC. Что будет ? Когда у тебя тормозит, что будет на xCopy ?
|
|
|
|
| |
Пост N: 7868
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.11.23 15:19. Заголовок: Убрал пока из цикла ..
Убрал пока из цикла hb_releaseCPU() Вышел на 16 сек Через 1 час проверю
|
|
|
|
| |
Пост N: 1963
Зарегистрирован: 20.02.11
|
|
Отправлено: 29.11.23 15:23. Заголовок: SergKis пишет: Попр..
SergKis пишет: цитата: | Попробуй XCopy, у меня каждые 2-а часа планировщик запускает получение zip+xcopy на др. PC. |
| вместо xCopy лучше использовать RoboCopy, утилита более продвинутая и оптимизирована на работу в сети
|
|
|
|
| постоянный участник
|
Пост N: 4460
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.23 16:54. Заголовок: Haz пишет вместо xCo..
Haz пишет цитата: | вместо xCopy лучше использовать RoboCopy, утилита более продвинутая и оптимизирована на работу в сети |
| Возможно и лучше, но admin (это чужие PC) вряд ли будет ставить лишнюю утилиту, если работают штатные, тем более это работа сервер-сервер, на одном работает от планировщика gbak+7z, на другом полученные файлы 7z планировщик забирает xCopy по маске
|
|
|
|
| |
Пост N: 7869
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.11.23 17:00. Заголовок: SergKis так она шта..
SergKis так она штатная
|
|
|
|
| |
Пост N: 7870
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.11.23 17:47. Заголовок: короче при первом за..
короче при первом запуске копирования 16 сек спустя час , та же операция 43 сек спустя час , та же операция 54 сек Просто уже интересно , почему так...
|
|
|
|
| постоянный участник
|
Пост N: 4461
Зарегистрирован: 17.02.12
|
|
Отправлено: 29.11.23 18:36. Заголовок: Haz пишет лучше испо..
Haz пишет цитата: | лучше использовать RoboCopy |
| Dima пишет Спасибо, не знал, что есть такая штука. Dima пишет цитата: | 54 сек Просто уже интересно , почему так... |
| Как штатные копирования ведут себя в это время (или за это время) ?
|
|
|
|
| |
Пост N: 7871
Зарегистрирован: 17.05.05
|
|
Отправлено: 29.11.23 18:41. Заголовок: Штатные работают чут..
Штатные работают чуть медленнее а вот причину замедления я кажись нашел. Было FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) Next Стало hLib := hb_libLoad( "Kernel32.dll" ) IF ! Empty( hLib ) FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", hLib, HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) Next hb_libFree( hLib ) ENDIF Потестил у себя на компе в цикле на большом файле , время практически одинаково а в первом варианте стабильно растет
|
|
|
|
|
| постоянный участник
|
Пост N: 1693
Зарегистрирован: 27.01.07
|
|
Отправлено: 29.11.23 19:50. Заголовок: Получается, что была..
Получается, что была утечка памяти. Память не освобождалась после вызова dll и в конце концов всё больше и больше использовался файл подкачки. Отсюда и тормоза. Имхо.
|
|
|
|
| Администратор
|
Пост N: 4139
Зарегистрирован: 23.05.05
|
|
Отправлено: 29.11.23 22:59. Заголовок: Dima пишет: Стало ..
Dima пишет: цитата: | Стало hLib := hb_libLoad( "Kernel32.dll" ) IF ! Empty( hLib ) FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", hLib, HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) Next hb_libFree( hLib ) ENDIF |
| Можно еще проще: FOR EACH aFile IN aDir win_CopyFile(pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1], .f.) NEXT ... #pragma BEGINDUMP #include "hbapi.h" #include "windows.h" HB_FUNC( WIN_COPYFILE ) { hb_retnl( (LONG) CopyFile( (LPCSTR) hb_parc(1), (LPCSTR) hb_parc(2), HB_ISNIL(3) ? FALSE : (BOOL) hb_parl(3) ) ); } #pragma ENDDUMP вместо CopyFile будет вызвана либо неуникодная CopyFileA, либо уникодная CopyFileW
|
|
|
|
| постоянный участник
|
Пост N: 7627
Зарегистрирован: 12.09.06
|
|
Отправлено: 30.11.23 09:27. Заголовок: Dima пишет: Cтал в ..
Dima пишет: цитата: | Cтал в последнее время замечать что скорость копирования базы |
| Чисто теоретический вопрос - а не проще скидывать изменённые данные в базах на другой комп/сервер ? Или с другого компа/сервера подключаться к базам через определённое время и копировать только изменённые записи
|
|
|
|
| |
Пост N: 7872
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 11:48. Заголовок: Pasha Пробну , спас..
Pasha Пробну , спасибо !
|
|
|
|
| |
Пост N: 7873
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 15:33. Заголовок: Pasha пишет: Можно ..
Pasha пишет: Пожалуй это самый быстрый способ копирования. После первого прохода база в 10 гиг скопировалась за 15 сек (с базой работает 17 чел на сейчас) Подожду еще пары проходов и через 2-3 часа выложу результат
|
|
|
|
| |
Пост N: 7874
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 18:43. Заголовок: Вот и статистика при..
Вот и статистика приехала Начало копирования : 2023-11-30 14:28:44.002 UserCount : 17 Конец копирования : 2023-11-30 14:29:00.877 Время копирования : 16.87 --------------------- Начало копирования : 2023-11-30 15:31:51.887 UserCount : 12 Конец копирования : 2023-11-30 15:32:29.873 Время копирования : 37.99 --------------------- Начало копирования : 2023-11-30 16:34:58.577 UserCount : 11 Конец копирования : 2023-11-30 16:35:52.881 Время копирования : 54.30 --------------------- Начало копирования : 2023-11-30 17:38:06.308 UserCount : 7 Конец копирования : 2023-11-30 17:39:22.358 Время копирования : 76.05 --------------------- Почему растет время не понятно ....база данных за 1 час не сильно наполняется. PS Копирование происходит в потоке.
|
|
|
|
| постоянный участник
|
Пост N: 4462
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 18:55. Заголовок: Dima пишет Потестил ..
Dima пишет цитата: | Почему растет время не понятно ... |
| Тогда получается, что такой твой вариант лучше ?! цитата: | Потестил у себя на компе в цикле на большом файле , время практически одинаково ... hLib := hb_libLoad( "Kernel32.dll" ) IF ! Empty( hLib ) FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", hLib, HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) Next hb_libFree( hLib ) ENDIF |
|
|
|
|
|
| |
Пост N: 7875
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 19:03. Заголовок: SergKis пишет: Тогд..
SergKis пишет: цитата: | Тогда получается, что такой твой вариант лучше ?! |
| Оказалось что нет , мало замеров на тот момент сделал. Сравнил по скорости win_CopyFile и HB_VFCOPYFILE. В цикле от 1 до 3 копирую файлик на 2 гига win_CopyFile время 36.62 53.17 48.71 HB_VFCOPYFILE 41.62 43.62 40.51
|
|
|
|
| постоянный участник
|
Пост N: 4463
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 19:12. Заголовок: Dima Получается бол..
Dima Получается большой разницы нет, набежит ~30 сек. даже пусть минута - это же поток и не мешает работе Если биться за скорость, то, правда, можно в больших базах брать только измененные записи, т.е., например, первого числа взял весь файл, а потом, из него, только записи новые и измененные, надо, конечно поле иметь TimeStamp модификации и так до след. первого числа
|
|
|
|
| |
Пост N: 7876
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 19:17. Заголовок: SergKis Тут не стол..
SergKis Тут не столько борьба за скорость , хотя она тоже важна , тут битва идёт уже что бы время не расло всё время. Если задачу не перезапускать то в какой то момент через ..надцать дней скажем , копирование может занять 1 час или типа того.
|
|
|
|
|
| постоянный участник
|
Пост N: 4464
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 19:24. Заголовок: Dima пишет Если зада..
Dima пишет цитата: | Если задачу не перезапускать то в какой то момент через ..надцать дней скажем |
| Вынь из задачи, помести в фоновый поток, например на планировщик запуск, твоего же exe с параметром только для выполнения копии, или твоя задача по timer запускает себя с параметром для вып. копии
|
|
|
|
| |
Пост N: 7877
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 19:29. Заголовок: Нет , планировщик не..
Нет , планировщик не использую а вот сам процесс копирования действительно можно вынести в отдельный EXE и из потока его запускать. Должно помочь думается в плане времени копирования , так как первый раз всегда отрабатывает быстро
|
|
|
|
| постоянный участник
|
Пост N: 4465
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 19:32. Заголовок: Ты можешь не выносит..
Ты можешь не выносить из exe (там у тебя все определено и отлажено и есть вызов), сделай параметр входа для копирования и запускай тот же exe с этим параметром. Зачем лишние exe плодить ? Не всегда это оправдано
|
|
|
|
| Администратор
|
Пост N: 4140
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.23 22:20. Заголовок: Dima пишет: Оказало..
Dima пишет: цитата: | Оказалось что нет , мало замеров на тот момент сделал. Сравнил по скорости win_CopyFile и HB_VFCOPYFILE. В цикле от 1 до 3 копирую файлик на 2 гига win_CopyFile время 36.62 53.17 48.71 HB_VFCOPYFILE 41.62 43.62 40.51 |
| win_CopyFile - это просто обертка для winapi-шной CopyFile. Как она работает, что там внутри делается - неизвестно. HB_VFCOPYFILE - там все прозрачно, исходный файл читается последовательно в буфер размером 64k, и этот буфер пишется в результирующий файл. Понятно, что windows еще сама как-то буферизирует эти операции чтения - записи. Для огромных файлов буфер 64k явно маловат. Можно сделать свой аналог, в котором задавать размер буфера
|
|
|
|
| Администратор
|
Пост N: 4141
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.23 09:48. Заголовок: Dima пишет: SergKis..
Dima пишет: цитата: | SergKis Тут не столько борьба за скорость , хотя она тоже важна , тут битва идёт уже что бы время не расло всё время. Если задачу не перезапускать то в какой то момент через ..надцать дней скажем , копирование может занять 1 час или типа того. |
| Так нет чистого времени копирования, слишком много факторов влияют на время в каждом случае. Скажем, в это время качается обновление винды, диск занят и на другие операции, время скакнет. Или антивирус вздумает запустить проверку, и дергает тот же диск. А таких или может быть сколько угодно. Важно удостовериться, что у тебя все организовано без дырок, и более-менее оптимально
|
|
|
|
| постоянный участник
|
Пост N: 1694
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.12.23 10:51. Заголовок: Разрешите вставить с..
Разрешите вставить свои 5 копеек) Вот, если речь идет о бэкапе, то, имхо, тут лучше использовать сторонние средства. Я пользуюсь Cobian Backup. Отличная штука. Она использует механизм теневых копий, так что может копировать открытые в других программах файлы. Весьма удобна.
|
|
|
|
| |
Пост N: 7878
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.23 18:29. Заголовок: PSP пишет: Cobian B..
PSP пишет: Интересная тулза и главное бесплатно
|
|
|
|
| постоянный участник
|
Пост N: 1695
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.12.23 18:33. Заголовок: Она работает чётко. ..
Она работает чётко. Много лет ей пользуюсь)
|
|
|
|
| |
Пост N: 7879
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.12.23 18:24. Заголовок: Pasha пишет: Так не..
Pasha пишет: цитата: | Так нет чистого времени копирования, слишком много факторов влияют на время в каждом случае. Скажем, в это время качается обновление винды, диск занят и на другие операции, время скакнет. Или антивирус вздумает запустить проверку, и дергает тот же диск. А таких или может быть сколько угодно. Важно удостовериться, что у тебя все организовано без дырок, и более-менее оптимально |
| Ну как бы согласен теоретически ...., не поленился и поставил эксперимент , запустил приложение которое в том числе выполняет и копирование базы данных (в сети была куча юзеров) , отработало копирование , вышел из задачи и так 10 раз подряд Время копирования 15-16 секунд а вот если не выгружать и дать ему работать и каждый час копировать то статистика в секундах следующая. Время копирования : 16.46 //1 запуск Время копирования : 36.50 Время копирования : 58.74 Время копирования : 74.52 Время копирования : 96.05 Время копирования : 116.97 Время копирования : 133.02 Время копирования : 158.03 Время копирования : 176.51 Время копирования : 204.95 Время копирования : 218.67 Время копирования : 239.52 Время копирования : 259.55 Время копирования : 281.21 Время копирования : 296.34
|
|
|
|
| |
Пост N: 7880
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.12.23 19:40. Заголовок: Проблему решил косты..
Проблему решил костылём. Если время копирования базы превышает N секунд , убиваю поток и заново его запускаю. Работает однако. PS Почему росло время хз.
|
|
|
|
|
| постоянный участник
|
Пост N: 1696
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:29. Заголовок: В плане бреда... А ч..
В плане бреда... А что, если дескрипторы файла "zip\..." остаются открытыми после копирования и со временем их становится много, как будто файл открыт из разных программ, а? Тут возникаю вопросы с блокировками, кэшированием и т.д.
|
|
|
|
| постоянный участник
|
Пост N: 1697
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:35. Заголовок: Вот нечто https://ww..
|
|
|
|
| |
Пост N: 7881
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:35. Заголовок: PSP Фиг его знает ,..
PSP Фиг его знает , я тестил все возможные функции по копированию и всегда растет время , остановился на CopyFileA потому что самая быстрая.
|
|
|
|
| |
Пост N: 7882
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:37. Заголовок: PSP пишет: Вот нечт..
PSP пишет: писец у нас это сайт заблочен ....придется юзать тор браузер
|
|
|
|
| постоянный участник
|
Пост N: 1698
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:41. Заголовок: А ты вот попробуй пе..
А ты вот попробуй перед копированием файл назначения переименовать, а после успешного копирования старый удаляй.
|
|
|
|
| |
Пост N: 7883
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:56. Заголовок: PSP пишет: А ты вот..
PSP пишет: цитата: | А ты вот попробуй перед копированием файл назначения переименовать |
| чёт я не очень понял как переименовать то чего еще нет , так как операция копирования еще не происходила ?
|
|
|
|
| постоянный участник
|
Пост N: 1699
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:56. Заголовок: Dima пишет: чёт я н..
Dima пишет: цитата: | чёт я не очень понял как переименовать то чего еще нет , так как операция копирования еще не происходила ? |
| А destination каждый раз новый создается? Или перезаписывается?
|
|
|
|
| |
Пост N: 7884
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 16:01. Заголовок: схема такая копирую ..
схема такая копирую файлы базы данных в пустую папку затем все скопированные файлы ZIPую , копирую архив на диск где живут бекапы папку куда копировал файлы базы полностью очищаю
|
|
|
|
| постоянный участник
|
Пост N: 1700
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 16:02. Заголовок: Ясно, но ясности это..
Ясно, но ясности это не добавило
|
|
|
|
| |
Пост N: 7885
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 16:05. Заголовок: PSP пишет: Вот нечт..
PSP пишет: Почитал....хммм
|
|
|
|
|
| |
Пост N: 7886
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 17:41. Заголовок: Потестю ка у клиента..
Потестю ка у клиента еще раз но уже с Hb_fcopy
|
|
|
|
| |
Пост N: 7887
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 22:09. Заголовок: Да с Hb_fcopy время ..
Да с Hb_fcopy время тоже растет при каждом цикле копирования. Файлы под 2 гига , но не все. Погуглил , проблема таки есть по любому , когда поток + копирование в цикле + большие файлы. Полагаю что то нужно добавить в цикл , вот только что , хз. Поэтому пока буду юзать костыль с перезапуском потока , реально работает. Паше. Странно не замечать проблемы и косить на другие происходящие процессы , аргументы выше и статистику я приводил.
|
|
|
|
| |
Пост N: 7890
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.12.23 18:12. Заголовок: Паша а не сложно теб..
Паша а не сложно тебе сделать обертку для CopyFileExA что бы можно было его запускать с флагом COPY_FILE_NO_BUFFERING , хочу с ней поиграться и посмотреть на результат.
|
|
|
|
| |
Пост N: 7891
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.12.23 18:27. Заголовок: и вот такую SHFileOp..
и вот такую SHFileOperationA
|
|
|
|
| |
Пост N: 7893
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.12.23 19:19. Заголовок: Pasha Поможешь с во..
Pasha Поможешь с вопросом ?
|
|
|
|
| moderator
|
Пост N: 2228
Зарегистрирован: 11.02.10
|
|
Отправлено: 07.12.23 20:14. Заголовок: Dima пишет: вот та..
Dima пишет: цитата: | вот такую SHFileOperationA |
| Дима! Попробуй эту функцию из библиотеки hbwin: цитата: | win_SHFileOperation( [<hWnd>], [<nFunction>], [<cFrom>|<aFrom>], [<cTo>|<aTo>], [<nFlags>], [<@lAnyOperationAborted>], [<aNameMappings>], [<cProgressTitle>] ) -> <nResult> |
| Контрольный пример из поставки Харбора: Скрытый текст
/* * * Copyright 2010 Viktor Szakats (vszakats.net/harbour) * */ #require "hbwin" #include "simpleio.ch" PROCEDURE Main() LOCAL a LOCAL lAbort LOCAL tmp ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_COPY, { __FILE__, "olesrv1.prg" }, { "testcopy1" }, ; NIL, @lAbort, ; NIL, "Harbour SHFile 1" ) ) ? lAbort hb_MemoWrit( "rename.txt", "hello1" ) hb_MemoWrit( "rename1.txt", "hello2" ) a := {} ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_RENAME, { "rename.txt" }, { "rename1.txt" }, ; WIN_FOF_WANTMAPPINGHANDLE, @lAbort, ; a, "Harbour SHFile 2" ) ) ? lAbort FOR EACH tmp IN a ? tmp[ 1 ], tmp[ 2 ] FErase( tmp[ 1 ] ) FErase( tmp[ 2 ] ) NEXT FErase( "rename1.txt" ) ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_COPY, __FILE__ + Chr( 0 ) + "olesrv1.prg" + Chr( 0 ), "testcopy2", ; NIL, @lAbort, ; NIL, "Harbour SHFile 3" ) ) ? lAbort RETURN
|
|
|
|
|
| |
Пост N: 7894
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.12.23 20:48. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Попробуй эту функцию из библиотеки hbwin: |
| Спасибо , потестю , отпишу !
|
|
|
|
| Администратор
|
Пост N: 4143
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.12.23 15:12. Заголовок: #define COPY_FILE_NO..
#define COPY_FILE_NO_BUFFERING 0x00001000 proc main ? win_CopyFileEx('_cf.prg', '_cf1.prg', COPY_FILE_NO_BUFFERING) retu #pragma BEGINDUMP #include "hbapi.h" #include "windows.h" HB_FUNC( WIN_COPYFILEEX ) { hb_retl( (LONG) CopyFileEx( (LPCSTR) hb_parc(1), (LPCSTR) hb_parc(2), NULL, NULL, NULL, HB_ISNIL(3) ? 0 : (DWORD) hb_parnl(3) ) ); } #pragma ENDDUMP
|
|
|
|
| |
Пост N: 7895
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.23 17:27. Заголовок: Pasha gfilatov2002 ..
Pasha gfilatov2002 Спасибо за помощь. Вопрос не решился. Поэтому перезапускаю поток если время копирования превысило N сек , работает.
|
|
|
|
| |
Пост N: 7896
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.23 22:10. Заголовок: Пора поюзать ROBOCOP..
Пора поюзать ROBOCOPY , интересно уже каков будет результат
|
|
|
|
| постоянный участник
|
Пост N: 1701
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 11:11. Заголовок: Dima пишет: Пора по..
Dima пишет: А она умеет открытые файлы?
|
|
|
|
| |
Пост N: 7897
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 16:34. Заголовок: PSP пишет: А она ум..
PSP пишет: цитата: | А она умеет открытые файлы? |
| Да , облом . не копирует открытые файлы и Xcopy тоже по ходу
|
|
|
|
| постоянный участник
|
Пост N: 7630
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.23 17:13. Заголовок: Dima пишет: Да , об..
Dima пишет: цитата: | Да , облом . не копирует открытые файлы и Xcopy тоже по ходу |
| Делай тогда через Winrar или WinZip, они умеют делать архивы с открытыми файлами. Я сделал свою утилиту на МиниГуи, создаю нужный мне список файлов и делаю архив. Работает с 2013 года. Команда простая: COMPRESS aFiles ; TO cBackupZip ; BLOCK { | cFile, nPos | ProgressUpdate( nPos, cFile, aSizeFiles, .T. ) } ; LEVEL LEVEL_ZIP ; PASSWORD cPass ; OVERWRITE ; STOREPATH ; FILEPROGRESS { | nPos, nTotal | ProgressFile( nPos, nTotal, .T. ) } ; RESULT lSuccess
|
|
|
|
| |
Пост N: 7898
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 17:51. Заголовок: Dima пишет: Да , об..
Dima пишет: цитата: | Да , облом . не копирует открытые файлы и Xcopy тоже по ходу |
| Поправка Shared копирует , Exclusive нет
|
|
|
|
| |
Пост N: 7899
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 19:46. Заголовок: Прикольно на одном и..
Прикольно на одном из серваков уже сделал 2 замера и время не растет , даже падает , при использовании Robocopy. Жду 2-го результата на втором серваке в другом городе. Update И на втором время не растет и тоже упало Приз получает Robocopy
|
|
|
|
| Администратор
|
Пост N: 4144
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.23 21:42. Заголовок: Dima пишет: Поправк..
Dima пишет: цитата: | Поправка Shared копирует , Exclusive нет |
| Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст
|
|
|
|
| постоянный участник
|
Пост N: 1702
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 21:43. Заголовок: :sm208:..
|
|
|
|
| постоянный участник
|
Пост N: 1703
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 21:45. Заголовок: Pasha пишет: Так ра..
Pasha пишет: цитата: | Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст |
| Разрешите не согласиться. VSS с этим справляется. Она на другом уровне работает, не файловом.
|
|
|
|
| |
Пост N: 7900
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 21:51. Заголовок: Pasha пишет: Так ра..
Pasha пишет: цитата: | Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст |
| Да это я лоханулся в тестовом своем примере и написал что то типа Use nakl_r new и думал что оно в Shared по умолчанию открывается
|
|
|
|
| |
Пост N: 7901
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 21:53. Заголовок: Dima пишет: Приколь..
Dima пишет: цитата: | Прикольно на одном из серваков уже сделал 2 замера |
| Уже 4 замера , время стабильно
|
|
|
|
| Администратор
|
Пост N: 4145
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.23 22:14. Заголовок: PSP пишет: Разрешит..
PSP пишет: цитата: | Разрешите не согласиться. VSS с этим справляется. Она на другом уровне работает, не файловом. |
| Ну да, прямому чтению кластеров до лампочки, как файл открыт и открыт ли он вообще А копирование открытого файла так себе затея. Во время копирования в разные участки файла другим процессом может производиться запись, и один участок успеет скопироваться до записи, другой нет, и целостность копии будет нарушена.
|
|
|
|
| постоянный участник
|
Пост N: 1704
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 09:51. Заголовок: Pasha пишет: А копи..
Pasha пишет: цитата: | А копирование открытого файла так себе затея. Во время копирования в разные участки файла другим процессом может производиться запись, и один участок успеет скопироваться до записи, другой нет, и целостность копии будет нарушена. |
| Ну, в случае с VSS это исключено. Создается моментальная теневая копия диска. Сначала блокируются изменения ВСЕХ кластеров, содержащих данные. Потом нужные данные копируются. Все изменения данных записываются в свободные кластеры, т.е., для приложения всё происходит прозрачно и незаметно. После завершения копирования теневая копия удаляется и все изменения, произошедшие за время копирования, синхронизируются. Так что ни о каком нарушении целостности не может быть и речи.
|
|
|
|
| постоянный участник
|
Пост N: 7631
Зарегистрирован: 12.09.06
|
|
Отправлено: 10.12.23 11:18. Заголовок: PSP пишет: Разрешит..
PSP пишет: цитата: | Разрешите не согласиться. VSS с этим справляется. Она на другом уровне работает, не файловом. |
| Пропустил, что за зверь такой ?
|
|
|
|
| постоянный участник
|
Пост N: 1705
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 11:26. Заголовок: Andrey пишет: Пропу..
|
|
|
|
| |
Пост N: 7902
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.12.23 19:36. Заголовок: PSP пишет: В плане ..
PSP пишет: цитата: | В плане бреда... А что, если дескрипторы файла "zip\..." остаются открытыми после копирования и со временем их становится много, как будто файл открыт из разных программ, а? Тут возникаю вопросы с блокировками, кэшированием и т.д. |
| Проверил тулзой Handle от Sysinternals , не остаются открытыми , в этом плане норм. Тогда не понятна ситуация с ростом времени. Если юзать для копирования в той же проге Robocopy , то роста времени нет совсем ....прыгает от 7 до 15 секунд , это замеры за сутки
|
|
|
|
| постоянный участник
|
Пост N: 1706
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 19:41. Заголовок: А вот интересно: в с..
Может правда косяк в CopyFileA с кэшем?
|
|
|
|
| |
Пост N: 7903
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.12.23 19:45. Заголовок: Насчет VSS , смотрю ..
Насчет VSS , смотрю есть тулза HoboCopy , но чёт не могу найти актуальную ссылку на нее
|
|
|
|
| постоянный участник
|
Пост N: 1707
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 19:45. Заголовок: Dima пишет: Насчет ..
Dima пишет: цитата: | Насчет VSS , смотрю есть тулза HoboCopy , но чёт не могу найти актуальную ссылку на нее |
| Cobian (я тебе о ней писал) использует VSS.
|
|
|
|
| постоянный участник
|
Пост N: 1708
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 19:52. Заголовок: Есть Cobian Backup 1..
Есть Cobian Backup 11 (больше не развивается). А есть Cobian Reflector (следующая). Я использую Cobian Backup. Важно: требует .Net 3.5
|
|
|
|
| |
Пост N: 7904
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.12.23 19:52. Заголовок: PSP пишет: Cobian (..
PSP пишет: цитата: | Cobian (я тебе о ней писал) использует VSS. |
| Это я помню , но HoboCopy работает из командной строки как и Robocopy , вот почему и отписал :)
|
|
|
|
| постоянный участник
|
Пост N: 1709
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 19:55. Заголовок: Dima пишет: из кома..
Dima пишет: А это обязательно? Это - служба (точнее две). Один раз настроил и всё. Дальше оно само)
|
|
|
|
| |
Пост N: 7905
Зарегистрирован: 17.05.05
|
|
Отправлено: 10.12.23 19:59. Заголовок: PSP пишет: А это об..
PSP пишет: Ну мне так удобнее , так как бекап делает моя прога , кроме остального функционала а его там много
|
|
|
|
| постоянный участник
|
Пост N: 1710
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 20:04. Заголовок: Есть Diskshadow. Но ..
Есть Diskshadow. Но она для серверов, вроде.
|
|
|
|
| постоянный участник
|
Пост N: 1712
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 20:13. Заголовок: Есть еще VShadow. Ту..
|
|
|
|
| постоянный участник
|
Пост N: 1713
Зарегистрирован: 27.01.07
|
|
Отправлено: 10.12.23 20:16. Заголовок: Всё, я отстал))..
Всё, я отстал))
|
|
|
|
| |
Пост N: 7914
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.12.23 17:46. Заголовок: PSP пишет: Всё, я о..
PSP пишет: Не нуно )) Значит так , нарыл Hobocopy 32 бита на Windows 7 работает на ура. На сервере Windows 2008 работать отказалась падлюка и упало с ошибкой There was a COM failure 0x80042302 - .\HoboCopy.cpp (172) Стал мучать поисковик , нарыл 64 битную версию и заработало на серваке Короче если кому надо налью оба варианта.
|
|
|
|
| постоянный участник
|
Пост N: 4477
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.12.23 20:29. Заголовок: Dima пишет Короче ес..
Dima пишет цитата: | Короче если кому надо налью оба варианта. |
| Кинь тудой, на ftp. Спасибо
|
|
|
|
| |
Пост N: 7915
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.12.23 20:42. Заголовок: готово..
готово
|
|
|
|
| |
Пост N: 7916
Зарегистрирован: 17.05.05
|
|
Отправлено: 22.12.23 20:46. Заголовок: SergKis Для работы ..
SergKis Для работы из архива нужен только EXE файл
|
|
|
|
| постоянный участник
|
Пост N: 1714
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.12.23 09:27. Заголовок: Где оно?)..
Где оно?)
|
|
|
|
| |
Пост N: 7917
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.12.23 15:17. Заголовок: PSP пишет: Где оно?..
PSP пишет: На FTP у Сергея )
|
|
|
|
| |
Пост N: 7918
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.12.23 15:23. Заголовок: PSP Лови https://ww..
|
|
|
|
| |
Пост N: 7939
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.03.24 15:08. Заголовок: Прошло более 2-х мес..
Прошло более 2-х месяцев с момента использования Hobocopy , ни одного косяка с открытием баз не было. Бонусом так же вышло так что если база под ADS залочена вот таким образом AdsLocking( .T. ) то Hobocopy легко копирует такие базы.
|
|
|
Ответов - 84
, стр:
1
2
3
4
5
All
[только новые]
|
|