Mémento des commandes DBA ORACLE
Par Benjamin LISAN – créé le 2 janvier 2000- mise à jour le 28 octobre 2005.
1 Introduction 2
2 Fichiers de configuration SQLNET V2.0 avec Oracle 7.3.4 2
3 Augmenter la taille d’un datafile 2
4 Réparation d’une base en cas de la perte d’un fichier datafile 2
5 Réparation d’une base si fichier “.ctl” est cassé (en Oracle 7.3.4.) 2
6 Réparation d’une base dont l’un des fichiers de journalisation « …log …rdo » a été supprimé par erreur (Oracle 7.3.4) 3
7 Réparation d’une base en cas de perte du fichier redolog ONLINE 4
8 Problème d’extension de tablespace : Ajout d’un fichier à un tablespace en Oracle 7.1.6 & 7.3.4 4
9 Export d’une liste de tables 5
10 Export/import d’une base d’une machine vers une autre, en changeant le nom des tablespaces 6
11 Effacement par erreur du datafile avant de faire le drop de la tablespace associée 6
12 Exemples de commandes DBA Oracle 7
13 Exemple de type de démarrages et d’arrêt d’une base Oracle 7
14 En cas d’une erreur ORACLE mentionnant RESETLOGS lors d’un database open 7
15 Mettre une base Oracle en archive log 7
16 Pour faire une sauvegarde manuelle de type archive log 8
17 Voir des cessions (leurs locks …) 8
18 Erreurs lors du lancement de la base (fichiers de contrôle perdu) 8
19 Changement de place d’un datafile 8
20 Si erreur Oracle : log on line non disponible (ORA-00313 ou ORA-00322) 9
21 Rétablir le mot de passe du login “system” 9
22 Création d’un fichier mot de passe 9
23 Suppression de la limite « maxextents » pour tables et indexes 9
24 Déplacer un datafile d’un répertoire à un autre 9
25 Commandes diverses 10
25.1 Script DOS pour transfert ftp à partir de machine NT 10
26 Contourner une limite de taille à la création d’un fichier d’export 10
27 Vérification de l’état de la base de donnée 11
28 Commande NT pour savoir quell process lock un fichier 11
29 Installation d’un patch ORACLE 11
30 Tests sql*net 12
31 Divers : mount sur AIX 12
32 Mot de passe 12
33 Chargement de données par SQL*LOADER 12
34 Arrêt / démarrage du « listener » Oracle 13
35 Analyze de la base 13
36 Support Oracle 13
37 recompilation d’un package 13
38 Arrêter / relancer un base bloquée grâce à la commande “sysresv” 15
39 LANGUE : NLS_LANG … 15
40 Dimensionner un tablespace d’annulation (undo) en v9 16
41 Affichage de toutes les informations sur les rollback segments en V8 16
Ce document a été prévu pour les cas de perte de données (datafile), du redolog (online), d’un fichier de contrôle (ctl), d’un rollback segment, du tablespace system, fichier, d’altération de bloc de données ….
L’organisation de ce document est purement historique.
a) listener.ora
(il se trouve dans /XXXX/oracle/network/admin ou dans /XXXX/oracle/tnsadmin ).
Ce fichier liste les bases de données visibles de SQLNET.
b) tnsname.ora
Ce fichier liste les clients Oracle (pour SQLNET) (un nom de service = une base ???) ???.
Dès qu’on modifie un de ces fichiers, il faut relancer le démon listener SQLNET V2.
lsnrctl reload (ou bien “lsnrctl stop” puis “lsnrctl start” ).
set pages 10
select * from v$tablespace;
select name, bytes , ts# from v$datafile;
(pour calculer la taille du “datafile”), ou bien :
select tablespace_name, file_name, bytes from dba_data_files where tablespace_name='EPT_TS_DATA1'
alter database datafile '/ora_data_tbl/eptidbo/epti_data001.dbf' resize 800 M ;
(alter tablespace USER_DATA autoextend unlimited;) (???).
Voici la procédure de restauration à appliquer :
- open database : STARTUP MOUNT;
- fichier offline : ALTER DATABASE DATAFILE OFFLINE;
- ALTER DATABASE OPEN;
- Restauration fichier : RECOVER DATAFILE; (après message : recover complete).
- Activer fichier de données : ALTER DATABASE DATAFILE ONLINE;
Note : existe aussi « recover tablespace » et « recover database », pour le cas de la restauration de plusieurs fichiers de données (à utiliser avec prudence).
En cas de perte d’un fichier de contrôle, restauration possible :
- => si existe un miroir du fichier de contrôle perdu.
- => si existe une trace du fichier de CTL => ce qui permet de recréer le fichier de CTL.
Exemple de procédure de restauration :
Par exemple, si on a, par exemple les messages :
ORA-01110 : data file 1 : ‘/data_3/…./system_1.dbf’
ORA-01207 : file is more recent than control file.
on ne démarre que sur le 2° control file, en supprimant le 1er « control file », précisé dans le fichier « initXXX.ora ».
svrmgrl
connect internal ;
startup mount;
select * from v$log;
group sequence
67
65
66
select * from v$logfile;
/data_1/oracle_gret/gret_log_3_1.rdo
(note : ici avec cette commande, on voit s’afficher une liste de “logfiles” (liste de chemins _ paths _ absolus et fichiers unix).
select * from v$recover_file;
sequence# change#
select * from v$log_history;
sequence#
1er essai de “recover” de la base :
recover database until cancel using backup controlfile ;
(note : prompt affiché : <RET> = suggested | filename | AUTO | CANCEL )
On choisit alors “AUTO” (et non “OK”).
2ème essai de “recover” de la base :
Au : prompt affiché : « <RET> = suggested … », le réponds par le nom du fichier log, par exemple, par le « filename » : /data_3/oracle_gret/gret_log_1_2.rdo
(note : si les messages suivants, ci-dessous, s’affichent, alors l’opération est réussie :
log appli
Media recovery completed ).
Alter database open resetlogs ;
(note : on doit alors voir s’afficher le message : « statement processed ).
Test de fonctionnement de la base :
Select * from dba_freespaces ;
Shutdown immediate ;
Copie du 2ème “control file” sur le 1er (sur celui qui était “vérolé”).
Restauration du fichier « initXXX.ora », spécifiant les 2 fichiers « control file » employés.
Redémarrage de la base Oracle : startup open
shutdown immediate ;
archive log liste ; (???)
alter system [disable | enable ] restricted session ;
recover database until cancel ;
alter database open resetlogs;
startup open;
Test fonctionnement de la base : select * from dual;
=> procédure de restauration à appliquer :
- arrêt database : - shutdown
- suppression redolog : - rm …
- relance et montage BD : - statup mount
- restauration de la BD : - recover database (archive fic. Log)
- ouvrir BD avec recreation de log : - alter database open resetlogs
- sauvegarde physique de la base arrêtée.
connect internal
alter tablespace TEMP_1 add datafile ‘xxx/MIDV_temp_1.dbf’ size 20M ;
alter tablespace TEMP_1 default storage (initial 1M next 1M pctincrease 0);
select * from dba_tablespaces;
select tablespace_name, filename, bytes from dba_data_files ;
Ajout d’un “datafile” à un tablespace existant :
Svrmgrl
connect / as sysdba ;
ALTER TABLESPACE nom_tablespace ADD DATAFILE ‘xxx.dbf’ SIZE 20M ;
ALTER TABLESPACE TEMP_1 DEFAULT STORAGE (INITIAL 1M NEXT 1M PCTINCREASE 0);
SELECT * FROM DBA_TABLESPACE ;
Recherche de doublons dans une table :
Select col from table having(col) > 1 group by col ;
=> Exemple d’options de l’import d’Oracle :
imp system/manager file=expdat.dmp destroy=y full=y ignore=y log=expdat.log
=> Exemple d’options de l’export d’Oracle :
(exemple du contenu d’un script d’export : export_db ).
export NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export ORACLE_HOME=/oracle/9.2.0
export PATH=$ORACLE_HOME/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/sgbd/oracle/bin:/
usr/bin/X11:/sbin:.
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TNS_ADMIN=/oracle/9.2.0/network/admin
export ORACLE_SID=PILOAP
exp system/manager full=yes compress=yes file=/ora_data_tbl/piloap/exppilo.dmp log=/util/admindb/pilo/ap/expilo.log statistics=none grants=yes indexes=yes
Sur NT, script exp_PILDBO.BAT dans c:\UTIL\ADMINDB\PIL\OPER :
REM
set ORACLE_SID
dir E:\data\pildboPROD.dmp
pause
set ORACLE_SID=PILO
c:\orant\bin\exp73.exe system/manager full=yes compress=yes file=E:\data\pildboPROD.dmp log=C:\ORANT\expildboPROD.log statistics=none grants=yes indexes=yes
=> Exemple de fichier ‘parfile’ pour l’import d’Oracle :
login/passe
indexfile=creix.sql
file=expdat.dmp
(full=Y)
(from use=c)
(log=imp.log)
...
musli_com