mercredi 15 décembre 2010

Migration d'une base windows vers linux et vise-versa

J'ai envie de partager avec vous, l'une de mes expériences de migration ORACLE. L'objectif étant de migrer une base oracle de Windows vers linux.

Cas d'étude :
Système cible : Linux 5u3 32bit
Système source : Win 2003 32bit

Avant de commencer, vérifier le format Endian de votre système source.
Vous remarquez que les deux systèmes (windows et linux) disposent du même format endian.

Prochaine étape, récupérer le nom et le type de la plateforme cible.


Avant de vous lancez dans l'aventure, vérifier la possibilité de migration de la base à l’aide du package dbms_tdb.check_db.

Si le package renvoi la valeur False, la base de données ne peut être transportée et dans ce cas vous devez utiliser une autre méthode (e.g. TRANSPORTABLE TABLESPACE) à la place de la conversion de base moyennant RMAN.
 
 Ensuite, vérifier l’existence et le format des tables externs, directory et BFILE, en utilisant le package dbms_tdb.check_external.

cette ensemble de données externes seront à recréer après migration, car rman ne sais pas les transporter.


Créer un dossier destiné à héberger les datafiles en format converti.

$mkdir converted 



Démarrer la base en mode lecture seul, pour garantir la consistance des données.



On y est, nous allons utiliser maintenant la commande de conversion, pour migrer la base vers notre système cible.

$rman target /
Notre que le script transport.sql, servira plus tard pour lancer la création de la base au niveau du système cible.

Générer le fichier d’initialisation de la base.

Au niveau du système vérifier la création des fichiers récemment convertis

$dir  c:\converted

Puis, transférer les fichiers vers le système cible via les outils système (cp, ntfs, ftp …)

Créer un dossier au niveau de serveur cible "linux", pour y mettre l’ensemble des fichiers générés.

Créer les dossiers d’administration oracle, dumps et flash_recovery. Nécessaires pour la création de la base cible.

cd $ORACLE_HOME
mkdir admin
cd admin
mkdir lindb
cd lindb
mkdir adump bdump cdump udump
cd ../../
mkdir flash_recovery_area
mkdir oradata
mkdir lindb

copier l’ensemble des fichiers de données “*.dbf”, vers le dossier créé.

cp c:\converted\*.dbf $ORACLE_HOME/oradata/lindb/

Il ne vous reste plusn qu’à adapter le fichier d’initialisation pfile.ora ainsi que le script transport.sql à votre nouvel environnement pour refléter la structure de la nouvelle arborescence.

Amusez-vous !!!

Lancer le script transport.sql depuis une session sqlplus

$export ORACLE_SID=lindb
Sqlplus / as sysdba
SQL>@c:\coverted\transport.sql

une fois la création terminée, fait une vérification final

SQL>select COUNT(*) "ERRORS DURING RECOMPILATION" from utl_recomp_errors;

ERRORS DURING RECOMPILATION
---------------------------
                          0

Et voilà,

SQL> select name, open_mode from v$database;

NAME      OPEN_MODE
--------- ----------
LINDB     READ WRITE

Enjoy !!!





A suivre, opérations d'après migration (cas linux vers windows)....

vendredi 29 octobre 2010

Destination auxiliaires pour vos journaux archive

Oracle nous offre la possibilité de spécifier des destinations dites «alternatives» pour les journaux d'archives au cas où la destination principale devient pleine. Vous pouvez activer cette fonctionnalité en définissant le paramètre log_archive_dest comme suit :

log_archive_dest_1='location=+FRA REOPEN=0 MANDATORY alternate=log_archive_dest_2'
log_archive_dest_2='location=/second_emplacement MANDATORY'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ALTERNATE

L'une configuration souvent utilisée consistait à utiliser la zone de récupération rapide comme destination principale et une destination NFS en tant que destination pour les archives logs alternatives.

Utilisation des Large Pages pour Oracle sous Windows 64-bit

La configuration suivante est nécessaire pour utiliser les "Large Pages" sous windows :

1. Démarrer> Paramètres> Panneau de configuration
2. Cliquez sur Outils d'administration.
3. Cliquez sur Stratégie de sécurité locale.
4. Développez la branche des Stratégies locales, puis sélectionnez Attribution des droits utilisateur.
5. Sélectionnez Verrouiller les pages en mémoire et de choisir l'action > Sécurité ...
6. Cliquez sur Ajouter ...
7. Sélectionnez le nom d'utilisateur qui a été utilisé pour installer Oracle et le groupe ORA_DBA dans la liste des noms.
8. Cliquez sur Ajouter.
9. Fermer la boite de dialogue "Sélectionnez Utilisateurs ou groupes" en appuyant sur OK
10. Cliquez sur OK pour fermer la boite de dialogue "Configuration de stratégie de sécurité".
11. Ouvrez Regedit
12. Accédez à la branche : HKEY_LOCAL_MACHINE \ SOFTWARE \ ORACLE \ KEY_OraDb10g_home
13. Créer une clé de registre (REG_SZ) nommée ORA_LPENABLE ayant comme valeur 1
14. Redémarrez le serveur.

