Oracle
Requête user
Section titled “Requête user”Lister les schéma d’une base
Section titled “Lister les schéma d’une base”select distinct owner from dba_objects where owner like '%string_to_search%';Lister les usernames d’une base
Section titled “Lister les usernames d’une base”select username from all_users where username like '%string_to_search%';Dropper un schéma
Section titled “Dropper un schéma”Drop user "&user" cascade;Lister les schémas d’une base
Section titled “Lister les schémas d’une base”select distinct owner from dba_objects where owner like '%string_to_search%';Killer une session
Section titled “Killer une session”ALTER SYSTEM KILL SESSION 'sid,serial#' IMMEDIATE;Lister les comptes vérouilllés
Section titled “Lister les comptes vérouilllés”set linesize 300COL "USERNAME" FORMAT A15COL "ACCOUNT_STATUS" FORMAT A20COL "CREATED" FORMAT A10SELECT username, account_status, created, lock_date, expiry_date, profileFROM dba_usersWHERE account_status != 'OPEN';
set linesize 300COL "USERNAME" FORMAT A15COL "ACCOUNT_STATUS" FORMAT A20COL "CREATED" FORMAT A10select username, account_status, profile, created, lock_date,EXPIRY_DATE, round(EXPIRY_DATE - SYSDATE) nb_jour_avant_expirationfrom dba_usersorder by nb_jour_avant_expiration;Changer le MDP d’un utilisateur
Section titled “Changer le MDP d’un utilisateur”alter user 'user' identified by 'new_password';Déverouiller un compte utilisateur
Section titled “Déverouiller un compte utilisateur”alter user 'user' account unlock;Gestion des profiles oracle
Section titled “Gestion des profiles oracle”COL "PROFILE" FORMAT A15COL "RESOURCE_NAME" FORMAT A30COL "RESOURCE_TYPE" FORMAT A15COL "LIMIT" FORMAT A15select * from dba_profilesConnaitre mon utilisateur et schéma actuel
Section titled “Connaitre mon utilisateur et schéma actuel”select sys_context('USERENV','SESSION_USER') current_user, sys_context('USERENV','SESSION_SCHEMA') current_schema from dual;Lister les sessions active
Section titled “Lister les sessions active”set echo offset feed offset linesize 512
column machine format a20column osuser format a10column module format a30
SELECT machine,process,osuser,username,schemaname,status,lockwait,sid,serial#,module,action FROM v$sessionWHERE username is not nullAND osuser is not nullAND STATUS != 'INACTIVE'ORDER BY machine,osuser,username,schemaname,status,module;Affichier les verrous
Section titled “Affichier les verrous”SET echo off SET feedback off SET linesize 512
prompt ----------------------- prompt - Verrous sur la base - prompt -----------------------
COLUMN sid format 999 heading "SID" COLUMN username format a10 heading "Utilisateur" COLUMN machine format a20 heading "Nom Machine" COLUMN object_name format a20 heading "Nom objet" COLUMN type format a4 heading "Type" COLUMN lmode format a20 heading "Mode de verrouillage" COLUMN request format 9999999 heading "Request Mode" COLUMN block format 9999999 heading "Lock Blocking"
SELECT s.sid sid, s.username username, s.machine machine, l.type type, o.object_name object_name, DECODE(l.lmode, 0,'None', 1,'Null', 2,'Row Share', 3,'Row Exlusive', 4,'Share', 5,'Sh/Row Exlusive', 6,'Exclusive') lmode, DECODE(l.request, 0,'None', 1,'Null', 2,'Row Share', 3,'Row Exlusive', 4,'Share', 5,'Sh/Row Exlusive', 6,'Exclusive') request, l.block block FROM v$lock l, v$session s, dba_objects o WHERE l.sid = s.sid AND username != 'SYSTEM' AND o.object_id(+) = l.id1;Lister les rôles d’un utilisateur
Section titled “Lister les rôles d’un utilisateur”COL "Utilisateur" FORMAT A25COL "Roles" FORMAT A25SELECT grantee "Utilisateur",granted_role "Roles",admin_optionFROM dba_role_privsWHERE grantee = '&1'UNION SELECT grantee "Utilisateur", granted_role "Roles", admin_option FROM dba_role_privs WHERE grantee in (SELECT granted_role FROM DBA_ROLE_PRIVS WHERE grantee = '&1');Lister les privilèges d’un rôle
Section titled “Lister les privilèges d’un rôle”COL "Roles" FORMAT A25COL "Privilege Systeme" FORMAT A40SELECT grantee "Roles" ,Privilege "Privilege Systeme",admin_optionFROM dba_sys_privsWHERE grantee in (SELECT granted_role FROM dba_role_privs WHERE grantee = '&1' UNION SELECT granted_role FROM dba_role_privs WHERE grantee in (SELECT granted_role FROM DBA_ROLE_PRIVS WHERE grantee = '&1')) ORDER BY 1 DESC;Trigger
Section titled “Trigger”Générer ordre de suppression trigger
Section titled “Générer ordre de suppression trigger”Select 'drop trigger ' || trigger_name || ';' stmt from user_triggers;Tablespace
Section titled “Tablespace”Lister les tablespaces par défaut d’un user (sysdba)
Section titled “Lister les tablespaces par défaut d’un user (sysdba)”select username,default_tablespace from dba_users where default_tablespace='TOOLS';Lister les tablespaces par défaut d’un user
Section titled “Lister les tablespaces par défaut d’un user”select default_tablespace from user_users;Lister les tablespaces + taille (Alloué - occupé - libre)
Section titled “Lister les tablespaces + taille (Alloué - occupé - libre)”clear breaksclear computesclear columnsset pagesize 50set linesize 120set heading oncolumn tablespace_name heading 'Tablespace' justify left format a20 truncatedcolumn tbsize heading 'Size (Mb) ' justify left format 9,999,999.99column tbused heading 'Used (Mb) ' justify right format 9,999,999.99column tbfree heading 'Free (Mb) ' justify right format 9,999,999.99column tbusedpct heading 'Used % ' justify left format a8column tbfreepct heading 'Free % ' justify left format a8break on reportcompute sum label 'Totals:' of tbsize tbused tbfree on reportselect t.tablespace_name, round(a.bytes,2) tbsize,nvl(round(c.bytes,2),'0') tbfree,nvl(round(b.bytes,2),'0') tbused,to_char(round(100 * (nvl(b.bytes,0)/nvl(a.bytes,1)),2)) || '%' tbusedpct,to_char(round(100 * (nvl(c.bytes,0)/nvl(a.bytes,1)),2)) || '%' tbfreepctfrom dba_tablespaces t,(select tablespace_name, round(sum(bytes)/1024/1024,2) bytesfrom dba_data_filesgroup by tablespace_nameunionselect tablespace_name, round(sum(bytes)/1024/1024,2) bytesfrom dba_temp_filesgroup by tablespace_name ) a,(select e.tablespace_name, round(sum(e.bytes)/1024/1024,2) bytesfrom dba_segments egroup by e.tablespace_nameunionselect tablespace_name, sum(max_size) bytesfrom v$sort_segmentgroup by tablespace_name) b,(select f.tablespace_name, round(sum(f.bytes)/1024/1024,2) bytesfrom dba_free_space fgroup by f.tablespace_nameunionselect tmp.tablespace_name, (sum(bytes/1024/1024) - sum(max_size)) bytesfrom dba_temp_files tmp, v$sort_segment sortwhere tmp.tablespace_name = sort.tablespace_namegroup by tmp.tablespace_name) cwheret.tablespace_name = a.tablespace_name (+)and t.tablespace_name = b.tablespace_name (+)and t.tablespace_name = c.tablespace_name (+)order by t.tablespace_name;Lister les tablespaces + fichier et status
Section titled “Lister les tablespaces + fichier et status”set linesize 200COL "STATUS" FORMAT A10COL "TABLESPACE_NAME" FORMAT A20COL "FILE_NAME" FORMAT A80SELECTFILE_ID, STATUS, TABLESPACE_NAME, FILE_NAMEFROMDBA_DATA_FILESORDER BY FILE_ID;Supprimer un tablespace
Section titled “Supprimer un tablespace”ALTER DATABASE DATAFILE 'filename' OFFLINE DROP;DROP TABLESPACE 'TableSpace';Vérifier le contenu du tablespace SYSAUX
Section titled “Vérifier le contenu du tablespace SYSAUX”select occupant_desc, space_usage_kbytes/1024 as usage_GB from v$sysaux_occupants where space_usage_kbytes > 0 order by space_usage_kbytes desc;Savoir si un tablespace est en “Autoextend”
Section titled “Savoir si un tablespace est en “Autoextend””select tablespace_name, file_name ,AUTOEXTENSIBLE,MAXBYTES,INCREMENT_BY from dba_data_files order by 1,2;Voir qui utilise le tablespace TEMP
Section titled “Voir qui utilise le tablespace TEMP”select * from v$sort_usage;Tables
Section titled “Tables”Lister les tables d’un schéma
Section titled “Lister les tables d’un schéma”==> D’un utilisateur lambda
SELECT DISTINCT OWNER,TABLE_NAME FROM all_tab_columns WHERE OWNER = ‘E_CTM’;==> D’un utilisateur système
SELECT DISTINCT OWNER,TABLE_NAME FROM dba_tab_columns WHERE OWNER = ‘E_CTM’;Lister les tables d’un utilisateur
Section titled “Lister les tables d’un utilisateur”SELECT table_name FROM user_tables;SELECT table_name FROM all_tables;all_tables : incluant les tables système (nécéssite les droits DBA)
Compter le nombre de tables d’un schéma
Section titled “Compter le nombre de tables d’un schéma”Select count(*), owner FROM ALL_TABLES group by owner;Vider une table
Section titled “Vider une table”==> Un ou plusieurs champs
Delete from [table] where ID = ‘kkechose’ ;==> Une table
Truncate table [schema].[table];Supprimer une table
Section titled “Supprimer une table”Drop table [table] cascade constraints purge;purge = pas possible de faire un rollback sur la table = suppression définitive
Générer ordre SQL “Grant Table”
Section titled “Générer ordre SQL “Grant Table””select 'GRANT SELECT ON '||owner||'.'||table_name||' to role' from all_tables where owner='user';Lister les colonnes d’une table
Section titled “Lister les colonnes d’une table”SELECT COLUMN_NAME FROM USER_TAB_COLUMNS WHERE TABLE_NAME='CONFIGURATION';Sauvegarde/Restauration RMAN
Section titled “Sauvegarde/Restauration RMAN”Connaitre les bases listés sur RMAN
Section titled “Connaitre les bases listés sur RMAN”set linesize 1000select * from rman.rc_database order by NAME;Restauration des archivelogs à partir d’un backup RMAN
Section titled “Restauration des archivelogs à partir d’un backup RMAN”rman target /
RUN{ ALLOCATE CHANNEL t1 DEVICE TYPE disk; set archivelog destination to '/appli/oracle/PCONAT/oraarch/'; restore archivelog from logseq 3490 until logseq 3495; release channel t1;}Supprimer des archlogs depuis RMAN
Section titled “Supprimer des archlogs depuis RMAN”export ORACLE_SID=XXX ; rman target /crosscheck archivelog all; # vérifier les aarchlogs connus depuis les controlfilesdelete noprompt expired archivelog all; # Expirédelete noprompt archivelog until time ‘SYSDATE-10’; # depuis une date précisedelete noprompt obsolete;delete archivelog all backed up 1 times to disk completed before 'sysdate - 4/24';Pour cette dernière commande delete , supprimer les archlogs générés depuis les 4 dernières heure et sauvegardé au moins une fois sur disque
Connaitre la quantité d’archlogs généré par jour
Section titled “Connaitre la quantité d’archlogs généré par jour” SELECT SUM_ARCH.DAY, SUM_ARCH.GENERATED_MB, SUM_ARCH_DEL.DELETED_MB, SUM_ARCH.GENERATED_MB - SUM_ARCH_DEL.DELETED_MB "REMAINING_MB" FROM ( SELECT TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY') DAY, SUM (ROUND ( (blocks * block_size) / (1024 * 1024), 2)) GENERATED_MB FROM V$ARCHIVED_LOG WHERE ARCHIVED = 'YES' GROUP BY TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY')) SUM_ARCH, ( SELECT TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY') DAY, SUM (ROUND ( (blocks * block_size) / (1024 * 1024), 2)) DELETED_MB FROM V$ARCHIVED_LOG WHERE ARCHIVED = 'YES' AND DELETED = 'YES' GROUP BY TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY')) SUM_ARCH_DEL WHERE SUM_ARCH.DAY = SUM_ARCH_DEL.DAY(+)ORDER BY TO_DATE (DAY, 'DD/MM/YYYY');Connaitre le nombre d’archlogs généré par heure chaque jour
Section titled “Connaitre le nombre d’archlogs généré par heure chaque jour” SELECT TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY') DAY, SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '00', 1, NULL)) "00-01", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '01', 1, NULL)) "01-02", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '02', 1, NULL)) "02-03", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '03', 1, NULL)) "03-04", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '04', 1, NULL)) "04-05", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '05', 1, NULL)) "05-06", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '06', 1, NULL)) "06-07", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '07', 1, NULL)) "07-08", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '08', 1, NULL)) "08-09", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '09', 1, NULL)) "09-10", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '10', 1, NULL)) "10-11", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '11', 1, NULL)) "11-12", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '12', 1, NULL)) "12-13", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '13', 1, NULL)) "13-14", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '14', 1, NULL)) "14-15", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '15', 1, NULL)) "15-16", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '16', 1, NULL)) "16-17", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '17', 1, NULL)) "17-18", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '18', 1, NULL)) "18-19", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '19', 1, NULL)) "19-20", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '20', 1, NULL)) "20-21", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '21', 1, NULL)) "21-22", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '22', 1, NULL)) "22-23", SUM (DECODE (TO_CHAR (COMPLETION_TIME, 'HH24'), '23', 1, NULL)) "23-00", COUNT (*) TOTAL FROM V$ARCHIVED_LOGWHERE ARCHIVED='YES'GROUP BY TO_CHAR (COMPLETION_TIME, 'DD/MM/YYYY')ORDER BY TO_DATE (DAY, 'DD/MM/YYYY');Datapump
Section titled “Datapump”Réaliser un export DATAPUMP
Section titled “Réaliser un export DATAPUMP”expdp \"/ as sysdba\" SCHEMAS=metier DIRECTORY=DATA_PUMP_DIR DUMPFILE=metier.dmp LOGFILE=metier.logRéaliser un import DATAPUMP
Section titled “Réaliser un import DATAPUMP”impdp \"/ as sysdba\" SCHEMAS=metier DIRECTORY=DATA_PUMP_DIR DUMPFILE=metier.dmp LOGFILE=metier.logImport avec remap schéma
Section titled “Import avec remap schéma”impdp \"/ as sysdba\" SCHEMAS=MGNADMF DIRECTORY=DATAPUMP DUMPFILE=MGNNATfull20160624.dmp LOGFILE=impdp_IQ_MGNNAT_MGNRW_280616.log REMAP_SCHEMA=MGNADMF:MGNRWTABLE_EXISTS_ACTION = SKIP | APPEND | TRUNCATE | REPLACE
Purger les données d’un schéma
Section titled “Purger les données d’un schéma”select 'DROP '||OBJECT_TYPE||' '||OWNER||'.'||OBJECT_NAME||';' from dba_objects where owner='GAGCVEILLE' and OBJECT_TYPE<>'INDEX';Purger la corbeille
Section titled “Purger la corbeille”purge dba_recyclebin;Gestion du directory DATAPUMP
Section titled “Gestion du directory DATAPUMP”create or replace directory as 'G:\..\..';
GRANT read, write ON DIRECTORY to ;
drop directory '.....' ;Monitorer les jobs DATAPUMP
Section titled “Monitorer les jobs DATAPUMP”COL OWNER_NAME FORMAT A11COL JOB_NAME FORMAT A20COL OPERATION FORMAT A11COL JOB_MODE FORMAT A9COL STATE FORMAT A12SET LINESIZE 120
Select * FROM DBA_DATAPUMP_JOBS;ou
set lines 200col owner_name format a10;col state format a11col operation like statecol job_mode like state
select owner_name, job_name, operation, job_mode, state, attached_sessionsfrom dba_datapump_jobswhere job_name not like 'BIN$%'order by 1,2;Killer les jobs DATAPUMP
Section titled “Killer les jobs DATAPUMP”PENDANT<code sql>CTRL-Cstop_job=immediateyes
APRES<code sql>set serveroutput onset lines 100declareh1 number;begin— Format: dbms_datapump.attach('[job_name]','[owner_name]');h1 := dbms_datapump.attach('SYS_EXPORT_SCHEMA_01','SYS');dbms_datapump.stop_job (h1,1,0);end;/Dropper les jobs DATAPUMP inutile
Section titled “Dropper les jobs DATAPUMP inutile”DROP TABLE SYS.SYS_IMPORT_FULL_01;DROP TABLE SYS.SYS_EXPORT_FULL_01;DROP TABLE SYS.SYS_IMPORT_SCHEMA_01;DROP TABLE SYS.SYS_EXPORT_SCHEMA_01;Monter un partage CIFS pour export DATAPUMP
Section titled “Monter un partage CIFS pour export DATAPUMP”mount.cifs //stock-ora/oradump$/RepDump /mnt/share --verbose -ouser=\<user\>,pass=\<pass\>,auto,uid=oracle,gid=dba 0 0
DISTANT LOCALVoir le transfert pendant l’export ou l’import (avec le user SYS)
Section titled “Voir le transfert pendant l’export ou l’import (avec le user SYS)”select sid, serial#, username, program, module, event, seconds_in_wait from v$session where username = 'SYS';Dataguard
Section titled “Dataguard”Vérifier la bonne réplication des archlogs
Section titled “Vérifier la bonne réplication des archlogs”==> Sur le serveur primaire
SELECT THREAD#, SEQUENCE#, ARCHIVED, APPLIED FROM V$ARCHIVED_LOG WHERE RECID IN (SELECT MAX(RECID) FROM V$ARCHIVED_LOG);==> Sur le serveur de secours
SELECT ARCH.THREAD# "THREAD", ARCH.SEQUENCE# "LAST_RECEIVED",APPL.SEQUENCE# "LAST_APPLIED", (ARCH.SEQUENCE# - APPL.SEQUENCE#) "DIFFERENCE"FROM(SELECT THREAD# ,SEQUENCE# FROM V$ARCHIVED_LOG WHERE (THREAD#,FIRST_TIME ) IN(SELECT THREAD#,MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,(SELECT THREAD# ,SEQUENCE# FROM V$LOG_HISTORY WHERE (THREAD#,FIRST_TIME ) IN(SELECT THREAD#,MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPLWHERE ARCH.THREAD# = APPL.THREAD#ORDER BY 1;Vérifier l’état des process d’archivage sur la stanby (MRP0) ou sur le primaire (LGWR)
Section titled “Vérifier l’état des process d’archivage sur la stanby (MRP0) ou sur le primaire (LGWR)”select process,status,sequence# from v$managed_standby where process='LGWR'or process='MRP0';Information membre dataguard
Section titled “Information membre dataguard”set linesize 200SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE,PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUSFROM V$DATABASE;Message du status Dataguard
Section titled “Message du status Dataguard”set linesize 150COL "MESSAGE" FORMAT 50SELECT ERROR_CODE, MESSAGE FROM V$DATAGUARD_STATUS;Vérifier qu’il n’y a aucun GAP
Section titled “Vérifier qu’il n’y a aucun GAP”select * from v$archive_gap;
Relancer la réplication des archlogs sur la STANDBY
Section titled “Relancer la réplication des archlogs sur la STANDBY”ARRETalter database recover managed standby database cancel;
RELANCEalter database recover managed standby database using current logfile disconnect from session;Faire un “switchover” sans broker (primaire puis standby)
Section titled “Faire un “switchover” sans broker (primaire puis standby)”//Sur le PRIMAIREalter database commit to switchover to physical standby with session shutdown;shutdown immediate;startup nomount;alter database mount standby database;alter database recover managed standby database disconnect from session;
//Sur le STANDBY<code sql>alter database recover managed standby database cancel;alter database commit to switchover to primary with session shutdown;alter database open;alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;```;
#### Création d'une STANDBY par réplicationPremièrement, créer l'arborescence nécessaire sur la standby (oradata, oraredolog, oraarch, oractl, admin)puis :```sqlrmanconnect target sys/change_on_install@blackconnect auxiliary sys/change_on_install@whiteEt enfin, on lance le clonage :
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE DB_FILE_NAME_CONVERT 'BLACK','WHITE' SPFILE PARAMETER_VALUE_CONVERT 'BLACK','WHITE' SET LOG_FILE_NAME_CONVERT 'BLACK','WHITE' SET DB_UNIQUE_NAME 'WHITE';Ne pas oublier de créer les redologs sur la standby
Vérifier le status FSFO
Section titled “Vérifier le status FSFO”Avec SQLPLUS
set linesize 300COL "FS_FAILOVER_OBSERVER_HOST" FORMAT A25SELECT fs_failover_status, fs_failover_current_target,fs_failover_threshold, fs_failover_observer_present,fs_failover_observer_hostFROM v$database;Avec DMGR
SHOW FAST_START FAILOVER;Temps de reconnexion FSFO
Section titled “Temps de reconnexion FSFO”Définit le temps au bout duquel l’observer considère la base primaire KO avant de basculer sur la standby
==> DMGR
EDIT CONFIGURATION SET PROPERTY FastStartFailoverThreshold = '120';==> SQLPLUS
set linesize 200COL "LAST_FAILOVER_REASON" FORMAT A25SELECT LAST_FAILOVER_TIME, LAST_FAILOVER_REASON FROM V$FS_FAILOVER_STATS;Datafile
Section titled “Datafile”Resize datafile
Section titled “Resize datafile”alter database datafile '/appli/oracle/SF0NAT/oradata01/SF0NAT_sysaux_01.dbf' resize 2048M;Ajout datafile
Section titled “Ajout datafile”alter tablespace XXXX add datafile '/appli/oracle/SF0NAT/oradata01/SF0NAT_sysaux_01.dbf' size 2048M;Redolog
Section titled “Redolog”Supprimer les redologs
Section titled “Supprimer les redologs”alter database drop LOGFILE GROUP XX;Informations détaillées sur ls redologs (ONLINE only)
Section titled “Informations détaillées sur ls redologs (ONLINE only)”set linesize 400COL "MEMBER" FORMAT A80select l.GROUP#, l.THREAD#, l.SEQUENCE#, l.BYTES, l.MEMBERS, l.STATUS, f.TYPE, f.MEMBERfrom V$LOGFILE f, V$LOG lwhere l.GROUP# = f.GROUP#order by GROUP#,MEMBER;Infos redologs complet
Section titled “Infos redologs complet”select * from v$logfile;Status redologs
Section titled “Status redologs”set linesize 200SELECT GROUP#, BYTES, STATUS, 'ONLINE' AS TYPE FROM V$LOGUNIONSELECT GROUP#, BYTES, STATUS, 'STANDBY' AS TYPE FROM V$STANDBY_LOGORDER BY 1;Spfile et Controlfile
Section titled “Spfile et Controlfile”Editer un fichier controlfile pour analyse
Section titled “Editer un fichier controlfile pour analyse”ALTER DATABASE BACKUP CONTROLFILE TO TRACE AS '/u01/control.bkp'Générer un fichier init ou spfile
Section titled “Générer un fichier init ou spfile”create pfile from spfile='/home/oracle/admin/OPHNAT/dbs/spfile.ora'create spfile from pfile='/home/oracle/admin/OPHNAT/dbs/pfile.ora'en cas de perte du paramètre SPFILE, on peux générer un PFILE depuis la mémoire
create pfile from memory
Savoir si la base a démarré avec le pfile ou le spfile
Section titled “Savoir si la base a démarré avec le pfile ou le spfile”SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type" FROM sys.v_$parameter WHERE name = 'spfile';Inclassable
Section titled “Inclassable”Générer un rapport AWR
Section titled “Générer un rapport AWR”SQL> @?/rdbms/admin/awrrpt.sql
html ou text1er param : Nb de rapport à afficher pour sélection ( en jour ) depuis maintenant2eme param : Snapshot début3eme param : Snapshot finSupprimer les anciens rapport AWR
Section titled “Supprimer les anciens rapport AWR”connect / as sysdba@?/rdbms/admin/catnoawr.sql@?/rdbms/admin/catawrtb.sql
Afficher et modifier les paramètres système
Section titled “Afficher et modifier les paramètres système”SQL> show parameterSQL> ALTER SYSTEM SET [Param] = [valeur] | [COMMENT='texte'] [DEFERED] [SCOPE=MEMORY|SPFILE|BOTH];Afficher le dernier reboot de la base
Section titled “Afficher le dernier reboot de la base”set pagesize 300set linesize 300select to_char(startup_time, 'HH24:MI DD-MON-YY') "Startup time"from v$instanceConnaitre les paramètres de langue
Section titled “Connaitre les paramètres de langue”select * from nls_database_parameters where parameter IN (‘NLS_LANGUAGE’,'NLS_TERRITORY’,'NLS_CHARACTERSET’);
Personnaliser son SQLPLUS
Section titled “Personnaliser son SQLPLUS”SET sqlprompt "&_USER@&_CONNECT_IDENTIFIER &_PRIVILEGE> "Formater affichage SQLPLUS
Section titled “Formater affichage SQLPLUS”COLUMN 'nom_colonne' FORMAT A30;Lister les objets invalide
Section titled “Lister les objets invalide”SET ECHO OFFSET HEADING ONSET LINESIZE 1800SET PAGESIZE 50000
COL owner FORMAT a25 HEADING 'Owner'COL object_name FORMAT a30 HEADING 'Object Name'COL object_type FORMAT a20 HEADING 'Object Type'COL object_id FORMAT a20 HEADING 'Object ID'COL status FORMAT a10 HEADING 'Status'
BREAK ON owner SKIP 2 ON reportCOMPUTE count LABEL "" OF object_name ON owner
SELECT owner , object_name , object_type , status , object_idFROM dba_objectsWHERE status <> 'VALID'ORDER BY owner, object_name/Status de la registry Oracle (catproc,catlog)
Section titled “Status de la registry Oracle (catproc,catlog)”set pages 1000set lines 120col comp_id format a20col comp_name format a40col version format a10col status format a15select comp_id,comp_name,version,status from dba_registry order by 1;Mode d’ouverture de la base (ALLOWED ou RESTRICT)
Section titled “Mode d’ouverture de la base (ALLOWED ou RESTRICT)”Au démarrage
startup restrictQuand la base est OPEN
alter system enable restricted session;Faire un retour arrière
alter system disable restricted session;Vérifier le retour à la normal
SELECT logins from v$instance;Connaitre les options oracle activés
Section titled “Connaitre les options oracle activés”A l’installation
set pagesize 100set page offCol parameter format a50 heading "Option"Col value format a5 heading "Value" justify center wrapSelect parameter, valuefrom v$optionorder by 2 desc/A l’utilisation
Set feedback offSet linesize 122Col name format a45 heading "Feature"Col version format a10 heading "Version"Col detected_usages format 999,990 heading "Detected|usages"Col currently_used format a06 heading "used"Col first_usage_date format a10 heading "First use"Col last_usage_date format a10 heading "Last use" select name, version, detected_usages, currently_used, to_char(first_usage_date,'DD/MM/YYYY') first_usage_date, to_char(last_usage_date,'DD/MM/YYYY') last_usage_datefrom dba_feature_usage_statisticswhere name in ('Data Mining','Oracle Database Vault','Label Security') or name like ('OLAP%');Afficher les services applicatifs oracle
Section titled “Afficher les services applicatifs oracle”En tant que DBA
COL "FAILOVER_METHOD" FORMAT A15COL "FAILOVER_TYPE" FORMAT A15COL "NAME" FORMAT A15COL "EDITION" FORMAT A15COL "ENABLED" FORMAT A15COL "DTP" FORMAT A5select * from dba_services;Sans droits DBA
COL "NETWORK_NAME" FORMAT A15select * from v$services;Personnaliser son SQLPLUS
Section titled “Personnaliser son SQLPLUS”SET sqlprompt "&_USER@&_CONNECT_IDENTIFIER &_PRIVILEGE> "