powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / UCDI FAQ
3 сообщений из 3, страница 1 из 1
UCDI FAQ
    #32264512
Фотография Daugava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выдержки из данного 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|\<символ>|
...
Рейтинг: 0 / 0
UCDI FAQ
    #32270389
cpr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
cpr
Гость
интересно, а какие еще есть недокументированные сигнатуры для
dbinfo
...
Рейтинг: 0 / 0
UCDI FAQ
    #32274089
vasilis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот все, что я знаю
-------------------------------------------------------------------------
-- 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)
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / UCDI FAQ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]