Spec-Zone .ru
спецификации, руководства, описания, API
|
MySQL Cluster Disk Data storage реализуется, используя много Дисковых Объектов данных. Они включают следующее:
Табличные области действуют как контейнеры для других Дисковых Объектов данных.
Отмените информацию отмены файлов журнала, запрошенную для того, чтобы откатывать транзакции.
Один или более файлов журнала отмены присваиваются группе файла журнала, которая тогда присваивается табличной области.
Файлы данных хранят Дисковые данные Таблицы данных. Файл данных присваивается непосредственно табличной области.
Отмените файлы журнала, и файлы данных являются фактическими файлами в файловой системе каждого узла данных; по
умолчанию они размещаются в ndb_
в node_id
_fsDataDir
определенный в MySQL Cluster config.ini
файл, и где node_id
ID узла узла данных. Возможно поместить их в
другое место, определяя или абсолютный или относительный путь как часть имени файла, создавая файл журнала
отмены или файл данных. Операторы, которые создают эти файлы, показывают позже в этом разделе.
Табличные области MySQL Cluster и группы файла журнала не реализуются как файлы.
Хотя не все Дисковые Объекты данных реализуются как файлы, они все совместно используют то же самое
пространство имен. Это означает, что каждый Дисковый Объект данных
нужно уникально назвать (и не просто каждый Дисковый Объект данных данного типа). Например, у Вас не может
быть табличной области и группы файла журнала оба названные dd1
.
Принятие, что Вы уже установили MySQL Cluster со всеми узлами (включая управление и узлы SQL), основные шаги для того, чтобы составить таблицу MySQL Cluster на диске, следующие:
Создайте группу файла журнала, и присвойте один или более файлов журнала отмены ей (файл журнала отмены также иногда упоминается как undofile).
Файлы журнала отмены необходимы только для Дисковых Таблиц данных; они не используются
для NDBCLUSTER
таблицы, которые сохранены только в памяти.
Создайте табличную область; присвойте группу файла журнала, так же как один или более файлов данных, к табличной области.
Создайте Дисковую Таблицу данных, которая использует эту табличную область для хранения данных.
Каждая из этих задач может быть выполнена, используя SQL-операторы в mysql клиенте или другом клиентском приложении MySQL, как показано в примере, который следует.
Мы создаем названную группу файла
журнала lg_1
использование CREATE LOGFILE GROUP
. Эта группа файла журнала должна быть составлена
из двух файлов журнала отмены, которые мы называем undo_1.log
и undo_2.log
, чьи начальные размеры составляют 16 Мбайт и 12 Мбайт,
соответственно. (Размер начальной буквы значения по умолчанию для файла журнала отмены составляет 128
Мбайт.) Дополнительно, можно также определить размер для группового буфера отмены файла журнала, или
разрешить этому принимать значение по умолчанию 8 Мбайт. В этом примере мы устанавливаем буферный размер
ОТМЕНЫ в 2 Мбайтах. Группа файла журнала должна быть создана с файлом журнала отмены; таким образом, мы
добавляем undo_1.log
к lg_1
в этом CREATE LOGFILE
GROUP
оператор:
CREATE LOGFILE GROUP lg_1 ADD UNDOFILE 'undo_1.log' INITIAL_SIZE 16M UNDO_BUFFER_SIZE 2M ENGINE NDBCLUSTER;
Добавить undo_2.log
группе файла журнала используйте следующий ALTER LOGFILE GROUP
оператор:
ALTER LOGFILE GROUP lg_1 ADD UNDOFILE 'undo_2.log' INITIAL_SIZE 12M ENGINE NDBCLUSTER;
Некоторые знаменитые элементы:
.log
расширение файла, используемое здесь,
не требуется. Мы используем это просто, чтобы сделать файлы журнала легко опознаваемыми.
Каждый CREATE LOGFILE GROUP
и ALTER LOGFILE GROUP
оператор должен включать ENGINE
пункт. В MySQL Cluster NDB 7.3, единственные разрешенные
значения для этого пункта NDBCLUSTER
и NDB
.
Там может существовать самое большее одна группа файла журнала в том же самом MySQL Cluster в любой момент времени.
Когда Вы добавляете файл журнала отмены к групповому использованию
файла журнала ADD UNDOFILE '
, файл с именем filename
'filename
создается в ndb_
каталог в пределах node_id
_fsDataDir
из каждого узла данных в кластере, где node_id
ID
узла узла данных. Каждый файл журнала отмены имеет размер, определенный в SQL-операторе.
Например, если у MySQL Cluster есть 4 узла данных, то ALTER LOGFILE GROUP
оператор, только показанный, создает
4 файла журнала отмены, 1 каждый на в каталоге данных каждого из этих 4 узлов данных; каждый
из этих файлов называют undo_2.log
и каждый файл составляет 12
Мбайт в размере.
UNDO_BUFFER_SIZE
ограничивается количеством
доступной системной памяти.
Для получения дополнительной информации о CREATE LOGFILE GROUP
оператор, см. Раздел
13.1.14,"CREATE LOGFILE GROUP
Синтаксис". Для
получения дополнительной информации о ALTER LOGFILE GROUP
, см. Раздел
13.1.3,"ALTER LOGFILE GROUP
Синтаксис".
Теперь мы можем создать табличную область, которая содержит файлы, которые будут использоваться MySQL Cluster Disk Data tables для того, чтобы хранить их данные. Табличная область также связывается с определенной группой файла журнала. Создавая новую табличную область, следует определить группу файла журнала, которую она должна использовать для журналирования отмены; следует также определить файл данных. Можно добавить больше файлов данных к табличной области после того, как табличная область создается; также возможно отбросить файлы данных от табличной области (пример отбрасывания файлов данных обеспечивается позже в этом разделе).
Предположите, что мы хотим создать названную табличную область ts_1
который использует lg_1
как его группа файла журнала. Эта табличная
область должна содержать два названные файла данных data_1.dat
и data_2.dat
, чьи начальные размеры составляют 32 Мбайта и 48 Мбайт,
соответственно. (Значение по умолчанию для INITIAL_SIZE
128 Мбайт.) Мы
можем сделать это использование двух SQL-операторов, как показано здесь:
CREATE TABLESPACE ts_1 ADD DATAFILE 'data_1.dat' USE LOGFILE GROUP lg_1 INITIAL_SIZE 32M ENGINE NDBCLUSTER;ALTER TABLESPACE ts_1 ADD DATAFILE 'data_2.dat' INITIAL_SIZE 48M ENGINE NDBCLUSTER;
CREATE TABLESPACE
оператор создает табличную область ts_1
с файлом данных data_1.dat
, и партнеры ts_1
с группой
файла журнала lg_1
. ALTER TABLESPACE
добавляет второй файл данных (data_2.dat
).
Некоторые знаменитые элементы:
Как имеет место с .log
расширение файла,
используемое в этом примере для файлов журнала отмены, нет никакого специального значения
для .dat
расширение файла; это используется просто для легкого
распознавания файлов данных.
Когда Вы добавляете файл данных к использованию табличной области ADD DATAFILE '
,
файл с именем filename
'filename
создается в ndb_
каталог в пределах node_id
_fsDataDir
из каждого узла данных в кластере, где node_id
ID узла узла данных. Каждый файл
журнала отмены имеет размер, определенный в SQL-операторе. Например, если у MySQL Cluster
есть 4 узла данных, то ALTER
TABLESPACE
оператор, только показанный, создает 4 файла журнала отмены, 1
каждый на в каталоге данных каждого из этих 4 узлов данных; каждый из этих файлов называют
data_2.dat
и каждый файл составляет 48 Мбайт в размере.
Все CREATE
TABLESPACE
и ALTER
TABLESPACE
операторы должны содержать ENGINE
пункт;
только таблицы используя тот же самый механизм хранения в качестве табличной области могут
быть составлены в табличной области. В MySQL Cluster NDB MySQL 7.3, единственные разрешенные
значения для этого пункта NDBCLUSTER
и NDB
.
Для получения дополнительной информации о CREATE TABLESPACE
и ALTER TABLESPACE
операторы, см. Раздел
13.1.18,"CREATE TABLESPACE
Синтаксис", и Раздел 13.1.8,"ALTER
TABLESPACE
Синтаксис".
Теперь возможно составить таблицу,
неиндексированные столбцы которой сохранены на диске в табличной области ts_1
:
CREATE TABLE dt_1 ( member_id INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, dob DATE NOT NULL, joined DATE NOT NULL, INDEX(last_name, first_name) ) TABLESPACE ts_1 STORAGE DISK ENGINE NDBCLUSTER;
TABLESPACE ... STORAGE DISK
опция говорит NDBCLUSTER
механизм хранения, чтобы использовать табличную область
ts_1
для дискового хранения данных.
Также возможно определить, сохранен ли отдельный столбец на диске или в памяти при
использовании a STORAGE
пункт как часть определения столбца в a CREATE TABLE
или
ALTER TABLE
оператор. STORAGE
DISK
заставляет столбец быть сохраненным на диске, и STORAGE
MEMORY
память причин, которая будет использоваться. См. Раздел
13.1.17,"CREATE TABLE
Синтаксис", для получения
дополнительной информации.
Однажды таблица ts_1
был создан как показано, можно выполнить INSERT
,
SELECT
,
UPDATE
,
и DELETE
операторы на этом, как Вы были бы с любой другой таблицей MySQL.
Для таблицы dt_1
поскольку это было определено здесь, только dob
и joined
столбцы сохранены на диске. Это
- то, потому что есть, индексирует на id
, last_name
,
и first_name
столбцы, и таким образом, данные, принадлежащие этим
столбцам, хранятся в RAM. В MySQL Cluster NDB 7.3, только неиндексированные столбцы могут быть
сохранены на диске; индексирует и индексированные данные столбца продолжают храниться в памяти. Этот
компромисс между использованием индексирует, и сохранение RAM - что-то, что следует иметь в виду,
поскольку Вы разрабатываете Дисковые Таблицы данных.
Примечание производительности. Производительность кластера, используя Дисковое Хранение данных значительно улучшается, если Дисковые Файлы данных сохраняются на отдельном физическом диске от файловой системы узла данных. Это должно быть сделано для каждого узла данных в кластере, чтобы получить любое значимое преимущество.
Можно использовать системные пути абсолютного и файла прямого доступа с ADD
UNDOFILE
и ADD DATAFILE
. Относительные пути вычисляются относительно
каталога данных узла данных. Можно также использовать символьные ссылки; см. Раздел
17.5.12.2, "Используя Символьные ссылки с Дисковыми Объектами данных", для получения
дополнительной информации и примеры.
Группа файла журнала, табличная область, и любые Дисковые Таблицы данных, используя их должны быть созданы в определенном порядке. То же самое является истиной для того, чтобы отбросить любой из этих объектов:
Группа файла журнала не может быть отброшена, пока любые табличные области используют ее.
Табличная область не может быть отброшена, пока она содержит любые файлы данных.
Невозможно отбросить файлы данных от табличной области, пока там остаются любыми таблицами, которые используют табличную область.
Не возможно отбросить файлы, создаваемые в сотрудничестве с различной табличной областью чем тот, с которым создавались файлы. (Ошибка #20053)
Например, чтобы отбросить все объекты, создаваемые до сих пор в этом разделе, Вы использовали бы следующие операторы:
mysql>DROP TABLE dt_1;
mysql>ALTER TABLESPACE ts_1
->DROP DATAFILE 'data_2.dat'
->ENGINE NDBCLUSTER;
mysql>ALTER TABLESPACE ts_1
->DROP DATAFILE 'data_1.dat'
->ENGINE NDBCLUSTER;
mysql>DROP TABLESPACE ts_1
->ENGINE NDBCLUSTER;
mysql>DROP LOGFILE GROUP lg_1
->ENGINE NDBCLUSTER;
Эти операторы должны быть выполнены в показанном порядке, за исключением того, что два ALTER
TABLESPACE ... DROP DATAFILE
операторы могут быть выполнены в любом порядке.
Можно получить информацию о файлах данных, используемых Дисковыми Таблицами данных, запрашивая FILES
таблица в INFORMATION_SCHEMA
база данных.
Дополнительное"NULL
строка"
обеспечивает дополнительную информацию о файлах журнала отмены. Для получения дополнительной информации и
примеры, см. Раздел 20.8," INFORMATION_SCHEMA
FILES
Таблица".
Также возможно просмотреть информацию о выделенном и свободном пространстве на диске для каждой Дисковой Таблицы данных или табличного раздела, используя ndb_desc утилиту. Для получения дополнительной информации см. Раздел 17.4.9, "ndb_desc — Описывают Таблицы NDB".