Overblog Suivre ce blog
Administration Créer mon blog
24 juin 2012 7 24 /06 /juin /2012 13:58

 

STRUCTURE LOGIQUE PHYSIQUE ORACLE.

Une base de données Oracle comporte des structures logiques et des structures physiques.
Elle est constituée physiquement de plusieurs fichiers de données regroupés logiquement en Tablespace.
Chaque base de données est divisée logiquement en plusieurs Tablespaces. Le fichier de données d'un tablespace peut être stocké physiquement sur toutes les technologies de stockage pris en charge par Oracle.

Rappel : A partir de la version 10G d'Oracle, une base de données comporte au minimum deux fichiers de données appartenant aux Tablespaces SYSTEM et SYSAUX.

Structure logique et physique Oracle

Structure logique de stockage Tablespace Oracle.

Un tablespace est une unité logique de stockage dans Oracle, elle est composée d'un ou plusieurs fichiers physiques appelés fichiers de données. Les niveaux de stockages suivant dans un tablespace Oracle sont les segments, composés d'extents, composés de bloc de données Oracle.

Niveau logique de stockage Segment Oracle.

L'espace occupé par un objet dans une tablespace est appelé segment. Un segment est un ensemble d'extents alloués et appartient à un tablespace. Lorsque qu'un segment est crée, une ou plusieurs extensions lui sont attribuées.

  • Segments de données ou Segments de tables.

    Espace occupé par les tables, les données de table sont stockées dans les extents du segment de tables.
  • Segments d'index.

    Espace occupé par les index, les données des index sont stockées dans les extents du segment d'index.
  • Segments d'annulation.

    Espace temporaire utilisé pour stocker les données permettant d'annuler une transaction. Les segments d'annulation sont spécifiques au tablespace UNDO.
  • Segments temporaire.

    Espace temporaire créé par la base Oracle lorsque l'exécution d'une instruction SQL requiert une zone de travail temporaire, notamment lors d'un tri.

 

Il existe d'autres segments, les objets de schéma tels que les vues, triggers, packages qui sont stockés dans des segments de métadonnées du système.

Niveau logique de stockage Extent Oracle.

Un extent ou extension est un ensemble de blocs contigus dans l'organisation logique d'une base de données Oracle.
Un extent est composé d'un nombre de blocs de données.

Niveau logique de stockage Bloc Oracle.

Le bloc de données Oracle est le niveau le plus fin.
Le bloc de données correspond à un nombre d'octets spécifique d'espace physique sur le disque.
La taille des blocs est définie lors de la création du tablespace. C'est depuis la version 9i d'Oracle, qu'il est maintenant possible d'utiliser plusieurs tailles de bloc dans une base de données.


Exemple de structure de stockage logique.

Stockage logique des objets dans les tablespaces.

 
 SQL> SELECT tablespace_name, 2 status, 3 contents, 4 extent_management 5 FROM dba_tablespaces; TABLESPACE_NAME STATUS CONTENTS EXTENT_MAN ------------------------------ --------- --------- ---------- SYSTEM ONLINE PERMANENT LOCAL UNDOTBS1 ONLINE UNDO LOCAL SYSAUX ONLINE PERMANENT LOCAL TEMP ONLINE TEMPORARY LOCAL USERS ONLINE PERMANENT LOCAL COMPTA ONLINE PERMANENT LOCAL RMAN_CATALOG ONLINE PERMANENT LOCAL DATA ONLINE PERMANENT LOCAL TBS_DATA ONLINE PERMANENT LOCAL 

 

Exemple de structure de stockage physique.

Stockage physique des données dans les fichiers de données.

 
 SQL> SELECT name 2 FROM v$datafile; NAME ------------------------------------------------------------- C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSTEM01.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\UNDOTBS01.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\SYSAUX01.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\USERS01.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\COMPTA.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\RMAN_CATALOG_01.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\DATA.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\DATA_2.DBF C:\ORACLE\PRODUCT\10.2.0\ORADATA\DBTEST\TBS_DATA.DBF 

 

Haut de Page www.dba-ora.fr

 

Liens en rapport avec l'article qui sont susceptibles de vous intéresser
 
Repost 0
Published by Oracle SQL - dans DATABASE - PARAMETER
commenter cet article
26 avril 2012 4 26 /04 /avril /2012 23:30

 

ORACLE AUDIT - ACTIVER UN AUDIT SUR DES OBJETS ORACLE ET GERER LES TRACES.

Comment activer un audit dans Oracle.
Comment auditer et tracer une table et objets dans Oracle.
Comment faire un audit de session dans Oracle.
Comment paramétrer une trace avec SQL AUDIT.

L'Audit Oracle est l'outil de surveillance et de protection pour les administrateurs de base de données Oracle, notamment dans la détection d'activités suspectes aussi bien au niveaux des utilisateurs que des administrateurs eux-mêmes. Protection et préservation de la confidentialité des informations stockées en base sont devenues les préoccupations principales d'une DSI.

