jeudi 7 octobre 2021

Oracle Refuse de Se Servir d'un Fichier SPFILE

Je lisais un vieux livre au sujet d'Oracle et j'ai lu qu'on ne doit pas essayer de modifier un fichier SPFILE avec un éditeur par exemple vi ou notepad etc. En fait je le savais déjà depuis longtemps. Je me suis posé la question suivante:

<<Qu'est-ce qui se passe si quelqu'un le fait? Quelqu'un qui n'as pas eu la formation correcte par exemple>>.

Avertissement:

J'ai fait ce test sur la version 19.3 dans une base de données sur mon propre PC. Il ne faut pas le faire dans une base de données qui appartient à votre employeur, surtout si vous voulez garder votre métier. J'ai vu que la base de données se servait d'un fichier SPFILE:

SQL> select value from v$parameter
  2  where name = 'spfile'
  3  /

VALUE
------------------------------------------------------------

C:\ANDREW\WINDOWS.X64_193000_DB_HOME\DATABASE\SPFILEORCL.ORA

SQL>


J'ai ferm
é la base de données:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>

J'ai cr
éé une sauvegarde du fichier SPFILE:

SQL> create pfile from spfile
  2  /

File created.

SQL>


J'ai enlev
é le texte suivant du fichier SPFILE avec notepad et j'ai sauvé la modif:

.db_block_size=8192*

J'ai relanc
é la base de données sans problème:

SQL> startup
ORACLE instance started.

Total System Global Area 2566910648 bytes
Fixed Size                  9269944 bytes
Variable Size             553648128 bytes
Database Buffers         1996488704 bytes
Redo Buffers                7503872 bytes
Database mounted.
Database opened.
SQL>


Il n'y avait aucune erreur dans le fichier alert_orcl.log non plus. Oracle a decid
é d'employer le fichier PFILE sans rien dire:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0.
Windows NT Version V6.2  
ORACLE_HOME = C:\Andrew\WINDOWS.X64_193000_db_home
Node name           : CHRISTINA
CPU                 : 4 - type 86642 physical cores
Process Affinity    : 0x0000000000000000
Memory (Avail/Total): Ph:4248M/8114M, Ph+PgF:3441M/9394M
Using parameter settings in server-side pfile C:\ANDREW\WINDOWS.X64_193000_DB_HOME\DATABASE\INITORCL.ORA
System parameters with non-default values:
  processes                = 320
  nls_language             = "ENGLISH"
  nls_territory            = "UNITED KINGDOM"
  sga_target               = 2448M
  control_files            = "C:\ANDREW\ORADATA\ORCL\CONTROL01.CTL"
  control_files            = "C:\ANDREW\ORADATA\ORCL\CONTROL02.CTL"
  db_block_size            = 8192
  compatible               = "19.0.0"
  undo_tablespace          = "UNDOTBS1"
  remote_login_passwordfile= "EXCLUSIVE"
  db_domain                = "fritz.box"
  dispatchers              = "(PROTOCOL=TCP) (SERVICE=orclXDB)"
  local_listener           = "LISTENER_ORCL"
  audit_file_dest          = "C:\ANDREW\ADMIN\ORCL\ADUMP"
  audit_trail              = "DB"
  db_name                  = "orcl"
  open_cursors             = 300
  pga_aggregate_target     = 812M
  diagnostic_dest          = "C:\ANDREW"
  enable_pluggable_database= TRUE


On ne voyait plus le fichier SPFILE dans la base de donn
ées:

SQL> select value from v$parameter
  2  where name = 'spfile'
  3  /

VALUE
------------------------------------------------------------



SQL>

Pour r
éparer la faute j'ai dû recréer le fichier SPFILE et relancer la base de données:

SQL> create spfile from pfile
  2  /

File created.

SQL> startup force
ORACLE instance started.

Total System Global Area 2566910648 bytes
Fixed Size                  9269944 bytes
Variable Size             553648128 bytes
Database Buffers         1996488704 bytes
Redo Buffers                7503872 bytes
Database mounted.
Database opened.
SQL> select value from v$parameter
  2  where name = 'spfile'
  3  /

VALUE
------------------------------------------------------------

C:\ANDREW\WINDOWS.X64_193000_DB_HOME\DATABASE\SPFILEORCL.ORA

SQL>

Alors, s'il y a un fichier SPFILE dans le r
épertoire correct mais Oracle ne s'en sert pas ceci pourrait être parce que quelqu'un ait changé le fichier SPFILE avec un éditeur.