Affichage des articles dont le libellé est Oracle 11G. Afficher tous les articles
Affichage des articles dont le libellé est Oracle 11G. Afficher tous les articles

lundi 15 décembre 2014

ORACLE 11G : Réparer la DBCONSOLE

L'interface web de console d'une instance Oracle a été implémentée depuis la version 11G d'Oracle Database. Elle est très utile pour gérer l'ensemble des bases.
Souvent (du moins dans mon cas), lors de l'installation automatique d'Oracle avec la création d'une nouvelle instance, cette interface ne fonctionne pas ou du moins très mal.


Voici comment vérifier, effacer, et reconstruire la DBCONSOLE

1) pour supprimer la configuration existante

EMCA -deconfig dbcontrol db -repos drop


2) Créer le repository

EMCA -repos create
3) Configurer la DBCONSOLE

EMCA -config dbcontrol db


En cas de soucis, lancer en mode graphique ./dbca



Commandes utiles pour la gestion de la DBCONSOLE

- Accèder à l'interface web

http://nom-de-votre-serveur:nom-du-port-de-la-console/em (ou en https)

- Vérifier le status de la console :


EMCTL status dbconsole

- Stopper la console

EMCTL stop dbconsole

- Démarrer la console

EMCTL start dbconsole






vendredi 16 mai 2014

Installer ORACLE 11G sur un serveur Linux Noyau REDHAT (exemple un Linux Oracle)


1. Télécharger les fichiers d'installation de la version oracle et les dézipper avec unzip


2. Exécuter la commande :

yum install oracle-rdbms-server-11gR2-preinstall

et suivre les instructions pour installer les packages nécessaires

3. editer le fichier /etc/selinux/config

Modifier la ligne comme suit :
SELINUX=disabled

4. Exécuter les commandes :

mkdir -p /u01/app/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01
passwd oracle
rentrer le mot de passe

5. Exécuter la commande :

xhost +<machine-name>



6. Toujours sur le user oracle lancer l'installation :
En étant loggé sur le user oracle via l'interface graphique

Se rendre dans le répertoire ou les fichiers d'installs sont décompressés et taper:
./runInstaller (en cas de problème de permissions, taper chmod -R 777 database)


7. ajouter au fichier /home/oracle/.bash_profile les lignes suivantes :
sans oublier de modifier ORACLE_HOSTNAME avec le nom du poste actuel en configuration (ex: nomdemonserveur.mondomaine.org)

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR

ORACLE_HOSTNAME=nomduposte.domaine; export ORACLE_HOSTNAME
ORACLE_UNQNAME=orcl; export ORACLE_UNQNAME
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME
ORACLE_SID=orcl; export ORACLE_SID

PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH

8.Se logguer en tant que root et éxécuter :


/u01/app/oraInventory/orainstRoot.sh

/u01/app/oracle/product/11.2.0/dbhome_1/root.sh


9 Editer le fichier

/etc/oratab

Remplacer le N par Y sur l'instance créée

10. Editer dbstart and dbshut scripts based in  /u01/app/oracle/product/11.2.0/dbhome_1/bin/ and change first entry from

ORACLE_HOME_LISTNER=$1
  to
ORACLE_HOME_LISTNER=${1:-$ORACLE_HOME}
  to avoid error "ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener" on the init or start!



11. Dans le listener.oracd et le tnsnames.ora il faut enlever le suffixe du domaine (mondomaine.org)
Le listener.ora doit contenir :

SID_LIST_LISTENER =
(SID_LIST =
               (GLOBAL_DBNAME = [Nom du SID de la base par exemple :ORCL])
                (ORACLE_HOME = [Chemin en dur du $ORACLE_HOME par exemple /u01/app/oracle/product/11.2.0/dbhome_1])
                (SID_NAME = [Nom du SID de la base par exemple : ORCL])

Exemple de listener fonctionnel:


# listener.ora Network Configuration File: u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
 (SID_LIST =
   (SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = ORCL)
)
 )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = nomdemonserveur)(PORT = 1521))
    )
 )

ADR_BASE_LISTENER = /u01/app/oracle


12.Création d'un script de démarrage automatique de la base et de l'instance:

loggé en tant que root:
#cd /etc/init.d
#touch dbora
#vim dbora

Coller ce texte dedans:

#!/bin/sh
# chkconfig: 345 99 10
# description: Oracle auto start-stop script.
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORA_HOME.


ORA_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
ORA_OWNER=oracle
ORACLE_UNQNAME=orcl



if [ ! -f $ORA_HOME/bin/dbstart ]
then
    echo "Oracle startup: cannot start"
    exit
fi
case "$1" in

    'start')
        # Start the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c $ORA_HOME/bin/dbstart
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole"
        su - $ORA_OWNER -c "$ORA_HOME/bin/sqlplus /nolog"<<!
connect SYS/motdepasse AS SYSDBA
startup
exit
!



       ;;

    'stop')
        # Stop the Oracle databases:
        # The following command assumes that the oracle login
        # will not prompt the user for any values
        su - $ORA_OWNER -c $ORA_HOME/bin/dbshut
        su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole"

       ;;

esac

quitter par :wq!
rendre le sript exécutable et en auto démarrage:
#chmod u+x /etc/init.d/dbora
#chmod 750 /etc/init.d/dbora
#chgrp dba /etc/init.d/dbora
#chkconfig --add dbora
#chkconfig –-level 2345 dbora on

Vérifier si le script est bon :

./dbora start




emca -config dbcontrol db

Quelques aides:

Pour démarrer le moteur de la base :

$ORACLE_HOME/bin/dbstart

