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*