L'Audit Oracle permet de tracer les commandes DDL (CREATE TABLE, DROP TABLE, ...), les commandes DML (SELECT, DELETE, UPDATE, ...), les privilèges utilisés (SELECT ANY TABLE, CREATE TABLE, ...).

 

VOIR LES VUES D'AUDIT D'OBJECT, DE SESSION ET DE COMMANDES DANS ORACLE.

 

Pour activer un audit sur une base de données Oracle, il faut avoir le rôle DBA, un utilisateur final ne peut pas activer un audit de base.
Une multitude de Vues dans le dictionnaire de données Oracle sont disponibles pour consulter l'audit, ces vues sont principalement issues de la table SYS.AUD$, la plus générique est la vue DBA_AUDIT_TRAIL.

Vues classées par type d'Audit :

  • DBA_AUDIT_OBJECT.
    Résultats audit sur les objets de la base Oracle.

  • DBA_AUDIT_SESSION.
    Résultats audit sur connections et déconnections des utilisateurs Oracle.

  • DBA_AUDIT_STATEMENT.
    Résultats audit sur les commandes utilisateurs GRANT, REVOKE, AUDIT, NOAUDIT, ALTER SYSTEM.

 

LE MODE AUDIT DE MA BASE ORACLE EST-IL ACTIF.

Pour voir si une base est en mode audit, la méthode la plus simple est le SHOW PARAMETER audit.

 
 SQL> SHOW PARAMETER audit; NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_file_dest string C:\ORACLE\PRODUCT\10.2.0\DB_1\ ADMIN\DBHECATE\ADUMP audit_sys_operations boolean FALSE audit_trail string NONE SQL> 

Si le paramètre AUDIT_TRAIL a la valeur NONE alors la base n'est pas en mode AUDIT.
Si le paramètre AUDIT_SYS_OPERATIONS a la valeur FALSE alors la base n'est pas en mode AUDIT.

PARAMETRE AUDIT_FILE_DEST.

Si l'audit de base de données est activée, le paramètre AUDIT_FILE_DEST du fichier PFILE / SPFILE spécifie l'emplacement du répertoire adump.
Pensez à vérifier que le paramètre AUDIT_FILE_DEST est correctement renseigné car c'est dans ce répertoire ADUMP qu'Oracle va écrire les traces d'audit si l'option choisi pour AUDIT_TRAIL=os ou xml ou xml,extended.

PARAMETRE AUDIT_SYS_OPERATIONS.

AUDIT_SYS_OPERATIONS active ou désactive la vérification des opérations émises par les utilisateurs se connectant avec les privilèges SYSDBA ou SYSOPER.
Les valeurs de ce paramètre sont True ou False.
C'est dans le répertoire ADUMP qu'Oracle va écrire les traces d'audit si cette option est activée.

 

PARAMETRE AUDIT_TRAIL SYNTAXE ET OPTIONS.

AUDIT_TRAIL = { none | os | db | db,extended | xml | xml,extended }.

  • AUDIT_TRAIL=none.
    L'audit de la base de données Oracle est désactivé.

  • AUDIT_TRAIL=os.
    Activation de l'audit, la valeur os indique que toutes les traces d'audit sont dirigées vers le répertoire $ORACLE_BASE/ADMIN/$DB_UNIQUE_NAME/ADUDMP ou dans l'observateur des événements Application pour un OS Windows.

  • AUDIT_TRAIL=db.
    Activation de l'audit, la valeur db permet la redirection de tous les enregistrements dans la table de trace SYS.AUD$.

  • AUDIT_TRAIL=db,extended.
    Activation de l'audit, la valeur db,extended permet la redirection de tous les enregistrements de traces dans la table de trace SYS.AUD$ avec en supplément les colonnes SQLBIND et SQLTEXT de la table SYS.AUD$ renseignées.

  • AUDIT_TRAIL=xml.
    Activation de l'audit, la valeur xml indique une écriture de tous les enregistrements d'audit dans des fichiers au format XML dirigés vers le répertoire ADUMP.

  • AUDIT_TRAIL=xml,extended.
    Activation de l'audit, la valeur xml,extended indique l'enregistrement des traces d'audit dans des fichiers au format XML, avec les valeurs SQLBIND et SQLTEXT en supplément, le tout dirigé vers le répertoire ADUMP.

 


PREPARER L'AUDIT DE MA BASE DE DONNEES.

On active l'audit en se connectant en user sys, suivi d'un ALTER SYSTEM sur le paramètre AUDIT_TRAIL, ici SCOPE=SPFILE car j'utilise un SPFILE ( sinon il faut ajouter manuellement ce paramètre dans le fichier INIT.ORA).

 
 C:\>SET ORACLE_SID=DBTEST C:\>SQLPLUS /NOLOG SQL*Plus: Release 10.2.0.1.0 - Production on Mer. Avr. 25 22:03:32 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> CONNECT / AS SYSDBA Connecté. SQL> ALTER SYSTEM SET AUDIT_TRAIL=xml,extended SCOPE=SPFILE; Système modifié. SQL> 

