terça-feira, 18 de janeiro de 2011

Oracle - ORA-00210 - Perda de controlfile no OracleXE 10g

Como solucionar:

SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup nomount pfile="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/initXETemp.ora";
ORACLE instance started.
Total System Global Area  146800640 bytes
Fixed Size                  1257668 bytes
Variable Size              58724156 bytes
Database Buffers           83886080 bytes
Redo Buffers                2932736 bytes
SQL> Create controlfile reuse set database "XE"
  2  MAXINSTANCES 8
  3  MAXLOGHISTORY 1
  4  MAXLOGFILES 16
  5  MAXLOGMEMBERS 3
  6  MAXDATAFILES 100
  7  Datafile
  8  '/usr/lib/oracle/xe/oradata/XE/system.dbf',
  9  '/usr/lib/oracle/xe/oradata/XE/undo.dbf',
 10  '/usr/lib/oracle/xe/oradata/XE/sysaux.dbf',
 11  '/usr/lib/oracle/xe/oradata/XE/users.dbf'
 12  LOGFILE
 13  GROUP 1 SIZE 51200K,
 14  GROUP 2 SIZE 51200K,
 15  RESETLOGS;
Control file created.
SQL> alter system enable restricted session;
System altered.
SQL> alter database "XE" open resetlogs;
Database altered.
SQL> alter database rename global_name to "XE";
Database altered.
SQL> alter system switch logfile;
System altered.
SQL> alter system checkpoint;
System altered.
SQL> ALTER TABLESPACE TEMP ADD TEMPFILE '/usr/lib/oracle/xe/oradata/XE/temp.dbf' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED;
Tablespace altered.
SQL> select tablespace_name from dba_tablespaces where tablespace_name='USERS';
no rows selected
SQL> alter system disable restricted session;
System altered.

   Deste modo salvei a database. Agora como o banco está utilizando um PFILE e não SPFILE, para abrir a database 'XE' utilize:

$ sqlplus sys as sysdba
SQL> startup open pfile="/usr/lib/oracle/xe/app/oracle/product/10.2.0/server/config/scripts/initXETemp.ora";

Nenhum comentário:

Postar um comentário