The FEDERATED Storage Engine (MySQL 6.0.7),
FEDERATED Depolama Motoru MySQL 6.0.7 ile birlikte başlamıştır.
Kelime anlamı olarak Birleşik Depolama Motoru anlamına gelir. Yerel
bir sunucudaki veritabanı server ile uzak bir sunucudaki veritabanı server
arasında , clustering veya replication olmadan erişim sağlar.
Mysql server kurulumunda default olarak aktif gelmeyen bu Motoru
kullanmak iÇin aktifleştirmeniz gerekmektedir. FEDERATED depolama
motorunda datalar, uzak sunucudaki .FRM dosyalarında tutulur.
FEDERETED Table Grafik:

şimdi Uzak Sunucuda bir tablo yaratalım:
CREATE TABLE uzak_table (
id INT(20) NOT NULL AUTO_INCREMENT,
adi VARCHAR(32) NOT NULL DEFAULT '',
tc_no INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX adi (adi)
)
ENGINE=MyISAM
DEFAULT CHARSET=latin1;
uzak_table ismindeki tablomuza federated tablo oluşturmak iÇin iki yöntem mevcuttur.
1- Yerel sunucuda bir tablo oluştururuz ve connection string bilgilerini veririz.
Uzak sunucudaki tablo ile connectionu sağlaması iÇin.
2-Connection iÇin FEDERATED server yaratırız ve bu serverı kullanırız.
1.Method : Yerel sunucuda bir fedarated tablo yaratalım.
CREATE TABLE federated_table (
id INT(20) NOT NULL AUTO_INCREMENT,
adi VARCHAR(32) NOT NULL DEFAULT '',
tc_no INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:3306/federated/uzak_table';
CONNECTION SYNTAX:
scheme://user_name[:password]@host_name[:port_num]/db_name/tbl_name
schema : Mysql tarafından tanınan bir bağlantı protokolüdür.
user_name : Bağlantı iÇin kullanıcı adı. Bu kullanıcı uzak sunucuda oluşturulur. Uzak sunucudaki tabloda
(SELECT, INSERT, UPDATE ve benzeri) gerekli işlemleri gerÇekleştirmek iÇin
uygun yetkilere sahip olması gerekir.
password : Kullanıcı_adı iÇin ilgili şifre.
host_name : Ana bilgisayar adını veya uzaktan sunucusunun IP adresi.
port_num : Uzak sunucusunun bağlantı noktası numarasını belirtiniz. Varsayılan 3306 dır.
db_name : Uzak sunucudaki db ismi.
tbl_name : Uzak sunucudaki tablonun adı.
2.Method: FEDERATED tablo oluşturmak iÇin SERVER kullanma:
FEDARATED server’ı local sunucuda oluşturuyoruz.
CREATE SERVER fed_server
FOREIGN DATA WRAPPER mysql
OPTIONS (USER 'fed_user', HOST 'remote_host', PORT 2306, DATABASE 'federated');
şimdi oluşturduğumuz fed_server ismindeki FEDERATED server’ı kullanarak
local server da bir FEDERATED tablo yaratalım.
CREATE TABLE federated_table (
id INT(20) NOT NULL AUTO_INCREMENT,
adi VARCHAR(32) NOT NULL DEFAULT '',
tc_no INT(20) NOT NULL DEFAULT '0',
PRIMARY KEY (id),
INDEX name (name)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='fed_server/uzak_table';
CONNECTION kısmında görüdğünüz gibi FEDERATED server ismini ve
uzak sunucuda oluşturduğumuz tablonun ismini yazmamız yeterlidir.
Bir sonraki makalelerde görüşmek dileğiyle,
Tayfur BÖLER
Database Administrator