Il faut redémarrer la base de données Oracle pour la prise en compte de cette commande dans les deux cas (PFILE ou SPFILE).

 
 Système modifié. SQL> SQL> SHUTDOWN IMMEDIATE Base de données fermée. Base de données démontée. Instance ORACLE arrêtée. SQL> STARTUP Instance ORACLE lancée. Total System Global Area 314572800 bytes Fixed Size 1248768 bytes Variable Size 104858112 bytes Database Buffers 205520896 bytes Redo Buffers 2945024 bytes Base de données montée. Base de données ouverte. SQL> 

 


ACTIVER L'AUDIT DE MA BASE DE DONNEES.

A cet instant, il n'y a pas d'audit en cours.
On déclenche l'audit dans Oracle avec la commande sql AUDIT, dont voici un extrait de syntaxe :

AUDIT { sql_statement_clause | schema_object_clause | NETWORK } [ BY { SESSION | ACCESS } ] [ WHENEVER [ NOT ] SUCCESSFUL ] ;

Ici, audit sur toutes les suppressions, et modifications effectuées sur la table EMP du schéma SCOTT et dont les requêtes s'exécutent avec succès.

 
 SQL> AUDIT delete, update ON scott.emp WHENEVER SUCCESSFUL; Audit réussi. SQL> 

Maintenant on fait un UPDATE et un DELETE sur cette table.

 
 SQL> UPDATE scott.emp SET ename='TEST AUDIT' WHERE ename='JONES'; 1 ligne mise à jour. SQL> COMMIT; Validation effectuée. SQL> DELETE FROM scott.emp WHERE ename='TEST AUDIT'; 1 ligne supprimée. COMMIT; Validation effectuée. SQL> 

 


TROUVER ET LIRE LES FICHIERS TRACES DE L'AUDIT ORACLE.

Lecture des fichiers AUDIT XML générés dans $ORACLE_BASE/ADMIN/$DB_UNIQUE_NAME/ADUDMP.
Aperçu de la trace à partir du fichier XML, où les commandes sql update et delete sont tracées.

Trace-xml-Audit-oracle

 


TROUVER ET LIRE LES RESULTATS D'AUDIT A TRAVERS LES VUES ORACLE.

Les Vues d'audit sont renseignées notamment, lorsque le paramètre AUDIT_TRAIL=db,extended.
Passage de la base de données en AUDIT_TRAIL=db,extended

SQL> ALTER SYSTEM SET AUDIT_TRAIL=db,extended SCOPE=SPFILE;, puis redemarrage de la base.

Lecture des traces AUDIT à partir de la vue DBA_AUDIT_OBJECT.

 
 SQL> COL owner FORMAT A7 SQL> COL obj_name FORMAT A9 SQL> COL priv_used FORMAT A19 SQL> COL sql_text FORMAT A40 SQL> SELECT owner, obj_name, priv_used, sql_text FROM DBA_AUDIT_OBJECT; OWNER OBJ_NAME PRIV_USED SQL_TEXT ------- --------- ------------------- ------------------------------- SCOTT EMP UPDATE ANY TABLE UPDATE scott.emp SET ename='TEST AUDIT' WHERE ename='JONES' SCOTT EMP DELETE ANY TABLE DELETE FROM scott.emp WHERE ename='TEST AUDIT' SQL> 

 

STOPPER, ARRETER L'AUDIT DE LA BASE ORACLE.

Il est conseillé de surveiller l'audit d'une base de données car celui ci peut générer beaucoup d'enregistrement et ralentir la base de données.
Arrêter l'audit se fait avec la commande sql NOAUDIT SQL> NOAUDIT ALL;
Remettre la base de données en mode normal : SQL> ALTER SYSTEM SET AUDIT_TRAIL=none SCOPE=SPFILE; puis redémarrage de la base.
Il est possible aussi de faire un TRUNCATE TABLE SYS.AUD$ afin de libérer de l'espace en fin d'audit.

Haut de Page www.dba-ora.fr

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
 
Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article
23 mars 2012 5 23 /03 /mars /2012 23:21

 

CREATE DATABASE ORACLE.

Comment créer une base de données Oracle avec la commande CREATE DATABASE. ?

CREATION MANUELLE BASE ORACLE 10G.