Démarrer la console web

$ORACLE_HOME/bin/emctl start dbconsole

Vérifier que le listener fonctionne

$ORACLE_HOME/bin/lsnrctl

LSNRCTL>  stop
LSNRCTL> start (On doit voir affiché l’instance)
LSNRCTL> exit

Montage de la base

$ORACLE_HOME/bin/sqlplus /nolog

SQL>  connect SYS/[Mot de passe] AS SYSDBA
SQL> startup open
SQL> connect SYS/[Mot de passe]@[SID de la base] AS SYSDBA

si le prompt répond ‘Connected’ c’est que tout est OK !

SQL> exit



Différentes commandes utiles

1. Arrêter une instance :

$ORACLE_HOME/bin/sqlplus /nolog

connect SYS/Mot_De_Passe@SID_de_la_base as SYSDBA

shutdown IMMEDIATE;

2. Vérifier une variable d'environnement

echo NOM_DE_LA_VARIABLE

3. modifier une variable d'environnement temporairement

NOM_DE_LA_VARIABLE=valeur

4. Voir l'ensemble des variables d'environnement :

env

5. Se connecter avec un client ORACLE distant (windows ou linux)

Editer le fichier tnsnames.ora et rajouter les lignes

nom_du_SID=
  (DESCRIPTION=
    (ADDRESS=
      (PROTOCOL=TCP)
      (HOST=nom_de_la_machine_sans_extention_du_domaine)
      (PORT=port_ecoute_instance)
    )
    (CONNECT_DATA=
      (SERVICE_NAME=SID_sur_le_serveur)
    )
  )



jeudi 14 février 2013

ORACLE - Commandes SQL utiles - Common SQL scripts


Liste des connexions actives :
Active Connections list

select userid, max(nvl(logoff$time, sysdate)) last_logoff from sys.aud$ group by userid; 



Liste des sessions actives :
Active Sessions list


select
       substr(a.spid,1,9) pid,
       substr(b.sid,1,5) sid,
       substr(b.serial#,1,5) ser#,
       substr(b.machine,1,20) box,
       substr(b.username,1,10) username,
--       b.server,
       substr(b.osuser,1,8) os_user,
       substr(b.program,1,30) program
from v$session b, v$process a
where
b.paddr = a.addr
and type='USER'
order by spid; 


Liste des users créés sur une instance
Instance users list

select USERNAME,CREATED
from DBA_USERS
where ACCOUNT_STATUS = 'OPEN'
and USERNAME NOT IN ('SYS','SYSTEM','SYSMAN','DBSNMP','MGMT_VIEW')
order by USERNAME;


Information concernant l'instance :
Instance infos

SELECT NAME,PLATFORM_NAME,DB_UNIQUE_NAME  FROM V$DATABASE


Version d'ORACLE :
Oracle Version

select * from v$version;


Création d'un répertoire de base de données
Database folder creation

Ceci peut être utile par exemple pour créer un autre répertoire que celui par défaut du DATA_PUMP_DIR


SQL> CREATE DIRECTORY dmpdir AS '/opt/oracle';

Directory created.

SQL> GRANT read, write ON DIRECTORY dmpdir TO scott;

Grant succeeded.


Lister les répertoires 

select * from dba_directories;

Taille d'un schéma (User) en Mo
Mo Used for a schema (User)

select  a.owner username, round(sum(a.bytes)/1024/1024,2) "Taille (Mo)" from dba_segments a, (select tablespace_name, sum(bytes) total_space from dba_data_files group by tablespace_name) b where a.tablespace_name not in ('SYSAUX', 'SYSTEM', 'UNDOTBS1', 'UNDOTBS2') and a.tablespace_name = b.tablespace_name and a.owner='Mon_User' group by a.tablespace_name, a.owner, b.total_space/1024/1024



Ajouter un champ à une table :
Add a Table Column

ALTER TABLE [ schema. ]table ADD { ( column [ datatype ] ) } ;


exemple :
ALTER TABLE MATABLE ADD (MONCHAMP NUMBER(15,2));


Connaitre le nom du champ et de la table sur lesquels une contrainte est définie
Constraint : Table and column name referent


select * from ALL_CONS_COLUMNS where CONSTRAINT_NAME like '......%'


Connaitre le Paramétrage du Character Set de l'Instance :

SELECT value$ FROM sys.props$ WHERE name = 'NLS_CHARACTERSET' ;

Bonnes pratiques pour créer les TABLESPACES :

CREATE DIRECTORY DUMPS_MOI AS 'I:\DUMPS_MOI';
GRANT read, write ON DIRECTORY DUMPS_MOI TO system;


CREATE TABLESPACE V9_DATA DATAFILE 
  'I:\oracle\PERF11R2\V9_DATA1.DBF' SIZE 33554416K AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED,
  'I:\oracle\PERF11R2\V9_DATA2.DBF' SIZE 33554416K AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED,
  'I:\oracle\PERF11R2\V9_DATA3.DBF' SIZE 10240M AUTOEXTEND OFF
LOGGING
ONLINE
PERMANENT
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

CREATE TEMPORARY TABLESPACE V9_TEMPORAIRE TEMPFILE 
  'I:\oracle\PERF11R2\V9_TEMPORAIRE' SIZE 228M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
TABLESPACE GROUP ''
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M;

CREATE UNDO TABLESPACE V9_ROLLBACK DATAFILE 
  'I:\oracle\PERF11R2\V9_ROLLBACK' SIZE 360M AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
ONLINE
RETENTION NOGUARANTEE
BLOCKSIZE 8K

FLASHBACK ON;