CortexDB

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 22:26, 28 февраля 2019.
CortexDB
Cortexdb.jpg
Cortex 1.jpg
Разработчики: Cortex AG
Выпущена: 2008; 12 years ago (2008)
Постоянный выпуск: 4.0.13 / 10 January 2018 года; 2 years ago (2018-01-10)
Предыдущий выпуск: 4.0.12 / 21 August 2017 года; 2 years ago (2017-08-21)
Состояние разработки: Активное
Написана на: Java и C++
Операционная система: Windows, Linux, macOS
Размер дистрибутива: 111 MB
Локализация: Английский
Тип ПО: СУБД
Веб-сайт cortex-ag.com

CortexDB – это NoSQL СУБД, которая основана на технологии распределенных баз данных. Может работать на Linux, Windows, MacOS. Также CortexDB была портирована на Android и ARM. CortexDB - это мультимодельная NoSQL СУБД. Она объединяет все преимущества различных типов баз данных NoSQL (значение ключа, хранилище документов, база данных графиков, база данных с несколькими значениями, база данных столбцов). Это достигается с помощью «CorAIT» (Трансформация активного индекса). Это означает, что для быстрого доступа к данным нет специального или пользовательского индекса, содержимое хранится в режиме без схемы внутри CortexDB. Все запросы к базе данных выполняются с той же скоростью, что и базы данных индекса - для всех полей, комбинаций полей и даже для связанной информации[Источник 1].

Бесплатная версия

Бесплатная версия CortexDB функционально соответствует лицензионной версии. В следующей таблице показаны различия между различными версиями:[Источник 2]

Функции Бесплатная версия Платная версия
Количество пользователей 2 Согласно лицензии
Пользовательские свойства Не меняются Меняются
Пароль Не меняется Меняется
Операционные файлы Должны обновляться ежегодно Согласно лицензии
Операционные системы Mac OS, Windows, Linux Различные

Платная версия

Общее администрирование и конфигурация разделены на несколько различных уровней, которые предназначены для разрешений администраторов и пользователей. Следующая схема показывает различные параметры конфигурации на различных уровнях. На каждом уровне можно определить полномочия для соответствующих лиц и автоматизмов. Разрешения строятся таким образом, что следующие уровни могут управляться с помощью прав низкого уровня. Таким образом, пользователь с правом удаленного администратора может получить доступ с уровня II по VI, но не для уровня I (операционная система). [Источник 2]

Рисунок 1 - Параметры конфигурации

Резервное копирование данных

Резервная копия данных используется для безопасного архивирования базы данных. Обычно это делается полностью автоматически с помощью установленных и активированных процедур безопасности. Они копируют весь запас данных (полное резервное копирование) на носитель резервного копирования, только измененные данные с момента последнего полного резервного копирования (разностное резервное копирование) или измененные данные с момента последнего резервного копирования (инкрементное резервное копирование).

Для использования в среде БД различные производители предоставляют расширения для защиты разных баз данных. Они получают доступ к базе данных как часть пользовательского контекста для создания образа БД. При использовании CortexDB это не обязательно. Поэтому отдельное лицензирование и использование резервной учетной записи больше не требуется.[Источник 2]

Интегрированный процесс резервного копирования CortexDB

Функция резервного копирования уже встроена в CortexDB и может быть настроена с помощью соответствующих параметров в файле конфигурации сервера («ctxserver.ini»). Следовательно, механизмы резервного копирования должны выполнять резервное копирование только каталога резервного копирования CortexDB. Все остальные каталоги должны быть исключены из резервной копии. В случае сбоя достаточно восстановить соответствующий файл резервной копии в новой среде.

Функция резервного копирования CortexDB обеспечивает полное состояние базы данных в указанное время. Во время резервного копирования база данных и все запущенные на ней приложения могут использоваться в дальнейшем. Заданное количество сохраненных файлов резервных копий находится в каталоге резервных копий. Имя файла показывает дату и время создания. [Источник 2]

Пример:

131201020100.cbz
131202020100.cbz
131203020100.cbz

Соответствующая конфигурация была настроена на сохранение только трех файлов («MaxBackupCount»)

[BACKUP]
backuppath=.\backup
MaxBackupCount=3