Nous allons voir ici les étapes de création Manuelle d'une base de données oracle 10g R2.
On considère que le logiciel Oracle 10g R2 est installé sur la machine. Je ne rentrerai pas dans tous les détails de paramétrages complexe, des articles supplémentaires sont disponibles sur le site (liens en fin d'article).

  • Les étapes de la création de la base de données en mode manuel.

  • Création des répertoires d'administrations et répertoire de données.
  • Création d'un fichier de paramètres texte PFILE (Parameter FILE).
  • Création du service associé à l'instance Oracle.
  • Création du fichier de paramètres serveur SPFILE (Serveur Parameter FILE).
  • Démarrage de l'Instance à l’état NOMOUNT.
  • Création de la base données à l'aide de la commande sql CREATE DATABASE.
  • Création du Dictionnaire de données.

 

 

Création des répertoires d'administrations et répertoire de données.

Les fichiers de données de la base seront créer dans C:\DBATEST\
Les fichiers de traces utilisateurs dans C:\DBATEST\admin\udump
Les fichiers de traces des processus et fichier d'alerte de l'instance dans C:\DBATEST\admin\bdump
Les fichiers de scripts de création de base de données dans C:\DBATEST\admin\create

 
 mkdir C:\DBATEST\admin mkdir C:\DBATEST\admin\bdump mkdir C:\DBATEST\admin\cdump mkdir C:\DBATEST\admin\udump mkdir C:\DBATEST\admin\adump mkdir C:\DBATEST\admin\create mkdir C:\DBATEST\admin\pfile C:\> 

 

Création du parameter file (PFile).

Le fichier de paramètre texte de la base de données sera enregistré dans C:\oracle\product\10.2.0\db_1\database\ sous le nom de initdbatest.ora
Voici le contenu du fichier PFILE de base.

 
 db_block_size=8192 db_file_multiblock_read_count=16 control_files=("C:\DBATEST\control01.ctl", "C:\DBATEST\control02.ctl") open_cursors=300 background_dump_dest=C:\DBATEST\admin\bdump core_dump_dest=C:\DBATEST\admin\cdump user_dump_dest=C:\DBATEST\admin\udump audit_file_dest=C:\DBATEST\admin\adump compatible=10.2.0.1.0 job_queue_processes=10 db_domain="" db_name=dbatest sga_target=200455552 pga_aggregate_target=96468992 processes=150 nls_language='FRENCH' nls_territory='FRANCE' undo_management=AUTO undo_tablespace=UNDOTBS1 remote_login_passwordfile=EXCLUSIVE 

 

Création Service Oracle avec la commande ORADIM.

Avec l'utilitaire Oracle ORADIM nous créons le service Windows (OracleServiceDBATEST) associé à l'instance.

 
 C:\>ORADIM -NEW -SID DBATEST -INTPWD dbatest -STARTMODE auto  -PFILE "C:\oracle\product\10.2.0\db_1\database\initdbatest.ora" -SHUTMODE immediate Instance créée. C:\> 

 

Création du fichier SPFILE (Serveur Parameter FILE)

L'avantage d'utiliser un SPFILE dés la création de la base de données c'est la possibilité de faire des modifications dynamiques des paramètres en les rendant persistantes dans le fichier de paramètre serveur.

 
 C:\>SET ORACLE_SID=dbatest C:\>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Ven. Mars 23 00:20:06 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Release 10.2.0.1.0 - Production SQL> CREATE SPFILE = 'C:\DBATEST\admin\pfile\SPFILEDBATEST.ORA'  FROM PFILE = 'C:\oracle\product\10.2.0\db_1\database\initdbatest.ora'; Fichier créé. SQL> 

 

Démarrage de l'Instance à l’état NOMOUNT

L'instance démarre en NOMOUNT (la base de données n'existe pas encore).

 
 C:\>SET ORACLE_SID=dbatest C:\>sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Ven. Mars 23 00:20:06 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connecté à : Oracle Database 10g Release 10.2.0.1.0 - Production SQL> STARTUP NOMOUNT; ORA-01081: impossible de lancer ORACLE deja en cours - fermer d'abord le thread SQL> SHUTDOWN IMMEDIATE ORA-01507: base de donnees non montee Instance ORACLE arrêtée. SQL> STARTUP NOMOUNT; Instance ORACLE lancée. Total System Global Area 201326592 bytes Fixed Size 1248092 bytes Variable Size 67110052 bytes Database Buffers 130023424 bytes Redo Buffers 2945024 bytes SQL> 

 

Création de la base de données avec la commande CREATE DATABASE.

L'ordre SQL CREATE DATABASE crée la base de données, fichiers de contrôle, de journalisation, tablespaces SYSTEM, SYSAUX, UNDO, TEMP,...

 
 SQL> CREATE DATABASE dbatest LOGFILE GROUP 1 ('C:\DBATEST\redo1.log') size 50M, GROUP 2 ('C:\DBATEST\redo2.log') size 50M, GROUP 3 ('C:\DBATEST\redo3.log') size 50M DATAFILE 'C:\DBATEST\system.dbf' SIZE 300M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL SYSAUX DATAFILE 'C:\DBATEST\sysaux.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED SMALLFILE UNDO TABLESPACE undotbs1 DATAFILE 'C:\DBATEST\undotbs1.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 1024M SMALLFILE DEFAULT TEMPORARY TABLESPACE temp TEMPFILE 'C:\DBATEST\temp01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 1024M DEFAULT TABLESPACE DATA DATAFILE 'C:\DBATEST\data_01.dbf' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE 500M EXTENT MANAGEMENT LOCAL AUTOALLOCATE NOARCHIVELOG CHARACTER SET WE8MSWIN1252 NATIONAL CHARACTER SET AL16UTF16; Base de données créée. SQL> 

 