Voilà c'est fini.

mercredi 13 octobre 2010

Patcher un serveur Weblogic ne disposant pas d'une connexion internet


L'outil SmartUpdate permet d'appliquer les patchs sur une plate forme Weblogic. Pour faire, il suffit de suivre les étapes de ce poste.
Pour commencer télécharger le patch en utilisant SmartUpdate depuis une machine ayant accès à Internet.

Remarque : La machine ayant accès à Internet doit avoir la même version de WebLogic Server en cours d'exécution sur votre environnement cible, mais elle n'a pas à avoir le même système d'exploitation ou type de machine.

Copiez les fichiers composants le patch (ex. E5W8.jar et WGQJ.jar) ainsi que le fichier patch-catalog.xml sur le serveur cible.

L'ensemble des fichiers doivent êtres déposés sur le dossier $BEA_HOME/utils/bsu/cache_dir (si celui-ci n'existe pas, créer le).

Exécuter l'outil SmartUpdate en mode hors ligne pour appliquer les patchs.

./bsu.sh -prod_dir= -patchlist= -verbose -install

 Ex :
./bsu.sh -prod_dir=/opt/bea/weblogic92 -patchlist=E5W8 -verbose -install
./bsu.sh -prod_dir=/opt/bea/weblogic92 -patchlist=WGQJ -verbose -install

Pour lister/vérifier les patchs installés sur votre environnement, il suffit d'utiliser la commande suivante.

./bsu.sh -prod_dir= -patch_download_dir= -status=applied -verbose -view
Ex :
./bsu.sh -prod_dir=/opt/bea/weblogic92 -status=applied -verbose -view

mercredi 29 septembre 2010

Assurer la sauvegarde de la base XE

En navigant dans l'arborescence de la base oracle XE, je suis tombé sur un script de backup à base de RMAN écrit par oracle.

Si vous souhaitez mettre en place une stratégie de sauvegarde. Cet article est pour vous.

Avant de commencer, nous allons activer le mode de l'archivage pour le mettre à ARCHIVLOG (si ce n'est pas déjà le cas de votre base).

[oracle@mayara ~]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Sun May 25 01:28:00 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

SQL> connect / as sysdba
Connected.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  289406976 bytes
Fixed Size                  1258488 bytes
Variable Size              92277768 bytes
Database Buffers          192937984 bytes
Redo Buffers                2932736 bytes
Database mounted.
SQL> alter database archivelog;

Database altered.

SQL> alter database open;

Database altered.

SQL>

Pour vérifier le mode d'archivage qu'utilise votre base, il suffit de faire ce qui suit.

SQL> SELECT LOG_MODE FROM SYS.V$DATABASE;

LOG_MODE
------------
ARCHIVELOG

SQL> 


Exécuter la sauvegarde initiale


Sous windows

============   
 Lancer la commande $ORACLE_HOME/bin/backup.bat

Sous Linux
==========

Exécuter la commande $ORACLE_HOME/config/scripts/backup.sh

[oracle@mayara ~]$ $ORACLE_HOME/config/scripts/backup.sh 
Doing online backup of the database.
Backup of the database succeeded.
Log file is at /usr/lib/oracle/xe/oxe_backup_current.log.
Press ENTER key to exit
[oracle@mayara ~]$ 

Sauvegardes quotidiennes

Sous Windows ajouter le répertoire $ORACLE_HOME/bin/backup.bat à un planificateur de tâches.
  •  Assurez-vous que l'utilisateur qui exécute la tâche est le même ayant installé Oracle.
Sous Linux ajouter les $ORACLE_HOME/config/scripts/backup.sh à la cron.daily
  •   Supprimer la ligne de notification de l'utilisateur se trouvant à la fin du script. 
Sauvegarde des binaires


Assurez-vous que votre script sauvegarde le répertoire $ORACLE_HOME

N.B : Exclure le répertoire oradata sous Window pour eviter le problèmes de verrouillage de fichier.






jeudi 23 septembre 2010

Comment puis-je recréer mon inventory ORACLE

Comme vous le savez l'oraInventory est une pièce maîtresse dans toutes les installations oracle. En effet elle va permettre à oracle d'effectuer un suivi et une collecte d'informations concernant les produits installés.

