Skip to content

Create servers

PhilippeLeroux edited this page Oct 8, 2018 · 105 revisions

Table of contents


Préambule


Création de nouveaux serveurs

Temps de référence pour la création de serveurs RAC

Pour mémoire synchronisation du dépôt Oracle

Ajustement de la mémoire et du nombre de CPUs des VMs :

Dès valeurs par défaut sont définies, elles conviennent pour des VMs sur desktop avec un i5 et 8Gb de mémoire. Ces valeurs peuvent être modifiées.

  • La valeur des variables peuvent être affichées : ./update_local_cfg.sh -h

    Variables pour ajuster la mémoire (Unité Mb) :

    • VM_MEMORY_MB_FOR_SINGLE_DB_121
    • VM_MEMORY_MB_FOR_RAC_DB_121
    • VM_MEMORY_MB_FOR_SINGLE_DB_122
    • VM_MEMORY_MB_FOR_RAC_DB_122

    Variables pour ajuster le nombre de CPU :

    • VM_NR_CPUS_FOR_SINGLE_DB_121
    • VM_NR_CPUS_FOR_RAC_DB_121
    • VM_NR_CPUS_FOR_SINGLE_DB_122
    • VM_NR_CPUS_FOR_RAC_DB_122

    Pour un RAC 12cR1 ou 12cR2 la mémoire attribuée aux VMS est vraiment juste (2 512Mb), si possible augmenter la mémoire à 4 096Mb :

     $ cd ~/plescripts
     $ ./update_local_cfg.sh VM_MEMORY_MB_FOR_RAC_DB_122=4096

    Les VMs n'ont par défaut que 2 CPU.

  • Pour supprimer une variable, passer remove comme valeur :

     $ ./update_local_cfg.sh VM_MEMORY_MB_FOR_SINGLE_DB_121=remove
  • Ne jamais supprimer le fichier ~/plescripts/local.cfg

Attention aucun contrôle sur la validité des paramètres n'est effectué, si un paramètre est invalide les scripts échoueront.

Création serveur

Le script define_new_server.sh va définir la configuration des serveurs à partir d'un identifiant. Le nom des serveurs, des disques et des bases de données seront définies à partir de cet identifiant.

Tous les scripts écrivent leurs logs dans ~/plescripts/log.

Pour une base SINGLE

Exécuter depuis le virtual-host :

$ cd ~/plescripts/database_servers
$ ./define_new_server.sh -db=foo -rel=12.2

# ======================================================================
08h26> mkdir $HOME/plescripts/database_servers/foo

# Configuration for foo exist : [ok]

# Oracle Release : 12.2.0.1

# LUNs hosted by : K2 protocol iSCSI
# ORACLE_HOME FS : xfs

# Node #1 standalone :
#       Server name     srvfoo01       : 192.250.240.106
#       Interco iSCSI   srvfoo01-iscsi : 66.60.60.106

# DG DATA :
#       S1DISKFOO01  4Gb
#       S1DISKFOO02  4Gb
#       S1DISKFOO03  4Gb
#       S1DISKFOO04  4Gb
#           4 disks 16Gb

# DG FRA :
#       S1DISKFOO05  4Gb
#       S1DISKFOO06  4Gb
#       S1DISKFOO07  4Gb
#       S1DISKFOO08  4Gb
#           4 disks 16Gb

08h26> $HOME/plescripts/virtualbox/validate_vm_parameter.sh -type=single -nodes=1 -cpus=2 -memory=2512
# Hypervisor : kangs
#     Memory : 7 936 Mb, available for VMs 6 032 Mb (76%).
#     cpu    : #4

# VM type SINGLE #1 VMs
#     VM memory 2 512 Mb, for #1 VMs 2 512 Mb, 41% of 6 032 Mb : [ok]
<     Warning Oracle prereq : 8 192Mb/VMs

#     cpu #2 : [ok]

# Execute : ./clone_master.sh -db=foo

La dernière ligne indique le prochain script à exécuter, tous les scripts indiqueront le prochain script à exécuter.

