AppleScript et Oracle pour Macintosh OS X
Scripts de démarrage et darrêt dOracle
RCI Informatique, Avril 2004
1 - Introduction
Une fois Oracle 9i installé sur Macintosh OS X, il faut pouvoir régulièrement démarrer puis arrêter la base de données Oracle.
Dune part, pour la base de données elle-même, on utilisera le terme de lancer ou arrêter une instance de la base de données.
Dautre part, le programme chargé de recevoir les requêtes et renvoyer les résultats, aux postes de travail ou programmes fonctionnant en réseau. Il sagit dun process, distinct du noyau de la base de données elle-même, que lon appelle le Listener
Si on travaille sur un seul poste Macintosh OS X, on peux très bien accéder à Oracle, directement, sans passer par le Listener. Au contraire, le travail en réseau, (SQL*Net d Oracle, et ses différents protocoles, dont TCP/IP est le plus utilisé), nécessite que le Listener soit démarré.
Lécran ci-dessous, obtenu par la commande top en mode Terminal Mac OS X, montre les différents processus en cours.
On voit en particulier le processus nommé tnslsnr, différents processus nommés oracle, et ceux correspondant à quelques unes des applications qui peuvent être utilisées, simultanément à Oracle.
FileMaker Pro 7.0, Adobe Illustrator CS, Quark XPress 6.1, Adobe InDesign CS, AppleWorks 6.2.7, Microsoft Excel X pour Macintosh, sont visibles dans les processus en cours :

2 - Utilisation d AppleScript
Avec AppleScript, les concepteurs de Macintosh ont mis à notre disposition un outil denchaînement dactions répétitives, daccès aux fonctionnalités des différents logiciels applicatifs, et un cadre général de programmation et de publication des scripts.
Nous allons commencer par utiliser AppleScript, pour réaliser deux scripts, lun de démarrage, lautre darrêt dOracle.
3 - Le Script de démarrage dOracle
-- Déclenchement du démarrage d'Oracle 9i pour Macintosh OS X
-- sous forme d'un script Apple Script
-- Copyright, tous droits réservés, RCI Informatique SA, 2004
-- www.rci-informatique.fr
-- www.index-informatique.net
-- Définition et initialisation d'une variable globale
global wT
set wT to ""
-- Positionnement dans le répertoire DBCreate
e("cd /Users/oracle/9iR2/orahome/DBCreate")
-- Activation des variables d'environnement Oracle
e(". DBENV")
-- Lancement de SQL Plus en mode DBA
-- la commande à lancer est la suivante :
-- sqplus "/ as sysdba"
-- on utilise ici la séquence d'échappement \"
e("sqlplus \"/ as sysdba\"")
-- Commande de démarrage de l'instance Oracle depuis SQL Plus
e("startup pfile=/Users/oracle/9iR2/orahome/dbs/initab.ora")
-- Puis on quitte SQL Plus
e("exit")
-- On lance le "listener Oracle", destiné à la gestion des requêtes via SQL*Net
e("lsnrctl start")
-- On affiche l'état du "listener Oracle", une fois la commande effectuée
e("lsnrctl status")
-- Puis on se déconnecte
e("exit")
-- Déclenchement de la suite de commandes Unix
doUnix(wT)
-- Définition de la procédure d'envoi à Unix d'une ou plusieurs commandes
on doUnix(x)
tell application "Terminal"
activate
do script x
end tell
end doUnix
-- Constitution d'une suite de commandes séparées par des retours à la ligne
on e(x)
set wT to wT & return & x
end e
4 - Le script darrêt dOracle
-- Déclenchement de l'arrêt d'Oracle 9i pour Macintosh OS X
-- sous forme d'un script Apple Script
-- Copyright, tous droits réservés, RCI Informatique SA, 1992-2004
-- www.rci-informatique.fr
-- www.index-informatique.net
-- Définition et initialisation d'une variable globale
global wT
set wT to ""
-- Positionnement dans le répertoire DBCreate
e("cd /Users/oracle/9iR2/orahome/DBCreate")
-- Activation des variables d'environnement Oracle
e(". DBENV")
-- On arrête le "listener Oracle", destiné à la gestion des requêtes via SQL*Net
e("lsnrctl stop")
-- On affiche l'état du "listener Oracle", une fois la commande effectuée
e("lsnrctl status")
-- Lancement de SQL Plus en mode DBA
-- la commande à lancer est la suivante :
-- sqplus "/ as sysdba"
-- on utilise ici la séquence d'échappement \"
e("sqlplus \"/ as sysdba\"")
-- Commande d'arrêt de l'instance Oracle depuis SQL Plus
e("shutdown abort")
-- Puis on quitte SQL Plus
e("exit")
-- Puis on se déconnecte
e("exit")
-- Déclenchement de la suite de commandes Unix
doUnix(wT)
-- Définition de la procédure d'envoi à Unix d'une ou plusieurs commandes
on doUnix(x)
tell application "Terminal"
activate
do script x
end tell
end doUnix
-- Constitution d'une suite de commandes séparées par des retours à la ligne
on e(x)
set wT to wT & return & x
end e
Revenir au
sommaire AppleScript et Oracle

Tous droits réservés, RCI Informatique SA, 2004
rci@wanadoo.fr
www.rci-informatique.fr
www.index-informatique.net