📜 ⬆️ ⬇️

Tibero. First pancake

Recently in my life the period of searching for a new job has ended. At one of the interviews of this period, I learned that a new DBMS appeared in the world, the developers of which promise to overshadow the Oracle Almighty. A tempting promise immediately made me want to try this miracle of overseas technology. It was about the Korean DBMS Tibero .

According to Wikipedia:
Tibero - the so-called DBMS produced and distributed by Tibero Corporation, which is part of the South Korean corporation TmaxSoft. Development of this product started in 2003, and in 2008 they became the second company in the world providing a cluster based on disks, as a shared resource (shared-disk-based cluster).
...
Tibero DBMS is considered an alternative to Oracle due to its full compatibility with Oracle products, including SQL.
Tibero guarantees the reliability of database transactions (which are a thoughtful set of SQL statements) provided by ACID support (atomicity, consistency, isolation, durability).
...
Tibero implemented a unique thread architecture (Tibero Thread Architecture) to solve the flaws of previous DBMS. As a result, Tibero can efficiently use system resources, such as CPU and memory, using fewer server processes. This allows Tibero to offer a combination of performance, stability and scalability, and to facilitate the development and customization process. Additionally, the DBMS allows users and developers using a variety of standard interfaces to easily integrate with other DBMS and applications.

In addition, in order to improve 'Tibero Active Cluster' (a database clustering system similar to Oracle RAC), the block transfer technology was used. Tibero supports self-tuning performance optimization, robust database monitoring and performance management.

In Korea, Tibero has been introduced to more than 450 companies with various business lines: finance, manufacturing, and public relations; and with more than 14 companies in the rest of the world as of July 2011.

It feels like this text was written by the staff of Tibero itself, but we will leave this on their conscience.
')
If you dig around on the Internet, you may find that a little more than a year ago the company opened its representative office in Russia, and besides, “At present, there are about 50 projects in various areas in Russia. For a number of customers (for example, the Federal Center for Informatization of the Accounts Chamber of the Russian Federation), one of the reasons for finding alternative solutions in the Asian sector (where TmaxSoft is the leader) was imposed by the US on IT industry, which TmaxSoft does not support. Tibero customers in Russia include MTS, the Ministry of Defense of the Russian Federation, MoEnergoSbyt, the Accounts Chamber of the Russian Federation, the Bank of Russia, the Federal Tariff Service, and others. ”

In aggregate, this has further stimulated my interest in this product. And I decided to try it: run and play with it. To do this, I rented a small server with Debian 7.9 (wheeze) on board in the Google Cloud. Here are its parameters:

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

The first thing you confront is a critically small amount of information in Russian, and in English it is also not a lot of it. The second is that Tibero does not provide for the needs of training and development of a free version of the DBMS as Oracle does. Tibero also provides a test license for the previous version of the DBMS for a period of half a year, and it was not easy for me to find it. To do this, it was necessary to find this official, but hidden in the depths of the Internet site: http://technet.tmaxsoft.com/ . register, download the latest distribution package, find that there are no free licenses for it, delete the distribution package, download the old distribution package and installation instructions.

And so, download the instructions and understand that we need a JDK of at least 1.5, gcc > = 3.4.6, xml license file on the server, 512 MB RAM, Swap File 1 GB, 300mb in / tmp, 300MB on the hard disk when fully installed and 200 MB if you install only the client (but among the text of the instructions it is said that without 1.5 GB the base will not be installed). I didn’t meet all the Software requirements for obvious reasons, but they are: RedHat Enterprise Linux AS / ES 2.1, 3.0, 4.0. The note also states the requirement for the kernel version: it must be at least 2.6.

The strangest thing for me was the requirement to change the parameters of the kernel for installation! Well, if I'm a large corporation and I have a lot of money and servers. And if I am a small company and I save on everything I can? I buy a cheap Korean Oracle , I have only one server. There are a lot of things spinning and somehow it’s not very cool to have no alternative forcing me to change the kernel settings.

Ok, corrected the /etc/sysctl.conf file with the following:

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 requirements are:

 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 
)
Applied settings with / sbin / sysctl -p and rebooted the server. Made to indicate where the temporary installation files should fall as follows:
 export TB_INST_TMP_DIR=/opt 

All preparations are complete. Run the installer. In parallel with the instruction, going through the installer, I decided to fix something for myself. For example, spreading logs to several files. As a result, the installer told me: "Everything is super, you can run." However, I could not start. First, I had to do this:

 source ~/.profile 

After that, I was no longer told that there was no such program, but simply said: “Tip file open failure .: No such file or directory” . Long digging on the Internet has not led to anything reasonable. The documentation claimed that the root of the evil was not in the established TB_SID , but the TB_SID was installed, but the program was still unhappy. I had to start the creation of the database and set all the settings to "Default". After that came success! The base has earned.

After this, there was a desire to leave the Google server and configure the client. But the official documentation offers to download the client's installer file, with an example exclusively for Windows and silent, where does this file come from.

Trying to put the client through the DBMS installer on my laptop with Ubuntu, I found a wonderful correspondence of documentation and reality. the -G switch leads to help, not graphics mode, and for graphics mode, you must use -i gui or -i swing , but neither the first nor the second wanted to work on Ubuntu, assuring me that the Installer user interface is not supported .

In the end, I had to put the whole Tibero on my laptop with Ubuntu . Run source ~ / .profile After that, find an analogue of TNSNAME.ora . It is located in the $ TB_HOME / client / config folder and is called tbdsn.tbr .

It has a painfully familiar format:

 DBTNS= ( (INSTANCE=(HOST=hostname) (PORT=port) (DB_NAME=DB_NAME) ) ) 

And ... Victory! By command:

 tbsql sys/syspassword@DB_TNS 

I connected to the database on a remote host (I will leave dances with tambourines around the firewall behind the scenes).

We can say that the system is ready for some tests.

I did not do adequate performance tests, since my profile is not mine. Maybe someone will be interested and do. For myself, I can say that there are few differences between external and Oracle . Even their new PSM language looks like this:

 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; 

So far, according to the documentation and the amount of information, the product seemed to me incapable of reaching a wide range of exploitation. But maybe he is worth something and we need to look at him?

Thank you all, good luck and goodbye!

Part 2

Source: https://habr.com/ru/post/269509/


All Articles