и что каждый день резервное копирование выполняется в два часа ночи (0 = воскресенье, 1 = понедельник; [..]; 6 = суббота).

0=02:00
1=02:00
2=02:00
3=02:00
4=02:00
5=02:00
6=02:00

Если необходимо создать резервную копию всего каталога базы данных, база данных должна быть остановлена во время этого. Пока база данных работает и пользовательский доступ активен, если резервное копирование всего каталога выполняется с использованием продуктов других производителей, безошибочное восстановление не может быть гарантировано.

Если во время работы требуется непрерывное резервное копирование данных, рекомендуется использовать сервер онлайн-резервного копирования CortexDB.

Ручное резервное копирование

В дополнение к автоматическому резервному копированию данных, существует опция создания резервного копирования вручную. Соответствующий файл резервной копии, а также все автоматически созданные резервные копии хранятся в настроенном каталоге. Следует отметить, что учитывается максимальное количество сохраненных файлов резервных копий. Поэтому резервное копирование вручную может удалить более старый файл резервной копии. Для запуска резервного копирования вручную необходимо использовать функцию «Backup». [Источник 2]


Рисунок 2 - Ручное резервное копирование

Перед выполнением резервного копирования данных делается запрос о типе резервного копирования. Здесь можно создать безлицензионную резервную копию, которую можно прочитать с любой другой лицензией. Обычно здесь следует делать обычное резервное копирование, которое используется только с той же лицензией.

Онлайн сервер резервного копирования данных

Дополнительным расширением является возможность одного (или нескольких) серверов резервного копирования в онлайн-хранилище. Такой сервер может работать в постоянной синхронизации и, следовательно, соответствует зеркальной базе данных CortexDB. Синхронизация происходит через соединения TCP/IP и, таким образом, может быть размещена в географически разных местах . В случае сбоя сервер резервного копирования в онлайн-режиме может начать работу и перейти на основную систему. Этот процесс представляет собой ручную операцию, предназначенную для преднамеренного вмешательства для контроля любых автоматических изменений преждевременных изменений системы (например, в случае кратковременного отказа линии, внеплановых и нерегулярных изменений для сторон, других систем и т.д.).

Синхронизация между сервером и сервером резервного копирования является односторонней. Поэтому изменения в базе данных разрешены только в производственной системе, но не на сервере резервного копирования. В рамках безопасности отказов и/или распределенных приложений для этой цели можно сделать так называемый согласующий сервер. [Источник 2]

Сервер синхронизации CortexDB

Для операций с распределенными базами данных доступна так называемая функциональность «Match server». С их помощью можно управлять большим количеством синхронизированных серверов. Опционально возможна активация системы управления правами, поэтому только отдельные базы данных переносятся в выделенные базы данных. Центральный сервер базы данных сохраняет контроль и всю базу данных. Синхронизированные серверы получают только выбранную информацию. Сервер настройки может работать независимо и без постоянного подключения к главному серверу («master»). Только после установления онлайн-соединения новая информация будет передаваться и синхронизироваться между двумя серверами. [Источник 2]

История изменений

В дополнение к определенной конфигурации резервного копирования, сервер базы данных хранит все наборы данных в непрерывных блоках на носителе. Изменения в наборах данных хранятся в файле "chd", в котором все изменения одного дня кодируются в файле ("Transaction Log"). Эти файлы находятся в подкаталоге «ctxchh» («CortexDB change history») настроенного каталога данных с сервера.

Эта информация об изменениях обрабатывается таким образом, что для каждого измененного содержимого поля сохраняется предыдущее и новое содержимое, и каждое изменение набора данных получает свой собственный «хэш». Это позволяет читать эти файлы в дополнение к восстановлению резервной копии, чтобы восстановить состояние базы данных в любой момент времени (база данных до сбоя системы) (дифференциальное резервное копирование).

Ручное восстановление базы данных

Восстановление файла резервной копии осуществляется с помощью удаленного администратора. Это позволяет через функцию «Restore» полностью прочитать файл резервной копии. Все содержащиеся в нем настройки, пользователи и расширения («php projects») восстанавливаются. [Источник 2]

Рисунок 3 - Ручное восстановление базы данных

Конфигурация сервера

Конфигурационные файлы

