Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
UCDI FAQ
|
|||
|---|---|---|---|
|
#18+
Выдержки из данного FAQ тут временами публиковались, может кому-то пригодится целиком. Данный FAQ составлен по материалам USENET-конференции ukr.comp.dbms.informix (UCDI) Спасибо всем, кто присылал ссылки, пары q/a. Пытающийся вести FAQ - Igor Zavgorodny, daugava@ukr.net Дата последней модификации - 2003-06-07 DISCLAIMER. Упоминаемые в данном тексте люди не являются Informix-гуру и не осуществляют tech-support by e-mail =========================================================== 0. Общие вопросы. 1. Администрирование. 2. Ошибки. 3. SQL-хитрости. =========================================================== 0. Общие вопросы. =========================================================== Q.> Как правильно задавать вопросы ? A.> http://ln.com.ua/~openxs/articles/smart-questions-ru.html Очень существенным является точная версия IDS, платформа (версия ОС, ядра для Linux, Service Pack для NT, ...). При проблемах клиентской части - способ соединения и версия драйвера(ов). ------- Q.> Где можно что-то почитать про Informix ? A.> хором :) 1. www.informix.com 2. www.informix.com.ua (документация на русском,английском, статьи,полезности,архивы UCDI,FAQ, ...) 3. www.iiug.org (международное сообщество пользователей, огромное количество полезной информации). 4. comp.dbms.informix (CDI) - англоязычная USENET конференеция. 5. http://www.smooth1.demon.co.uk/informix.htm CDI - FAQ. ------ Q.> Есть ли какие то книги на русском языке про Informix ? A.> Немного есть. Вот все, что пока выходило в печать: 1. Руководство Informix-OnLine Dynamic Server (Руководство для администратора баз данных Informix) Карлтон Доу Москва, изд. <Лори>, 1999, 314 стр. (Informix Press, 1997) 2. Informix. Энциклопедия пользователя. Джон Мак-Hилли и дp. Киев, Изд-во ДиаСофт, 1998 г., 800 с. (SAMS, 1997) 3. Введение в СУБД Informix А.Ю.Грачев Москва, "Диалог-МИФИ", 2000, 272 стр. (или электронный вариант, 1998, 249стр.) 4. INFORMIX. Учебное пособие П.А.Петин, Ю.А.Шестаков, В.В.Шульженко Киев, ANTEC, 1996 ------ Q.> Где можно найти архивы UCDI? A.> http://groups.google.com/groups?q=ukr.comp.dbms.informix http://www.informix.com.ua/ucdi Q.>Подскажите бесплатный nntp сервер, содержащий ukr.comp.dbms.informix и поддерживающий post-инг. A.> news://news.lucky.net http://www.newzbot.com/search.html ------ Q.> Где можно взять продукты Informix-а "на посмотреть". A.> Стать членом IIUG (International Informix Users Group) http://www.iiug.org ftp://no-more.kiev.ua/pub/inf/ В представительстве компании HPS в Киеве, тел. (+38044) 490-5545,490-5546 ------ =========================================================== 1. Администрирование. =========================================================== Q.> Средства администрирования, разработчика IDS? A.> Василий Шульженко Server Studio http://www.agsltd.com/ - не бесплатен (но есть "улучшалки") Существующие версии Server Studio JE Enterprise Edition, Server Studio JE Developer Pack, Server Studio WIN32 Enterprise Edition, Server Studio WIN32 Professional Edition ESQLEditor http://myinformix.narod.ru/ - FreeWare от анонимного поставщика DbVisualizer http://www.minq.se/products/dbvis/install/install.jsp - FreeWare от Minq Software (Stockholm, Sweden), визуальное общение с базой данных под различными платформами, использующее JDBC. IBM DB2 Web Query Tool (Now includes support for the Informix Dynamic Server 9.x) WinSQL Lite http://www.synametric.com/files/WinSQLLite_Installer.zip WinSQL Professional http://www.synametric.com/files/pro/WinSQLPro_Installer.zip INEX (INformix database EXplorer application) http://iamnotabene.narod.ru/INEX/inex.html - FreeWare от vAd Не GUI средства: GX Monitor (SCO Unix) http://gxm.virtualave.net/ - FreeWare от Paul Tatarenko DBA_Tools (Tools for Informix DBA on MS Windows, FAR Manager menu driven) http://www.informix.com.ua/DBA_Tools/ или http://training.softline.kiev.ua - FreeWare от V.Shulzhenko Старый инструментарий от Informix: - IECC (Informix Enterprise Command Center) - поставлялся с версиями сервера до 7.31.TC5 - Informix DB Administrator (IDBA) - до 7.31.TD1 - ERM - Client Configuration Tool - ISM 2.2 Graphical User Interface - Schema Tools В Informix Schema Tools включаются: - SQL Editor - Table Editor - Privilege Editor - Informix-DBAdmin Toolkit - BladeManager - SQL Editor 2.0 - Schema Knowledge --------------------------------------------------- Q.> А разве нет нормального гуевого средства ? Найти под Информикс универсальный тулз и для администрирования сервера и для администрирования БД да еще и для разработки очень трудно и тут можно посоветовать только отдельные элементы для каждой из категорий. В первую очередь это ISA (для администрирования сервера). Для разработки более всего Server Studio Win32 Edition или Java Edition (но за деньги http://www.agsltd.com/ Могу еще порекомендовать посмотреть/попользоваться http://www.imranweb.com/freesoft/ напр.WinSQL Lite(полностью фрии) и особенно Pro (но тут только триальная версия на 30дн.) а также dbAccess, SQL Editor, SQL Explorer (Borland) и т.д. Очень много различных доморощенных продуктов той или иной степени пригодности, но предназначеных, в основном, для персонального применения, а не серьезного использования при разработке промышленных продуктов. Q.> Какие версии IDS можно ставить на MS Windows2000 Server ? A.> Всегда надо читать Release Notes конкретной версии, в которых описываются все требования к ОС. Версии под W2K уже давно есть и называется по разному, в зависимости от типа сервера IDS 7.31.TC8 и выше IDS-WE 7.31.TC8 и выше IDS 2000 v9.21.TC1 и выше Дополнение от IBM: Question Which version of InformixR Dynamic ServerT (IDS) works with which Windows NTR 4.0 Service Pack? Answer IBM InformixR Dynamic ServerT and MicrosoftR Windows NTR Service Pack combinations certified by IBM: Service Pack 3 (SP3) 7.23.TC13 or lower 7.30.TC6 or lower 9.14.TC5 or lower Service Pack 4 (SP4) 7.30.TC11 7.31.TC5 9.20.TC1 or greater For Service Pack 5 (SP5) 7.23.TC16 7.30.TC9 or greater 7.31.TC2 or greater 9.14.TC7 or greater 9.20.TC1 or greater For Service Pack 6 (SP6a) 7.23.TC17 7.30.TC11 7.31.TC5 or greater 9.14.TC9 9.20.TC3 or greater ------ Q.> У меня проблемы с производительностью сервера ... A.> Василий Шульженко Дай весь онконфиг, основные выводы onstat -p, F, R, b... через несколько часов работы сервера под нагрузкой A+> Игорь Завгородний В статистике не должны присутствовать нетипичные для обычной работы нагрузки (массовая закачка данных, построение индексов, архив-0,update stat, ...). Перед началом сбора статистики ее следует "обнулить", т.е. выполнить onstat -z. ------ Q.> когда поглядел onstat -u вот что увидел >Userthreads >address flags sessid user tty wait tout locks nreads nwrites >1012e018 ---P--D 1 informix - 0 0 0 139 372 > ^^^^ > этих флажков > я зе знаю >рапишите пожалуйста что они означают A.> Все хором, читай "Administrator Guide". A.> Василий Шульженко * Что обозначают флажки в выводе onstat -u ? --------------------------------------------- Для 7.31: Флаги обозначают статус сессии или ее отдельных нитей (если нитей несколько). Коды флага для 1-й позиции: (причина ожидания) B waiting on a buffer C waiting on a checkpoint G waiting on a write of the logical-log buffer L waiting on a lock S waiting on mutex T waiting on a transaction Y waiting on condition - стандартное состояние X waiting on a transaction cleanup (rollback) Коды флага для 2-й позиции: * transaction active during an I/O failure - стандартное состояние Коды флага для 3-й позиции: (состояние транзакции) A dbspace backup thread - нет транзакции (стандартное состояние) B Begin work P INFORMIX-STAR prepared for commit X INFORMIX-TP/XA prepared for commit C Committing or committed R Rolling back or rolled back H Heuristically rolling back or rolled back Коды флага для 4-й позиции: P primary thread for a session - стандартное состояние - вторичная нить сессии Коды флага для 5-й позиции: R Reading (RSAM call) X Thread in critical section (например, формируется Assert Failed :) - стандартное состояние 6-я позиция не документирована и не используется. Коды флага для 7-й позиции: (основной тип нити) B btree cleaner thread C terminated user thread waiting for cleanup D a daemon thread F a page-cleaner thread M special ON-Monitor (monitor) thread - стандартная нить sqlexec (сессия) ------ Q.>Народ! Подскажите пожалуйста, что надо >сделать серверу на NT, чтобы можно было бы >с линукса запустить dbexport database, и получить >ее, а не >-956 - Client host or user (informix@bush) is not trusted by the server. >-1 - Not owner A.> Алексей Банасевич: Ну, на -956 ошибку нужно вообще-то положить в %SystemRoot%\System32\drivers\etc файл hosts.equiv примерно следующего содержания: hostl host.domain 1.1.1.1 Последняя строка - ip-адрес хоста. Причем в этом файле нужно перечислить ВСЕ хосты, к которым хочется обращаться, и мало того, этот файл нужно положить НА ВСЕ эти хосты. дополнение Василия Шульженко: ------------ Вот тут я вынужден не согласиться. Если следовать этому совету, то вся секьюрити пойдет насмарку. Если поместить в файл имя какого либо компа, то любые запросы с него не будут авторизоваться NT (UNIX). А если указать имя пользователя, то ему будет разрешен доступ с любого компа, естественно, тоже без авторизации ОС. И уж тем более не нужно класть такой файлик на ВСЕ хосты. Если уж и применять, то с запретом апдейтить другим (не админам) пользователям да и рекламу создавать особо не нужно. Кстати, на Юниксе в SQLHOSTS можно запретить использование этого файла, а вот в НТ - вроде нет. Конечно, на все мои советы можно "положить", если "положить" на безопасность системы :)) дополнение Константина Кадука: ------------ Для начала заглянуть в man netrc на вашу unix систему. Общий порядок такой: 1. в домашней директории пользователя создаем файл .netrc с правами 600. 2. Зписываем туда в следующем формате machine <hostname> login <username> password <topsecret> Можно несколько строк для разных хостов. hostname есть on_hostname из sqlhosts. username имя удаленного пользовтеля topsecret его пароль. Ну а дальше как с родной базой. Вариант подходящий для случая, когда пароль на удаленную базу не жалко дать своему root. ------ Q.>Подскажите как узнать размер определенной базы данных в мегабайтах A.> Игорь Завгородний --Размер в страницах select dbsname, sum(size) size from sysmaster:sysextents group by dbsname; -- Для того чтобы узнать размер таблиц select tabname, sum(size) size from sysmaster:sysextents where dbsname = 'имя базы данных' group by 1 order by 2 desc; дополнение Василия Шульженко: ------------ Тут еще надо различать, что есть место занятое БД, а есть место, внутри этой базы, занятое данными (и есть свободное место). И вовсе не обязательно, что при заливке данных общий размер, занимаемый БД, тут же увеличится. Тут не совсем точно - попадет сюда, например, такая "БД", как rootdbs ;) Могу еще предложить: ------------------------------------------------- -- List databases and total size in KB -- -- Gives the total number of pages allocated -- and the total number of pages actually used (in KB) -- IDS 7.2+ 9.2+ -- -- V.Shulzhenko DBA_Tools (by John Carlson) ------------------------------------------------- set isolation to dirty read; select p.dbsname[1,18] database_name ,round(sum(nptotal*v.sh_pagesize/1024)) total_KB ,round(sum(npused*v.sh_pagesize/1024)) used_KB ,round(sum(nptotal*v.sh_pagesize/1024)-sum(npused*v.sh_pagesize/1024)) free_KB from sysptnhdr h, sysptprof p, sysdatabases d,sysshmvals v where h.partnum = p.partnum and p.dbsname = d.name group by 1 union select '___total_all_db___' ,round(sum(nptotal*v.sh_pagesize/1024)) total_KB ,round(sum(npused*v.sh_pagesize/1024)) used_KB ,round(sum(nptotal*v.sh_pagesize/1024)-sum(npused*v.sh_pagesize/1024)) free_KB from sysptnhdr h, sysptprof p, sysdatabases d,sysshmvals v where h.partnum = p.partnum and p.dbsname = d.name group by 1 order by 2 Q.> Отсюда вопрос как научить информикс отдавать данные в KOI8-R? A.> Василий Шульженко А что , именно так локаль и задавал ? Мне кажется, что нужно ru_RU.KOI-8 Все разрешенные названия приведены в \gls\cm3\registry Проверь еще наличие следующих файлов \gls\cv9\0362e026.cvo \gls\cv9\e0260362.cvo \gls\cm3\e026.cmo =========================================================== 2. Ошибки. =========================================================== Q.>У нас IDS2000 9.21.UC2 под Linux'ом. > не выполняется поиск по like '%aaa%', ну и по matches '*aaa*' > если ааа-кирилические, а по like '%aaa%%', matches '*ааа**' все работает A.>Igor Zavgorodny баг является зарегистрированной фичей #132339 от 8.4.2000 "MATCHES OR LIKE ON STRING WITH UMLAUT AND LEADING WILDCARD DOESN'T FIND ROW" В 9.30 он вроде ликвидирован. =========================================================== 3. SQL-хитрости. =========================================================== Q.>Как получить значение поля SERIAL только что вставленной записи? A.> Алексей Банасевич CREATE PROCEDURE fe_lastserial() RETURNING integer; return dbinfo('sqlca.sqlerrd1'); END PROCEDURE; Вызывать нужно СРАЗУ же после INSERT. Если на таблице есть триггеры, которые вставляют записи в другие таблицы, результатом будет значение SERIAL, вставленное в последнюю такую таблицу. ------ Q.> Как получить информацию о времени выполнения этапов длинной процедуры > (которая вызывает другие процедуры) и выяснить какой из них выполняется > недопустимо долго Current не подходит - возврашает время запуска главной > процедуры A.> Василий Шульженко Есть несколько способов, но самый простой - брать время из sysmaster select DBINFO('utc_to_datetime', sh_curtime) from sysmaster:sysshmvals ------ Q.> Как вставить перенос строки (другой непечатный символ) в select? A.> Евгений Нечаев select "aaa"||ascii(10)||"bbb" from systables where tabid=1; Где ascii(10), процедура выводящая символ из таблицы. CREATE PROCEDURE ascii(code INTEGER) RETURNING char(1); define ch_r char(1); select ch into ch_r from ascii_t where ascii_t.code=code; RETURN ch_r; END PROCEDURE; Структура и содержание таблицы я думаю понятны. В 9-ке функцию ascii() можно реализовать на C. дополнение Леонид Воронцов: ------------ Символы CR и LF есть в теле процедуры systdist, а достать их можно: SELECT data[ 69, 70 ] FROM sysprocbody WHERE datakey = 'T' AND procid = 1 AND seqno = 1 дополнение Игорь Завгородний: ------------ Интересное решение, но имеющее минимум два но: 1. На 9-ке смещение будет другим. 2. CR LF будет только в Win инсталляции. Обойти оба "Но" конечно можно, создав свою процедуру, обладающую аналогичными свойствами. ------ Q.> Каким способом затолкать к примеру перевод строки в поле Ch A.> Евгений Нечаев Или программно используя переменную, или подготовив файл для load где перевод строки слешируется. 10|\<символ>| ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2003, 17:04 |
|
||
|
UCDI FAQ
|
|||
|---|---|---|---|
|
#18+
интересно, а какие еще есть недокументированные сигнатуры для dbinfo ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2003, 14:52 |
|
||
|
UCDI FAQ
|
|||
|---|---|---|---|
|
#18+
Вот все, что я знаю ------------------------------------------------------------------------- -- V.Shulzhenko DBA_Tools ------------------------------------------------------------------------- DBINFO('DBSPACE', <tblspace_num>) - имя dbspace для соответствующего tblspace number (partnum) DBINFO('sqlca.sqlerrd1') - последний serial, вставленный в таблицу DBINFO('sqlca.sqlerrd2') - количество обработанных строк (Select, Insert, ...) DBINFO('get_tz') - возвращает таймзону, например GMT+5 DBINFO('utc_current') - количество секунд с 1.1.1970 DBINFO('utc_to_datetime', <время в UTC>) - время в секундах с 1.1.1970 превратить в datetime DBINFO('sessionid') - session id для текущей сессии DBINFO('dbhostname') - hostname сервера БД, к которому подсоединен клиент DBINFO('version', 'specifier') - точная версия сервера ('version','full') DBINFO('serial8') - последний serial8, вставленный в таблицу (IDS2000, 9.x) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2003, 13:47 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=32264512&tid=1609365]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 361ms |

| 0 / 0 |
