Utilizando Links Simbólicos para Bancos de Dados


No Unix, a maneira de ligar simbolicamente um banco de dados é, primeiramente, criar um diretório em algum disco onde você possui espaço livre e então criar uma ligação simbólica para ele a partir do diretório do banco de dados do MariaDB.

shell> mkdir /dr1/databases/test
shell> ln -s /dr1/databases/test mysqld-datadir

O MariaDB não suporta que você ligue um diretório a vários bancos de dados. Trocando um diretório de banco de dados com uma ligação simbólica irá funcionar bem desde que não sejam feitos links simbólicos entre os bancos de dados. Suponha que você tenha um banco de dados db1 sob o diretório de dados do MariaDB, e então criar uma ligação simbólica db2 que aponte para db1.

shell> cd /caminho/para/diretorio/dados
shell> ln -s db1 db2

Agora, para qualquer tabela tbl_a em db1, também aparecerá uma tabela tbl_a em db2. Se uma thread atualizar db1.tbl_a e outra atualizar db2.tbl_a, ocorrerão porblemas.

Se você realmente precisar disto, você deve alterar o código seguinte em mysys/mf_format.c:

if (flag & 32 || (!lstat(to,&stat_buff) && S_ISLNK(stat_buff.st_mode)))

para

if (1)

No Windows você pode utilizar links simbólicos para diretórios compilando o MariaDB com -DUSE_SYMDIR. Isto lhe permite colocar diferentes bancos de dados em discos diferentes. Leia "Usando Links Simbólicos para Bancos de Dados no Windows".

Retornar