Недавно в моей жизни закончился период поиска новой работы. На одном из собеседований этого периода я узнал, что в мире появилась новая СУБД, разработчики которой обещают вот-вот затмить собой Oracle всемогущий. Заманчивое обещание тут же породило у меня желание попробовать это чудо заморской техники. Речь шла о корейской СУБД Tibero.
По данным википедии:
По ощущениям, этот текст был написан сотрудниками самой Tibero, но это мы оставим на их совести.
Если еще покопаться в интернете, то можно обнаружить, что чуть более года назад компания открыла свое представительство в России, а кроме того «В настоящее время в России в реализации находятся около 50 проектов в самых различных областях. Для ряда заказчиков (например, Федерального центра информатизации Счетной палаты РФ) одной из причин поиска альтернативных решений на азиатском направлении (где ко��пания TmaxSoft является лидером) стали введенные санкции со стороны США, касающиеся IT отрасли, которые TmaxSoft не поддерживает. Среди заказчиков Tibero в России: МТС, Министерство обороны РФ, МосЭнергоСбыт, Счетная палата РФ, Банк России, Федеральная служба по тарифам и др.»
В совокупности это ещё больше подогрело мой интерес к этому продукту. И я решил его попробовать: запустить и поиграться с ней. Для этого я в облаке Google арендовал маленький сервер с Debian 7.9 (wheeze) на борту. Вот его параметры:
Machine type: n1-standard-1 (1 vCPU, 3.75 GB memory)
CPU platform: Intel Ivy Bridge
Boot disk and local disks: 40GB Standard persistent disk
Первое с чем ты сталкиваешь — это критически маленькое количество информации на русском, да и на английском тоже её не густо. Второе — это то, что Tibero не предоставляет для нужд обучения и разработки бесплатную версию СУБД как это делает Oracle. Tibero же предоставляет тестовую лицензию на предыдущую версию СУБД сроком на пол года, и найти её мне было не просто. Для этого нужно было найти вот этот официальный, но запрятанный в недры интернета сайт: http://technet.tmaxsoft.com/. зарегистрироваться, скачать дистрибутив последней версии, обнаружить, что на него нет бесплатных лицензий, удалить дистрибутив, скачать дистрибутив старой версии и инструкцию по установке.
И так, скачиваем инструкцию и понимаем, что нам нужно JDK не ниже 1.5, gcc >= 3.4.6, xml файл лицензии на сервере, 512 MB RAM, Swap File 1 GB, 300mb в /tmp, 300MB на жестком диске при полной установке и 200 MB если ставите только клиент (но среди текста инструкции говорится, что без 1,5 GB база не поставится). Требования по Software я выполнил не все по очевидным причинам, а они такие: RedHat Enterprise Linux AS/ES 2.1, 3.0, 4.0. В примечании еще говорится о требовании к версии ядра: она должна быть не меньше 2.6.
Самым странным для меня стало требование поменять параметры ядра для установки! Ладно, если я крупная корпорация и у меня много денег и серверов. А если я маленькая компания и я экономлю на всем, чем могу? Покупаю дешевый корейский Oracle, у меня сервер-то всего один. Там много чего крутится и как-то не очень здорово безальтернативно заставлять меня менять настройки ядра.
Ладно, поправил файл /etc/sysctl.conf на следующее:
Требования Tibero такие:
Применил настройки с помощью /sbin/sysctl -p и перезагрузил сервер. Сделал для указания, куда должны падать временные файлы установки следующее:
Все приготовления завершены. Запускаем установщик. Параллельно с инструкцией, проходя по установщику, я решил кое-что поправить под себя. Например раскидывание логов на несколько файлов. В результате установщик сказал мне: «Все супер, можно запускаться». Однако запуститься у меня не получилось. Во-первых надо было сделать вот что:
После этого, мне уже не говорили о том, что такой программы нет, а просто сказали: «Tip file open failure.: No such file or directory». Долгое копание в интернете не привело ни к чему разумному. Документация утверждала, что корень зла в не установленном TB_SID, но TB_SID был установлен, а программа все равно была недовольна. Пришлось запустить создание базы данных и выставить все настройки в значение «По умолчанию». После этого наступил успех! База заработала.
После этого возникло желание покинуть гугловый сервер и настроить клиент. Но официальная документация предлагает скачать файл-установщик клиента, с примером исключительно для Windows и умалчивая, где же этот файл все-таки взять.
Пытаясь поставить клиент через установщик СУБД на моём ноутбуке с Ubuntu я обнаружил чудное соответствие документации и реальности. ключ -G приводит к helpу, а не графическому режиму, а для графического режима надо использовать -i gui или -i swing, однако ни первый, ни второй не захотели работать на Ubuntu уверяя меня, что Installer user interface is not supported.
В итоге мне пришлось поставить целиком Tiberoна мой ноутбук с Ubuntu. Прогнать source ~/.profile После этого найти аналог TNSNAME.ora. Находится он в папке $TB_HOME/client/config и называется tbdsn.tbr.
Формат он имеет до боли знакомый:
И… Победа! По команде:
Я подключился к базе на удаленном хосте (пляски с бубнами вокруг firewall я оставлю за кадром).
Можно сказать, что для каких-то тестов система ��же готова.
Тесты производительности адекватные я не делал, так как не мой все-таки профиль. Может, кто заинтересуется и сделает. Для себя могу сказать, что отличий внешних от Oracleмало. Даже их новый язык PSM выглядит так:
Пока по документации и по объему информации продукт мне показался неспособным выйти на широкий круг эксплуатации. Но, может быть, он чего-то стоит и надо к нему присмотреться?
Всем спасибо, удачи и пока!
Часть 2
По данным википедии:
Tibero — так называется СУБД производимая и распространяемая Tibero Corporation, являющаяся частью Южно-Корейской корпорации TmaxSoft. Разработка этого продукта начата в 2003 году, а в 2008 году они стали второй компанией в мире предоставляющей кластер основанный на дисках, как на разделяемом ресурсе (shared-disk-based cluster).
…
CУБД Tibero считается альтернативой Oracle в связи с их полной совместимостью с продуктами Oracle, включая SQL.
Tibero гарантирует надежность транзакций базы данных (которые являются продуманным набором SQL выражений) обеспечиваемой поддержкой ACID (атомарность, согласованность, изолированность, долговечность).
…
Tibero реализовало уникальную архитектуру потоков (Tibero Thread Architecture) для решения недостатков предыдущих СУБД. В результате Tibero может эффективно использовать системные ресурсы, такие как CPU и память, используя меньшее количество серверных процессов. Это позволяет Tibero предлагать сочетание производительности, стабильности и масштабируемости, и облегчение процесса разработки и настройки. Дополнительно, СУБД позволяет пользователям и разработчикам используя множество стандартных интерфейсов легко интегрироваться с другими СУБД и приложениями.
В дополнение, для улучшения 'Tibero Active Cluster' (система кластеризации БД похожая на Oracle RAC) была применена технология передачи информации блоками. Tibero поддерживает самонастраивающуюся оптимизацию производительности, надежную систему мониторинга базы данных и систему управления производительностью.
В Корее, Tibero была внедрена более чем 450 компаниям с различными направлениями деятельности: финансы, производство и связи с общественностью; и более чем с 14 компаниями в остальном мире по данным на Июль 2011.
По ощущениям, этот текст был написан сотрудниками самой Tibero, но это мы оставим на их совести.
Если еще покопаться в интернете, то можно обнаружить, что чуть более года назад компания открыла свое представительство в России, а кроме того «В настоящее время в России в реализации находятся около 50 проектов в самых различных областях. Для ряда заказчиков (например, Федерального центра информатизации Счетной палаты РФ) одной из причин поиска альтернативных решений на азиатском направлении (где ко��пания TmaxSoft является лидером) стали введенные санкции со стороны США, касающиеся IT отрасли, которые TmaxSoft не поддерживает. Среди заказчиков Tibero в России: МТС, Министерство обороны РФ, МосЭнергоСбыт, Счетная палата РФ, Банк России, Федеральная служба по тарифам и др.»
В совокупности это ещё больше подогрело мой интерес к этому продукту. И я решил его попробовать: запустить и поиграться с ней. Для этого я в облаке Google арендовал маленький сервер с Debian 7.9 (wheeze) на борту. Вот его параметры:
Machine type: n1-standard-1 (1 vCPU, 3.75 GB memory)
CPU platform: Intel Ivy Bridge
Boot disk and local disks: 40GB Standard persistent disk
Первое с чем ты сталкиваешь — это критически маленькое количество информации на русском, да и на английском тоже её не густо. Второе — это то, что Tibero не предоставляет для нужд обучения и разработки бесплатную версию СУБД как это делает Oracle. Tibero же предоставляет тестовую лицензию на предыдущую версию СУБД сроком на пол года, и найти её мне было не просто. Для этого нужно было найти вот этот официальный, но запрятанный в недры интернета сайт: http://technet.tmaxsoft.com/. зарегистрироваться, скачать дистрибутив последней версии, обнаружить, что на него нет бесплатных лицензий, удалить дистрибутив, скачать дистрибутив старой версии и инструкцию по установке.
И так, скачиваем инструкцию и понимаем, что нам нужно JDK не ниже 1.5, gcc >= 3.4.6, xml файл лицензии на сервере, 512 MB RAM, Swap File 1 GB, 300mb в /tmp, 300MB на жестком диске при полной установке и 200 MB если ставите только клиент (но среди текста инструкции говорится, что без 1,5 GB база не поставится). Требования по Software я выполнил не все по очевидным причинам, а они такие: RedHat Enterprise Linux AS/ES 2.1, 3.0, 4.0. В примечании еще говорится о требовании к версии ядра: она должна быть не меньше 2.6.
Самым странным для меня стало требование поменять параметры ядра для установки! Ладно, если я крупная корпорация и у меня много денег и серверов. А если я маленькая компания и я экономлю на всем, чем могу? Покупаю дешевый корейский Oracle, у меня сервер-то всего один. Там много чего крутится и как-то не очень здорово безальтернативно заставлять меня менять настройки ядра.
Ладно, поправил файл /etc/sysctl.conf на следующее:
kernel.sem = 10000 32000 10000 10000
kernel.shmall = 2097152
kernel.shmmni = 4096
fs.file-max = 6815744
net.ipv4.ip_local_port_range = 1024 65000
Требования Tibero такие:
semmsl 10,000 /proc/sys/kernel/sem
semmns 32,000
semopm 10,000
semmni 10,000
shmall 2,097,152 /proc/sys/kernel/shmall
shmmax half of physical memory (in bytes) /proc/sys/kernel/shmmax
shmmni 4,096 /proc/sys/kernel/shmmni
file-max 6,815,744 /proc/sys/fs/file-max
ip_local_port_range 1024 - 65000 /proc/sys/net/ipv4/ip_local_port_range
)Применил настройки с помощью /sbin/sysctl -p и перезагрузил сервер. Сделал для указания, куда должны падать временные файлы установки следующее:
export TB_INST_TMP_DIR=/opt
Все приготовления завершены. Запускаем установщик. Параллельно с инструкцией, проходя по установщику, я решил кое-что поправить под себя. Например раскидывание логов на несколько файлов. В результате установщик сказал мне: «Все супер, можно запускаться». Однако запуститься у меня не получилось. Во-первых надо было сделать вот что:
source ~/.profile
После этого, мне уже не говорили о том, что такой программы нет, а просто сказали: «Tip file open failure.: No such file or directory». Долгое копание в интернете не привело ни к чему разумному. Документация утверждала, что корень зла в не установленном TB_SID, но TB_SID был установлен, а программа все равно была недовольна. Пришлось запустить создание базы данных и выставить все настройки в значение «По умолчанию». После этого наступил успех! База заработала.
После этого возникло желание покинуть гугловый сервер и настроить клиент. Но официальная документация предлагает скачать файл-установщик клиента, с примером исключительно для Windows и умалчивая, где же этот файл все-таки взять.
Пытаясь поставить клиент через установщик СУБД на моём ноутбуке с Ubuntu я обнаружил чудное соответствие документации и реальности. ключ -G приводит к helpу, а не графическому режиму, а для графического режима надо использовать -i gui или -i swing, однако ни первый, ни второй не захотели работать на Ubuntu уверяя меня, что Installer user interface is not supported.
В итоге мне пришлось поставить целиком Tiberoна мой ноутбук с Ubuntu. Прогнать source ~/.profile После этого найти аналог TNSNAME.ora. Находится он в папке $TB_HOME/client/config и называется tbdsn.tbr.
Формат он имеет до боли знакомый:
DBTNS=
(
(INSTANCE=(HOST=hostname)
(PORT=port)
(DB_NAME=DB_NAME)
)
)
И… Победа! По команде:
tbsql sys/syspassword@DB_TNS
Я подключился к базе на удаленном хосте (пляски с бубнами вокруг firewall я оставлю за кадром).
Можно сказать, что для каких-то тестов система ��же готова.
Тесты производительности адекватные я не делал, так как не мой все-таки профиль. Может, кто заинтересуется и сделает. Для себя могу сказать, что отличий внешних от Oracleмало. Даже их новый язык PSM выглядит так:
CREATE [OR REPLACE] PACKAGE BODY book_manager IS
PROCEDURE add_new_book(v_author VARCHAR2, v_name VARCHAR2,
publish_year DATE) IS
BEGIN
IF substr(v_name, 1, 1) >= 'a' AND
substr(v_name, 1, 1) < 'k' THEN
INSERT INTO books
VALUES (1, v_author, v_name, publish_year);
ELSE
INSERT INTO books
VALUES (2, v_author, v_name, publish_year);
END IF;
COMMIT;
book_cnt := book_cnt + 1;
END;
PROCEDURE remove_lost_book(v_author VARCHAR2, v_name VARCHAR2) IS
BEGIN
DELETE FROM books WHERE author = v_author AND name = v_name;
COMMIT;
END;
FUNCTION search_book_position(v_author VARCHAR2, v_name VARCHAR2)
RETURN NUMBER IS
book_position NUMBER;
BEGIN
SELECT kind INTO book_position FROM books
WHERE author = v_author AND name = v_name;
RETURN book_position;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('NOT EXIST...SORRY');
RAISE;
END;
FUNCTION get_total_book_cnt RETURN NUMBER IS
BEGIN
RETURN book_cnt;
END;
BEGIN
book_cnt := 0;
END;
Пока по документации и по объему информации продукт мне показался неспособным выйти на широкий круг эксплуатации. Но, может быть, он чего-то стоит и надо к нему присмотреться?
Всем спасибо, удачи и пока!
Часть 2