Création Dictionnaire de données Oracle.

La base de données DBATEST est opérationnelle, cependant il manque les vues et synonymes alimentants le dictionnaire de données, mais aussi des procédures et Packages Oracle pour PL/SQL.
Nous passons donc les scripts CATALOG.SQL et CATPROC.SQL qui sont dans C:\oracle\product\10.2.0\db_1\RDBMS\ADMIN

 
 SQL> @?/rdbms/admin/catalog.sql Procédure PL/SQL terminée avec succès. SQL> @?/rdbms/admin/catproc.sql Procédure PL/SQL terminée avec succès. SQL> 

@ est une abréviation de START
? est une abréviation de "OracleHome" (c:\oracle\product\10.2.0\db_1\ dans notre cas)

 

Haut de Page www.dba-ora.fr

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Création Suppression Instance Oracle ORADIM
• Start-Stop Service et Instance Oracle avec ORADIM
• Alter System Set avec SPFILE et PFILE
• Create TABLESPACE Oracle
• Démarrer le LISTENER Oracle
• STARTUP-SHUTDOWN INSTANCE ORACLE
Repost 0
Published by Daniel R. - dans DATABASE - PARAMETER
commenter cet article
15 mars 2012 4 15 /03 /mars /2012 22:01

 

Script Lister les paramètres cachés du INIT.ORA / SPFILE Oracle.

Comment modifier un paramètre caché dans Oracle ?.
Comment voir et lister les paramètres cachés Oracle ?.
Comment connaitre la valeur d'un paramètre caché ?.

Modifier un paramètre caché d'une instance Oracle.

 
  SQL> SQL> ALTER SYSTEM SET "_optimizer_squ_bottomup" = FALSE SCOPE=BOTH; Système modifié. SQL> 

 

Voir les paramètres cachés de l'instance Oracle.

 
  SQL> REPHEADER PAGE CENTER 'ORACLE HIDDEN PARAMETERS' SQL> SET LINESIZE 80 SQL> SET PAGESIZE 900 SQL> COL NAME FORMAT A40 SQL> COL VALUE FORMAT A12 SQL> COL DEFAULT_VAL FORMAT A14 SQL> SELECT PNAME_QKSCESYROW NAME, PVALUE_QKSCESYROW VALUE, DEFPVALUE_QKSCESYROW DEFAULT_VAL FROM X$QKSCESYS ORDER BY NAME; 

 

