# Oracle



# Acces base oracle

Sudo su - oracle   
Setup l'affichage et voir les session connecte à la basse :

```pl/sql
SET pages 400 lines 200
COLUMN spid FORMAT A10
COLUMN username FORMAT A20
COLUMN program FORMAT A45
```

```sql
SELECT s.inst_id,
       s.sid,
       s.serial#,
       p.spid,
       s.username,
       s.program
FROM   gv$session s
       JOIN gv$process p ON p.addr = s.paddr AND p.inst_id = s.inst_id
WHERE  s.type != 'BACKGROUND';
```

Générer le path et sid

```bash
export PATH=$PATH:/app/oracle/product/11.2.0.4/dbhome_1/bin/
export ORACLE_SID=Nom database
export ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1/
```

. oraenv mettre le sid et path en rapport

```bash
sqlplus / as sysdba
```

```sql
drop user TABLE cascade;
```

# Vérifier et débloquer un compte verrouillé

<div id="bkmrk---se-connecter-au-se">- Se connecter au serveur en SSH via putty ou winscp (&gt; putty).</div><div id="bkmrk---se-connecter-en-ta">- Se connecter en tant que compte oracle</div><div id="bkmrk-su-oracle">su oracle</div><div id="bkmrk-">  
</div><div id="bkmrk---ajouter-les-argume">- Ajouter les arguments pour les variables d'environnement pour se connecter à l'instance</div><div id="bkmrk--1">  
</div>```bash
export ORACLE_HOME=/u01/app/oracle/product/11gr2/db_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=gcldev
```

<div id="bkmrk--2"></div><div id="bkmrk--3">  
</div><div id="bkmrk--4">  
</div><div id="bkmrk---se-connecter-%C3%A0-l%27i">- Se connecter à l'instance SQL:</div>```sql
sqlplus /nolog
connect / as sysdba
```

<div id="bkmrk-sqlplus-%2Fnolog"></div><div id="bkmrk--5">  
</div><div id="bkmrk---lister-tous-les-co">- Lister tous les comptes de l'instance SQL :</div>```sql
SELECT username, account_status FROM dba_users;
```

<div id="bkmrk--6"></div><div id="bkmrk--7"></div><div id="bkmrk---lister-tous-les-co-1">- Lister tous les comptes avec leurs dates de création, date d'expiration et l'état de verrouillage :</div><div id="bkmrk--8">  
</div>```sql
SELECT username, account_status, created, lock_date, expiry_date  FROM dba_users  WHERE account_status != 'OPEN';
```

<div id="bkmrk--9"></div><div id="bkmrk--10">  
</div><div id="bkmrk--11">  
</div><div id="bkmrk---requ%C3%AAte-pour-d%C3%A9blo">- Requête pour débloquer un compte (nomducompte à remplacer) :</div>```sql
ALTER USER nomducompte ACCOUNT UNLOCK;
```

<div id="bkmrk--12"></div><div id="bkmrk--13">  
</div><div id="bkmrk--14">  
</div><div id="bkmrk---note-en-plus-pour-">- Note en plus pour reset un password :</div>```sql
ALTER USER nomducompte BY new_password; 
```

<div id="bkmrk--15"></div><div id="bkmrk--16">  
</div><div id="bkmrk--17"></div>

# Problème demarrage timezone

```bash
ps -ef | grep pmon
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/EsLAex9lRaqgQ3YT-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/EsLAex9lRaqgQ3YT-image.png)

Pour redémarrer les bases manuellement :

```bash
export ORACLE_HOME=/app/oracle/product/10.2.0.5SE/dbhome_1
export ORACLE_BASE=/app/oracle/product/10.2.0.5SE/dbhome_1
export ORACLE_SID=PIMS1
sqlplus / as sysdba
```

Démarrer la base

```sql
startup
```

  
Pour arrêter la base:

```sql
shutdown immediate
```

  
============================================================================

Lorsque l'on exécute la commande (sqlplus / as sysdba) surtout sur la base l'on obtient le message d'erreur suivant :

<p class="callout danger">ORA-01804: failure to initialize timezone information</p>

Solution :

Prendre un autre fichier timezone sur n'importe quel répertoire :

```bash
export ORA_TZFILE=/app/oracle/product/11.2.0.4/dbhome_1/oracore/zoneinfo/timezlrg_14.dat
```

============================================================================

Pour supprimer les logs de listener de plus de Xjour (exemple +24)

```bash
cd /app/oracle/diag/tnslsnr/prdoran1/listener/alert
find . -name "log_*.xml" -ctime +24 -exec rm -f  {} \;
```

Pour lister les traces +15 j :

```bash
 find . -name "*.trc" -ctime +15 -exec ls -l  {} \;
```

Avant de remplacer "ls -l" par "rm -f" assure toi que la base est démarrée depuis plus de 15 j  
============================================================================  
Il existe des bases selon la version d'oracle, pour les lister :

```bash
cd /app/oracle/product/
```

Ensuite la version ex :

```bash
cd /app/oracle/product/11.2.0.4/dbhome_1/dbs/
```

Ce qui nous intéresse c'est le init\* pour savoir le nom de la base (ex: la base initNODHOS1.ora ça représente la base NODHOS1 donc pour l'utiliser on doit lancer l'export :

```bash
export ORACLE_HOME=/app/oracle/product/11.2.0.4/dbhome_1
```

  
ensuite :

```bash
export ORACLE_SID=NODHOS1
```

[![image.png](https://cavallone.fr/uploads/images/gallery/2024-10/scaled-1680-/ugG7pPGFjK9b1gH1-image.png)](https://cavallone.fr/uploads/images/gallery/2024-10/ugG7pPGFjK9b1gH1-image.png)

Après on va pouvoir lancer sqlplus en tant que NODHOS1 et démarrer la base