0% found this document useful (0 votes)
82 views6 pages

Restore and Recover Noncritical

This document provides steps to restore and recover various database components including redo log files, the password file, the parameter file, temporary files, read-only tablespaces, and indexes. It demonstrates using RMAN to restore files from backups and recover the database after deleting files. It also shows creating files dynamically to allow operations without restarting the database.

Uploaded by

Ahmed Nagy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
82 views6 pages

Restore and Recover Noncritical

This document provides steps to restore and recover various database components including redo log files, the password file, the parameter file, temporary files, read-only tablespaces, and indexes. It demonstrates using RMAN to restore files from backups and recover the database after deleting files. It also shows creating files dynamically to allow operations without restarting the database.

Uploaded by

Ahmed Nagy
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 6

Restore Noncritical

====================
Redo Log Files
--------------- (database in archive log mode and backuped using rman)
CMD> sqlplus / as sysdba
SQL> select instance_name,status,version from v$instance;
SQL> alter system switch logfile;
SQL> select member from v$Logfile;
SQL> alter system switch logfile;
SQL> select * from v$Log;
SQL> alter system switch logfile;
SQL> host dir C:\app\Administrator\oradata\orcl\REDO*
SQL> host del C:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO* ### before run delete command
unlock redo files
SQL> host dir C:\app\Administrator\oradata\orcl\REDO*
SQL> alter system switch logfile; ### ORA-03113: end-of-file on communication
channel ### See alert log file (last archived sequence 93)
SQL> select * from v$Log;
SQL> shutdown immediate; ### if not shutdown
SQL> startup mount;
CMD> rman target / ### Recover until sequence or scn
RMAN> run {
set until sequence 48;
restore database;
recover database;
alter database open resetlogs;
}
RMAN> exit
SQL> host dir C:\app\Administrator\oradata\orcl\REDO*

Password File
--------------
SQL> show parameter REMOTE_LOGIN_PASSWORDFILE ###=EXCLUSIVE or SHARED
SQL> select * from v$pwfile_users;
SQL> grant sysdba to hr;
SQL> grant sysoper to scott;
SQL> select * from v$pwfile_users;
SQL> host dir C:\app\Administrator\product\11.2.0\dbhome_1\database\PWD*
SQL> host del C:\app\Administrator\product\11.2.0\dbhome_1\database\PWDorcl.ora
SQL> grant sysdba to hr;
CMD> orapwd file=C:\app\Administrator\product\11.2.0\dbhome_1\database\PWDorcl.ora
password=test
### after start DB test connection remotlly or remove user OS from ora_dba group
SQL> conn / as sysdba ### ERROR: ORA-01031: insufficient privileges
SQL> conn sys/sys as sysdba ### ERROR: ORA-01017: invalid username/password;
logon denied
SQL> conn sys/test as sysdba ### Connected.
SQL> select * from v$pwfile_users;

Parameter File
---------------
Using Pfile and spfile
***********************
SQL> show parameter spfile
SQL> show parameter STATISTICS_LEVEL
SQL> alter system set STATISTICS_LEVEL='ALL' scope=both;
SQL> show parameter STATISTICS_LEVEL
SQL> host dir C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILE*
SQL> host del C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEORCL.ORA
SQL> alter system set processes=600 scope=spfile; ### ORA-01565: error in
identifying file
'C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' ORA-27041:
unable to open file
### See alert log file (ORA-01565: Unable to open Spfile
C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA.)
SQL> shutdown immediate
SQL> startup ### ORA-01078: failure in processing system parameters LRM-00109:
could not open parameter file
'C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITORCL.ORA'
SQL> startup pfile='C:\app\Administrator\admin\orcl\pfile\init.ora.852013155926'
SQL> show parameter spfile
SQL> CREATE SPFILE FROM
PFILE='C:\app\Administrator\admin\orcl\pfile\init.ora.852013155926';
SQL> shutdown immediate
SQL> startup
SQL> show parameter STATISTICS_LEVEL
SQL> alter system set processes=600 scope=spfile;

Using Memory (11g only)


