< Projet src="Artemis" />

Structure de la base

Structure SQL

Le code que vous pouvez voir ci-dessous est simplement la structure de la base de données qui sert (encore) à répertorier chaque volume, qtree, path, adresse IP... de toute notre infrastructure.

Je fais un petit stop ici : Qu'est-ce qu'un volume ? Un Qtree ? Quels sont les path (les liens) dont je parle ? Il s'agit tout bêtement d'un "morceau du disque dur" où l'on stocke les données, un espace où les utilisateurs peuvent travailler. Les volumes peuvent être séparés (grâce au logiciel NBU qui est un logiciel de sauvegarde) en qtree, qui sont des "mini-volumes" où l'on pourra mettre des quotas de données (pas plus de 5 gigas par exemple). Grâce à NBU on ne pourra sauvegarder que certains Qtree faisant partie de tel volume, et non le volume au complet. Ensuite on n'a plus qu'à configurer la sauvegarde du volume ou du qtree avec le path (le lien) correspondant.

La base permet, aujourd'hui, de savoir ce qui est sauvegardé par notre système NBU ou via SnapVault (un autre logiciel de sauvegarde) (voire les deux) ou pas ! Ouf ! :) Le code n'a pas forcément besoin de plus d'explications que celle que je vais faire rapidement :

Vous pouvez voir différentes tables (les tables sont des tableaux avec des données) séparées par des lignes de " ----------- " avec le nom de la base de données (Artemis) suivi d'un point et du nom de la table. Ce petit script crée la base de données et les différentes tables. Il n'y a aucun index ou clefs étrangères (les index et les clefs étrangères sont des "règles" sensées accélérer les réponses demandées)... J'ai décidé qu'il n'était pas nécessaire d'en faire au vue de la "petite" taille de la base, il n'y a que quelques milliers d'enregistrements et les requêtes ne sont pas trop exigeantes en ressources. (Moins de 5000 enregistrements) La table MDB_RAPPORT est "l'objectif à remplir" de cette première étape de mon projet. Je dois être capable de dire où se situe tel volume et s'il est sauvegardé ou non : si oui, avec quoi ? Et où (quel est le path ?) ? Une fois la table MDB_RAPPORT remplie, la première étape est terminée.

Petite précision pour les débutants en SQL : Chaque table contient des colonnes (ce sont des tableaux !), vous pouvez les voir à partir de la deuxième ligne de chaque "bloc", ça commence généralement par le nom de la table avec un "_" puis le nom de la colonne. Par exemple, pour la table MDB_FSTAB (la première table !) vous avez les colonnes : fstab_id, fstab_server, fstab_volume... etc !

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL,ALLOW_INVALID_DATES';

-- -----------------------------------------------------
-- Schema Artemis
-- -----------------------------------------------------
CREATE SCHEMA IF NOT EXISTS `Artemis` DEFAULT CHARACTER SET utf8 ;
USE `Artemis` ;

-- -----------------------------------------------------
-- Table `Artemis`.`MDB_FSTAB`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_FSTAB` (
  `fstab_id` INT NOT NULL AUTO_INCREMENT,
  `fstab_server` VARCHAR(255) NULL,
  `fstab_volume` VARCHAR(255) NULL,
  `fstab_path` MEDIUMTEXT NULL,
  PRIMARY KEY (`fstab_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_DNS`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_DNS` (
  `dns_id` INT NOT NULL AUTO_INCREMENT,
  `dns_nom` VARCHAR(255) NULL,
  `dns_ip` VARCHAR(20) NULL,
  PRIMARY KEY (`dns_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_CLUSTERS`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_CLUSTERS` (
  `clu_id` INT NOT NULL AUTO_INCREMENT,
  `clu_vserver` VARCHAR(255) NULL,
  `clu_lif` VARCHAR(255) NULL,
  `clu_ip` VARCHAR(20) NULL,
  PRIMARY KEY (`clu_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_QTREE`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_QTREE` (
  `qtree_ip` INT NOT NULL AUTO_INCREMENT,
  `qtree_vserver` VARCHAR(255) NULL,
  `qtree_volume` VARCHAR(255) NULL,
  `qtree_qtree` VARCHAR(255) NULL,
  `qtree_path` VARCHAR(255) NULL,
  `qtree_style` VARCHAR(25) NULL,
  PRIMARY KEY (`qtree_ip`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_VOLUME`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_VOLUME` (
  `vol_id` INT NOT NULL AUTO_INCREMENT,
  `vol_vserver` VARCHAR(255) NULL,
  `vol_volume` VARCHAR(255) NULL,
  `vol_junction_path` MEDIUMTEXT NULL,
  `vol_style` VARCHAR(25) NULL,
  `vol_qtree_path` MEDIUMTEXT NULL,
  PRIMARY KEY (`vol_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_NBU`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_NBU` (
  `nbu_id` INT NOT NULL AUTO_INCREMENT,
  `nbu_policy_name` VARCHAR(255) NULL,
  `nbu_jpath` MEDIUMTEXT NULL,
  PRIMARY KEY (`nbu_id`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_RELATION_VAULT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_RELATION_VAULT` (
  `id_rel_vault` INT NOT NULL AUTO_INCREMENT,
  `rel_source` MEDIUMTEXT NULL,
  `rel_destination` MEDIUMTEXT NULL,
  PRIMARY KEY (`id_rel_vault`))
ENGINE = InnoDB;


-- -----------------------------------------------------
-- Table `Artemis`.`MDB_RAPPORT`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS `Artemis`.`MDB_RAPPORT` (
  `rap_id` INT NOT NULL AUTO_INCREMENT,
  `rap_v_server` VARCHAR(255) NULL,
  `rap_nbu_policy_name` VARCHAR(255) NULL,
  `rap_volume` MEDIUMTEXT NULL,
  `rap_v_qtree` VARCHAR(255) NULL,
  `rap_style` MEDIUMTEXT NULL,
  `rap_vol_junction_path` MEDIUMTEXT NULL,
  `rap_fstab_volume` MEDIUMTEXT NULL,
  `rap_fstab_path` MEDIUMTEXT NULL,
  `rap_nbu_jpath` MEDIUMTEXT NULL,
  `rap_volume_destination` MEDIUMTEXT NULL,
  PRIMARY KEY (`rap_id`))
ENGINE = InnoDB;


SET SQL_MODE=@OLD_SQL_MODE;
SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;