À la place de clone_master.sh vous pouvez exécuter le script ./install_all.sh -db=foo qui exécute tous les scripts nécessaires, il donnera les instructions pour créer une base une fois terminé.

Options :

  • -db=id : id ne doit pas faire plus de 8 caractères.
  • -storage=FS : n'installe pas le Grid Infra, la base est stockée sur un FS.
  • -rel=12.1|12.2 : Version d'Oracle à installer.
Pour un Active Dataguard avec 2 serveurs standalones

Exécuter depuis le virtual-host :

$ cd ~/plescripts/database_servers
$ ./define_new_server.sh -db=bar -rel=12.2 -dataguard

# ======================================================================
08h31> mkdir $HOME/plescripts/database_servers/bar

# Configuration for bar exist : [ok]

# Oracle Release : 12.2.0.1

# LUNs hosted by : K2 protocol iSCSI
# ORACLE_HOME FS : xfs

# Dataguard 2 members.

# Node #1 standalone :
#       Server name     srvbar01       : 192.250.240.105
#       Interco iSCSI   srvbar01-iscsi : 66.60.60.105

# Node #2 standalone :
#       Server name     srvbar02       : 192.250.240.106
#       Interco iSCSI   srvbar02-iscsi : 66.60.60.106

# DG DATA :
#       S1DISKBAR01  4Gb
#       S1DISKBAR02  4Gb
#       S1DISKBAR03  4Gb
#       S1DISKBAR04  4Gb
#           4 disks 16Gb

# DG FRA :
#       S1DISKBAR05  4Gb
#       S1DISKBAR06  4Gb
#       S1DISKBAR07  4Gb
#       S1DISKBAR08  4Gb
#           4 disks 16Gb

08h31> $HOME/plescripts/virtualbox/validate_vm_parameter.sh -type=dataguard -nodes=2 -cpus=2 -memory=2512
# Hypervisor : kangs
#     Memory : 7 936 Mb, available for VMs 6 032 Mb (76%).
#     cpu    : #4

# VM type DATAGUARD #2 VMs
#     VM memory 2 512 Mb, for #2 VMs 5 024 Mb, 83% of 6 032 Mb : [ok]
<     Warning Oracle prereq : 8 192Mb/VMs

#     cpu #2 : [ok]

# Execute : ./create_database_servers.sh -db=bar

La dernière ligne indique le prochain script à exécuter, tous les scripts indiqueront le prochain script à exécuter.

Remarque : Il est maintenant possible de créer un Dataguard passif, au moment d'exécuter le script create_dataguard.sh il faut ajouter le flag -no_adg. Si le Grid Infra est utilisé il n'y a pas de problème sinon au reboot des serveurs la base 'Physical' sera ouverte en RO, le script de démarrage n'étant pas adapté et ne le sera pas.

À la place de create_database_servers.sh vous pouvez exécuter le script ./install_all.sh -db=bar qui exécute tous les scripts nécessaires, il donnera les instructions pour créer une base une fois terminé.

Options :

  • -db=id : id ne doit pas faire plus de 6 caractères.
  • -storage=FS : n'installe pas le Grid Infra, la base est stockée sur un FS.
  • -rel=12.1|12.2 : Version d'Oracle à installer.
Pour un cluster RAC 2 nœuds

Exécuter depuis le virtual-host :

$ cd ~/plescripts/database_servers
$ ./define_new_server.sh -db=orion -rel=12.2 -max_nodes=2

# ======================================================================
08h34> mkdir $HOME/plescripts/database_servers/orion

# Configuration for orion exist : [ok]

# Oracle Release : 12.2.0.1
# Master : orclmaster

# LUNs hosted by : K2 protocol iSCSI
# ORACLE_HOME FS : ocfs2 : heartbeat on eth1/66.60.60.126

# Node #1 RAC :
#     Server name     srvorion01       : 192.250.240.126
#     VIP             srvorion01-vip   : 192.250.240.127
#     Interco RAC     srvorion01-rac   : 66.60.20.126
#     Interco iSCSI   srvorion01-iscsi : 66.60.60.126

