« Général:FAQ GestionUtilisateurs » : différence entre les versions

De WikiFr_dbSQWare
Aller à la navigation Aller à la recherche
Page créée avec « ==Généralités== <br> {{Warning | Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !}} Dans ce chapi... »
 
m Contenu remplacé par « ==Généralités== <br> {{Warning | Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !}} Dans ce c... »
Balise : Contenu remplacé
Ligne 2 : Ligne 2 :
<br>
<br>
{{Warning | Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section [[DbSQWare:Concepts|"Concepts dbSQWare"]] !}}
{{Warning | Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section [[DbSQWare:Concepts|"Concepts dbSQWare"]] !}}
Dans ce chapitre, on considèrera que SQWareCentral a été installé sur dbsqware@sqwarebox ...
Dans ce chapitre, on considèrera que SQWareWeb a été installé sur dbsqware@sqwarebox ...


===Limites de cette section===
===Limites de cette section===
Ce chapitre ne traite que de l'ajout d'une nouvelle instance sur un socle déjà paramétré et fonctionnel.<br>
Ce chapitre ne traite que de la configuration de l'authentification d'utilisateurs Active Directory sur un socle déjà paramétré et fonctionnel.<br>
Utilisez les portions qui concernent votre environnement et utilisez la méthode match ou manuelle au choix !<br>


===MODOP général d'intégration d'une nouvelle instance Oracle===
===MODOP général connexions LDAP à votre contrôleur de domaine===
Il y aura potentiellement 1 ou 2 cas de connexion à traiter
Il y aura quelques informations et configurations nécessaires à cette configuration :
* <span style="color: red">"locale" </span>, pour les machines unix (ou avec Cygwin) où l'on va faire du "/ as sysdba" sur la machine qui porte l'instance (connexion ssh depuis dbsqware@sqwarebox)
* votre machine dbsqware doit pouvoir identifier les DC (Domain Controler) de votre domaine
* "distante", pour générer les AWR (éventuellement) ou pour le cas où l'on n'a accès à la machine en ssh (Windows, RDS, etc, ...)
** soit en utilisant 1 DC ou plus en tant que server DNS
** soit en utilisant comme serveur DNS un DNS ayant les enregistrements SRV pointant sur vos DC
* votre machine dbsqware et vos DC doivent avoir une connectivité réseau sur les ports ldap utilisés dans votre infra (389 par défaut)  
* les utilisateurs doivent exister sur votre domaine


Etapes classiques :
==Identification du contrôleur de domaine==
*Mise en place de l'environnement
*Vérification des prérequis système pour la partie "locale" (ksh + rsync)
*Tests "manuels"
*Mise en exploitation de l'instance
Vous verrez que ces étapes peuvent être traitée une par une ou par batch !


==Intégration d'une instance Oracle==
Sur la machine dbsqware avec le compte dbsqware modifier le fichier /home/dbsqware/dbSQWare/SQWareWeb/custom/authentication_custom.php
<pre>
<span style="color: green">"dbsqware@vmsqwarebox" </span>
dbsqware@vmsqwarebox:/home/dbsqware/dbSQWare/SQWareWeb/custom $ vi authentication_custom.php


