Time & cancelled based recovery
Hi DBAs,
Any one can give me clear idea about, what is time based recovery and until cancel based recovery.
Thanks a lot
Any one can give me clear idea about, what is time based recovery and until cancel based recovery.All are incomplete recovery scenarios.
refer these links
*Performing Incomplete Recovery [ID 114199.1]*
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:1406803852098
http://docs.oracle.com/cd/B10500_01/server.920/a96572/performingreco.htm
Similar Messages
-
dear dba's,
i'm using oracle 11gR2 in windows 2003 sever S2.
could anyone tell me
1. what is CANCEL BASED RECOVERY
2. pls give the commands with an explanation
3. In which suituation we must use this type of recovery.
Thanks & Regards,
John Marshal.A+1. what is CANCEL BASED RECOVERY+
It is an incomplete recovery option , at particular time you want to recover yours database for an audit purpose or to avoid any logical error by users in past , but flashback technology now been dominant to cancel based reocovery.
+2. pls give the commands with an explanation+
+3. In which suituation we must use this type of recovery.+
When yours controlfile does not know when so far yours recover could be go on and on by "recover database using backup controlfile until cancel" yours restored controlfile from backup typically does not know how far i need redo if you are doing manual recovery while RMAN does not need cancel based recovery it will keep applying log until it finds and bumped out with an error RMAN-06054: media recovery requesting unknown archived log for ..... .
Situation could be manual recovery in general when you do not define time.scn based recovery using until clause.
Copied from my blog but need to be a bit changes thats why pasting here.
Scenario 1
I lost all data file but my control file is intact at the same location where it was , before lost datafiles i have backed up the data files, controlfile and archive logs.
If you are just restoring the data files and not control files then you may know how much archive log sequence required for yours recovery after the backup taken using archived log repository.
RMAN> backup database;
Starting backup at 02-OCT-09
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=128 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/his/system01.dbf
input datafile file number=00002 name=/u01/app/oracle/oradata/his/sysaux01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/his/undotbs01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/his/users01.dbf
channel ORA_DISK_1: starting piece 1 at 02-OCT-09
channel ORA_DISK_1: finished piece 1 at 02-OCT-09
piece handle=/u01/app/oracle/flash_recovery_area/HIS/backupset/2009_10_02/o1_mf_nnndf_TAG20091002T112226_5dc712wg_.bkp tag=TAG20091002T112226 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45
Finished backup at 02-OCT-09
Starting Control File and SPFILE Autobackup at 02-OCT-09
piece handle=/u01/app/oracle/flash_recovery_area/HIS/autobackup/2009_10_02/o1_mf_s_699189791_5dc72j13_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 02-OCT-09
RMAN> sql 'alter system archive log current';
using target database control file instead of recovery catalog
sql statement: alter system archive log current
RMAN> sql 'alter system archive log current';
sql statement: alter system archive log current
RMAN> sql 'alter system archive log current';
sql statement: alter system archive log current
RMAN> exit
Recovery Manager complete.
[oracle@khurram his]$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Oct 2 11:24:04 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select name,sequence#
2 from v$archived_log
3 where status='A'
4 /
NAME SEQUENCE#
/u01/app/oracle/product/11.1.0/db_1/dbs/arch1_2_699187272.dbf 2
/u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_2_5dc73qw2_.arc 2
/u01/app/oracle/product/11.1.0/db_1/dbs/arch1_3_699187272.dbf 3
/u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_3_5dc73vgm_.arc 3
/u01/app/oracle/product/11.1.0/db_1/dbs/arch1_4_699187272.dbf 4
/u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_4_5dc740d7_.arc 4
6 rows selected.You may know if yours control file intact (not lost or restored from backup), you may know how much recovery will go so far by knowing archived logs repository (conrolfile).From above v$archived_log archveilog repository you are seeing that after backup there are sequence required for the archive logs are 2,3 and 4 for recovering the restored backup which you have taken as above.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@khurram his]$ cd /u01/app/oracle/oradata/his/*.dbf
bash: cd: /u01/app/oracle/oradata/his/sysaux01.dbf: Not a directory
[oracle@khurram his]$ rm -rf /u01/app/oracle/oradata/his/*.dbf
[oracle@khurram his]$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Oct 2 11:28:01 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 1620115456 bytes
Fixed Size 2144864 bytes
Variable Size 922748320 bytes
Database Buffers 687865856 bytes
Redo Buffers 7356416 bytes
Database mounted.
SQL> exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@khurram his]$ rman target /
Recovery Manager: Release 11.1.0.6.0 - Production on Fri Oct 2 11:29:30 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database: HIS (DBID=3219691467, not open)
RMAN> restore database;
Starting restore at 02-OCT-09
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=154 device type=DISK
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/his/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/his/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/his/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/his/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/HIS/backupset/2009_10_02/o1_mf_nnndf_TAG20091002T112226_5dc712wg_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/HIS/backupset/2009_10_02/o1_mf_nnndf_TAG20091002T112226_5dc712wg_.bkp tag=TAG20091002T112226
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 02-OCT-09
RMAN> recover database;
Starting recover at 02-OCT-09
using channel ORA_DISK_1
starting media recovery
archived log for thread 1 with sequence 2 is already on disk as file /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_2_5dc73qw2_.arc
archived log for thread 1 with sequence 3 is already on disk as file /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_3_5dc73vgm_.arc
archived log for thread 1 with sequence 4 is already on disk as file /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_4_5dc740d7_.arc
archived log file name=/u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_2_5dc73qw2_.arc thread=1 sequence=2
media recovery complete, elapsed time: 00:00:01
Finished recover at 02-OCT-09
as you can see that 2,3,4 were required during recovery process.Scenario 2
I lost all data file as well control file , i have backed up the data files, controlfile and archive logs.
Its like a disastre you lost alls data file and as well controlfile , if you backed the controlfile then remember during controlfile backup it will have file type flag 4 that tells Oracle it is a backup control file. The Stop SCN for alls data file marked to 0xffff.ffffffff (infinity).File type flag in the backup control file tells to oracle that it cannot rely on its redo thread,which means recovering will go on and on , controlfile will not aware how much should i go for redo it will never stop if you are able to supply redo.
It will always ask you more subsequent redo if you already supplied to it during process that's why it let you open the database in reset logs.
Lets see after restoring the controlfile and datafiles , you will see SQL tool recovery mechanism ask you recover database using backup controlfile which shows that controlfile does not know where to end the applying redo chain.
Here an excerpt which shows that restored controlfile does not know till how long the redo should be applied, its the RMAN robustness which does not ask you manually to supply redo, RMAN search the alls redo from archivelogs and if possible you have redo within redo logs.But if you are not with RMAN i.e recovering by SQL then you have to cancel recovery at some end.
RMAN> shutdown abort
Oracle instance shut down
RMAN> exit
Recovery Manager complete.
[oracle@khurram ~]$ rm -rf /u01/app/oracle/oradata/his/*
[oracle@khurram ~]$ rman target /
Recovery Manager: Release 11.1.0.6.0 - Production on Fri Oct 2 09:32:37 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
connected to target database (not started)
RMAN> startup nomount
Oracle instance started
Total System Global Area 1620115456 bytes
Fixed Size 2144864 bytes
Variable Size 922748320 bytes
Database Buffers 687865856 bytes
Redo Buffers 7356416 bytes
RMAN> restore controlfile from autobackup;
Starting restore at 02-OCT-09
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK
recovery area destination: /u01/app/oracle/flash_recovery_area
database name (or database unique name) used for search: HIS
channel ORA_DISK_1: AUTOBACKUP /u01/app/oracle/flash_recovery_area/HIS/autobackup/2009_10_02/o1_mf_s_699182899_5dc0c49t_.bkp found in the recovery area
AUTOBACKUP search with format "%F" not attempted because DBID was not set
channel ORA_DISK_1: restoring control file from AUTOBACKUP /u01/app/oracle/flash_recovery_area/HIS/autobackup/2009_10_02/o1_mf_s_699182899_5dc0c49t_.bkp
channel ORA_DISK_1: control file restore from AUTOBACKUP complete
output file name=/u01/app/oracle/oradata/his/control01.ctl
output file name=/u01/app/oracle/oradata/his/control02.ctl
output file name=/u01/app/oracle/oradata/his/control03.ctl
Finished restore at 02-OCT-09
RMAN> alter database mount;
database mounted
released channel: ORA_DISK_1
RMAN> restore database;
Starting restore at 02-OCT-09
Starting implicit crosscheck backup at 02-OCT-09
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=153 device type=DISK
Crosschecked 1 objects
Finished implicit crosscheck backup at 02-OCT-09
Starting implicit crosscheck copy at 02-OCT-09
using channel ORA_DISK_1
Finished implicit crosscheck copy at 02-OCT-09
searching for all files in the recovery area
cataloging files...
cataloging done
List of Cataloged Files
=======================
File Name: /u01/app/oracle/flash_recovery_area/HIS/autobackup/2009_10_02/o1_mf_s_699182899_5dc0c49t_.bkp
File Name: /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_5_5dc0d1m8_.arc
File Name: /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_3_5dc0cx6p_.arc
File Name: /u01/app/oracle/flash_recovery_area/HIS/archivelog/2009_10_02/o1_mf_1_4_5dc0czx3_.arc
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/his/system01.dbf
channel ORA_DISK_1: restoring datafile 00002 to /u01/app/oracle/oradata/his/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/his/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/his/users01.dbf
channel ORA_DISK_1: reading from backup piece /u01/app/oracle/flash_recovery_area/HIS/backupset/2009_10_02/o1_mf_nnndf_TAG20091002T092724_5dc09dlc_.bkp
channel ORA_DISK_1: piece handle=/u01/app/oracle/flash_recovery_area/HIS/backupset/2009_10_02/o1_mf_nnndf_TAG20091002T092724_5dc09dlc_.bkp tag=TAG20091002T092724
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:45
Finished restore at 02-OCT-09
[oracle@khurram ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Fri Oct 2 09:34:51 2009
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> recover database using backup contorlfile until cancel
Keep applying log as you can and you have and cancel at an end when alls logs are supplied to recovery process. -
실수로 TABLE을 DELETE 또는 DROP한 경우 복구 방법 (time-based recovery)
제품 : ORACLE SERVER
작성날짜 : 2004-07-29
PURPOSE
사용자의 실수로 중요한 데이타를 delete 하였거나, 테이블을 drop하였을
경우 복구하는 절차를 정리한 자료이다.
Explanation
사용 중인 database 의 archive log mode 여부를 다음과 같이 확인 후
archive log mode인지 아닌지에 따라 복구 방법이 달라진다.
os>svrmgrl
SVRMGR> connect internal;
SVRMGR> archive log list
Database log mode ARCHIVELOG
Automatic archival ENABLED
Archive destination ?/dbs/arch
Oldest online log sequence 2525
Current log sequence 2527
1. Archive mode인 경우 복구 방법
archive log mode로 운영중이면서 full backup및 archive file들이 모두
존재하는 경우 복구가 항상 가능하다.
이때 다시 다음과 같이 두가지의 경우를 구분하여 복구 작업을 수행할 필요가
있으며 아래에 각각의 경우에 대한 절차를 자세히 설명한다.
(1) drop이나 delete한 시점이 얼마 지나지 않았거나, 혹은 필요에 의해
database 전체를 data 손실 이전 시점으로 돌리고자 하는 경우
(2) 손실된 data만을 drop이나 delete이전 상태를 받아내고, 나머지 data는
모두 drop/delete이후 발생한 transaction의 반영분을 유지시키기 위해
현재 시점으로 맞추어햐 하는 경우
1-1 database 전체를 drop이나 delete 이전시점으로 돌리고자 할 때
이러한 경우는 데이타 손실이 발생하기 이전의 datafile들에 대한 backup을
restore한 후 손실 발생 시점 직전까지 time based로 imcomplete recovery를
수행하면 된다.
(1) db를 shutdown시킨 후 현재 상태를 만약의 경우를 대비하여 cold
backup을 받아둔다.
shutdown immediate로 db를 내리고, datafiles, redo log files, control
files 모두 tar등의 명령어를 이용하여 backup을 받아둔다.
이것은 만약의 경우 이전 backup이나 archive file에 문제가 있는 경우,
삭제된 data의 복구가 불가능할 경우 현재 상태로라도 돌리기 위한
것이다.
(2) 데이타를 삭제하기 이전 상태에서 받아둔 datafile full backup을
restore한다.
redo log files과 controlfiles은 현재 것을 그대로 이용하고, 현재
상태의 모든 datafiles을 지우고 데이타가 삭제되기 전에 받아둔
backup datafile을 restore시킨다.
(temp datafile의 경우는 restore시간을 줄이기 위해 restore하지
않아도된다.)
(3) restore한 backup시점 이후의 archive file들을 archive log
destination에 위치시킨다.
full backup 이후의 archive file들을 일부 tape 장비등에 backup을
받아두고 지운 상태라면 그러한 file을을 다시 원래 위치에 restore
하여, full backup받은 시점부터 복구하고자 하는 시점까지의
archive log file들이 모두 log archive destination에 존재하는지
확인한다.
(4) 데이타 삭제 이전 시점까지 time based로 recover를 수행한다.
이때 날짜와 시간 지정은 항상 아래 예와 같은 형식으로 지정한다.
만약 데이타를 삭제한 시간이후로 지정하게 되면 recovery후에도
여전히 data는 지워진 상태로 보여진다.
os>svrmgrl
SVRMGR> connect internal
SVRMGR> startup mount;
SVRMGR> set autorecovery on
SVRMGR> recover database until time '2001-01-30:21:00:00';
SVRMGR> alter database open resetlogs;
(a) 만약 이때, controlfile이 현재것이 존재하지 않아 datafile뿐
아니라, controlfile도 과거것을 사용했다면, recovery command를
다음과 같이 지정하면 된다.
recover database using backup controlfile (아래줄과 이어짐)
until time '2001-01-30:21:00:00';
(b) temp datafile을 restore하지 않은 경우라면 startup mount수행
직후 다음과 같은 문장을 추가하면 된다.
alter databse datafile '/oracle/oradata/temp01.dbf'
offline drop;
/oracle/oradata/temp01.dbf는 temp datafile의 이름을 예로 든
것이다.
(5) 원하는 data가 제대로 조회되는지 확인한다.
1-2. 삭제된 data만을 복구하고 나머지는 현재 상태를 유지하고자 하는 경우
이러한 경우는 데이타가 삭제되기 이전 상태의 backup datafile 중에
SYSTEM, RBS와 삭제된 data가 들어있는 datafile만을 restore시켜 time
based로 recovery하여 db를 open시킨 후 원하는 table만 export를 받아낸다.
그리고 다시 현재 상태의 db에 export받은 내용을 import시키는 것이다.
이때 삭제된 data를 export받기까지의 절차에 대해서 다음과 같이 세가지
경우의 방법을 생각할 수 있다.
(a) 다른 시스템에 backup이나 test용으로 oracle이 설치되어 있는 경우
그 시스템에 backup을 restore하여 해당 table을 export 받는 방법
(b) 같은 시스템에 backup을 restore 하되, db name과 oracle_sid를 다른
이름으로 변경하여 다른 db를 만들어 recovery후 open하여 export받는
방법 <Bulletin:11616 참조>
(c) 현재 db는 cold backup받아 두고, backup을 restore하여 export을
받아내는 방법
여기에서 (a)의 경우는 다른 시스템에 이용하고자 하는 datafile의 oracle
version 이상의 oracle software가 이미 설치되어 있어야 한다.
(b)의 경우는 현재 상태의 cold backup을 받았다가 export받은 후 다시
현재 상태를 restore할 필요는 없애주지만, 대신 SYSTEM, RBS, user
datafile 만큼의 disk space가 추가로 필요하며, 새로운 db를 추가로
구성하는 것이므로 init.ora file 구성 등의 작업이 필요하다.
이것에 관한 자세한 절차는 <Bulletin:11616>을 참조하도록 한다.
이 자료에서는 이중 (c)에 대한 것만을 자세히 설명한다.
(1) 현재의 모든 datafiles과 redo log files, datafiles을 다음과 같이
신중히 cold backup을 받아두도록 한다.
이것은 이후에 삭제한 data를 복구하여 export를 받은 후에 다시 현재
상태의 db로 되돌아오기 위한 것이다.
단 이 때 tar 등을 이용하여 cold backup하는 대신에 disk 상에 cold
backup을 받아 시간을 절약할 수 있다. disk로의 backup이 가능한
이유는 export를 위한 time based recovery를 수행하기 위해 필요한
datafile이 SYSTEM, RBS, 삭제된 data를 포함한 user datafile
정도이기 때문이다.
os>svrmgrl
SVRMGR> connect internal
SVRMGR> shutdown immediate;
SVRMGR> exit
os>cp /oracle/oradata/*.ctl /oracle/backup/*.ctl
os>cp /oracle/oradata/redo*.log /oracle/backup/redo*.log
os>mv /oracle/oradata/system01.dbf /oracle/backup/system01.bak
os>mv /oracle/oradata/rbs01.dbf /oracle/backup/rbs01.bak
os>mv /oracle/oradata/tools01.dbf /oracle/backup/tools01.bak
redo log file이나 controlfile의 경우는 time based recovery시에도
필요하므로 cp를 받아두고, datafile의 경우는 mv를 이용하도록 한다.
위의 예에 제시된 file이름들은 해당 환경에 맞게 변경되어야 하며,
tar를 이용하여 tape에 옮겨도 관계는 없으나, 단 cold backup에
해당하는 모든 datafiles, redo log files, control files를 받아두어야
한다.
(2) 삭제한 data가 존재할 당시에 받아둔 backup에서 SYSTEM datafile, RBS
datafile, 그리고 삭제한 table이 들어있는 datafile만을 restore한다.
redo log files과 controlfiles은 현재 것을 그대로 이용한다.
(3) restore한 backup시점 이후의 archive file들을 archive log
destination에 위치시킨다.
full backup 이후의 archive file들을 일부 tape 장비 등에 backup을
받아두고 지운 상태라면 그러한 file을을 다시 원래 위치에 restore
하여, full backup받은 시점부터 복구하고자 하는 시점까지의
archive log file들이 모두 log archive destination에 존재하는지
확인한다.
(4) restore하지 않을 datafile, 즉 SYSTEM, RBS, 삭제된 data를 포함하
는 user datafile을 제외한 모든 datafile은 모두 offline drop시키
고, 데이타 삭제 이전 시점까지 time based로 recover를 수행한다.
이때 날짜와 시간 지정은 항상 아래 예와 같은 형식으로 지정한다.
만약 데이타를 삭제한 시간이후로 지정하게 되면 recovery후에도
여전히 data는 지워진 상태로 보여진다.
os>svrmgrl
SVRMGR> connect internal
SVRMGR> startup mount;
SVRMGR> alter database datafile '/oracle/oradata/temp01.dbf'
offline drop; (윗줄과 이어짐)
SVRMGR> alter database datafile '/oracle/oradata/userdata05.dbf'
offline drop; (윗줄과 이어짐)
... 이와 같이 resotre하지 않은 datafile을 모두 offline drop시킨다.
SVRMGR> set autorecovery on
SVRMGR> recover database until time '2001-01-30:21:00:00';
SVRMGR> alter database open resetlogs;
만약 이때, controlfile이 현재것이 존재하지 않아 datafile뿐 아니라,
controlfile도 과거것을 사용했다면, recovery command를 다음과 같이
지정하면 된다.
SVRMGR>recover database using backup controlfile until time
'2001-01-30:21:00:00'; (윗줄과 이어짐)
(5) 원하는 data가 제대로 조회되는지 확인한 후 필요한 table을 export한다.
예를 들어 scott user의 dept table을 복구하고자 한것이었다면 다음과
같이 export를 받는다.
os>exp scott/tiger file=dept.dmp tables=dept log=deptlog1
(6) time based로 recovery후 open한 db는 shutdown하여 없애고 (1)번에서
받아둔 현재 상태의 backup을 restore한다.
shutdown은 immediate나 abort 모두 가능하며, shutdown후 restore한
SYSTEM, RBS, user datafile모두 삭제하고, 사용하던 controlfiles,
redo log files도 모두 삭제한다.
그리고 (1)에서 mv나 cp로 (혹은 tar로) 옮겨놓은 모든 datafiles,
controlfiles, redo log files를 원래의 directory와 이름으로
위치시킨다. SYSTEM, RBS, user datafile도 반드시 (1)번 상태의
현재 상태 backup을 restore하여야 한다.
(7) db를 startup시킨 후 (5)에서 받은 export내용을 import시킨다.
os>imp scott/tiger file=dept.dmp tables=dept ignore=y commit=y
log=deptlog2 (윗줄과 이어짐)
(8) 원하는 data가 제대로 조회되는지 확인한다.
2. No archive mode 로 운영할 경우 복구 방법
archive mode 로 운영하지 않았을 경우에는, 삭제한 data를 export 받아
두었거나, 혹은 data가 삭제 전 받아둔 cold backup이 존재하는 경우
복구가 가능하다.
(1) export가 존재하는 경우
다음과 같이 import한다. scott user의 dept가 삭제된 경우를 예로 들었다.
os>imp scott/tiger file=dept.dmp tables=dept ignore=y commit=y log=log1
(2) cold backup이 존재하는 경우
다른 시스템에 사용가능한 oracle engine이 설치되어 있다면, 그곳을
이용하거나, 혹은 현재 database를 backup받아둔후 현재 시스템에
restore하여 export를 받아낼 수 있다.
(1) 현재의 모든 datafiles과 redo log files, datafiles을 다음과 같이
신중히 cold backup을 받아두도록 한다.
이것은 이후에 삭제한 data를 복구하여 export를 받은 후에 다시 현재
상태의 db로 되돌아오기 위한 것이다.
단 이 때 tar 등을 이용하여 cold backup하는 대신에 disk 상에 cold
backup을 받아 시간을 절약할 수 있다. disk로의 backup이 가능한
이유는 export를 위한 time based recovery를 수행하기 위해 필요한
datafile이 SYSTEM, RBS, 삭제된 data를 포함한 user datafile
정도이기 때문이다.
os>svrmgrl
SVRMGR> connect internal
SVRMGR> shutdown immediate;
SVRMGR> exit
os>mv /oracle/oradata/*.ctl /oracle/backup/*.ctl
os>mv /oracle/oradata/redo*.log /oracle/backup/redo*.log
os>mv /oracle/oradata/system01.dbf /oracle/backup/system01.bak
os>mv /oracle/oradata/rbs01.dbf /oracle/backup/rbs01.bak
os>mv /oracle/oradata/tools01.dbf /oracle/backup/tools01.bak
위의 예에 제시된 file이름들은 해당 환경에 맞게 변경되어야 하며,
tar를 이용하여 tape에 옮겨도 관계는 없으나, 단 cold backup에
해당하는 모든 datafiles, redo log files, control files를 받아두어야
한다.
(2) 삭제한 data가 존재할 당시에 받아둔 backup에서 SYSTEM datafile,
RBS datafile, 그리고 삭제한 table이 들어있는 datafile만을
restore한다.
backup당시의 redo log files과 controlfiles도 restore하여야 한다.
(3) restore하지 datafile, 즉 SYSTEM, RBS, 삭제된 data를 포함하는 user
datafile을 제외한 모든 datafile은 모두 offline drop시키고,
database를 open시킨다.
os>svrmgrl
SVRMGR> connect internal
SVRMGR> startup mount;
SVRMGR> alter database datafile '/oracle/oradata/temp01.dbf'
offline drop; (윗줄과 이어짐)
SVRMGR> alter database datafile '/oracle/oradata/userdata05.dbf'
offline drop; (윗줄과 이어짐)
... 이와 같이 resotre하지 않은 datafile을 모두 offline drop시킨다.
SVRMGR> alter database open;
(4) 원하는 data가 제대로 조회되는지 확인한 후 필요한 table을 export
한다.
예를 들어 scott user의 dept table을 복구하고자 한 것이었다면
다음과 같이 export를 받는다.
os>exp scott/tiger file=dept.dmp tables=dept log=deptlog1
(5) exprot받아낸 database는 shutdown하여 없애고 (1)번에서 받아둔
현재 상태의 backup을 restore한다.
shutdown은 immediate나 abort 모두 가능하며, shutdown후 restore한
SYSTEM, RBS, user datafile모두 삭제하고, 사용하던 controlfiles,
redo log files도 모두 삭제한다.
그리고 (1)에서 mv나 tar로 옮겨놓은 모든 datafiles, controlfiles,
redo log files를 원래의 directory와 이름으로 위치시킨다.
(6) db를 startup시킨 후 (4)에서 받은 export내용을 import시킨다.
os>imp scott/tiger file=dept.dmp tables=dept ignore=y commit=y
log=deptlog2 (윗줄과 이어짐)
(7) 원하는 data가 제대로 조회되는지 확인한다. -
I tried to update my IPAD to IOS6 and it failed following this recover mode will not wortk either. I have reset multiple times and tried recovery again only to get the same error stating that recovery failed. The error states unknown recovery error. My system OS is up to date with OS X 10.7.5. Itunes is up to date with 10.7 (21).
Try:
- Powering off and then back on your router.
- The Additional Information paragraph of
iTunes for Windows: iTunes cannot contact the iPhone, iPad, or iPod software update server
- Change the DNS to either Google's or Open DNS servers
Public DNS — Google Developers
OpenDNS IP Addresses
- Try on another computer/network
- Wait if it is an Apple problem -
Part Time, Contract Based, and Full Time Positions available for LabVIEW Developers
Mindready (www.mindready.com) is looking for flexible, hard working individuals to fill part time, contract based, and full-time/permanent jobs in LabVIEW development positions. We have immediate needs for contract labor in Dallas, TX; NY; Huntsville, AL and Austin, TX, as well as other locations. US Citizen and Security Clearance required on some projects. Mindready is a certified National Instruments Alliance Partner with facilities in Montreal, Austin, TX and (Radical Systems, Inc. – a mindready company) Huntsville, AL (www.radicalsystems.com).
The duties of the positions include:
• On and off-site LabVIEW development work. May involve TestStand, instrumentation such as PXI and stand alone instruments, DAQ, Motion, Vision, etc.)
• Willingness to travel for periods as short as 2-3 days, to as long as 6 months. (Ideal candidate would be local to any long assignment)
• Integrate into customer’s development team to design and modify new/existing LabVIEW applications.
The ideal candidate would possess the following skills & qualifications:
• Intermediate-to-advanced knowledge of LabVIEW (a pre-employment test is required)
• Broad technical knowledge is a plus, we serve a wide range of application areas
• Excellent writing, communication (English), time-management, and interpersonal skills.
• Ability to travel for on-site work at customer facilities for jobs as short as 1 week, possibly as long as 6 months.
• Discipline and organization with respect to software development and maintenance.
• Engineering, Technical or Computer Science degree or appropriate experience
• Certification is not required but would be beneficial
Pay is commensurate with skills and qualifications of the applicant. Compensation will include a competitive hourly rate.Hi
I completed my M.S in electronics engineering and working with GE in INDIA since June 2005. I have total 20 months of experience with LabVIEW and have the follwoing skills.
Intermediate-to-advanced knowledge of LabVIEW.
Ability to analyze empirical data against theoretical predictions to enhance and improve mathematical model of system.
Familiarity with data acquisition concepts and hardware.
Ability to work both alone and with colleagues to solve problems and to weigh the merits of differing approaches
you can reach me at [email protected]
Thanks & Regards
Anil Punnam -
Oracle (SQL) support for Temporal / time period based data
Beyond standard SQL (DATE type etc. and <,>, LEAST, GREATEST, etc.) does Oracle offer anything to help handle time period based data? E.g. overlapping periods, joins when gaps in time periods from 2+ tables, period contiguity checks, etc. I've developed various SQL query techniques, but they're all rather cumbersome using standard SQL.
Oracle Spatial offers geo-location support - is there anything similar for temporal query support?
Any good books / docs on the subject?Check out Workspace manager for limited out of the box temporal support.
You may also want to have a read through this series of articles about temporal database systems. They aren't Oracle specific, but may help you with your temporal system design. -
Fix on months in time dim based on txt measure value
Hi All,
We have two text measures startmonth and endmonth, how can we fix to the time dimension based on the values of these text measures? e.g. fix (Mar:Dec)
Thanks,
JamesHi James
I am sorry, sounds like you may need to go on some Essbase training. As I said you CANNOT FIX on data that is input.
You need to FIX on ALL period members by using something like @RELATIVE(YearTotal,0), then in your rule write the IF statement so that data is only calculated when the period you are in (The FIX on ALL periods will cycle through all periods) is between the values input by the user (i.e the Start Month and End month values).
An example below is for say a depreciation calculation.
******** "SYS_MONTH" is a member that places VALUES against each period member so that you can compare and match against values that are input i.e like VLOOKUP in Excel, so Jan = 1, Feb=2 ...*************************
FIX(FY13, @RELATIVE("Product",0),@RELATIVE("YearTotal",0)) I don't know you other dimensions that you are trying to calculate against so you will need to add them
"Depreciation"(
IF("Start_Month"->"Input_period"->"Input_Year"->"Input_product" <= "SYS_MONTH" AND "End_Month"->"Input_period"->"Input_Year"->"Input_product" >= "SYS_MONTH")
"Depreciation" = xxxxxxxxxx Code to calculate deprecation ;
ELSE
"Depreciation" = #missing;
ENDIF)
ENDFIX
Imaging you are in a spread sheet with Jan, Feb, Mar across the top and in the far left column you have the start and end month inputs. The calculation will go from left to right and IF the period its calculating i.e the SYS_MONTH member is between the start month and the end month (the 4 and the 11 below) then depreciation will be calculated, if not then #missing, or you can choose not to calculate.
Input_Period
Jan
Feb
Mar
Apr
May
Jun
Jul
Aug
Sep
Oct
Nov
Dec
SYS_MONTH
#missing
1
2
3
4
5
6
7
8
9
10
11
12
Start_Month
4
End_Month
11
Depreciation
#missing
#missing
#missing
#missing
x
x
x
x
x
x
x
x
#missing -
UCCX 7 (SR4) - real time reporting based on option choosed
hello,
i would like to extract real time information on wich option the client choosed on my uccx7 script. I know where to get in the database some info from the queues (Summary Tables), and i would like to make some custom real time reporting based on wich option was choosed to know how many callers choosed the voicemail option (so the call won't show up as abandoned).
Is there any way to get real time info from a custom variable in real time? in wich table?
thank,
met.IVR selections are not recorded within the CCX databases. You would need to save this to an external database and report from there. Your only method of capturing this within db_cra would be to store a value into an enterprise data variable which can be seen on historical reports.
Also, the only tables that are "real time" are those identified as such: RtCSQsSummary and RtICDStatistics for use by wallboard applications. -
NullPointerExceotion on Timer.cancel
Hi everyone!
I'm a bit messed up with a rebellious timer in my program.
It is supposed to measure a timeout between a messege sent by a server and a response from a client. Everything runs in UDP.
So, the server sends a keepalive message periodically by executing this method (called from another timerTask):
public void sendKeepalive() {
Message message = new Message("KPA","",this, this); // Message is a class used for wrapping messages in the server
tx(message); // Sends a message over a UDP socket
waitForACK = new Timer();
waitForACK.schedule(new WaitForACKTask(this), keepaliveTimeout);
}AFAIK, this code works fine, because the timer task works fine, and it does diisconnect the client once the time is up. This is the code to WaitForACKTask:
public class waitForACKTask extends TimerTask {
private Client client; // Client is a class that deals with one client (it is part of the server; ie: the server has one Client class per connected client)
public WaitForACKTask(Client client){
this.client = client;
public void run(){
client.disconnect(); //deletes the user from the server list and notifies it that it has been disconnected
}Again, this seems to work fine.
Now, the problem comes when the client answers the petition. It sends an "ACK" message, wich is processed as follows:
public void process(Message message) {
if (message.returnType().equals("ACK")){
System.out.println("ACK received"); // I have tested that it does recognize the type of the message correctly
waitForACK.cancel(); // This is the line where NullPointerException is launched
} else if (message.returnType().equals("DIS")){
disconnect();
else {
control.queue(message);
}So, here is where the code fails; on waitForACK.cancel():
java.lang.NullPointerException
at chatServer.Client.process(Client.java:72)
at chatServer.ListenClient.run(ListenClient.java:29)After that, te timer simply keeps on counting (as if no ACK has been received) and disconnects the client after timeout.
I've looked up in the java documentation and Timer.cancel() is not supposed to launch any exceptions.
Thank's in advance!Just figured it out by myself! I had tested everything with a fake client (that is, me writing the protocol messages on a dumb client made just by a window and a socket), and I saw it didn't fail. So it turns out that the ACK was received before the timer had had time to be created. It didn't fail when I was the client, because I was much slower. So everything is fixed by changing the order in the code of sendKeepAlive:
public void sendKeepalive() {
waitForACK = new Timer();
waitForACK.schedule(new WaitForACKTask(this), keepaliveTimeout);
Message message = new Message("KPA","",this, this);
tx(message);
}Edited by: fenom_ on May 16, 2009 8:50 AM -
Hai all,
In note id , 232240.1 - Performing Switchover in a Data Guard Configuration
Convert the physical standby to the new primary:
If you are on verion 9.0.1 then you should first cancel managed recovery prior
to issuing the above command. If you are on 9.2.0 and have started managed
recovery with the "through all switchover" clause then you should also cancel
managed recovery before issuing the above command.
also cancel
managed recovery before issuing the above command.>>>>>>>>
How can I cancel this ?
KaiALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
sbs -
Nearest time zones based on user time zone
Hi,
In my application, user accesses the applet in the browser and based on the user time zone I need to display the list of available server which are near to his time zone.
Please provide me some hints on how to sort the time zones based on the time zone offset.
Thanks
AravindHi,
In my application, user accesses the applet in the browser and based on the user time zone I need to display the list of available server which are near to his time zone.
Please provide me some hints on how to sort the time zones based on the time zone offset.
Thanks
Aravind -
Look-up java time zone based on location?
I have a test app where I can assign a java timezone and return time info - However, I don't see a way to look-up a java time zone based on location (combination of city/province/state/country).
Is this possible?Has any one found a way to lookup a timezone based on a city/region in the world? So one could be able to type any city and state/province and country combination and get the corresponding timezone for that region. Is there a place where one can buy this data?
Thank you -
To get time differnce based on factory calendar
Dear All,
We have Creation date, time, End date and time. We need to find out the time difference based on factory calendar ..ie need to exculde weekends, holidays.
Is there any FM to get this? Please adivse procedure how to get.
Thanks
Konda ReddyTry Something like following
PARAMETERS : P_BEGDA TYPE BEGDA,
P_BTIME TYPE SYUZEIT,
P_ENDDA TYPE BEGDA,
P_ETIME TYPE SYUZEIT.
DATA LV_DURATION TYPE F.
CALL FUNCTION 'DURATION_DETERMINE'
EXPORTING
UNIT = 'H' "Hours
FACTORY_CALENDAR = 'GR'
IMPORTING
DURATION = LV_DURATION
CHANGING
START_DATE = P_BEGDA
START_TIME = P_BTIME
END_DATE = P_ENDDA
END_TIME = P_ETIME
EXCEPTIONS
FACTORY_CALENDAR_NOT_FOUND = 1
DATE_OUT_OF_CALENDAR_RANGE = 2
DATE_NOT_VALID = 3
UNIT_CONVERSION_ERROR = 4
SI_UNIT_MISSING = 5
PARAMETERS_NOT_VALID = 6
OTHERS = 7.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
WRITE LV_DURATION. -
Display of Time Stamps based on the TimeZones
Hi experts,
I am new to Internationalization topic and wants to
display Time Stamps based on the TimeZones.
For example, If I choose Asia/Calcutta as my TimeZone
it is displaying "Mon Aug 28 11:02:47 GMT+5:30 2001" as the TimeStamp.(I am in this TimeZone,which is default to me.)
Similarly If I select any other TimeZone, it should display the TimeStamp in the same format but the values in the Time Stamp should reflect the selected TimeZone.
I will be thankful to you if u could help me to get the solution.
Srinivas.Hi Srinivas,
It comes down to some tinkering in the java.util.* package.
First off, you'll need to familiarise yourself with the Calendar class. This basically replaces the old Date class from old versions of the JDK, and allows you to hold certain dates and times. You can get one by calling Calendar.getInstance();
You can then set a TimeZone on this Calendar by calling myCalendar.setTimeZone().
To create a basic TimeZone, have a look at the SimpleTimeZone class - it'll allow you to set the hours ahead or behind GMT, as well as a start date for this time zone, and even gives the ability to add daylight savings time.
From there, the time zone you add to the Calendar should produce the correct dates for you. Changing the time zone within a Calendar that already holds a date and time should alter that date and time accordingly.
If you want to get really clever, have a look at the Locale class - it allows you to specify a default language and country. You can then apply this to your Calendar by calling Calendar.getInstance(Locale myLocale) instead of the version above. If you have the international JDK (i.e. the one with i18n.jar onboard), Calendar should be clever enough to format the dates nicely for you if you use a fairly well-known Locale (such as American English and so on).
A Locale will also let you format dates in a location-specific way if you want to output them to the screen later on down the track. A quick look at SimpleDateFormat and some of the other DateFormat classes should tell you what you need to know.
If you can't quite get your head around any of the above, feel free to reply again!
Martin Hughes -
help me
My iPhone is in recovery mode and I do not see it on my laptop and on iTunes. Moreover, I can not turn it off and when I try it comes up all the time in the recovery mode.Hey Yan Heng,
Thanks for the question. It sounds like your iOS device is not recognized in iTunes for Windows, while in recovery mode. The following resource may help to resolve your issue. While you should run through each step, the specific information related to your symptom is outlined in Step 5 (If the device is not recognized while in Recovery Mode).
iOS: Device not recognized in iTunes for Windows
http://support.apple.com/kb/TS1538
Thanks,
Matt M.
Maybe you are looking for
-
Mini DisplayPort to S-Video or RCA (yellow)
I know this has been addressed in other topics by other people, but I was wondering what the final outcome of all the discussion was. Is it possible to connect my MacBook Pro 13-inch with Mini DisplayPort to female S-Video or RCA (composite--yellow c
-
Hi guys, I am trying to understand the importance of the table - T399J. The issue is that when we do goods movement using - BAPI_GOODSMVT_CREATE. It does not work correctly. I am tyring to understand the importance of the table - T399J. Can anyone pl
-
Mavericks on first generation macbook air ?
I hope that OSX Mavericks will work on my first generation Macbook Air. At the moment I am stuck with an unsatisfying OSX Lion on a great machine. Or left with the choice to go back to 10.6.8. again. Any hope for me ?
-
How can I get my graph to plot vs. my data points instead of vs. time?
how can I get my graph to plot vs. my data points instead of vs. time?
-
HT1414 The iphone "iphone" could not be restored. An unknown error occured (-1)
error (-1)