Aperçu paramètres cachés Oracle.

 
  ORACLE HIDDEN PARAMETERS NAME VALUE DEFAULT_VAL ---------------------------------------- ------------ -------------- active_instance_count 1 1 _add_stale_mv_to_dependency_list true true _always_anti_join choose choose _always_semi_join choose choose _always_star_transformation false false bitmap_merge_area_size 1048576 1048576 _bloom_filter_enabled true true _bt_mmv_query_rewrite_enabled true true _b_tree_bitmap_plans true true _complex_view_merging true true _convert_set_to_join false false _cost_equality_semi_join true true cpu_count 2 2 _cpu_to_io 0 0 cursor_sharing exact exact _db_file_optimizer_read_count 8 8 _default_non_equality_sel_check true true _dimension_skip_null true true _disable_datalayer_sampling false false _disable_function_based_index false false _distinct_view_unnesting false false _dml_monitoring_enabled true true _dm_max_shared_pool_pct 1 1 _eliminate_common_subexpr true true _enable_dml_lock_escalation false false _enable_type_dep_selectivity true true _extended_pruning_enabled true true _fast_full_scan_enabled true true _fic_area_size 131072 131072 flashback_table_rpi non_fbt non_fbt _force_datefold_trunc false false _force_rewrite_enable false false _force_temptables_for_gsets false false _full_pwise_join_enabled true true _gby_hash_aggregation_enabled true true _generalized_pruning_enabled true true _gs_anti_semi_join_allowed true true hash_area_size 131072 131072 _hash_join_enabled true true _hash_multiblock_io_count 0 0 _improved_outerjoin_card true true _improved_row_length_enabled true true _index_join_enabled true true _left_nested_loops_random true true _like_with_bind_as_equality false false _local_communication_costing_enabled true true _local_communication_ratio 50 50 _minimal_stats_aggregation true true _mmv_query_rewrite_enabled true true _nested_loop_fudge 100 100 _new_initial_join_orders true true _new_sort_cost_estimate true true _no_or_expansion false false _oneside_colstat_for_equijoins true true _optim_adjust_for_part_skews true true _optim_enhance_nnull_detection true true _optimizer_adjust_for_nulls true true _optimizer_better_inlist_costing all all _optimizer_block_size 8192 8192 _optimizer_cache_stats false false _optimizer_cartesian_enabled true true _optimizer_cbqt_factor 50 50 _optimizer_cbqt_no_size_restriction true true _optimizer_complex_pred_selectivity true true _optimizer_compute_index_stats true true _optimizer_correct_sq_selectivity true true _optimizer_cost_based_transformation linear linear _optimizer_cost_filter_pred false false _optimizer_cost_hjsmj_multimatch true true _optimizer_cost_model choose choose _optimizer_degree 0 0 _optimizer_dim_subq_join_sel true true _optimizer_disable_strans_sanity_checks 0 0 optimizer_dynamic_sampling 2 2 _optimizer_enhanced_filter_push true true _optimizer_extended_cursor_sharing udo udo optimizer_features_enable 10.2.0.1 10.2.0.1 optimizer_features_hinted 0.0.0 0.0.0 _optimizer_filter_pred_pullup true true _optimizer_ignore_hints false false optimizer_index_caching 0 0 optimizer_index_cost_adj 100 100 _optimizer_join_elimination_enabled true true _optimizer_join_order_control 3 3 _optimizer_join_sel_sanity_check true true _optimizer_max_permutations 2000 2000 _optimizer_min_cache_blocks 10 10 _optimizer_mjc_enabled true true optimizer_mode all_rows all_rows _optimizer_mode_force true true optimizer_mode_hinted false false _optimizer_new_join_card_computation true true _optimizer_order_by_elimination_enabled true true _optimizer_or_expansion depth depth _optimizer_outer_to_anti_enabled true true _optimizer_percent_parallel 101 101 _optimizer_push_down_distinct 0 0 _optimizer_push_pred_cost_based true true _optimizer_random_plan 0 0 _optimizer_rownum_pred_based_fkr true true _optimizer_search_limit 5 5 optimizer_secure_view_merging true true _optimizer_self_induced_cache_cost false false _optimizer_skip_scan_enabled true true _optimizer_sortmerge_join_enabled true true _optimizer_squ_bottomup false true _optimizer_starplan_enabled true true _optimizer_star_tran_in_with_clause true true _optimizer_system_stats_usage true true _optimizer_transitivity_retain true true _optimizer_undo_changes false false _optimizer_undo_cost_change 10.2.0.1 10.2.0.1 _optim_new_default_join_sel true true _optim_peek_user_binds true true _ordered_nested_loop true true _or_expand_nvl_predicate true true _parallel_broadcast_enabled true true parallel_ddl_forced_degree 0 0 parallel_ddl_forced_instances 0 0 parallel_ddl_mode enabled enabled parallel_dml_forced_dop 0 0 parallel_dml_mode disabled disabled parallel_execution_enabled false false parallel_query_forced_dop 0 0 parallel_query_mode enabled enabled parallel_threads_per_cpu 2 2 _partial_pwise_join_enabled true true _partition_view_enabled true true pga_aggregate_target 94208 KB 94208 KB _pga_max_size 204800 KB 204800 KB _predicate_elimination_enabled true true _pred_move_around true true _pre_rewrite_push_pred true true _project_view_columns true true _push_join_predicate true true _push_join_union_view true true _push_join_union_view2 true true _px_broadcast_fudge_factor 100 100 _px_pwg_enabled true true _query_cost_rewrite true true _query_rewrite_drj true true query_rewrite_enabled true true _query_rewrite_expression true true _query_rewrite_fpc true true _query_rewrite_fudge 90 90 query_rewrite_integrity enforced enforced _query_rewrite_jgmigrate true true _query_rewrite_maxdisjunct 257 257 _query_rewrite_or_error false false _query_rewrite_setopgrw_enable true true _query_rewrite_vop_cleanup true true _query_rewrite_1 true true _query_rewrite_2 true true _remove_aggr_subquery true true _right_outer_hash_enable true true _rowsrc_trace_level 0 0 _selfjoin_mv_duplicates true true _simple_view_merging true true skip_unusable_indexes true true _slave_mapping_enabled true true _smm_auto_cost_enabled true true _smm_auto_max_io_size 248 KB 248 KB _smm_auto_min_io_size 56 KB 56 KB _smm_max_size 18841 KB 18841 KB _smm_min_size 128 KB 128 KB _smm_px_max_size 47104 KB 47104 KB sort_area_retained_size 0 0 sort_area_size 65536 65536 _sort_elimination_cost_ratio 0 0 _sort_multiblock_read_count 2 2 _spr_push_pred_refspr true true _sql_model_unfold_forloops run_time run_time sqlstat_enabled false false star_transformation_enabled false false statistics_level typical typical _subquery_pruning_enabled true true _subquery_pruning_mv_enabled false false _system_index_caching 0 0 _table_scan_cost_plus_one true true _union_rewrite_for_gs yes_gset_mvs yes_gset_mvs _unnest_subquery true true _update_bji_ipdml_enabled 0 0 _use_column_stats_for_function true true workarea_size_policy auto auto 184 ligne(s) sélectionnée(s). SQL>  

Haut de Page www.dba-ora.fr

 

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Liste des paramètres d'initialisation Oracle
Repost 0
Published by Daniel R. - dans DATABASE - PARAMETER
commenter cet article
10 février 2012 5 10 /02 /février /2012 20:23

 

DBA ORACLE.