Сервер базы данных настраивается через так называемые ini-файлы. Поэтому доступ к системным каталогам и/или структурам базы данных исключен (например, реестр Windows). В результате установка с помощью копирования или переноса сервера очень проста. Структура и содержание необходимых INI-файлов перечислены и объяснены ниже. Для сервера базы данных необходим ctxserver.ini, а для сервера HTTP - ctxhttpd.ini. [Источник 2]


CortexDB сервер

Все параметры сервера (порт, путь резервного копирования, расписание резервного копирования и т.д.) Задаются в ctxserver.ini в каталоге сервера. Структура разделена на блоки (каждый с заголовком в квадратных скобках) и параметрами (перечислены под блоками). Изменения параметров считываются при каждом перезапуске сервера базы данных. Следующий список показывает различные параметры и объясняет их значение. Опционально (в зависимости от области применения) можно определить дополнительные настройки.

[SETTINGS]
basepath=.\daten
port=29000
bindonlylocalhost=0
AgentManagerAutoStart=0
SocketTimeout=500
disablechh=1

fidxtemppath=./tmp
fidxpath=./data
DisableFidxMem=1
ReorgMaxMem=512

[BACKUP]
backuppath=.\backup
MaxBackupCount=1
0=01:00
6=02:00

[SUGGESTIONS]
adrde=.\suggest\adrde.dat,1

[HTTPSRV]
Enable=1
Port=80
SslPort=443
BindOnlyLocalHost=0
SslCertPem=127.0.0.1.pem
LogHttpSrv=1
HttpServerThreads=22
HttpRoot=www
HttpAuth=0
WebClientName=Cortex-WebClient
DefaultUrl=%V/i/CtxWebClient/index.php
PhpSessDir=ab
HttpDefaultUrlOnly=0
SERVERVAR_CORS_ORIGIN=*

[UNIPLEX]
EnableApiList=1

Блок конфигурации: Settings

Этот блок предназначен для глобальных настроек сервера:

Параметр Описание
basepath= Путь, по которому расположены файлы БД
port= TCP-IP-Port, который используется для доступа к серверу
bindonlylocalhost= 0 = нет, 1 = разрешен доступ только с локального компьютера
SocketTimeout= По истечении этого времени в секундах пакетное соединение будет автоматически закрыто
disablechh активирует историю изменений в подкаталоге chh (1 = вкл, 0 = выкл)


Блок конфигурации: Backup

Сервер может создавать одну автоматическую резервную копию в день. Необходимые настройки для этого сделаны в этом блоке:

Параметр Описание
backuppath= Путь, по которому создаются резервные копии или откуда они читаются при восстановлении (также для резервных копий вручную)
MaxBackupCount= Количество резервных копий перед удалением самого старого файла резервной копии
0= Время в воскресенье, для которого должна быть создана резервная копия
1= Время в понедельник
2= Время во вторник
3= Время в среду
4= Время в четверг
5= Время в пятницу
6= Время в субботу


Блок конфигурации: Suggestions

Для базы данных файлы могут быть снабжены данными предложений, используемыми в интерактивном режиме. В результате, новые записи представлены с предложениями кросс-поля, которые пользователь может использовать. Это делает возможным быстрый и безошибочный ввод данных. Такие данные должны быть сначала созданы и сохранены для сервера базы данных из существующей базы данных. [Источник 2]

Параметр Описание
Suggestname= Путь и имя файла, под которым находится файл подсказки
...

Каждый "Suggestname" является свободно определяемым. Таким образом, для данных об изделии запись «article» может быть сохранена с соответствующим путем.

Если новые файлы по умолчанию устанавливаются после настройки базы данных, сервер базы данных должен быть остановлен, в поле ctxserver.ini должно быть указано Suggestname =, а затем сервер будет перезапущен.

Блок конфигурации: HTTPSRV

База данных CortexDB содержит функции веб-сервера. Это исключает необходимость установки отдельного веб-сервера в одной среде. Если работает несколько баз данных или несколько пользователей обращаются к базе данных, рекомендуется использовать HTTP-сервер Cortex. [Источник 2]

Блок конфигурации, указанный здесь, описывает параметры встроенного веб-сервера в автономной среде (без отдельного веб-сервера).

