|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Может ктото сталкивался и подскажет в чем дело. Есть АСЕ Adaptive Server Enterprise/12.5.3/EBF 13339 ESD#7/P/x86_64/Enterprise Linux/ase1253/1951/64-bit/OPT/Fri Mar 24 00:39:11 2006 Есть IQ Sybase IQ/12.7.0/080707/P/ESD 5/MS/Windows 2000/32bit/2008-07-07 14:07:51 Клиентская машина доступа к АСЕ - вынь. Создаю на АСЕ тестовую таблицу. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Затем выгружаю ее бсп-ёй bcp my_db.dbo.iq_test out iq_test_utf8.txt -STest -Umichael -t, -Jutf8 -r\r\n -c Получаю красивый файлик Затем на машине с установленным IQ пытаюсь загрузить. Создаю таблицу Код: plaintext 1. 2. 3. 4. 5. 6.
Грузим Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
В dbisql - никаких ошибок. Но ничего не грузится. Смотрим лог базы In table 'iq_test', the full width insert of 4 columns will begin at record 1. I. 05/29 09:38:20. 0000000143 Insert Started: I. 05/29 09:38:20. 0000000143 iq_test I. 05/29 09:38:20. 0000000143 [20918]: Portions of the insert/load will be single threaded. I. 05/29 09:38:20. 0000000143 [20618]: Warning: Partial input record (68 bytes) skipped at EOF (O/S 13). 0 rows read. I. 05/29 09:38:20. 0000000143 [20895]: Insert Pass 1 completed in 0 seconds. I. 05/29 09:38:20. 0000000143 [20895]: Insert Pass 2 completed in 0 seconds. I. 05/29 09:38:20. 0000000143 [20834]: 0 records were inserted into 'iq_test'. I. 05/29 09:38:20. 0000000143 [20896]: Insert for 'iq_test' completed in 0 seconds. 0 rows inserted. Подскажите плиз куда рыть дальше? Что делаю не так? Пробовал и разные разделители столбцов и строк.. Теже грабли. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 10:47 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Забыл сказать В АСЕ и IQ - utf8. Заранее благодарен за любую помощь ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 10:51 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
COMMIT после загрузки не пробовали ? типа так load table .... message log 'c:\\iq\\load\1.msg' row log 'c:\\iq\\load\1.row' go COMMIT go ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 15:27 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
дык при чем жеж коммит, когда он даже не читает записи из файла.. :( судя по логу самого IQ. Что уже не пробовал - пока не понятно что делать.. И главное - почему такое происходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 15:40 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
MichaelTim Затем выгружаю ее бсп-ёй bcp my_db.dbo.iq_test out iq_test_utf8.txt -STest -Umichael -t, -Jutf8 -r\r\n -cвот здесь я вижу что выгрузка идет в UTF8. Рискну предположить что и файлик получается в UTF8. MichaelTimГрузимА вот дальше я не вижу чтобы файлик был описан как UTF8. А раз он так не описан, значит он будет читаться как обычный ASCII со всеми вытекающими. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 17:27 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Правильно предполагаеш :) Файл ессно получается в утф-е. Яж писал в следующем сообщении чот кодировка в IQ - utf8... Так что тут все нормально... из того что нарыл - установка опции escape_character='on' - помогла. хотя как по мне - шаманство... из сообщений сервака хрен поймеш что делать :( нашел на ньюсах sybase.public.iq ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 18:11 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
MichaelTimЯж писал в следующем сообщении чот кодировка в IQ - utf8...Так то ж в самих таблицах. А внешние файлы обрабатываются как будто они содержат данные в кодировке по умолчанию. А вот что там по умолчанию предполагается - вопрос сложный. MichaelTimиз того что нарыл - установка опции escape_character='on' - помогла. хотя как по мне - шаманство...Действительно шаманство. Вообще-то, если верить документации, то надо в load добавить опции FORMAT TEXT ENCODING 'UTF-8'. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2009, 20:06 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Еще возник вопрос по загрузке.. IQ стоит на 64-битном линуксе. Создал я там большую таблицу - под сотню полей. Выгрузил данные из АСЕ, пробую залить - вылетает ошибка практически сразу I. 06/10 16:17:01. 0000000004 [20918]: Portions of the insert/load will be single threaded. I. 06/10 16:17:02. 0000000004 Exception Thrown from s_blockmap.cxx:2786, Err# 0, tid 243 origtid 243 I. 06/10 16:17:02. 0000000004 O/S Err#: 0, ErrID: 2055 (s_bufman_exception); SQLCode: -1009031, SQLState: 'QSA31', Severity: 14 I. 06/10 16:17:02. 0000000004 [20052]: main Bufman: All buffer cache pages are in use, ask your DBA to increase the size of the buffer cache; buffer={unknown buffer} page={unknown page}. -- (s_blockmap.cxx 2786) Файлик на 580 тысяч строк, размер 366 метров. При этом ключи на поднятие памяти прописывал -iqmc 1600М -iqtc 2400М Вот ключи запуска сервера I. 06/10 11:02:31. 0000000000 IQ cmd line srv opts: -iqmc 1600M -iqtc 2400M I. 06/10 11:02:31. 0000000000 IQ full cmd line: -c 48m -gc 20 -gd all -gl all -gm 10 -gp 4096 -ti 4400 -iqmc 1600M -iqtc 2400M -n IQWOOD -x tcpip{port=2638} /data/iqdb/iq.db -hs -gn 25 -o /opt/sybaseIQ/ASIQ-12_7/logfiles/IQWOOD.014.srvlog -hn 8 Ткните плиз - где я что не так делаю :) Гружу лоадом Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2009, 17:29 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Фигня какаято.. Сделал выгрузку этой простыни всего из 10 строк. Результат тотже!! Размер файла 6045 байт.. Уже память и опциями в субд выделял.. Код: plaintext 1. 2.
Подскажите - куда копать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.06.2009, 17:35 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Для начала я бы рекомендовал накатить последний патчик ESD6 Если и с ним то же самое, то следует проверить базу с помощью sp_iqcheckdb (Такое сообщение может быть из-за например поврежденных индексов) Если чисто, то надо удостоверится, сколько все-таки памяти для кешей IQ используется в настоящий момент, (может другие запросы - используют почти весь temp cache) Выполните - sp_iqstatus см. Main IQ Blocks Used Temporary IQ Blocks Used Как самая крайняя мера, можно попробовать грузить не сразу всю широкую таблицу (100 полей), а частично например 4 раза по 25 полей - используя START ROW ID детальней см. Partial-width load Или же можете попробовать использовать insert location. Тогда IQ сам подключиться к ASE и выгребет нужные данные.. Файл с выгруженными данными - использовать не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2009, 14:34 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
moris , спасибо за совет! Опять получилось из серии - барабашка. База, в которой я создавал - была создана админами. Почти все по дефолту как я понял, кроме размера. Никакие мои ухищрения не заставили данные в нее загрузиться - создавал и таблицку из пары десятков полей. Буквально с час назад мелькнула мысль - попытаться создать новую базу. Сделал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Из явного отличия от той бд - там по дефолту вышло регистрозависимо. Что еще из отличий - сейчас буду смотреть.. Но ооочень неочевидно из сообщения.... Два дня убил на игры с памятью, а оказалось что БД криво сделана..... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2009, 16:17 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Кстати. Вот из iq_status Name,Value ' Main IQ Buffers:','127, 16Mb' ' Temporary IQ Buffers:','95, 12Mb' ' Main IQ Blocks Used:','114088 of 256000, 44%=891Mb, Max Block#: 114998' ' Temporary IQ Blocks Used:','81 of 256000, 0%=0Mb, Max Block#: 177' ' Main Reserved Blocks Available:','25600 of 25600, 100%=200Mb' ' Temporary Reserved Blocks Available:','25600 of 25600, 100%=200Mb' ' IQ Dynamic Memory:','Current: 4111mb, Max: 5200mb' Вот из лога старта сервера I. 06/12 14:46:18. 0000000000 IQ cmd line srv opts: -iqmc 1600M -iqtc 2400M I. 06/12 14:46:18. 0000000000 IQ full cmd line: -c 4G -gc 20 -gd all -gl all -gm 100 -gp 32768 -ti 4400 -iqmc 1600M -iqtc 2400M -n IQWOOD -x tcpip{port=2638} /data/iqdb/iq.db -hs -gn 105 -o /opt/sybaseIQ/ASIQ-12_7/logfiles/IQWOOD.016.srvlog -hn 8 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2009, 16:24 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Разобрался... Вдруг пригодится кому. выставление опций при загрузке сервера -iqmc -iqtc не помогала никак. А вот выставление Код: plaintext 1.
При этом в доке написано черным по белому This option sets the size of the main shared memory buffer cache for the database. Sybase recommends that you do not use this option; instead, set the main buffer cache size with the -iqmc server option. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.06.2009, 17:47 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Так вам же IQ Status и показывал, что используются дефолтные настройки IQ по кешам Вот из вашего iq_status Name,Value ' Main IQ Buffers:','127, 16Mb' ' Temporary IQ Buffers:','95, 12Mb' --------------------------------- Ваши свичи из командной строки -iqmc 1600M -iqtc 2400M - вообще НЕ ИСПОЛЬЗОВАЛИСЬ, т.к. были ошибочно определены.. Надо было указать размер в мегабайтах, и не указывать еще 'M' т.е. правильно так -iqmc 1600 -iqtc 2400 - iqmc size -- Specify the main cache size in MB . (Overrides default.) Т.к. серверные свичи ошибочны, использовались опции БД, которые и были по дефолту ;-) В последней конфигурации вы тоже порадовали.. Зачем для каталого отдавать 4 GB ??? У вас свич -c 4G.. ??????? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 12:20 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
:) Ну - всяко бывает. Думал что 1600М правильно. сейчас переделаю строку запуска. А сколько каталогу отдавать? дефолтные 48М? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 13:41 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
48M - для начального размера каталога, вполне подойдет.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 13:48 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
спасибо! буду дальше разбираться странно что ничего не сообщалось если неправильно заданы опции... а что лучше для связки АСЕ-IQ использовать? для загрузки данных. bcp out + load или insert location ? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 13:53 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Однозначно - insert location ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 13:59 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
А в чем преимущества? По документации не ясно. Не особо встречался чтобы это использовали. Расскажите пожалуйста. И можно ли в insert location указывать чтото типа forceplan? При выгрузке бсп-ёй наткнулся на то, что она может выгрузить таблицу или вьюшку. Если выгружать изменения за день - нормально написать вью. Но в нем не сказать никак форсплан - и план строится совершенно не такой как необходимо. И произвидительность ее также... Вот если б можно было перенести както результат выполнения процедуры.... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 14:05 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
insert location лучше для выгрузки из ASE в IQ т.к. - нет промежуточной выгрузки во внешний файл - при передаче по сети большого выгруженного файла, его еще надо дополнительно заархивровать на хосте ASE и на стороне IQ разархивировать - нет проблем с форматами дат.. set forceplan использовать нельзя, однако можно использовать нужный абстрактный план, что позволяет явно оптимизатру указать нужный план insert into SOME_TAB LOCATION '<ASE_SERVER>.<DB>' select ...... PLAN "(.......)" Результат выполнение SP, можно засунуть во временную таблицу (не сесиоонку), и затем inset location залить в IQ ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 14:58 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Спасибо! Пробую insert location - возник вопрос. А переконвертировать данные можно? В слыче с бсп и загрузкой - запросто. При выгрузке указываеш кодировку нужную. А здесь? АСЕ - utf8, IQ - cp1251. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 17:25 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
utf8, и cp1251 - совместимые кодировки, поэтому перекодировка будет налету.. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.06.2009, 18:48 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
не происходит :( в IQ получаю абракадабру... Нагрузочное примерно такого вида....... ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2009, 09:39 |
|
Загрузка в IQ
|
|||
---|---|---|---|
#18+
Ерунда.. Все всегда работает при правильной настройке.. У вас не настроена правильно локализация для cp1251 Что на IQ сервере, что на базе должна быть русская кодировка cp1251 Проверьте SELECT PROPERTY( 'CharSet' ) SELECT DB_PROPERTY ( 'CharSet' ) Также в locales.dat должна быть использована кодировка cp1251 Детальней тут ... |
|||
:
Нравится:
Не нравится:
|
|||
16.06.2009, 12:48 |
|
|
start [/forum/topic.php?fid=55&fpage=15&tid=2010128]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
others: | 244ms |
total: | 407ms |
0 / 0 |