Spec-Zone .ru
спецификации, руководства, описания, API
|
Производительность MySQL Cluster, который использует Дисковое Хранение данных, может быть значительно улучшена,
разделяя файловые системы узла данных от файлов журнала отмены и файлов данных табличной области и помещая их на
различных дисках. В ранних версиях MySQL Cluster не было никакой прямой поддержки этого в MySQL Cluster, но было
возможно достигнуть этого разделения, используя символьные ссылки как описано в этом разделе. MySQL Cluster
поддерживает параметры конфигурации узла данных FileSystemPathDD
, FileSystemPathDataFiles
, и FileSystemPathUndoFiles
, которые делают использование символьных ссылок с
этой целью ненужным. Для получения дополнительной информации об этих параметрах, см. Дисковые
системные параметры Файла данных.
Каждый узел данных в кластере создает файловую систему в названном каталоге ndb_
под узлом данных node_id
_fsDataDir
как определено в config.ini
файл. В этом
примере мы предполагаем, что у каждого узла узла данных есть 3 диска, искаженные как /data0
,
/data1
, и /data2
, и что кластер config.ini
включает следующее:
[ndbd default]DataDir= /data0
Наша цель состоит в том, чтобы поместить все Дисковые файлы журнала Данных в /data1
, и все Дисковые файлы данных Данных в /data2
,
на каждом узле узла данных.
В этом примере мы предполагаем, что узлы узла данных кластера все используют Операционные системы Linux. Для других платформ Вы, возможно, должны заменить Вами команды операционной системы показанных здесь.
Чтобы выполнить это, выполните следующие шаги:
Под узлом данных файловая система создают символьные ссылки, указывающие на другие диски:
shell>cd /data0/ndb_2_fs
shell>ls
D1 D10 D11 D2 D8 D9 LCPshell>ln -s /data0 dnlogs
shell>ln -s /data1 dndata
У Вас должно теперь быть две символьных ссылки:
shell> ls -l --hide=D*
lrwxrwxrwx 1 user group 30 2007-03-19 13:58 dndata -> /data1lrwxrwxrwx 1 user group 30 2007-03-19 13:59 dnlogs -> /data2
Мы показываем это только для узла данных с ID узла 2; однако, следует сделать это для каждого узла данных.
Теперь, в mysql клиенте, создайте группу файла журнала и табличную область, используя символьные ссылки, как показано здесь:
mysql>CREATE LOGFILE GROUP lg1
->ADD UNDOFILE 'dnlogs/undo1.log'
->INITIAL_SIZE 150M
->UNDO_BUFFER_SIZE = 1M
->ENGINE=NDBCLUSTER;
mysql>CREATE TABLESPACE ts1
->ADD DATAFILE 'dndata/data1.log'
->USE LOGFILE GROUP lg1
->INITIAL_SIZE 1G
->ENGINE=NDBCLUSTER;
Проверьте, что файлы были созданы и помещены правильно как показано сюда:
shell>cd /data1
shell>ls -l
total 2099304-rw-rw-r-- 1 user group 157286400 2007-03-19 14:02 undo1.datshell>cd /data2
shell>ls -l
total 2099304-rw-rw-r-- 1 user group 1073741824 2007-03-19 14:02 data1.dat
Если Вы выполняете многократные узлы данных на одном узле, следует заботиться,
чтобы избежать иметь их, пытаются использовать то же самое пространство для Дисковых Файлов данных.
Можно сделать это легче, создавая символьную ссылку в каждой файловой системе узла данных. Предположите,
что Вы используете /data0
для обеих файловых систем узла данных, но Вы
хотите иметь Дисковые Файлы данных для обоих узлов на /data1
. В этом
случае можно сделать что-то подобное тому, что показывают здесь:
shell>cd /data0
shell>ln -s /data1/dn2 ndb_2_fs/dd
shell>ln -s /data1/dn3 ndb_3_fs/dd
shell>ls -l --hide=D* ndb_2_fs
lrwxrwxrwx 1 user group 30 2007-03-19 14:22 dd -> /data1/dn2shell>ls -l --hide=D* ndb_3_fs
lrwxrwxrwx 1 user group 30 2007-03-19 14:22 dd -> /data1/dn3
Теперь можно создать группу файла журнала и табличную область, используя символьную ссылку, как это:
mysql>CREATE LOGFILE GROUP lg1
->ADD UNDOFILE 'dd/undo1.log'
->INITIAL_SIZE 150M
->UNDO_BUFFER_SIZE = 1M
->ENGINE=NDBCLUSTER;
mysql>CREATE TABLESPACE ts1
->ADD DATAFILE 'dd/data1.log'
->USE LOGFILE GROUP lg1
->INITIAL_SIZE 1G
->ENGINE=NDBCLUSTER;
Проверьте, что файлы были созданы и помещены правильно как показано сюда:
shell>cd /data1
shell>ls
dn2 dn3shell>ls dn2
undo1.log data1.logshell>ls dn3
undo1.log data1.log