# Node #2 RAC :
#     Server name     srvorion02       : 192.250.240.128
#     VIP             srvorion02-vip   : 192.250.240.129
#     Interco RAC     srvorion02-rac   : 66.60.20.128
#     Interco iSCSI   srvorion02-iscsi : 66.60.60.128

# scan : orion-scan
#        192.250.240.130
#        192.250.240.131
#        192.250.240.132

# DG CRS :
#     S1DISKORION01  4Gb
#     S1DISKORION02  4Gb
#     S1DISKORION03  4Gb
#     S1DISKORION04  4Gb
#     S1DISKORION05  4Gb
#     S1DISKORION06  4Gb
#     S1DISKORION07  4Gb
#     S1DISKORION08  4Gb
#     S1DISKORION09  4Gb
#     S1DISKORION10  4Gb
#          10 disks 40Gb

# DG DATA :
#     S1DISKORION11  4Gb
#     S1DISKORION12  4Gb
#     S1DISKORION13  4Gb
#     S1DISKORION14  4Gb
#           4 disks 16Gb

# DG FRA :
#     S1DISKORION15  4Gb
#     S1DISKORION16  4Gb
#     S1DISKORION17  4Gb
#     S1DISKORION18  4Gb
#     S1DISKORION19  4Gb
#     S1DISKORION20  4Gb
#     S1DISKORION21  4Gb
#     S1DISKORION22  4Gb
#     S1DISKORION23  4Gb
#     S1DISKORION24  4Gb
#     S1DISKORION25  4Gb
#     S1DISKORION26  4Gb
#          12 disks 48Gb

08h34> $HOME/plescripts/virtualbox/validate_vm_parameter.sh -type=RAC -nodes=2 -cpus=2 -memory=2512
# Hypervisor : kangs
#     Memory : 7 936 Mb, available for VMs 6 032 Mb (76%).
#     cpu    : #4

# VM type RAC #2 VMs
#     VM memory 2 512 Mb, for #2 VMs 5 024 Mb, 83% of 6 032 Mb : [ok]
<     Warning Oracle prereq : 8 192Mb/VMs

#     cpu #2 : [ok]

# Execute : ./create_database_servers.sh -db=orion

La dernière ligne indique le prochain script à exécuter, tous les scripts indiqueront le prochain script à exécuter.

À la place de create_database_servers.sh vous pouvez exécuter le script ./install_all.sh -db=orion qui exécute tous les scripts nécessaires, il donnera les instructions pour créer une base une fois terminé. Attention la durée d'exécution du script est de 3h à 4h.

Options :

  • -db=id : id ne doit pas faire plus de 8 caractères.
  • -max_nodes=2 : nombre de nœuds, les scripts ne fonctionnent pas avec plus de 2 nœuds.
  • -rel=12.1|12.2 : version d'Oracle à installer.

Si l'OS est Oracle Linux 7.2 préciser le paramètre -OH_FS=xfs, ocfs2 ne fonctionne pas sur cette version.

Arrêt et démarrage des VM

  • Le script start_vm permet de démarrer les VM, pour un RAC ou un Dataguard les 2 VM seront démarrées, si la VM K2 n'est pas démarrée elle est démarrée. Par exemple pour démarrer le RAC orion : start_vm orion

  • Le script stop_vm lui permet d'arrêter les VM, par exemple stop_vm orion

Comment supprimer les serveurs

Ne pas supprimer les VMs via l'IHM ou autre.

Depuis virtual-host, exécuter :

cd ~/plescripts/database_servers
./cleanup_infra.sh -db=orion

Le DNS, le SAN, les fichiers de configurations locaux sont mis à jours et les VMs sont supprimées.

orion correspond à l'identifiant de la base, pour connaître les identifiants exécuter la commande lsvms :

$ lsvms
# Infra :
# Database master :
#     - orclmaster (2048MB) Actif
#     - r2master (1024MB) Inactif
# Server infrastructure K2 (384MB)

# ===============================================================================
# Databases :

# asmdb    : Oracle 12.2.0.1, srvasmdb01 (2512MB), storage san/ASM

