Powered By Blogger

Tuesday, August 18, 2009

redo apply

You can specify that Redo Apply runs as a foreground session or as a background process, and enable it with real-time apply.
To start Redo Apply in the foreground, issue the following SQL statement:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE;
If you start a foreground session, control is not returned to the command prompt until recovery is canceled by another session.
To start Redo Apply in the background, include the DISCONNECT keyword on the SQL statement. For example:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
This statement starts a detached server process and immediately returns control to the user. While the managed recovery process is performing recovery in the background, the foreground process that issued the RECOVER statement can continue performing other tasks. This does not disconnect the current SQL session.
To start real-time apply, include the USING CURRENT LOGFILE clause on the SQL statement. For example:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

http://download.oracle.com/docs/cd/B19306_01/server.102/b14239/log_apply.htm

Sunday, August 2, 2009

ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid

Errors in file d:\oracle\product\10.2.0\admin\db\bdump\db1_j000_4964.trc:
ORA-12012: error on auto execute of job 102622
ORA-20000: ORA-20000: Content of the tablespace specified is not permanent or tablespace name is invalid
ORA-06512: at "SYS.PRVT_ADVISOR", line 1624
ORA-06512: at "SYS.DBMS_ADVISOR", line 186
ORA-06512: at line 6

Note:This will occur, If there is an old tablespace dropped and that information is still stored in the dictionary.
Solution:
Basically, this job fails If there is an old tablespace dropped and that information is still stored in the dictionary.Here is how you get rid of it:Ex:sqlplus "/as sysdba"SQL*Plus: Release 10.2.0.2.0 - Production on Thu Jul 17 18:45:18 2008Copyright (c) 1982, 2005, Oracle. All Rights Reserved.Connected to:Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - 64bit ProductionWith the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine optionsSQL> select distinct tablespace_name from DBA_AUTO_SEGADV_CTL;TABLESPACE_NAME
TEST1TEST2test1_oldTEST34 rows selected.SQL> select tablespace_name from dba_tablespaces;TABLESPACE_NAME
TEST1TEST2TEST33 rows selected.SQL> select count(*) from DBA_AUTO_SEGADV_CTL where tablespace_name = 'test1_old';COUNT(*)
1SQL> select segment_owner, segment_name, status from DBA_AUTO_SEGADV_CTL where tablespace_name='test1_old';SEGMENT_OWNER SEGMENT_NAME STATUS
----------------------
BEING_PROCESSEDSQL> delete DBA_AUTO_SEGADV_CTL where tablespace_name='test1_old';1 row deleted.SQL> commit;Commit complete.Now execute the auto_space_advisor_job SQL> exec dbms_space.auto_space_advisor_job_proc;PL/SQL procedure successfully completed.

Reference:http://forums.oracle.com/forums/thread.jspa?threadID=356704&start=0&tstart=0