C'est quoi un DBA Oracle. ?
Quels sont ses rôles, ses tâches. ?

 

Un DBA Oracle est un administrateur de base de données Oracle.
Il est responsable du bon fonctionnement des serveurs de bases de données.

Ses multiples compétences et son expertise lui permettent de concevoir, implementer, et maintenir une base de données.

  • Il définit et évalue la configuration du serveur de base de données.
  • Il installe le logiciel Oracle.
  • Il crée des bases de données Oracle.
  • Il crée les structures de stockage, les schémas et objets nécessaire au fonctionnement de la base.
  • Il migre les bases données Oracle.
  • Il ouvre, ferme les bases données Oracle.
  • Il élabore les stratégies de sécurité Utilisateur.
  • Il élabore les stratégies de Sauvegardes de la base de données.
  • Il anticipe les causes courantes de pannes.
  • Il s'assure de la redondance des composants de la base de données (RAC, STREAMS, DATA GUARD).
  • Il est en charge de la récupération des données suite à une défaillance ou panne.
  • Il surveille les performances de la base de données (TUNING).

Pour mener à bien ses tâches et exécuter pleinement son rôle, le DBA Oracle dispose d'outils tels que :

  • Oracle Universal installer (OUI).
  • Database Configuration Assistant (DBCA).
  • Database Upgrade Assistant (DBUA).
  • Oracle Net Manager (netmgr).
  • Oracle Net Configuration Assistant (NetCa).
  • Oracle Enterprise Manager (em).
  • Server Control Utility (srvctl).
  • SQL*Plus.
  • SQL*Loader.
  • Recovery MANager (RMAN).
  • Data Pump.

Haut de Page www.dba-ora.fr


Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
Repost 0
Published by Daniel R. - dans DATABASE - PARAMETER
commenter cet article
31 mars 2011 4 31 /03 /mars /2011 13:10

Vidéo Oracle Database Architecture Logique / Physique.








Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article
19 septembre 2010 7 19 /09 /septembre /2010 17:54

 

Oracle FLASHBACK Database Installation.

Comment mettre en place, installer, configurer l'option FLASHBACK DATABASE ?.

Flashback Database est disponible dans la version Oracle Enterprise.
Cette option permet une conservation de données dans des logs placés dans une zone de recouvrement sur disque. Cette technologie Oracle est différente du mode ARCHIVELOG (cependant la base doit être en mode archivelog pour utiliser cette option). Elle permet un retour arrière à un instant T (par SCN ou date/heure) sans restauration de base.

Voici les étapes nécessaire pour sa mise en place.

Configuration de la taille de la zone de recouvrement.

 

SQL> alter system set db_recovery_file_dest_size=15G;

 

Configuration de la Cible de la zone de recouvrement.

 

SQL> alter system set db_recovery_file_dest='F:\Flashback';

 

Configuration période de rétention des logs en minutes.

 

SQL> alter system set db_flashback_retention_target=2880;

 

Activation FLASHBACK DATABASE.

 

SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;

 

A cet instant la base de données est en mode FLASHBACK ON.
• Interroger le champ flashback_on de la vue V$DATABASE ( valeur à YES).
• Voir aussi les vues V$FLASHBACK_DATABASE_LOG et V$FLASHBACK_DATABASE_STAT.

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Oracle FLASHBACK QUERY TIMESTAMP
• Oracle FLASHBACK TRANSACTION QUERY
• Oracle FLASHBACK Table Restauration Globale
• FLASHBACK et DROP TABLE avec RECYCLEBIN
Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article
5 septembre 2010 7 05 /09 /septembre /2010 00:47

 

ORACLE DROP DATABASE.

Comment supprimer une base de données avec DROP DATABASE.

SUPPRESSION BASE ET INSTANCE.

Depuis la version 10G d'Oracle, il est maintenant possible de supprimer une base de données avec une commande DROP DATABASE.

Seront supprimés :

• les DATAFILES
• les REDO LOG FILES
• les CONTROLFILES
• le SPFILE

Les fichiers init.ora (PFILE) et Password File (PWDsid.ora) ne sont pas supprimés.

Se connecter as SYSDBA.

 

SQL> CONNECT / AS SYSDBA

 

Fermer la base de données Oracle.

 

SQL> SHUTDOWN ABORT

 

Monter la base de données en mode EXCLUSIVE RESTRICT.

 

SQL> STARTUP MOUNT EXCLUSIVE RESTRICT

 

Suppression de la base de données.

 

SQL> DROP DATABASE

 

Suppression de l'instance Oracle (service Oracle).

 

C:\ORADIM -DELETE -SID OracleServiceSID

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Création Suppression Instance
Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article
29 août 2010 7 29 /08 /août /2010 12:19

 

Optimiser le paramètre DB_FILE_MULTIBLOCK_READ_COUNT

La valeur de db_file_multiblock_read_count a un impact sur les performances de l'instance. L'optimiseur s'appuit sur ce paramètre qui controle le nombre de block pré-chargés dans le buffer cache durant des FULL  TABLE SCAN et INDEX FAST FULL SCAN.