# asmdg    : Dataguard Oracle 12.2.0.1, srvasmdg01 (2512MB), srvasmdg02 (2512MB), storage san/ASM

# orion    : RAC Oracle 12.2.0.1, srvorion01 (2512MB), srvorion02 (2512MB), storage san/ASM

# daisy    : RAC Oracle 12.1.0.2, srvdaisy01 (2512MB), srvdaisy02 (2512MB), storage san/ASM

# fsdb     : Oracle 12.2.0.1, srvfsdb01 (2512MB), storage san/FS

# ===============================================================================
# Others VM :
# leap (2048MB)

Comment tester si les jumbo frames sont réellement activées

  • Vérifier la configuration des interfaces.

     $ ip link show
     1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
     	link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
     2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
     	link/ether 08:00:27:be:41:26 brd ff:ff:ff:ff:ff:ff
     3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
     	link/ether 08:00:27:58:7b:b8 brd ff:ff:ff:ff:ff:ff
     4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
     	link/ether 08:00:27:09:a9:14 brd ff:ff:ff:ff:ff:ff
    

    L'interface eth0 a une MTU de 1500, les 2 autres eth1 et eth2 ont une MTU de 9000.

    Donc niveau configuration le Jumbo Frame est activé sur eth1 et eth2.

  • Tester la taille réelle des paquets.

    • Envoie de paquets de 8972 sur eth0 (réseau public des VMs) :

       $ ping -c 4 -M do -s 8972 K2
       PING K2.orcl (192.250.240.3) 8972(9000) bytes of data.
       ping: local error: Message too long, mtu=1500
       ping: local error: Message too long, mtu=1500
       ping: local error: Message too long, mtu=1500
       ping: local error: Message too long, mtu=1500
      
       --- K2.orcl ping statistics ---
       4 packets transmitted, 0 received, +4 errors, 100% packet loss, time 2999ms
      

      Les paquets ne passent pas.

    • Envoie de paquets de 8972 sur eth1 (réseau privé iSCSI (san)) :

      L'IP 66.60.60.3 correspond à l'IP iSCSI du serveur K2.

       $ ping -c 4 -M do -s 8972 66.60.60.3
       PING 66.60.60.3 (66.60.60.3) 8972(9000) bytes of data.
       8980 bytes from 66.60.60.3: icmp_seq=1 ttl=64 time=1.33 ms
       8980 bytes from 66.60.60.3: icmp_seq=2 ttl=64 time=1.13 ms
       8980 bytes from 66.60.60.3: icmp_seq=3 ttl=64 time=1.37 ms
       8980 bytes from 66.60.60.3: icmp_seq=4 ttl=64 time=0.645 ms
      
       --- 66.60.60.3 ping statistics ---
       4 packets transmitted, 4 received, 0% packet loss, time 3002ms
       rtt min/avg/max/mdev = 0.645/1.122/1.374/0.291 ms
      

      Les paquets passent.

    • Interco RAC eth2

      Dans le cas d'un RAC eth2 est le réseau privé de l'interco RAC, le même test peut être effectué en pingant l'IP de l'autre nœud.

Installer soit même les logiciels Oracle

Si vous souhaitez uniquement des serveurs prêts à l'emploi n'exécuter pas les scripts install_grid12c[R1|R2].sh et install_oracle.sh.

Exécuter seulement les scripts clone_master.sh ou create_database_servers.sh. Une fois ces scripts exécutés l'ensemble des prérequis pour installer les logiciels sont appliqués.

  • Monter le répertoire d'installation Oracle :

    • $ ssh root@nom_du_server mount /mnt/oracle_install
    • Le répertoire contient les sous-répertoires grid et database permettant d'installer les logiciels.
  • Se connecter sur un serveur en utilisant l'option -Y de ssh pour pouvoir lancer l'installeur en mode graphique.

    • ssh -Y grid@nom_du_server
    • ssh -Y oracle@nom_du_server

Pour obtenir des informations sur l'infra (disques, réseau, etc).

Note : pour l'installation du Grid Infra utiliser le réseau 66.60.20.x et pas le réseau 66.60.60.x.

Clone this wiki locally