===Mise en place de l'environnement===
...
====Général====
function gfsqw_connection_external_ad($lasqw_parameters)
=====Explication du "DbAlias" (la clé unique dbSQWare)=====
{
La clé dbSQWare doit être unique et raccord avec ce qui aura été paramétré pour la variable gvsqw_DbAlias dans sqwora_GlobalVar.cfg !<br/>
        $lvsqw_error = false;
On a plus ou moins 3 cas ...<br/>
        $lvsqw_errorMSG = "";
*Votre environnement est "standalone" et vos ORACLE_SID sont unique sur l'ensemble du parc => gvsqw_DbAlias='$ORACLE_SID'
        $lvsqw_userName = $lasqw_parameters[0];
*Votre environnement est "standalone" mais vous avez des "doublons" d'ORACLE_SID => gvsqw_DbAlias='$ORACLE_SID:$(hostname|cut -d '.' -f1)'
        $lvsqw_password = $lasqw_parameters[1];
*Vous avez du RAC et/ou DG => gvsqw_DbAlias='$gvsqw_DB_UNIQUE_NAME:$gvsqw_HOST_UNIQUE_NAME' (gvsqw_DB_UNIQUE_NAME, on supprime le numéro du node !)
+ tout autre cas qui pourrait arrivé ou qui "vous arrange" !<br/>


=====Explication des statuts=====
        // Server connection
*Une instance "ouverte" sera traitée en mode "local", c’est-à-dire que l’on va se connecter en "/ as sysdba" en local sur la machine qui porte l’instance (accès ssh depuis dbsqware@sqwarebox), statut "ON".<br/>
*Une instance "fermée", type dataguard sera traitée en mode "local", c’est-à-dire que l’on va se connecter en "/ as sysdba" en local sur la machine qui porte l’instance (accès ssh depuis dbsqware@sqwarebox), statut "DG".<br/>
*Une instance où l’on n’aurait pas d'accès unix local serait gérée en mode "distant" (style Windows, RDS, ...), statut "DIST".<br/>
*Le statut "OFF" fait "disparaître" l’instance de la visu web.<br/>
*Le statut "NEW" est utilisé comme statut intermédiaire entre le début et la fin du paramétrage d'une nouvelle instance.<br/>
*Tous les autres statuts permettent d’afficher l’instance dans le référentiel (notamment "KEEP") mais ne seront pas pris en compte par les traitements automatiques.<br/>
<br/>
Résumé des statuts :<br/>
{| align="center" {{Prettytable}}
|-
| '''Statut'''
| '''Description'''
|-
| ON
| gestion locale sous unix (le plus courant)
|-
| DIST
| gestion uniquement à distance
|-
| KEEP
| statut temporaire, lors d'une maintenance par exemple ou avant suppression complète
|-
| NEW
| statut temporaire, lors du paramétrage
|-
| OFF
| suppression visuelle de l'instance (sans suppression de son paramétrage)
|-
| XXX
| non pris en charge ...
|}


====Déclaration de l'instance dans SQWareRepository avec SQWareWeb====
        // /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\
Nous allons déclarer la nouvelle instance depuis l'interface d'administration de SQWareWeb.<br/>
        //          Variables : $lvsqw_ldaphost
[[Fichier:Admin_dbSQWare.png||admin|Lien vers la console d'administration]]<br/>
        //                               $lvsqw_ldapport
        //      To be adapted according to the company    /  Fr: A adapter selon l'entreprise
        // /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\


Déclarez la nouvelle instance en statut "NEW" (Ajout ou Duplicate)<br/>
        $lvsqw_ldaphost = "srvaddsw01.domain.tld";          // /!\ EXAMPLE /!\
[[Fichier:AjoutInstance.png||admin|Ajout d'une instance]]
        $lvsqw_ldapport = 389;                  // /!\ EXAMPLE /!\
[[Fichier:DuplicateInstance.png||admin|Ajout par duplication d'une instance]]<br/>
[[Fichier:DeclarationInstanceOracle.png|adminOracle|Déclaration de la nouvelle instance Oracle]]


Explication des champs :<br/>
{| align="center" {{Prettytable}}
|-
| '''Champ'''
| '''Description'''
|-
| Db Alias
| Clé unique qui identifie l'instance dans dbSQWare (sera utilisée comme SERVICE_NAME pour la génération du tnsname.ora, pour sa partie avant le ":" si présent)
|-
| Dbms Name
| Type de SGBD
|-
| Virtual Host
| Host virtuel (meme que Host si pas cluster, sera utilisé pour la génération du tnsname.ora)
|-
| Host Name
| Hostname de l'instance
|-
| User Name
| User qui porte l'instance
|-
| Port
| Port d'écoute de l'instance (sera utilisé pour la génération du tnsname.ora)
|-
| Comments
| Une courte description de ce que porte l'instance
|-
| Status
| Instance statut (cf plus haut pour les explications)
|-
| Contact
| Un contact si besoin
|-
| Environnement
| Environnement de l'instance (PRD, PPR, REC, DEV, TST, ...)
|-
| Client
| Utilisé uniquement pour filtrer (mettre un nom de client et/ou de département et/ou service ...
|-
| GlobalHost
| Champ libre dans lequel on met souvent l'hôte de hyperviseur par exemple
|-
| Custom1
| Champ libre 1
|-
| Custom2
| Champ libre 2
|}
=====Regénérer les fichiers de référence de SQWareCentral=====
Tapez la commande suivante qui va générer les fichiers de référence :
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
gen_all
</syntaxhighlight>


===Procédure spécifique pour la partie "locale" (statut ON)===
        $lvsqw_ldapconnect = ldap_connect($lvsqw_ldaphost, $lvsqw_ldapport);
/!\ Uniquement que les instances qui seront en statut "ON" !<br/>
        ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_REFERRALS, 0);


====Vérification des prérequis système pour la partie "locale" (ksh + rsync)====
...
SQWareProduction étant écrit essentiellement en shell ksh et étant synchronisé depuis SQWareCentral avec rsync, il nous faut donc "ksh" et "rsync" installés !
</pre>
 
=====Vérification=====
Adaptez à votre nom de user et nom de machine.<br>
<br>
ksh:
<syntaxhighlight lang="sh" line>
# From : oracle@my_oracle_host
type ksh
#ou
which ksh
</syntaxhighlight>
rsync:
<syntaxhighlight lang="sh" line>
# oracle@my_oracle_host
type rsync
#ou
which rsync
</syntaxhighlight>
 
=====Installation=====
Adaptez à votre type de machine (sudo si vous n'êtes pas root).<br/>
<br>
RedHat / CentOS / ... :
<syntaxhighlight lang="sh" line>
# From : root@my_oracle_host
yum install -y ksh rsync
#ou
dnf install -y ksh rsync
</syntaxhighlight>
 
Ubuntu / Debian / ... :
<syntaxhighlight lang="sh" line>
# From : root@my_oracle_host
apt install -y ksh rsync
</syntaxhighlight>
 
====Déploiement de(s) clé(s) ssh de SQWareCentral vers la/les machine(s) cible(s)====
Il existe deux manières de procéder :
*Une automatique (depuis dbsqware@sqwarebox mais vous oblige à connaitre le mdp du compte unix oracle)
*Une manuelle que vous appliquez sur chaque compte unix oracle
/!\ Le mdp de votre compte oracle unix doit avoir été initialisé, si non, la connexion par échange de clé ne fonctionnera pas !
 
=====Déploiement de(s) clé(s) ssh : méthode batch=====
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora GenDeplSshKeys_SQWareCentral GenLstInstanceNew
</syntaxhighlight>
Vérifiez que c'est bien la liste que vous souhaitez déployer, puis choix 1 ...<br/>
=> Entrez le mdp unix quand il vous est demandé !
 
=====Déploiement de(s) clé(s) ssh : méthode manuelle=====
<syntaxhighlight lang="sh" line>
# From : oracle@my_oracle_host
if [ ! -r $HOME/.ssh/id_rsa ]
then
ssh-keygen -t rsa -N ''''''' -f $HOME/.ssh/id_rsa
fi
chmod go-w $HOME
echo "ssh-rsa AAAAB......XSPpdV11 dbsqware@sqwarebox" >>$HOME/.ssh/authorized_keys
chmod 700 $HOME/.ssh
chmod 600 $HOME/.ssh/authorized_keys
</syntaxhighlight>
=> Mettre la bonne clé dans le "echo" (celle de dbsqware@sqwarebox)
 
====Test de connexion ssh depuis SQWareCentral====
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora TestSshConnection GenLstInstanceNew
</syntaxhighlight>
 
====Déploiement de SQWareProduction====
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
 
#Si depl sur user "unique"
menu_ora DeplScripts GenLstUniqueNew
 
#Si depl sur user "de l'instance"
menu_ora DeplScripts GenLstInstanceNew
</syntaxhighlight>
 
====Ajout de l'environnement dbSQWare dans ~/.profile ou ~/.bash_profile====
Une nouvelle fois, il existe deux manières de procéder :
*Une automatique (depuis dbsqware@sqwarebox)
*Une manuelle que vous appliquez sur chaque compte unix oracle
 
=====Ajout de l'environnement dbSQWare : méthode batch=====
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora AdddbSQWareProfile GenLstInstanceNew
</syntaxhighlight>
Vérifiez que c'est bien la liste que vous souhaitez déployer, puis choix 1 ...<br/>
=> Dans ~/.profile ou ~/.bash_profile, changez la variable suivante avec la valeur adaptée : gvsqw_Env='XXX'
 
=====Ajout de l'environnement dbSQWare : méthode manuelle=====
Ajoutez les lignes suivantes dans le ~/.profile ou ~/.bash_profile
<syntaxhighlight lang="sh" line>
# From : oracle@my_oracle_host
 
#dbSQWare
export gvsqw_OraBin=$HOME/SQWareProduction/oracle/bin
export gvsqw_Env='PRD'
lvsqw_IsTerminal=$(tty 2>&1 >/dev/null;echo $?)
if [ "$lvsqw_IsTerminal" = "0" ] && [ -r $gvsqw_OraBin/../etc/.profile_confort ]
then
. $gvsqw_OraBin/../etc/.profile_confort
fi
</syntaxhighlight>
 
====Test sendmail (non obligatoire)====
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora TestSendmail GenLstInstanceNew
</syntaxhighlight>
 
====Tests de connexion "manuels" à l'instance Oracle====
Le but étant de tester la ou les méthodes de connexion automatique à l'instance Oracle.
* "locale", pour les instances qui seront en statut "ON"
* "distante", pour générer les AWR (éventuellement) ou pour le cas où l'on n'a accès à la machine en ssh (Windows, RDS, etc, ...)
 
=====Test connexion "locale"=====
/!\ Uniquement que les instances qui seront en statut "ON" !
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora TestInstConnectionOnNoMail GenLstInstanceNew
</syntaxhighlight>
 
===Procédure spécifique pour la partie AWR ou RAC===
 
====Création d'un compte Oracle spécifique dbSQWare====
<br>
{{Note| Uniquement les instances sur lesquelles vous voulez générer des AWR !}}
 
{{Information|vous devez être SYS lors de la saisie des droits}}
 
Exemple d'ordre de création (NON-CDB) :
<syntaxhighlight lang="sql" line>
CREATE USER DBSUSER
IDENTIFIED BY "NePasMettreCePassword!"
PROFILE DEFAULT
ACCOUNT UNLOCK;
GRANT RESOURCE TO DBSUSER;
GRANT CONNECT TO DBSUSER;
--GRANT DBA TO DBSUSER;
ALTER USER DBSUSER DEFAULT ROLE ALL;
GRANT SELECT ANY DICTIONARY TO DBSUSER;
GRANT EXECUTE ON DBMS_WORKLOAD_REPOSITORY TO DBSUSER;
</syntaxhighlight>
 
Exemple d'ordre de création (CDB) :
<syntaxhighlight lang="sql" line>
CREATE USER C##DBSUSER
IDENTIFIED BY "NePasMettreCePassword!"
PROFILE DEFAULT
ACCOUNT UNLOCK CONTAINER=ALL;
GRANT RESOURCE TO C##DBSUSER CONTAINER=ALL;
GRANT CONNECT TO C##DBSUSER CONTAINER=ALL;
--GRANT DBA TO C##DBSUSER CONTAINER=ALL;
--GRANT SYSDBA TO C##DBSUSER CONTAINER=ALL;
ALTER USER C##DBSUSER DEFAULT ROLE ALL CONTAINER=ALL;
GRANT SELECT ANY DICTIONARY TO C##DBSUSER CONTAINER=ALL;
GRANT EXECUTE ON DBMS_WORKLOAD_REPOSITORY TO C##DBSUSER CONTAINER=ALL;
</syntaxhighlight>
 
Vous pouvez mettre le nom et le mot de passe que vous souhaitez !<br/>
Ce compte devra être déclaré sur le compte unix oracle@sqwarebox ...<br/>
Si une entrée spécifique est trouvée c'est elle sui est prise, si non, on prend l'entrée "DEFAULT".<br/>
<syntaxhighlight lang="sh" line>
oracle@sqwarebox:/home/oracle (NoSID) $ cat .passwd_oracle
DEFAULT;DBSUSER;NePasMettreCePassword!
SPECIFIC_ORA;system;manager
</syntaxhighlight>
 
====Test connexion "distante"====
/!\ Uniquement pour AWR et RAC
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora TestInstConnectionDistNoMail GenLstInstanceNew
</syntaxhighlight>
 
==Mise en exploitation de l'instance==
===Génération de la configuration par défaut SQWareProduction===
/!\ Uniquement que les instances qui seront en statut "ON" !
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
menu_ora GenDefConf_SQWareProduction GenLstInstanceNew
</syntaxhighlight>
 
===Mise à jour de SQWareRepository===
Dans le repository dbSQWare via la console d’administration, mettre à jour le statut de la nouvelle instance Oracle (à NEW actuellement) avec la valeur souhaitée (ON, DG, DIST)
 
===Test de "reprise" des indicateurs===
A ce moment là, vous pouvez tester la reprise des indicateurs manquants (en principe, uniquement les instances que vous venez d'intégrer !)
<syntaxhighlight lang="sh" line>
# From : dbsqware@sqwarebox
## Pour les statuts "ON"
repind_ora
## Pour les statuts "DIST"
repind_ora_dist
## Pour les statuts "DG"
repind_ora_dg
</syntaxhighlight>
 
===Exploitation (backups, …) pour les instance "ON"===
====Génération des conf SQWareProduction====
Si vous avez suivi la procédure d’insertion de l’instance, cette partie est déjà fait par l’étape "menu_ora GenDefConf_SQWareProduction GenLstInstanceNew".<br/>
Vous pouvez vérifier avec le chapitre suivant.<br/>
<br/>
Se connecter à la machine qui porte l'instance « Oracle » et taper les commandes suivantes :<br/>
<syntaxhighlight lang="sh" line>
# From dbsqware@vorawarebox
c ORADBS
</syntaxhighlight>
 
<syntaxhighlight lang="sh" line>
#Source de l'env si multi-instance (from oracle@my_oracle_host)
e ORADBS
</syntaxhighlight>
 
<syntaxhighlight lang="sh" line>
too
./sqwora_GenerateCreateInstance.ksh -dbsOnly
</syntaxhighlight>
Vérifier que ce qui est proposé est bon et tapez « y » si c’est le cas.<br/>
A ce moment, vous avez généré les fichiers de configuration par défaut de SQWareProduction.
 
====Paramétrage RMAN====
Si vous souhaitez mettre en place les backups RMAN, il faudra :
- être en archivelog si vous voulez faire du backup à chaud
- avoir paramétré la conf RMAN (dbSQWare se base sur la durée de rétention et le type DISK/SBT_TAPE configurés)
- avoir paramétré $HOME/admin/ORADBS/sqwConfig/sqwora_Rman.cfg (qui détermine le comporte de sqwarchmon et si on utilise un catalogue ou pas)
 
Vérification de la conf :
<syntaxhighlight lang="sh" line>
vi $HOME/admin/ORADBS/sqwConfig/sqwora_Rman.cfg
</syntaxhighlight>
 
Vérification de l'archivage :
<syntaxhighlight lang="sh" line>
sqlplus '/ as sysdba'
</syntaxhighlight>
<syntaxhighlight lang="sql" line>
select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
 
show parameters log_archive_format;
 
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                  string      ORADBS_redo_%t_%s_%r.arc
 
show parameters log_archive_dest_1;
 
NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1                  string      LOCATION=/orabackup/ORADBS/archive MANDATORY
</syntaxhighlight>
 
Si besoin, changement des paramètres :
<syntaxhighlight lang="sql" line>
alter system set log_archive_format='ORADBS_redo_%t_%s_%r.arc' scope=spfile;
alter system set log_archive_dest_1='LOCATION=/orabackup/ORADBS/archive/ MANDATORY';
</syntaxhighlight>
 
Si besoin, passer la base en ARCHIVELOG :
<syntaxhighlight lang="sql" line>
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
</syntaxhighlight>
 
Configuration "minimale" RMAN (en fonction de ce qui a été paramétré par défaut) :
<syntaxhighlight lang="sh" line>
too
./sqwora_RmanConfigure.ksh
</syntaxhighlight>
 
Vérification de la configuration RMAN :
rman target /
RMAN> show all;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name ORADBS are:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 6 DAYS;
CONFIGURE BACKUP OPTIMIZATION ON;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/orabackup/ORADBS/rman/autobackup/%F';
CONFIGURE DEVICE TYPE DISK PARALLELISM 4 BACKUP TYPE TO BACKUPSET;
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE RMAN OUTPUT TO KEEP FOR 7 DAYS; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/home/oracle/admin/ORADBS/sqwConfig/snapcf_ORADBS.f';
 
Si besoin, modification de paramètres RMAN :
RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
old RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 6 DAYS;
new RMAN configuration parameters:
CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
new RMAN configuration parameters are successfully stored
 
====Explications====
Les étapes précédentes ont créé certains fichiers par défaut. ($HOME/ORADBS/sqwConfig)
<syntaxhighlight lang="sh" line>
#Entrez le nom de l’instance
e ORADBS
cfg
cat sqwora_Jobs.cfg
</syntaxhighlight>
 
<syntaxhighlight lang="sh" line>
#IndicDba: Gather indicators DBAs
IndicDba:$gvsqw_OraBin/sqwora_GatherIndicators.ksh -I ORADBS
 
#RmanFull: Backup level 0 (full) with RMAN
RmanFull:$gvsqw_OraBin/sqwora_RmanBackup.ksh -I ORADBS -T i0 -Exec
 
#RmanInc: Backup level 1 (incremental) with RMAN
RmanInc:$gvsqw_OraBin/sqwora_RmanBackup.ksh -I ORADBS -T i1 -Exec
 
#PurgeAlert: Purge log/trace files
PurgeAlert:$gvsqw_OraBin/sqwora_PurgeAlert.ksh -I ORADBS
 
#GenAwr: Generate AWR reports
GenAwr:$gvsqw_OraBin/sqwora_GenerateAwr.ksh -I ORADBS
 
#ExpFull: export full of database
ExpFull:$gvsqw_OraBin/sqwora_Export.ksh -I ORADBS -T full -H 2 -Exec
 
#ExpdpFull: export full of database (expdp)
ExpdpFull:$gvsqw_OraBin/sqwora_Expdp.ksh -I ORADBS -T full -H 2 -Exec
</syntaxhighlight>
 
C’est un fichier de paramétrage qui est utilisé par le script sqwora_RunJob.ksh pour exécuter des actions.<br/>
<br/>
Fichier pour une cron par défaut $HOME/CrontabRef_ORADBS :
<syntaxhighlight lang="sh" line>
###########################
## mm(0-59) hh(0-23) dd(1-31) MM(0-12) DAY(0-sunday, 1-monday, ...) command
## ORADBS
#Purge alert
00 08 * * 0  ksh -c '. $HOME/.profile ORADBS;$gvsqw_OraBin/sqwora_RunJob.ksh -I ORADBS -A PurgeAlert > $HOME/tmp/PurgeAlert_ORADBS.log 2>&1'
#Datapump
00 22 * * 0-5 ksh -c '. $HOME/.profile ORADBS;$gvsqw_OraBin/sqwora_RunJob.ksh -I ORADBS -A ExpdpFull > $HOME/tmp/ExpdpFull_ORADBS.log 2>&1'
#Backups
00 23 * * 6  ksh -c '. $HOME/.profile ORADBS;$gvsqw_OraBin/sqwora_RunJob.ksh -I ORADBS -A RmanFull > $HOME/tmp/RmanFull_ORADBS.log 2>&1'
00 23 * * 0-5 ksh -c '. $HOME/.profile ORADBS;$gvsqw_OraBin/sqwora_RunJob.ksh -I ORADBS -A RmanInc > $HOME/tmp/RmanInc_ORADBS.log 2>&1'
</syntaxhighlight>
 
====Mise en exploitation====
Mise en place de la cron :
<syntaxhighlight lang="sh" line>
mv $HOME/CrontabRef_ORADBS $HOME/CrontabRef
vi $HOME/CrontabRef
crontab $HOME/CrontabRef
crontab -l
</syntaxhighlight>
 
Mise à jour du fichier CrontabRef  :
<syntaxhighlight lang="sh" line>
crontab -l > $HOME/CrontabRef
cat $HOME/CrontabRef
</syntaxhighlight>
 
====Commandes utiles====
alias intéressants :
e DBALIAS => source l'env pour l'instance
bin, etc, too ... => pour aller dans arbo SQWareProduction standard
cbin, cetc, ctoo ... => pour aller dans arbo SQWareProduction custom
log => logs SQWareProduction
rma => on va dans le chemin des backups RMAN
dmpdp => on va dans le chemin de datapump
 
Quelques options des scripts :
-h => aide en ligne
-s => exemples en ligne
-Exec => lorsque elle est présente, si non settée ne sort que les commandes sans les exécuter
 
Exemples :
oracle@my_oracle_host:$HOME/admin/ORADBS/logs/RmanBackup (ORADBS) $ bin
total 164
drwxr-x---  2 oracle dba  4096 Aug 16 15:50 .
drwxr-x--- 15 oracle dba  187 Aug 16 15:50 ..
-rwxr-x---  1 oracle dba 15773 Aug 16 15:50 sqwArchmon
-rwxr-x---  1 oracle dba 15773 Aug 16 15:50 sqwArchmon.ksh
-rwxr-x---  1 oracle dba  2673 Aug 16 15:50 sqwora_ActivateMonitoring.ksh
-rwxr-x---  1 oracle dba  4506 Aug 16 15:50 sqwora_CopyDmpdp.ksh
-rwxr-x---  1 oracle dba  3551 Aug 16 15:50 sqwora_DbmsStats.ksh
lrwxrwxrwx  1 oracle dba    36 Jan  2  2022 sqwora_ExecSQL.ksh -> ../../generic/bin/sqwgen_ExecSQL.ksh
-rwxr-x---  1 oracle dba  7284 Aug 16 15:50 sqwora_Expdp.ksh
-rwxr-x---  1 oracle dba  6861 Aug 16 15:50 sqwora_Export.ksh
-rwxr-x---  1 oracle dba  2652 Aug 16 15:50 sqwora_GatherDistantFsSize.ksh
-rwxr-x---  1 oracle dba  3609 Aug 16 15:50 sqwora_GatherIndicators.ksh
-rwxr-x---  1 oracle dba  2545 Aug 16 15:50 sqwora_GatherStructure.ksh
-rwxr-x---  1 oracle dba  3022 Aug 16 15:50 sqwora_GenerateAwr.ksh
-rwxr-x---  1 oracle dba  3812 Aug 16 15:50 sqwora_GenerateStatspack.ksh
-rwxr-x---  1 oracle dba  6120 Aug 16 15:50 sqwora_Impdp.ksh
-rwxr-x---  1 oracle dba  3199 Aug 16 15:50 sqwora_MonitorWithAwr.ksh
-rwxr-x---  1 oracle dba  2877 Aug 16 15:50 sqwora_MonitorWithAwrLastStat.ksh
-rwxr-x---  1 oracle dba  4117 Aug 16 15:50 sqwora_MonitorWithStatspack.ksh
lrwxrwxrwx  1 oracle dba    38 Jan  2  2022 sqwora_NetBackup.ksh -> ../../generic/bin/sqwgen_NetBackup.ksh
lrwxrwxrwx  1 oracle dba    40 Jan  2  2022 sqwora_ParallelRun.ksh -> ../../generic/bin/sqwgen_ParallelRun.ksh
-rwxr-x---  1 oracle dba  5041 Aug 16 15:50 sqwora_PartialRefresh.ksh
-rwxr-x---  1 oracle dba  2707 Aug 16 15:50 sqwora_PhysicalColdBackup.ksh
-rwxr-x---  1 oracle dba  2507 Aug 16 15:50 sqwora_PurgeAlert.ksh
-rwxr-x---  1 oracle dba  3666 Aug 16 15:50 sqwora_RmanBackup.ksh
-rwxr-x---  1 oracle dba  4790 Aug 16 15:50 sqwora_RmanClone.ksh
lrwxrwxrwx  1 oracle dba    40 Jan  2  2022 sqwora_RsyncBackup.ksh -> ../../generic/bin/sqwgen_RsyncBackup.ksh
lrwxrwxrwx  1 oracle dba    35 Jan  2  2022 sqwora_RunJob.ksh -> ../../generic/bin/sqwgen_RunJob.ksh
-rwxr-x---  1 oracle dba  6531 Aug 16 15:50 sqwora_SchemaRefreshExpdp.ksh
-rwxr-x---  1 oracle dba  4371 Aug 16 15:50 sqwora_SchemaRefresh.ksh
-rwxr-x---  1 oracle dba  7072 Aug 16 15:50 sqwora_SqwArchmon.ksh
 
oracle@my_oracle_host:$HOME/SQWareProduction/oracle/bin (ORADBS) $
./sqwora_RmanBackup.ksh -h
Sourcing sqwora_Global.lib v2023.06 SQWareProduction for Oracle (dbSQWare) ...
Usage: sqwora_RmanBackup.ksh [-h] -I <instance> -T <Type> [+ options]
DESCRIPTION
    sqwora_RmanBackup.ksh execute RMAN backup
SUPPORT
    Oracle supported versions: 9iR2 <= v <= 21c
PARAMETERS
      -I  instance      : Target instance to backup.
      -T  Type          : Backup type (i0, i1, log).
OPTIONS
      -h                : Display the full usage.
      -s                : Display samples of usage.
      -O  Type          : cold,hot (default hot).
      -DG                : For dataguard instances not open.
      -SRO              : Option 'skip readonly' (default backup all TBS).
      -OPT option        : Option to add to the RMAN command.
      -FRT return_code  : Force return code value on error.
      -AddMail email    : Email address to add at 'xxx'.
      -SendReport        : Send execution log report.
      -NoCumulative      : Disable cumulative incremental (default disable).
      -NoDelInput        : Disable 'delete input' when backup archivelog.
      -Cumulative        : Make cumulative incremental (default disable).
      -SkIna            : Add 'skip inaccessible' for archive backup.
      -Split            : Split backup directories by channel.
      -Force            : Bypass version check.
      -NoArc            : Disable backup of archivelog when type i[0-1] (to make 'section size xxG' option usefull for example).
      -NoZdlra          : Disable backup to ZDLRA (default Disable).
      -Zdlra            : Enable backup to ZDLRA (default Disable).
      -Freeze            : Freeze cluster resource when cold backup.
      -Blackout          : Blackout supervision when cold backup.
      -NoMail            : Deactivate sendmail on error to xxx (by default, send on error).
      -Locale  locale  : Force Locale for help display (fr,en).
      -Exec              : Run backup (default, display generated commands)
 
====Exemple datapump (full ou schéma)====
 
On considère que l’exploitation est aux normes voulues.
Les options du script :
$gvsqw_OraBin/sqwora_Expdp.ksh –h
 
Exemple datapump full (gestion auto du nombre de version, modifiable par l'option –H) :
$gvsqw_OraBin/sqwora_Expdp.ksh -I ORADBS -T full -Exec
 
Exemple datapump schéma (gestion auto du nombre de version, modifiable par l'option –H) :
$gvsqw_OraBin/sqwora_Expdp.ksh -I ORADBS -T schema -FU MYSCHEMA -Exec
 
Les dumps sont dans /orabackup/$ORACLE_SID/expdp (par "type", alias pour y aller "dmpdp") :
oracle@my_oracle_host:/orabackup/ORADBS/expdp (ORADBS) $ dmpdp
total 597284
drwxr-xr-x 2 oracle oinstall      4096 Jan 27 16:09 .
drwxr-xr-x 3 oracle oinstall      4096 Jan 27 14:37 ..
-rw-r----- 1 oracle oinstall 255614976 Jan 27 16:08 ExpdpFull_ORADBS_20230127_160335_01_2.dump
-rw-r----- 1 oracle oinstall  28327936 Jan 27 16:08 ExpdpFull_ORADBS_20230127_160335_02_2.dump
-rw-r--r-- 1 oracle oinstall    218392 Jan 27 16:08 ExpdpFull_ORADBS_20230127_160335.log
-rw-r----- 1 oracle oinstall 159236096 Jan 27 16:10 ExpdpMYSCHEMA_ORADBS_20230127_160908_01_2.dump
-rw-r----- 1 oracle oinstall  4030464 Jan 27 16:10 ExpdpMYSCHEMA_ORADBS_20230127_160908_02_2.dump
-rw-r--r-- 1 oracle oinstall    122819 Jan 27 16:10 ExpdpMYSCHEMA_ORADBS_20230127_160908.log
 
====Copie de schéma par datapump====
 
On considère que l’exploitation est aux normes voulues.<br>
La copie se fait en lançant la commande depuis la DEV/TST (la cible).<br>
Le script se connecte en ssh vers la prod (la source), fait le datapump, copie sur fichier sur la DEV/TST (la cible), détruit tous les objets du schéma et le recharge par impdp.<br>
 
Les options du script :
$gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -h
 
Exemple:<br>
Serveur source : my_oracle_hostprod / instance : MYORAPRD / schéma : MYSCHEMA<br>
Vers<br>
Serveur cible  : my_oracle_host / instance : MYORADEV / schéma : MYSCHEMA<br>
<br>
La commande de copie sera (sur my_oracle_host) :
$gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I MYORADEV -IS MYORAPRD -US my_oracle_hostprod -O MYSCHEMA -Exec
 
Il faut donc que la machine cible puisse faire du ssh vers la source :
# Recup de la cle de la cible
oracle@my_oracle_host:/home/oracle/.ssh (MYORADEV) $ cat /home/oracle/.ssh/id_rsa.pub
ssh-rsa ...+kgvQ== oracle@my_oracle_host
# Copie dans authorized_keys de la source
oracle@my_oracle_hostprod:/home/oracle/.ssh (MYORAPRD) $ vi /home/oracle/.ssh/authorized_keys
 
Il faut que le répertoire pour stocker le dmpdp existe :
#sur my_oracle_hostprod
mkdir /orabackup/MYORAPRD/expdp
#sur my_oracle_host
mkdir /orabackup/MYORADEV/expdp
 
Rajout du paramétrage du "job" (non obigatoire) :
#oracle@my_oracle_host
vi /home/oracle/admin/MYORADEV/sqwConfig/sqwora_Jobs.cfg
#CopieMYSCHEMA: copie le schéma MYSCHEMA de la prod à la DEV
CopieMYSCHEMA:$gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I MYORADEV -IS MYORAPRD -US my_oracle_hostprod -O MYSCHEMA -Exec
 
Lancement par "job" (il faut que sqwora_Jobs.cfg soit paramétré) :
$gvsqw_OraBin/sqwora_RunJob.ksh -I MYORADEV -A CopieMYSCHEMA
 
Lancement direct en ligne:
$gvsqw_OraBin/sqwora_SchemaRefreshExpdp.ksh -I MYORADEV -IS MYORAPRD -US my_oracle_hostprod -O MYSCHEMA -Exec
 
Les dumps sont dans /orabackup/$ORACLE_SID/expdp :
-rw-r----- 1 oracle oinstall  4042752 Jan 27 15:06 SchemaRefreshExpdp_MYSCHEMA_MYORAPRD_20230127_150004_01_2.dump
-rw-r----- 1 oracle oinstall 159256576 Jan 27 15:06 SchemaRefreshExpdp_MYSCHEMA_MYORAPRD_20230127_150004_02_2.dump
-rw-r--r-- 1 oracle oinstall    122138 Jan 27 15:06 SchemaRefreshExpdp_MYSCHEMA_MYORAPRD_20230127_150004.log
-rw-r--r-- 1 oracle oinstall      241 Jan 27 15:00 SchemaRefreshExpdp_MYSCHEMA_MYORAPRD_expdp.par
-rw-r--r-- 1 oracle oinstall      241 Jan 27 15:00 SchemaRefreshExpdp_MYSCHEMA_MYORAPRD_impdp.par
 
Enjoy !

Version du 22 mai 2024 à 08:27

Généralités


Warning:
Avant toutes choses, n'allez pas plus loin si vous n'avez pas lu la section "Concepts dbSQWare" !.

Dans ce chapitre, on considèrera que SQWareWeb a été installé sur dbsqware@sqwarebox ...

Limites de cette section

Ce chapitre ne traite que de la configuration de l'authentification d'utilisateurs Active Directory sur un socle déjà paramétré et fonctionnel.

MODOP général connexions LDAP à votre contrôleur de domaine

Il y aura quelques informations et configurations nécessaires à cette configuration :

  • votre machine dbsqware doit pouvoir identifier les DC (Domain Controler) de votre domaine
    • soit en utilisant 1 DC ou plus en tant que server DNS
    • soit en utilisant comme serveur DNS un DNS ayant les enregistrements SRV pointant sur vos DC
  • votre machine dbsqware et vos DC doivent avoir une connectivité réseau sur les ports ldap utilisés dans votre infra (389 par défaut)
  • les utilisateurs doivent exister sur votre domaine

Identification du contrôleur de domaine

Sur la machine dbsqware avec le compte dbsqware modifier le fichier /home/dbsqware/dbSQWare/SQWareWeb/custom/authentication_custom.php

<span style="color: green">"dbsqware@vmsqwarebox" </span>
dbsqware@vmsqwarebox:/home/dbsqware/dbSQWare/SQWareWeb/custom $ vi authentication_custom.php

...
function gfsqw_connection_external_ad($lasqw_parameters)
{
        $lvsqw_error = false;
        $lvsqw_errorMSG = "";
        $lvsqw_userName = $lasqw_parameters[0];
        $lvsqw_password = $lasqw_parameters[1];

        // Server connection

        // /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\
        //           Variables : $lvsqw_ldaphost
        //                               $lvsqw_ldapport
        //       To be adapted according to the company    /   Fr: A adapter selon l'entreprise
        // /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\      /!\

        $lvsqw_ldaphost = "srvaddsw01.domain.tld";          // /!\ EXAMPLE /!\
        $lvsqw_ldapport = 389;                  // /!\ EXAMPLE /!\


        $lvsqw_ldapconnect = ldap_connect($lvsqw_ldaphost, $lvsqw_ldapport);
        ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_PROTOCOL_VERSION, 3);
        ldap_set_option($lvsqw_ldapconnect, LDAP_OPT_REFERRALS, 0);

...