Lors de cette article, je vais détailler la procédure de recréation de l’oraInventory, suite à une corruption ou perte

Cas Windows

Par défaut l'inventaire oracle est installé au niveau du dossier "C:\Program Files\Oracle\Inventory" de votre machine windows

La clé du registre "inst_loc", indique l'emplacement de création l'inventory

Pour chercher la clé
   1. Cliquez sur Démarrer>exécuter
   2. Tapez "regedit" et valider
   3. Naviguer à la branche HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE
   4. Identifier la valeur de la clé "inst_loc"


  Cas Unix/Linux

Le chemin d'installation de l'inventaire est référencé au niveau du fichier /etc/oraInst.loc (Unix et Linux) ou /var/opt/oracle/oraInst.loc (Plateforme spécifique)

Si le fichier "orainst.loc" n'existe pas créer le avec le contenu suivant.

inventory_loc=
inst_group= 
EX :
inventory_loc=/opt/oracle/product/10.2.0.4/db
inst_group=dba

Positionnez vous au niveau du dossier ORACLE_HOME comme suit
cd $ORACLE_HOME/oui/bin

Attacher le HOME à l'aide de la commande

./runInstaller -silent -ignoreSysPrereqs -attachHome ORACLE_HOME="<votre oracel home>" ORACLE_HOME_NAME="
<votre home name>"

Noter que cette commande doit être exécutée pour chaque home si vous en avez plusieurs.

samedi 15 mai 2010

Surveiller la progression d'une restauration RMAN longue




Dans ce poste je vais vous aidez à répondre à la question suivante.


Comment puis-je surveiller la progression de ma restauration RMAN qui est en cours d'exécution? 


Chose utile lors d'une longue opération de restauration pour avoir l'estimation sur le temps d'achèvement ou aussi pour connaitre le pourcentage accomplit. (Ainsi vous allez pouvoir profiter de la caféine en attendant ;) la fin de l'opération)



Pour faire il suffit d'exécuter le script suivant :
  
alter session set nls_date_format='dd/mm/yy hh24:mi:ss'
/
select SID, START_TIME,TOTALWORK, SOFAR, (sofar/totalwork) * 100 Done,
sysdate + TIME_REMAINING/3600/24 WILL_END_AT
from v$session_longops
where totalwork > sofar
AND opname NOT LIKE '%aggregate%'
AND opname like 'RMAN%'
/

vendredi 30 avril 2010

Changer l'OMS et le référentiel d'un agent oracle grid control

Cet article vous invite à découvrir la méthode vos permettant le changement de l'oms d'un agent grid précédemment installé.

L'opération de changement se déroule en deux phases.

Phase 1 : Supprimer l'agent de l'ancien OMS

  • L'agent en question doit être démarré et avoir un statut up
  • Depuis le grid, supprimer l'ensemble des cibles excepté (le host et l'agent) du serveur à supprimer
  • Arrêter l'agent sur le serveur supervisé
  • Supprimer le serveur depuis les cibles de l'interface grid
  • Supprimer l'agent depuis l'interface grid

Phase 2: Réconcilier l'agent avec le nouvel OMS

  • Editer le fichier $ORACLE_HOME/sysman/config/emd.properties pour modification
  • Modifier la valeur du paramètre REPOSITORY_URL, pour la faire pointer sur l'url du nouvel OMS (le protocole doit être en  HTTP non en HTTPS)
  • Modifier la valeur du paramètre EMD_URL en utilisant le protocole HTTP
  • Pour finir, ajuster les valeurs des variables emdWalletSrcUrlemdWalletDest properties et
  • Supprimer les fichiers suivant :
rm -r $ORACLE_HOME/sysman/emd/state/*
rm -r $ORACLE_HOME/sysman/emd/collection/*
rm -r $ORACLE_HOME/sysman/emd/upload/*
rm $ORACLE_HOME/sysman/emd/lastupld.xml
rm $ORACLE_HOME/sysman/emd/agntstmp.txt
rm $ORACLE_HOME/sysman/emd/blackouts.xml
rm $ORACLE_HOME/sysman/emd/protocol.ini
  • Lancer la commande $ORACLE_HOME/bin/emctl clearstate agent depuis le HOME de l'agent
  • Sécuriser l'agent avec la commande $ORACLE_HOME/bin/emctl secure agent
  • Démarrer l'agent $ORACLE_HOME/bin/emctl start agent
  • Forcer une opération d'upload à l'aide de la commande $ORACLE_HOME/bin/emctl upload agent
L'agent et le host doivent apparaitre au niveau du nouvel OMS.