************
SQL> show parameter spfile
SQL> show parameter STATISTICS_LEVEL
SQL> alter system set STATISTICS_LEVEL='ALL' scope=both;
SQL> show parameter STATISTICS_LEVEL
SQL> host dir C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILE*
SQL> host del C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEORCL.ORA
SQL> alter system set processes=600 scope=spfile; ### ORA-01565: error in
identifying file
'C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' ORA-27041:
unable to open file
### See alert log file (ORA-01565: Unable to open Spfile
C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA.)
SQL> create pfile ='C:\app\Administrator\admin\orcl\pfile\initORCL.ora' from
memory;
SQL> shutdown immediate
SQL> startup ### ORA-01078: failure in processing system parameters LRM-00109:
could not open parameter file
'C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\INITORCL.ORA'
SQL> startup pfile='C:\app\Administrator\admin\orcl\pfile\initORCL.ora'
SQL> show parameter spfile
SQL> CREATE SPFILE FROM MEMORY;
SQL> shutdown immediate
SQL> startup
SQL> show parameter STATISTICS_LEVEL
SQL> show parameter processes
SQL> alter system set processes=600 scope=spfile;

Using Autobackup
*****************
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> backup database;
SQL> host dir C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILE*
SQL> host del C:\app\Administrator\product\11.2.0\dbhome_1\database\SPFILEORCL.ORA
SQL> alter system set processes=600 scope=spfile; ### ORA-01565: error in
identifying file
'C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA' ORA-27041:
unable to open file
### See alert log file (ORA-01565: Unable to open Spfile
C:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SPFILEORCL.ORA.)
SQL> shutdown immediate
SQL> startup
SQL> exit
CMD> rman target /
RMAN> STARTUP FORCE NOMOUNT;
RMAN> RUN {
SET CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO
'c:\autobackup\f_ORCL_auto_%F';
RESTORE SPFILE FROM AUTOBACKUP; }
RMAN> STARTUP FORCE;
RMAN> exit
CMD> sqlplus / as sysdba
SQL> show parameter spfile
SQL> show parameter STATISTICS_LEVEL
SQL> show parameter processes