Параметр Описание
Enable=1 1: активный, 2: неактивный
Port=80 Порт HTTP для доступа к браузеру
SslPort=443 Порт HTTPS для доступа через браузер
BindOnlyLocalHost=0 1 = доступно только с локального компьютера, 0 для всех
SslCertPem=127.0.0.1.pem Сертификат для доступа HTTPS
LogHttpSrv=1 Создать файл журнала для доступа HTTP (S)
HttpServerThreads=22
HttpRoot=www Корневой каталог для собственных файлов (HTML, php)
HttpAuth=0 Стандартная аутентификация или аутентификация базы данных без поддержки браузера
WebClientName=Cortex-WebClient Имя базы данных в строке заголовка браузера также используется HTTP-сервером с Enable = 0
DefaultUrl=%V/i/CtxWebClient/index.php  % V = HTTPS,% v = HTTP
PhpSessDir=ab Каталог, в котором хранятся сеансы PHP вошедших в систему пользователей (должен быть уникальным для каждой БД)
HttpDefaultUrlOnly=0 Вход только с URL по умолчанию
SERVERVAR_CORS_ORIGIN=* Деактивирует общий доступ к ресурсам между источниками (CORS), так что возможны запросы между источниками (доступ с других серверов) (при необходимости при разработке веб-приложений, приложений или NodeJS)

Блок конфигурации: Uniplex

В этом блоке настройки по умолчанию установлены для использования CortexUniplex.

Параметр Описание
EnableApiList Включает/отключает использование серверного JavaScript в списках

Установка CortexDB

На следующем снимке экрана показан список файлов в каталоге сервера Windows. Приведенный здесь список может отличаться от фактически загруженных файлов в зависимости от операционной системы и платной/бесплатной лицензии. [Источник 2]

Рисунок 3 - Список файлов в каталоге сервера Windows

Указанные подкаталоги пусты во время новой установки, и их использование настраивается в файле ctxserver.ini или ctxhttpd.ini.

  • Каталог backup используется для хранения файлов резервных копий
  • Каталог bin для файлов базы данных
  • Каталог daten для хранения файлов импорта

Лицензионные требования

Чтобы запустить сервер базы данных, необходимо, чтобы «par file» был постоянно доступен в программном каталоге (то есть в каталоге, в котором выполняется программный файл ctxserver64). Поэтому этот файл должен быть скопирован как «ctxserver.par» в основной каталог сервера. Только после этого сервер может быть запущен (или заново настроен).

Начальный запуск сервера

Как правило, сервер базы данных поставляется с пустой базой данных. Эта пустая база данных доступна в виде файла резервной копии и может быть импортирована через Remote-Admin. Таким образом, базовая конфигурация доступна и вы можете работать с ней сразу.

Если нет пустого файла резервной копии или вы хотите начать с полностью пустой базы данных, сервер базы данных может создать новый пустой файл базы данных.

Создание пустой базы данных выполняется без подтверждения и может привести к немедленной потере данных, если установлен соответствующий параметр и база данных уже существует.

Программный файл сервера базы данных (ctxserver64) имеет несколько параметров вызова. Поэтому для создания новой пустой базы данных необходимо использовать консоль (запустить через cmd.exe в Windows и Terminal в Mac OS). Следующий вызов приводит к созданию пустой базы данных или перезаписывает существующую установку в вызываемом каталоге без дальнейшего запроса. Параметр «-n» обозначает «новый»; вызов выполняется в каталоге сервера:

Mac OS und Linux:   ./ctxserver64 –n

Windows:            .\ctxserver64 –n

Обычный запуск сервера

Обычный запуск сервера базы данных может быть выполнен в каталоге сервера. Для этого выполните в консоли следующую команду:

Mac OS und Linux:   ./ctxserver64

Windows:            .\ctxserver64

Видео-инструкция

В следующем видео показан процесс установки и запуска CortexDB бесплатной версии на Windows с базой данных "Lego"

Исчточники

  1. Cortex official website //Cortex-AG [2016-2019]. Дата обновления: 15.03.2018. URL: https://www.cortex-ag.com/en/ (дата обращения 16.02.2019)
  2. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 Документация CortexDB //Cortex-AG [2016-2019]. Дата обновления: 15.03.2018. URL: https://docs.cortex-ag.com/en/ (дата обращения 16.02.2019)