天天看點

MySQL資料庫從ibd和rfm中恢複(zabbix資料庫)

1、建立資料庫 create database zabbix default charset utf8;

2、use zabbix;

3、設定表的預設字段模式,具體根據IBD檔案中的格式來設定,set global innodb_file_format=Barracuda;

4、設定不進行外鍵檢查 set foreign_key_checks=0;

5、建立新的表,總的有127個表。建立表的時候format要設定成動态dynamic。CREATE TABLE `users` (

`userid`                 bigint unsigned                           NOT NULL,

`alias`                  varchar(100)    DEFAULT ''                NOT NULL,

`name`                   varchar(100)    DEFAULT ''                NOT NULL,

`surname`                varchar(100)    DEFAULT ''                NOT NULL,

`passwd`                 char(32)        DEFAULT ''                NOT NULL,

`url`                    varchar(255)    DEFAULT ''                NOT NULL,

`autologin`              integer         DEFAULT '0'               NOT NULL,

`autologout`             integer         DEFAULT '900'             NOT NULL,

`lang`                   varchar(5)      DEFAULT 'en_GB'           NOT NULL,

`refresh`                integer         DEFAULT '30'              NOT NULL,

`type`                   integer         DEFAULT '1'               NOT NULL,

`theme`                  varchar(128)    DEFAULT 'default'         NOT NULL,

`attempt_failed`         integer         DEFAULT 0                 NOT NULL,

`attempt_ip`             varchar(39)     DEFAULT ''                NOT NULL,

`attempt_clock`          integer         DEFAULT 0                 NOT NULL,

`rows_per_page`          integer         DEFAULT 50                NOT NULL,

PRIMARY KEY (userid)

) ENGINE=InnoDB ROW_FORMAT=DYNAMIC CHARACTER SET utf8;

6、其他表類似

7、删除建立表後生成的ibd檔案,alter table `users` discard tablespace; (其他表類似)

8、把要恢複的舊的ibd檔案複制到目前zabbix的資料庫目錄中,cp /xx/users.ibd /zabbix/users.ibd;  (其他表類似)

9、修改所有者,chown mysql:mysql /zabbix/users.ibd; (其他表類似)

10、恢複ibd資料到表中,alter table `users` import tablespace; (其他表類似)

11、zabbix更改資料庫的名字後要修改兩個地方,zabbxi_server.conf 和 zabbix.conf.php

PS:建立新資料庫和表時,資料庫引擎INNODB,庫和表的編碼格式CHARASET,FORMAT格式都要和原來的一緻。