Temp File
---------
Automatic Tempfile Recovery after restart DB
*********************************************
CMD> sqlplus / as sysdba
SQL> select TS#,FILE#,BYTES,NAME from v$tempfile;
SQL> select ts#, name from v$tablespace;
SQL> host dir C:\app\Administrator\oradata\orcl\TEMP*
SQL> host del C:\app\Administrator\oradata\orcl\TEMP01.DBF ### before run delete
command unlock temp file
SQL> CREATE GLOBAL TEMPORARY TABLE today_objects ON COMMIT PRESERVE ROWS AS SELECT
* FROM dba_objects; ### ORA-01114: IO error writing block to file 201 (block # 897)
ORA-27072: File I/O error OSD-04008: WriteFile() failure, unable to write to file
### See alert log file (ORA-01110: data file 201:
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF' ORA-01115: IO error reading block
from file 201 (block # 1) ORA-27072: File I/O error)
SQL> shutdown immediate;
SQL> Startup;
SQL> host dir C:\app\Administrator\oradata\orcl\TEMP*
SQL> CREATE GLOBAL TEMPORARY TABLE today_objects ON COMMIT PRESERVE ROWS AS SELECT
* FROM dba_objects;

Recover Tempfile without Restart


*********************************
CMD> sqlplus / as sysdba
SQL> select TS#,FILE#,BYTES,NAME from v$tempfile;
SQL> select ts#, name from v$tablespace;
SQL> host dir C:\app\Administrator\oradata\orcl\TEMP*
SQL> host del C:\app\Administrator\oradata\orcl\TEMP01.DBF ### before run delete
command unlock temp file
SQL> CREATE GLOBAL TEMPORARY TABLE today_objects1 ON COMMIT PRESERVE ROWS AS SELECT
* FROM dba_objects; ### ORA-01114: IO error writing block to file 201 (block # 897)
ORA-27072: File I/O error OSD-04008: WriteFile() failure, unable to write to file
### See alert log file (ORA-01110: data file 201:
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\TEMP01.DBF' ORA-01115: IO error reading block
from file 201 (block # 1) ORA-27072: File I/O error)

SQL> create temporary tablespace temp2 tempfile


'C:\app\Administrator\oradata\orcl\TEMP02.DBF'size 30m;
SQL> alter database default temporary tablespace temp2;
SQL> drop tablespace temp including contents;
SQL> create temporary tablespace temp tempfile
'C:\app\Administrator\oradata\orcl\TEMP01.DBF'size 30m reuse;
SQL> alter database default temporary tablespace temp;
SQL> select TS#,FILE#,BYTES,NAME from v$tempfile;

SQL> select * from database_properties where PROPERTY_NAME =


'DEFAULT_TEMP_TABLESPACE';

Read only Tablespace


---------------------
CMD> sqlplus / as sysdba
SQL> select ts#, name from v$tablespace;
SQL> alter tablespace example read only;
SQL> select first_name,salary from hr.employees;
SQL> update hr.employees set salary=salary*1.1; ORA-00372: file 5 cannot be
modified at this time
SQL> host rman target /
RMAN> backup tablespace example;
RMAN> exit
SQL> host dir C:\app\Administrator\oradata\orcl\EXAMPLE*
SQL> host del C:\app\Administrator\oradata\orcl\EXAMPLE01.DBF ### before run
delete command unlock data file
SQL> select first_name,salary from hr.employees; ### select from MEMORY
SQL> select * from hr.departments; ### ORA-01110: data file 5:
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' ORA-27070: async read/write
failed
SQL> host rman target /
RMAN> run{
sql 'alter tablespace example offline';
restore tablespace example;
sql 'alter tablespace example online';
}
RMAN> exit
SQL> select first_name,salary from hr.employees;
SQL> select * from hr.departments;
SQL> host dir C:\app\Administrator\oradata\orcl\EXAMPLE*
SQL> alter tablespace example read write;

Recover Tablespace Index


-------------------------
SQL> CREATE TABLESPACE INDEX_TS DATAFILE
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\index_ts01.dbf' SIZE 10M NOLOGGING EXTENT
MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
SQL> CREATE INDEX oe.ix_customers_gender ON oe.customers(gender) tablespace
index_ts;
SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME from dba_segments where
segment_name='IX_CUSTOMERS_GENDER';
SQL> host dir C:\APP\ADMINISTRATOR\ORADATA\ORCL\index_ts01*
SQL> host del C:\APP\ADMINISTRATOR\ORADATA\ORCL\index_ts01.DBF ### before run
delete command unlock data file
SQL> set autotrace traceonly explain
SQL> SELECT * FROM oe.customers WHERE gender = 'M';
SQL> SELECT /*+ INDEX(customers ix_customers_gender) */ * FROM oe.customers WHERE
gender = 'M';
SQL> set autotrace off
SQL> SELECT /*+ INDEX(customers ix_customers_gender) */ * FROM oe.customers WHERE
gender = 'M';
### See alert log file (ORA-01116: error in opening database file 9 ORA-01110: data
file 9: 'C:\APP\ADMINISTRATOR\ORADATA\ORCL\INDEX_TS01.DBF' ORA-27041: unable to
open file)
SQL> EXEC DBMS_STATS.gather_index_stats('OE', 'IX_CUSTOMERS_GENDER'); ### ORA-
00376: file 9 cannot be read at this time ORA-01110: data file 9:
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\INDEX_TS01.DBF'
SQL> select dbms_metadata.get_ddl('INDEX','IX_CUSTOMERS_GENDER','OE') from dual;
### run from toad
SQL> DROP INDEX oe.ix_customers_gender;
SQL> Drop tablespace INDEX_TS including contents and datafiles;
SQL> CREATE INDEX oe.ix_customers_gender ON oe.customers(gender) tablespace example
PARALLEL 4;
SQL> select OWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME from dba_segments where
segment_name='IX_CUSTOMERS_GENDER';
SQL> set autotrace traceonly explain
SQL> SELECT /*+ INDEX(customers ix_customers_gender) */ * FROM oe.customers WHERE
gender = 'M';
SQL> set autotrace off
SQL> SELECT /*+ INDEX(customers ix_customers_gender) */ * FROM oe.customers WHERE
gender = 'M';
SQL> EXEC DBMS_STATS.gather_index_stats('OE', 'IX_CUSTOMERS_GENDER');

Recover Tablespace nologging


-----------------------------
SQL> CREATE TABLESPACE users_nologging DATAFILE
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\users_nologging01.dbf' SIZE 10M NOLOGGING EXTENT
MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
SQL> CREATE TABLE scott.dept_copy (DEPTNO NUMBER(2,0),DNAME VARCHAR2(14),LOC
VARCHAR2(13)) TABLESPACE users_nologging;
SQL> select table_name,tablespace_name,logging from dba_tables where owner='SCOTT';
SQL> select tablespace_name,logging from dba_tablespaces;
SQL> select owner,table_name,tablespace_name,logging from dba_tables where
logging='NO';
SQL> select * from scott.dept;
SQL> select * from scott.dept_copy;
SQL> host rman target /
RMAN> backup tablespace users,users_nologging;
RMAN> exit
SQL> alter system switch logfile; ### Repeat command at least 4 times
SQL> insert /*+ append */ into scott.dept values(80,'IT','Nasr_City');
SQL> commit;
SQL> alter system switch logfile; ### Repeat command at least 4 times
SQL> insert /*+ append */ into scott.dept_copy SELECT * FROM scott.dept;
SQL> commit;
SQL> alter system switch logfile; ### Repeat command at least 4 times
SQL> select * from scott.dept;
SQL> select * from scott.dept_copy;
SQL> host dir C:\app\Administrator\oradata\orcl\users*
SQL> host del C:\app\Administrator\oradata\orcl\users01.DBF### before run delete
command unlock data file
SQL> host del C:\app\Administrator\oradata\orcl\USERS_NOLOGGING01.DBF ### before
run delete command unlock data file
SQL> host rman target /
RMAN> run{
ALLOCATE CHANNEL ch1 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch2 DEVICE TYPE DISK;
ALLOCATE CHANNEL ch3 DEVICE TYPE DISK;
sql 'alter tablespace users offline for recover';
sql 'alter tablespace USERS_NOLOGGING offline for recover';
restore tablespace users,USERS_NOLOGGING;
recover tablespace users,USERS_NOLOGGING;
sql 'alter tablespace users online';
sql 'alter tablespace USERS_NOLOGGING online';
}
RMAN> exit
SQL> select * from scott.dept;
SQL> select * from scott.dept_copy;

Restore database no Archive


----------------------------
CMD> sqlplus / as sysdba
SQL> archive log list ### Archive Log
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database noarchivelog;
SQL> alter database open;
SQL> select ts#, name from v$tablespace;
SQL> select first_name,salary from hr.employees;
SQL> host rman target /
RMAN> run{
shutdown immediate;
startup mount;
backup database;
sql 'alter database open';
}
RMAN> exit
SQL> alter system switch logfile; ### Repeat command at least 4 times
SQL> update hr.employees set salary=salary*1.1;
SQL> commit;
SQL> select first_name,salary from hr.employees;
SQL> alter system switch logfile; ### Repeat command at least 4 times
SQL> host dir C:\app\Administrator\oradata\orcl\EXAMPLE*
SQL> host del C:\app\Administrator\oradata\orcl\EXAMPLE01.DBF ### before run
delete command unlock data file
SQL> select first_name,salary from hr.employees; ### select from MEMORY
SQL> select * from hr.departments; ### ORA-01110: data file 5:
'C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF' ORA-27070: async read/write
failed
SQL> host rman target /
RMAN> run{
shutdown abort;
startup mount;
restore database;
recover database;
sql 'alter database open resetlogs';
}
RMAN> exit
SQL> select first_name,salary from hr.employees;
SQL> select * from hr.departments;
SQL> host dir C:\app\Administrator\oradata\orcl\EXAMPLE*

You might also like