Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

Le dernier Mohican - The last Mohican - Page 5

  • Taille des fichiers unix

    du -ms expdp_$ORACLE_SID_20190* | awk '{ total += $1 }; END { print total }'

     

     

  • Lister la taille des blobs partitionnés

    La requête suivant permet de te lister la taille des partitions qui contiennent des LOBS  :

     

    SELECT DS.TABLESPACE_NAME, SEGMENT_NAME,PARTITION_NAME,ROUND(SUM(DS.BYTES)/(1024 * 1024)) AS MB
    FROM DBA_SEGMENTS DS
    WHERE
    DS.TABLESPACE_NAME not in ('SYSAUX','SYSTEM')
    AND
    SEGMENT_TYPE='LOB PARTITION'
    GROUP BY DS.TABLESPACE_NAME,SEGMENT_NAME,PARTITION_NAME
    ORDER BY 4;

    La requête suivante permet de te lister la taille des partitions pour le segment TOTO : 

    SELECT DS.TABLESPACE_NAME, SEGMENT_NAME, ROUND(SUM(DS.BYTES) / (1024 * 1024)) AS MB
    FROM DBA_SEGMENTS DS
    WHERE SEGMENT_NAME ='TOTO'
    GROUP BY DS.TABLESPACE_NAME,
    SEGMENT_NAME;

    Je ne suis pas un escroc, je suis un opportuniste...

  • Suppression des objets pour un schéma

    begin
    for f in (select table_name from user_tables) loop
    execute immediate 'drop table "'||f.table_name||'" cascade constraints';
    end loop;
    for f in (select object_type, object_name from user_objects
    where object_type in ('SEQUENCE','VIEW','FUNCTION','PROCEDURE','PACKAGE','SYNONYM','DATABASE LINK')) loop
    execute immediate 'drop '||f.object_type||' "'||f.object_name||'"';
    end loop;
    for f in (select type_name from user_types) loop
    execute immediate 'drop type "'||f.type_name||'" force';
    end loop;
    end;

    /

  • Tuner une requête Oracle

    http://www.br8dba.com/tag/manually-run-sql-advisor/#2

  • Repasser le code

    LeCode

  • Agrandir datafile avant import


    define TBS='SIM_SIM_LOB01'
    define DFSZ='10000M'
    select 'Alter database datafile '''||FILE_NAME||''' resize '||'&DFSZ'||';' from dba_data_files where TABLESPACE_NAME like '&TBS' order by FILE_NAME;

  • Déplacer des objets de type LOB dans le bon tabespace (LOB)

    SET serveroutput ON;
    DECLARE
    ordre_sql VARCHAR2(32000 CHAR);
    nomTable VARCHAR2(200 CHAR);
    nomColonne VARCHAR2(200 CHAR);
    nomSchema VARCHAR2(200 CHAR) := 'JOJO';
    BEGIN
    DBMS_OUTPUT.ENABLE(1000000);
    FOR lob_cols IN (
    SELECT table_name nomTable, column_name nomColonne FROM ALL_TAB_COLS
    WHERE data_type LIKE '%LOB%'
    AND owner = nomSchema
    AND table_name IN (SELECT table_name FROM ALL_TABLES WHERE partitioned = 'NO' AND TEMPORARY = 'N')
    )
    LOOP
    ordre_sql := 'ALTER TABLE '||nomSchema||'."'
    || lob_cols.nomTable
    || '" MOVE LOB('
    || lob_cols.nomColonne
    || ') STORE AS SECUREFILE (TABLESPACE JOJO_LOB01 NOcompress);';
    --EXECUTE IMMEDIATE ordre_sql;
    DBMS_OUTPUT.PUT_LINE(ordre_sql);
    END LOOP;
    COMMIT;
    EXCEPTION
    WHEN NO_DATA_FOUND
    THEN
    DBMS_OUTPUT.PUT_LINE('Il faut créer le tablespace JOJO_LOB01 avant d effectuer cette action');
    END;
    /

  • Change permission using UT_FILE

    https://jenniferlinca.wordpress.com/2008/03/28/using-utl_file-how-file-permissions-are-determined-working-sample/

  • Supprimer les segments vides

    exec dbms_space_admin.drop_empty_segments(schema_name=>'HR');

  • [OEM] EMCLI - Ajout d'une propriété pour une target donnée

    Il faut se connecter au serveur où le GRID ou l'OMS est installé.
    Positionner l'environnement OMS (exemple /oracle/Middleware/emcc13/bin).
     
     
     

  • How to add Additional target properties in Oracle Enterprise Manager12c

     
    Ajouter une valeur dans la propriété Location :
     
    pour un hôte
    ./emcli get_targets -noheader -script -targets=host | awk '{print $4":"$3":Location:"}' > /tmp/targets
     
    dans le fichier targets ajouter : 
     
    serveurJJY:host:Location:RIZ
    serveurJOJO:host:Location:RIA
    serveur TATA:host:Location:RIS
     
    idem pour une database :
     
    ./emcli get_targets -noheader -script -targets=oracle_database | awk '{print $4":"$3":Location:"}' > /tmp/targets
     
    ensuite on fait :
     
    ./emcli set_target_property_value -property_records="REC_FILE" -input_file="REC_FILE:/tmp/targets" -separator=property_records="n"
     
     

  • EMCLI Enterprise Manager 12c/13c : Ajout d'une base de données avec mot de passe avec des caractères spéciau

    Pour exécuter la commande « emcli add_target », il est nécessaire de se connecter :

    1
    2
    3
    sysman_password="<mot de passe SYSMAN>"
    emcli login -username=SYSMAN -password=${sysman_password}
    emcli sync

    La définition des propriétés est réalisée via des variables :

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    instance_name=<db_name>
    host_name=<full_hostname>
    dbhome_path=/opt/oracle/product/12.1/dbhome_1
    instance_resname=${instance_name}_${host_name}
    user_name=DBSNMP
    user_role=Normal
    listener_name=LISTENER_${instance_name}
    listener_resname=LISTENER_${instance_name}_${host_name}
    listener_port=1521
    db_properties="SID:${instance_name}"
    db_properties="${db_properties};Port:${listener_port}"
    db_properties="${db_properties};OracleHome:${dbhome_path}"
    db_properties="${db_properties};MachineName:${host_name}"
    db_credentials="UserName:${user_name};password:<mot de passe DBSNMP>;Role:${user_role}"
    lsnr_properties="LsnrName:${listener_name}"
    lsnr_properties="${lsnr_properties};ListenerOraDir:${dbhome_path}/network/admin"
    lsnr_properties="${lsnr_properties};Port:${listener_port}"
    lsnr_properties="${lsnr_properties};OracleHome:${dbhome_path}"
    lsnr_properties="${lsnr_properties};Machine:${host_name}"

    source : 

  • Useful emcli commands in EM Cloud Control 12c

  • Script python avec emcli


    setproperty.py :

     

    #  
    # Sample EMCLI Python script file for mass update a property value  
    #  
      
    # check number of arguments
     
    if len(sys.argv) <> 3:
      print 'Usage: emcli @setproperty.py hostname "propertyname" propertyvalue'
      exit()
     
    # assign the arguments to variables (for readability)
     
    hostname = sys.argv[0]
    propertyname = sys.argv[1]
    propertyvalue = sys.argv[2]
     
    # login to the OMS
     
    login( username="SYSMAN", password="welcome1" )
     
    # find the targets running on a given host
     
    targets = list( sql="select target_name  || '@' || target_type as target from MGMT$TARGET where host_name = '" + hostname + "' and target_name <> host_name" )
     
    # set the target property for each target
     
    for t in targets.out()['data']:
      print "Setting property " + propertyname + " for " + t['TARGET'].split(':')[0]
      set_target_property_value( property_records= t['TARGET'] + "@" + propertyname + "@" + propertyvalue, subseparator="property_records=@" )