Интеграция Oracle XE 11.2. и MariaDB 10.1 в системах Ubuntu 14.04 и Debian
1) Зарегистрируйтесь на сайте Oracle для скачивания и загрузите Oracle Express по адресу:
- Зарегистрируйтесь (если не зарегистрированы) и войдите в систему. - Примите лицензионное соглашение. - Скачайте Oracle Database Express Edition 11g Release 2 для Linux x64 (oracle-xe-11.2.0-1.0.x86_64.rpm.zip, номера версий могут меняться со временем)
2) Подготовьте apt-get на вашей системе
sudo add-apt-repository ppa:webupd8team/java <press Enter to accept> sudo apt-get update sudo apt-get install oracle-java8-installer
3) После установки Java, проверьте версию
java -version java version "1.8.0_121"
4) Откройте /etc/bash.bashrc
Прокрутите до конца файла и добавьте следующие строки.
export JAVA_HOME=/usr/lib/jvm/java-8-oracle export PATH=$JAVA_HOME/bin:$PATH
Сохраните и проверьте:
source /etc/bash.bashrc echo $JAVA_HOME /usr/lib/jvm/java-8-oracle
5) Необходимы дополнительные пакеты, если они не установлены. Выполните команду:
sudo apt-get install alien libaio1 unixodbc
6)
unzip oracle-xe-11.2.0-1.0.x86_64.rpm.zip cd Disk1/ sudo alien --scripts -d oracle-xe-11.2.0-1.0.x86_64.rpm
Этот этап может занять некоторое время. Вы можете тем временем перейти к шагам 7-11) в другом окне терминала.
7)
Создайте новый файл /sbin/chkconfig и добавьте в него следующее содержимое
#!/bin/bash # Oracle 11gR2 XE installer chkconfig for Ubuntu file=/etc/init.d/oracle-xe if [[ ! `tail -n1 $file | grep INIT` ]]; then echo >> $file echo '### BEGIN INIT INFO' >> $file echo '# Provides: OracleXE' >> $file echo '# Required-Start: $remote_fs $syslog' >> $file echo '# Required-Stop: $remote_fs $syslog' >> $file echo '# Default-Start: 2 3 4 5' >> $file echo '# Default-Stop: 0 1 6' >> $file echo '# Short-Description: Oracle 11g Express Edition' >> $file echo '### END INIT INFO' >> $file fi update-rc.d oracle-xe defaults 80 01 #EOF
8)
sudo chmod 755 /sbin/chkconfig
9)
Создайте новый файл /etc/sysctl.d/60-oracle.conf
Скопируйте и вставьте следующее в файл. Kernel.shmmax — максимальное возможное значение физической оперативной памяти в байтах. 536870912 / 1024 /1024 = 512 МБ.
#Oracle 11g XE kernel parameters fs.file-max=6815744 net.ipv4.ip_local_port_range=9000 65000 kernel.sem=250 32000 100 128 kernel.shmmax=536870912
10)
sudo service procps start sudo sysctl -q fs.file-max
- Этот метод должен вернуть следующее: fs.file-max = 6815744
11) Необходимы дополнительные шаги
sudo ln -s /usr/bin/awk /bin/awk mkdir /var/lock/subsys touch /var/lock/subsys/listener
12) Установите Oracle XE (он должен был быть преобразован из .rpm в .deb)
sudo dpkg --install oracle-xe_11.2.0-2_amd64.deb
13)
Выполните следующую команду, чтобы избежать ошибки ORA-00845: MEMORY_TARGET. Примечание: замените "size=4096m" на размер вашей (виртуальной) оперативной памяти в МБ.
sudo rm -rf /dev/shm sudo mkdir /dev/shm sudo mount -t tmpfs shmfs -o size=4096m /dev/shm
14) Создайте файл /etc/rc2.d/S01shm_load
ПРИМЕЧАНИЕ: замените "size=4096m" на размер вашей оперативной памяти в МБ.
#!/bin/sh case "$1" in start) mkdir /var/lock/subsys 2>/dev/null touch /var/lock/subsys/listener rm /dev/shm 2>/dev/null mkdir /dev/shm 2>/dev/null mount -t tmpfs shmfs -o size=4096m /dev/shm ;; *) echo error exit 1 ;; esac
sudo chmod 755 /etc/rc2.d/S01shm_load
15) Настройте Oracle 11g R2 Express Edition. Стандартные ответы, вероятно, подойдут.
sudo /etc/init.d/oracle-xe configure
Укажите HTTP-порт, который будет использоваться для Oracle Application Express [8080]:
Укажите порт, который будет использоваться для слушателя базы данных [1521]:
Укажите пароль, который будет использоваться для учетных записей базы данных. Обратите внимание, что один и тот же пароль будет использоваться для SYS и SYSTEM. Oracle рекомендует использовать разные пароли для каждой учетной записи базы данных. Это можно сделать после первоначальной настройки:
Вы хотите, чтобы Oracle Database 11g Express Edition запускался при загрузке (y/n) [y]:
16) Откройте /etc/bash.bashrc. Добавьте в конец файла:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Сохраните.
17) Выполните команду source и проверьте, что вывод имеет смысл
source /etc/bash.bashrc echo $ORACLE_HOME /u01/app/oracle/product/11.2.0/xe
18) Измените значки на рабочем столе и запустите Oracle:
sudo chmod a+x ~/Desktop/oraclexe-gettingstarted.desktop sudo service oracle-xe start
19) Загрузите пакет SQL Developer
Загрузите Oracle SQL Developer с сайта Oracle. Выберите пакет Linux RPM: http://www.oracle.com/technetwork/developer-tools/sql-developer/downloads/index.html
Выберите пакет Linux RPM.
20) Установите SQL Developer
sudo alien --scripts -d sqldeveloper-4.1.5.21.78-1.noarch.rpm sudo dpkg --install sqldeveloper_4.1.5.21.78-2_all.deb mkdir ~/.sqldeveloper
21) Запустите sqldeveloper:
sudo /opt/sqldeveloper/sqldeveloper.sh
- Укажите правильный путь к Java, если это потребуется:
/usr/lib/jvm/java-8-oracle
- Click connections - Add new connection - Connection name: XE - username: SYSTEM - password: <your-password> - Connection type: Basic Role: Default - Hostname: localhost - Port: 1521 - SID: xe
MariaDB
22) Установите MariaDB
https://downloads.mariadb.org/mariadb/repositories/ Инструкции для Ubuntu, но выберите подходящие: - Ubuntu - 14.04 LTS "trusty" - 10.1 [Stable] - выберите зеркало
Выполните указанные команды. Например (НЕ КОПИРУЙТЕ НИЖЕ, ПРОВЕРЬТЕ, ЧТО СКАЗАНО НА СТРАНИЦЕ MariaDB):
sudo apt-get install software-properties-common sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.netinch.com/pub/mariadb/repo/10.1/ubuntu trusty main' sudo apt-get update
- Установите mariadb-server:
sudo apt-get install mariadb-server
23) Установите драйвер ODBC
https://downloads.mariadb.org/connector-odbc/
- MariaDB Connector/ODBC 2.0.13 Stable для Linux
Загрузите: mariadb-connector-ODBC-2.0.13-ga-linux-x86_64.tar.gz
tar xfz mariadb-connector-odbc-2.0.13-ga-linux-x86_64.tar.gz sudo cp -p mariadb-connector-odbc-2.0.13-ga-linux-x86_64/lib/libmaodbc.so /lib sudo ldconfig
24) Установите unixodbc и mariadb-connect engine
apt-get install unixodbc-dev apt-get install unixodbc-bin apt-get install unixodbc apt-get install libodbc1 apt-get install mariadb-connect-engine-10.1
25) Откройте /etc/odbcinst.ini
Добавьте:
[Oracle ODBC driver for Oracle 11.2] Description = Oracle 11.2 ODBC driver Driver = /u01/app/oracle/product/11.2.0/xe/lib/libsqora.so.11.1
26) Откройте /etc/odbc.ini
Добавьте (проверьте свой пароль):
[XE] Driver = Oracle ODBC driver for Oracle 11.2 ServerName = //localhost:1521/xe DSN = XE UserName = SYSTEM Password = <your-password>
27) Проверьте подключение ODBC и добавьте таблицу
isql -v XE SYSTEM <your-password> create table t1 (i int); insert into t1 (i) values (1); insert into t1 (i) values (3); insert into t1 (i) values (5); insert into t1 (i) values (8); select i from t1;
И вы должны увидеть строки. Вы можете проверить то же самое с помощью sqldeveloper, открыть подключение XE и выполнить в Worksheet select i from t1;
28) Откройте /etc/init.d/mysql
Добавьте:
export JAVA_HOME=/usr/lib/jvm/java-8-oracle export PATH=$JAVA_HOME/bin:$PATH export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe export CLIENT_HOME=$ORACLE_HOME export ORACLE_SID=XE export NLS_LANG=`$ORACLE_HOME/bin/nls_lang.sh` export ORACLE_BASE=/u01/app/oracle export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH export PATH=$ORACLE_HOME/bin:$PATH
Сразу после END INIT INFO. В противном случае mysqld не найдет драйвер Oracle ODBC.
28) Перезапустите MariaDB
sudo /etc/init.d/mysql restart
29)
mysql -uroot -p CREATE DATABASE mdb; USE mdb; INSTALL SONAME 'ha_connect'; CREATE TABLE t1 ENGINE=CONNECT TABLE_TYPE=ODBC tabname='T1' CONNECTION='DSN=XE;UID=SYSTEM;PWD=<your-password>'; select I from t1;
Вы должны увидеть ранее вставленные значения 1, 3, 5 и 8. Используя isql или sqldeveloper, добавьте еще несколько строк со значениями 9 и 11. Не забудьте выполнить commit, если вы используете Oracle sqldeveloper. Теперь вы должны увидеть добавленные значения через подключение MariaDB client (mysql-client).
Для изучения: вставка значений в таблицу t1 из подключения MariaDB не работает. Это приводит к ошибке точности со стороны Oracle.
Подключение к MariaDB через JDBC
Загрузите MySQL Connector с https://dev.mysql.com/downloads/connector/j/5.0.html
Выберите версию (например, 5.0.8)
Платформенно-независимая. Загрузите mysql-connector-java-5.0.8.tar.gz
tar xvfz mysql-connector-java-5.0.8.tar.gz cd mysql-connector-java-5.0.8/ sudo cp -p mysql-connector-java-5.0.8-bin.jar /usr/lib/jvm/java-8-oracle/lib/mariadb/ sudo /opt/sqldeveloper/sqldeveloper.sh
В SQL Developer выберите Tools -> Preferences
Разверните опцию "Database" в левом дереве
Нажмите на "Third Party JDBC Drivers"
Нажмите на "Add Entry..."
Перейдите к файлу JAR вашего стороннего драйвера и выберите OK
/usr/lib/jvm/java-8-oracle/lib/mariadb/mysql-connector-java-5.0.8-bin.jar
Нажмите Connections -> New connection.
Добавьте значения. Ниже приведены примеры:
Connection Name: MariaDB via MySQL Conn Username: root Password: ******** Save Password: [x] Choose MySQL tab Hostname: localhost Port: 3306 Click "Test Connection". It should says Status: Success. Click Save. Click Connect.
Вы подключены. Вы можете выполнить команды в Worksheet. Например:
use mdb;
show tables;
Вы должны увидеть таблицы.
© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/oracle-xe-112-and-mariadb-101-integration-on-ubuntu-1404-and-debian-systems/