A noter qu'à partir de la version 10G R2, ce paramètre peut être gérée automatiquement par Oracle. Il choisira la valeur en fonction de la taille des I/O et du cache buffer OS et des disques. Ne définissez pas ce paramètre explicitement si vous voulez qu' Oracle le gère pour vous.

Voici une petite démonstration sur comment définir, optimiser le paramètre db_file_multiblock_read_count manuellement à partir de la version 9.2 d'Oracle.


Voir la valeur de notre paramètre initial.

 

SQL> show parameter db_file_multiblock_read_count

NAME TYPE VALUE
db_file_multiblock_read_count integer 16

 

Nous activons le traçage de l'Events Level 8.

 

SQL> ALTER SESSION SET EVENTS '10046 trace name context forever, level 8';

Un fichier trace sera généré dans le dossier UDUMP.(show parameter user_dump_dest)

Effectuons une requête sur une grande table de préférence.

 

SQL> SELECT COUNT(*) FROM MaTable ;

 

Maintenant nous allons voir le fichier trace dans UDUMP.

 

WAIT #27: nam='db file scattered read' ela= 2009 file#=5 block#=492349 blocks=16 obj#=52822
WAIT #27: nam='db file scattered read' ela= 1841 file#=5 block#=492365 blocks=16 obj#=52822
WAIT #27: nam='db file scattered read' ela= 3650 file#=5 block#=492381 blocks=16 obj#=52822
WAIT #27: nam='db file scattered read' ela= 1945 file#=5 block#=492397 blocks=16 obj#=52822

Sous Oracle 9.2 le nombre de block lus sera identifié par p3=16, sous Oracle 10G c'est blocks=16 pour l'évènement 'db file scattered read'. On s'aperçoit ici que le nombre de block lus est bien de 16 (comme notre paramètre initial), mais est-ce que ce nombre est le paramètre optimal pour notre instance ? 

 

Nous allons changer le paramètre db_file_multiblock_read_count.

 

SQL> ALTER SYSTEM SET db_file_multiblock_read_count=512;

Nous mettons volontairement une valeur haute.
Nous relançons notre requête sur une grande table.
Faite un ALTER SYSTEM FLUSH BUFFER_CACHE si vous interrogez toujours la même table.

 

Retournons voir le fichier trace dans UDUMP.

 

WAIT #25: nam='db file scattered read' ela= 28381 file#=5 block#=492301 blocks=124 obj#=52822
WAIT #25: nam='db file scattered read' ela= 30666 file#=5 block#=492427 blocks=126 obj#=52822
WAIT #25: nam='db file scattered read' ela= 26819 file#=5 block#=492555 blocks=126 obj#=52822
WAIT #25: nam='db file scattered read' ela= 29500 file#=5 block#=492683 blocks=126 obj#=52822

On peut voir ici que le nombre optimal de blocks lus est 126. Nous allons donc initialiser le paramètre db_file_multiblock_read_count à 128 et arrêter la trace Events.

 

 

SQL> ALTER SYSTEM SET db_file_multiblock_read_count=128;
SQL> ALTER SESSION SET EVENTS '10046 trace name context off';

 

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• Tracer une session avec DBMS_SUPPORT
• Tracer une session avec DBMS_MONITOR
Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article
24 août 2010 2 24 /08 /août /2010 23:56

 

ALTER SYSTEM or SESSION SET RECYCLEBIN.

A partir de la version 10G d'Oracle ce paramètre RECYCLEBIN (ON/OFF) permet d'activer ou non une Corbeille. Par défaut l'option recycle bin de la base de données est active.

Lorsqu'une table est supprimée avec un DROP TABLE, Oracle la renomme et la place automatiquement dans le RECYCLEBIN du schéma user en cours.

 

Désactiver le RECYCLE BIN.

 

SQL> ALTER SYSTEM SET RECYCLEBIN = OFF ;

 

Désactiver le RECYCLE BIN au niveau SESSION.

 

SQL> ALTER SESSION SET RECYCLEBIN = OFF ;

La désactivation du recycle bin (RECYCLEBIN=OFF) ne purge pas les objets déjà présent dans la corbeille. 

 

Activer le RECYCLE BIN.

 

SQL> ALTER SYSTEM SET RECYCLEBIN = ON ;

 

ALTER SYSTEM SET n'écrit en aucun cas dans un PFILE mais dans un SPFILE

Les changements dynamiques seront effectifs mais disparaîtront en cas de redémarrage de  l'instance si vous êtes en mode PFILE, les changements ne seront pas permanents 

(Soyez vigilant en mode PFILE et enregistrez la ligne RECYCLEBIN=ON dans le PFILE (InitSID.ora)).

Liens en rapport avec l'article et qui sont susceptibles de vous intéresser
• FLASHBACK et DROP TABLE avec RECYCLEBIN
• ALTER SYSTEM SET avec SPFILE et PFILE
Repost 0
Published by Daniel Roesch - dans DATABASE - PARAMETER
commenter cet article