실수로 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가 제대로 조회되는지 확인한다.

Similar Messages

  • ADF : Generating Viewobject table at run time based on Bind Parameter

    Hi,
    My JDeveloper Version 11.1.1.5,
    I am facing one issue. I an not understanding how to deal with it. Its kind of road block for me.
    Scenario:
    I have a list of value(SOC), Which contains names of projects. Upon selecting one project and clicking on search button, table should be generated dynamically based on a query. To this query I need to pass the selected value from SOC, and should generate the query out put on to the screen, upon clicking on search button.
    Could any one please tell me the solution how to implement it?
    Please help.
    Thanks in Advance,

    Hi,
    the approach should be
    1. on click of search buton get the selected value in managed bean.
    2. write a method in am impl to execute the view by setting the where clause with selected value from SOC. the method should accept SOC selected value as parameter.
    3. expose the method in clent interface.
    4. on click search button method, invoke the am impl method using peration binding.
    ~Abhijit

  • Recover database from archive log: Time based recovery

    Hi,
    Could you pelase help regarding the following:
    I have power outage in my machine running oracle 9i on Solaris OS 9
    Oracle is mounted but failed to open
    Once it is started showing the error message
    SQL> startup;
    ORACLE instance started.
    Total System Global Area 9457089744 bytes
    Fixed Size 744656 bytes
    Variable Size 3154116608 bytes
    Database Buffers 6291456000 bytes
    Redo Buffers 10772480 bytes
    Database mounted.
    ORA-01113: file 4 needs media recovery
    ORA-01110: data file 4: '/opt/oracle/oradata/sysdb/indx/indx01.dbf'
    So I tried to recover the database
    SQL> recover database;
    ORA-00279: change 1652948240 generated at 12/03/2007 13:09:08 needed for thread
    1
    ORA-00289: suggestion : /opt/oracle/oradata/nobilldb/archive/1_183942.dbf
    ORA-00280: change 1652948240 for thread 1 is in sequence #183942
    Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
    ORA-00279: change 1652948816 generated at 12/03/2007 13:09:19 needed for thread
    1
    ORA-00289: suggestion : /opt/oracle/oradata/nobilldb/archive/1_183943.dbf
    ORA-00280: change 1652948816 for thread 1 is in sequence #183943
    ORA-00278: log file '/opt/oracle/oradata/nobilldb/archive/1_183942.dbf' no
    longer needed for this recovery
    The power outage at 16:00pm and the recovery archive log file '/opt/oracle/oradata/nobilldb/archive/1_183942.dbf' at 11 am
    Always I am applying the next sequence it is giving the same message and asking the next sequence. I have more than 900 archive log from 11am to 4pm and each of them having the size of 100mb and it take 1 minute to get back from each to provide this error message.
    How I can start my recovery from say 15:45 onwards until 16:15?
    I have all archive logs in the proper destination.
    Still my database is not opened and it is starts applying archive log since 5 hours back, please help me regarding this
    Thanks in advance

    Wrong forum. Post your question in the following forum:
    General Database Discussions

  • Problem with time based rman recovery

    Hi and happy boxing day:
    I am following by the letter the instructions in Sybex FundamentalsII book p.348 regarding an rman time based recovery. Here is the syntax:
    RMAN> run {
    2> allocate channel ch1 type disk;
    3> set until time 'DEC 26 2007 10:30:00';
    4> restore database;
    5> recover database;
    6> sql 'alter database open resetlogs';
    7> }
    and here is the error:
    allocated channel: ch1
    channel ch1: sid=11 devtype=DISK
    executing command: SET until clause
    released channel: ch1
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of set command at 12/26/2007 11:06:45
    ORA-01858: a non-numeric character was found where a numeric was expected
    Is this a format issue? Any tips please!
    Thanks,
    DA

    You can only register a database once if you are using a recovery catalog, so whoever or whatever told you to re-register is simply getting their terminology in a knot!
    There **is** a sort-of "re-register" command which does sometimes need to be issued after a resetlogs: it's called a RESET command. See http://tinyurl.com/29t5lr for details. A "reset" is, effectively, a "re-register".
    One of the details you will see is that you only need to do a manual reset if it was **you** that issued a resetlogs, outside of RMAN. If you get RMAN to do the resetlogs, however, then there's no need to also issue the reset command, because RMAN already knows about it (and has already updated its own metadata accordingly).
    The other thing you'll notice from the documentation is that if you aren't using a recovery catalog then the concept of issuing a reset is entirely redundant. That's because you can't recover to a prior incarnation of the database without a catalog: it's one of the main reasons for wanting to run in catalog mode in the first place. No catalog = no ability to step through incarnations = no need to inform RMAN that you're in a new incarnation.

  • 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

  • Columns in af:table rendering multiple times when filtering drop-down list

    Technology: JDeveloper 10.1.3.0.4 SU5, ADF Faces/BC
    Page design:
    Master-detail jspx.
    Each section is an af:table.
    Drop-down lists created using instructions from http://www.oracle.com/technology/products/jdev/tips/muench/screencasts/editabletabledropdown/dropdownlistineditabletable.html?_template=/ocom/technology/content/print
    Requirement:
    Data in a drop-down list on a child record needs to be filtered based on data from one or more columns in the currently selected row of the parent record.
    Issue:
    Drop-down lists have been successfully filtered using a couple of different methods, however, any time the data from the parent record is used to filter the data the columns in the child af:table begin to render multiple times. Navigating through the parent rows may cause the child records to have the correct number of columns displayed or multiple copies of the columns displayed.
    Removing any reference to the parent view object and hard-coding values instead causes this behavior to disappear.
    Each of the following methods has been tried. Each filters drop-down list data correctly and each causes apparently random extra column renders.
    1.     Cascading lists as per: http://www.oracle.com/technology/products/jdev/tips/mills/cascading_lists.html
    2.     Drop-down list based on view object that takes parameters.
    3.     Set where clause for drop down list in a method on the app module.
    4.     Set where clause for drop-down list in a new selection listener method for the af:table.
    Question:
    Is there a solution available that will filter the drop-down lists correctly and prevent the extra columns from being rendered?
    Thank you for any help that you can provide,
    Joanne

    bump

  • TDMS - time based reduction - receiver system deletion

    Experts,
    I'm doing a time based reduction.  I'm on the step "Start Deletion of Data in Receiver System".  It's been running for over 18hours.
    But I don't see any jobs running in SM66 on the Central/Control or Sender or Reciever systems.
    When I click on the "Task" button, I see it has completed 8,444 of 12,246  sub activites.  There are 3,802 not yet started.
    We're on all the latest levels of DMIS and ECC.
    Any ideas?
    Thanks
    NICK

    Ashley and Niraj,
    Hey, I'm all for tips/tricks so don't worry about messing up my thread.
    I completely shut down the central/control system via stopsap and restarted.  Still it was in "running" status but no jobs were running on sender/rec or central/control.
    So I tried the trouble-shooting but it was un-clear to me what to do.
    I ended up highlighting the phase I reference earlier, then doing "execute" again.  The status changes from the "truck" to a green flag and I started to see jobs run again on the receiver system.  Again they have stopped, but I see another job scheduled to run in a few minutes....It's just weird, I didn't run into this on my last time-based copy.
    I'll post a few things I've learned to increase performance:
    RDISP/MAX_WP_RUNTIME = 0
    At LEAST 25 WP and 25 BCK procs
    rec/client = OFF
    RDISP/BTCTIME = 60
    RUN STATS regularly
    TAKE OUT OF ARCHIVELOG MODE
    Read/Impl these notes:
    Read theseu2026Update these parameters
    o TD05X_FILL_VBUK_1 Note 1058864
    o TD05X_FILL_VBUK_2 Note 1054584
    o TD05X_FILL_BKPF Note 1044518
    o TD05X_FILL_EBAN Note 1054583
    o TD05X_FILL_EQUI Note 1037712
    Set these oracle index on rec system:
    Table: QMIH
      fields: MANDT, BEQUI
    Table: PRPR
      fields: MANDT, EQUNR
    Table: VBFA
      fields: MANDT, VBELN, VBELV, POSNV
    set parameter u2018P_CLUu2019 to u2018Yu2019 in the following
    activities before you start the activities for filling internal header tables:
    TD05X_FILL_BKPF
    TD05X_FILL_CE
    TD05X_FILL_EKKO
    TD05X_FILL_VBUK
    TD05X_FILL_VBUK_1
    TD05X_FILL_VBUK_2
    TD05X_FILL_VSRESB
    TD05X_FILL_WBRK_1
    run TCODE CNVMBTACTPAR, specify the project number to do this
    IMPORTANT TCODEs
    CNV_MBT_TDMS_MY  Main TDMS starting point     
    CNVMBTMON  Process Monitor (must know your project number)
    DTLMON  MWB transfer monitor
    CNVMBTACTPAR  activity parameters
    CNVMBTACTDEF  MBT PCL activity maint
    CNVMBTTWB  TDMS workbench to develop scrambling rules
    CNV_TDMS_HCM_SCRAM  run in SENDER system for scrambling functionality
    Reports
    CNV_MBT_PACKAGE_REORG  to reorganize TDMS projects..aka delete
    CNV_MBT_DTL_FUGR_DELETE  deletes function groups associated with old projects
    Tables
    CNVMBTUSEDMTIDS   lists obsolete MTIDs
    IMPORTANT NOTES
    Note 894307 - TDMS: Tips, tricks, general problems, error tracing
    Note 1405597 - All relevant notes for TDMS Service Pack 12 and above
    Note 1402704 - TDMS Composite Note : Support Package Independent
    Note 890797 - SAP TDMS - required and recommended system settings
    Note 894904 - TDMS: Problems during deletion of data in receiver system
    Note 916763 - TDMS performance "composite SAP note"
    Note 1003051 - TDMS 3.0 corrections - Composite SAP Note
    Note 1159279 - Objects that are transferred with TDMS
    Note 939823 - TDMS: General questionnaire for problem specification
    Note 897100 - TDMS: Generating profiles for TDMS user roles
    Note 1068059 - To obtain the optimal deletion method for tables (receiver)
    Note 970531 - Installation and delta upgrade of DMIS 2006_1
    Note 970532 - Installation of DMIS Content 2006_1
    Note 1231203 - TDMS release strategy (Add-on: DMIS, DMIS_CNT, DMIS_EXT...)
    Note 1244346 - Support Packages for TDMS (add-on DMIS, DMIS_CNT, ...)
    I'm doing this for an ECC system running ecc 6.0 EHP6 by the way.
    Still any help with my issue on the delete would be helpful. but post tips I don't kwnow about
    NICK

  • Table dropped time

    Hi,
    if some user dropped some object from database how to know the time of drop for recovery purpose .
    can sme one put light on it .
    rohit

    Rohit,
    This will not be shown to you from any view/etc. You need to mine the redolog/archive files to get the information. For this purpose, Logminer is the tool that you should study. This would bring the DDLs stored in both the files, from where you would come to know the table drop time.
    http://download.oracle.com/docs/cd/B28359_01/server.111/b28319/logminer.htm#SUTIL019
    HTH
    Aman....

  • How to delete all data in all tables in one time ?!

    1 CREATE OR REPLACE PROCEDURE delete_all_data
    2 IS
    3 v_statement VARCHAR2 (200);
    4 BEGIN
    5 FOR i IN (SELECT *
    6 FROM user_tables)
    7 LOOP
    8 v_statement :=
    9 'delete table ' || i.table_name ;
    10 EXECUTE IMMEDIATE v_statement;
    11 END LOOP;
    12 commit;
    13* END;
    SQL> /
    Procedure created.
    SQL> exec delete_all_data
    BEGIN delete_all_data; END;
    ERROR at line 1:
    ORA-00903: invalid table name
    ORA-06512: at "DE2.DELETE_ALL_DATA", line 10
    ORA-06512: at line 1
    I made the previous code , but it's didn't work with me .... any help for this problem please ?!
    I'm just reminder ..... all what I need ,that delete all data in all tables in one time only .
    I'm waiting for the answer ..... and thanks in advance

    create or replace
    FUNCTION TRUNC_SCHEMA RETURN NUMBER AS
    CURSOR select_table IS SELECT TABLE_NAME AS TNAME FROM USER_TABLES ORDER BY 1;
    sTableName Varchar2(128);
    sUser Varchar2(128);
    sConstraintName Varchar2(128);
    plsql_block Varchar2(512);
    BEGIN
    SELECT USER INTO sUser FROM DUAL;
    IF ((sUser='SYSTEM') OR (sUser='SYS')) THEN
    RETURN 1;
    END IF;
    EXECUTE IMMEDIATE 'PURGE RECYCLEBIN';
    -- DISABLE table's constraints
    FOR C1 IN (select CONSTRAINT_NAME, TABLE_NAME from user_constraints where STATUS = 'ENABLED' AND CONSTRAINT_TYPE in ('P','R') ORDER BY R_CONSTRAINT_NAME) LOOP
    sConstraintName := C1.CONSTRAINT_NAME;
    sTableName := C1.TABLE_NAME;
    plsql_block := 'ALTER TABLE ' || sTableName || ' DISABLE CONSTRAINT ' || sConstraintName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    FOR D IN select_table LOOP
    --get table name
    sTableName := D.TNAME;
    -- clear table
    plsql_block := 'TRUNCATE TABLE ' || sTableName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    -- ENABLE table's constraints
    FOR C2 IN (select CONSTRAINT_NAME, TABLE_NAME from user_constraints where STATUS = 'DISABLED' AND CONSTRAINT_TYPE in ('P','R') ORDER BY R_CONSTRAINT_NAME desc) LOOP
    sConstraintName := C2.CONSTRAINT_NAME;
    sTableName := C2.TABLE_NAME;
    plsql_block := 'ALTER TABLE ' || sTableName || ' ENABLE CONSTRAINT ' || sConstraintName;
    EXECUTE IMMEDIATE plsql_block ;
    END LOOP;
    RETURN 0;
    EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('ERROR: ' || SQLERRM);
    RETURN 1;
    END TRUNC_SCHEMA;
    /

  • Exclude a table from time-based reduction

    Hi,
    Iu2019d like to exclude a table from time-based reduction. How can I do this ? Is there any manual how to do customizing in TDMS ?
    Regards
    p121848

    Thank you Markus for your annotation.
    AUFK is technically declared as an Master Data Table, but stores orders. Standard
    TDMS provides a reduction of this file and in the client copies we did via TDMS a lot of  records disappeared when we selected time-reduction.
    Now we fond out that some Transactions as OKB9 or KA03 refer to old internal orders. So we would like to maintain the customizing, to exclude AUFK from reduction. But this is not possible in activity TD02P_TABLEINFO, because no changes can be done to the tables, which have got the transfer_status 1 = Reduce.
    You can manipulate the Transfer-Status in file CNVTDMS_02_STEMP before getting to activity  TD02P_TABLEINFO, but I wonder whether this is the way one should do.
    Any idea ?
    Regards p121848

  • How to delete/drop all the tables from SQL Server Database without using Enterprise Manager?

    How to delete/drop all the tables from SQL Server Database without using Enterprise Manager?
    I tried using DROP Tables, Truncate Database, Delete and many more but it is not working.  I want to delete all tables using Query Analyzer, i.e. through SQL Query.
    Please help me out in this concern.
    Nishith Shah

    Informative thread indeed. Wish I saw it early enough. Managed to come up with the code below before I saw this thread.
    declare @TTName Table
    (TableSchemaTableName
    varchar
    (500),
    [status] int
    default 0);
    with AvailableTables
    (TableSchemaTableName)
    as
    (select
    QUOTENAME(TABLE_SCHEMA)
    +
    +
    QUOTENAME(TABLE_NAME)
    from
    INFORMATION_SCHEMA.TABLES)
    insert into @TTName
    (TableSchemaTableName)
    select *
    from AvailableTables
    declare @TableSchemaTableName varchar
    (500)
    declare @sqlstatement nvarchar
    (1000)
    while 1=1
    begin
    set @sqlstatement
    =
    'DROP TABLE '
    + @TableSchemaTableName
    exec
    sp_executeSQL
    @sqlstatement
    print
    'Dropped Table : '
    + @TableSchemaTableName
    update @TTName
    set [status]
    = 1
    where TableSchemaTableName
    = @TableSchemaTableName
    if
    (select
    count([Status])
    from @TTName
    where [Status]
    = 0)
    = 0
    break
    end

  • F table deletion - partitions

    Hi there
    Vi have an InfoCube which load data wery often (a few records every 5 minutes). This has resulet in a very large number of partitions on the F table (around 25000) which is killing us when doing database statistics.
    I copied all data to another InfoCube which now contain all the data. However when trying to delete the data in the origianl cube it does a truncate action in the oracle database, which does not remove the partitions. Is there a way to do this?
    Is it possible to delete the table using SE11 and transport it again from development?
    Chris

    Not sure how much overhead the SAP Drop Empty Partition pgm adds to the database process of dropping the partitions.  The only thing I can think of would be to get the list of empty partitions (imagine they must get it from DBA_TAB_PARTITIONS) and put together your own SQL to drop the partitions or perhaps multiple stmts that could be run in parallel.
    Never thrilled about running something outside of the SAP environment, because you can never be 100% sure they don't update something somewhere.  Haven't really lloked at teh SAP Drop pgm to see what else it might be doing besides a partition drop.
    Don't know if the partition drop time could be improved if the partitions were not buffered. The DB must take some time to make sure that there are no rows in the buffer that it must worry about.  Also, have DB statistics been updated since the deletion?  If they haven't been, the DB may not realize the partitions are not empty, which then forces it to check the buffer before dropping.  A good DBA might be able to tell you if the partition drop process is affected by either stats that don't reflect that the partition is empty or buffering. I just don't know for sure.

  • Internal table delete

    Hi,
    What would be the best way to delete the records from an internal table. I am not using the primary key here.
    I need to delete the records from the internal table which does not match the input parameter given.
    For example:
    I have some records in an internal table. I need to delete the records whcih does not match the condition.
    I have around 85000 records in my internal table I_iflot. The primary key here is TPLNR in IFLOT table. But I am deleting the records based on some other field which is the input parameter OBJNR. Pls see below statement and let me know how exactly we can do this. As i am doing the deletion other than the primary key its taking hell lot time to excute the single statement.
    SORT i_iflot BY tplnr.
    Delete i_iflot where objnr not in r_objnr.
    This statement is taking much time as this is not the primary key. But i need t delete with this cndition nly.
    Any solution for this...
    Regards,
    Ram

    Hi Ram,
          What are you trying to delete -
           a)Device Location
           b) Connection Object.  Refer the possible values
             for FLTYP.
    You can add FLTYP (Functional location category) in the where condition and delete from IFLOT.
       You can also select TPLNR based on OBJNR entered in the parameter before deletion statement.
      Hope this helps.
    Manish

  • Master data delete -- long time ?

    Hello BW Experts,
    I am deleting the master data without SIDS. It has around 2M records (delete all data ). I thought it is going to drop the Ptable. But it is taking hrs and hrs to delete the Ptable.
    -- 1) Wondering if this is normal.
    -- 2) What process does it follow to delete the master data with SIDS..
    Suggestions appreciated.
    Thanks,
    BWer

    Hi BWer,
    The more attributes, especially time-dependent and/or navigation, the more tables should be accessed simultaneously during deletion:
    P - time-independent
    Q - time-dependent
    X - navigation time-independent
    Y - navigation time-dependent
    Best regards,
    Eugene
    Message was edited by: Eugene Khusainov

  • Creating SQL-Loader script for more than one table at a time

    Hi,
    I am using OMWB 2.0.2.0.0 with Oracle 8.1.7 and Sybase 11.9.
    It looks like I can create SQL-Loader scripts for all the tables
    or for one table at a time. If I want to create SQL-Loader
    scripts for 5-6 tables, I have to either create script for all
    the tables and then delete the unwanted tables or create the
    scripts for one table at a time and then merge them.
    Is there a simple way to create migration scripts for more than
    one but not all tables at a time?
    Thanks,
    Prashant Rane

    No there is no multi-select for creating SQL-Loader scripts.
    You can either create them separately or create them all and
    then discard the one you do not need.

Maybe you are looking for

  • I need help to change the password to my Apple ID

    I have two apple ID's I made the second one for my iCloud when I bought my iPad not knowing that I could have used my normal Apple ID that I use for everything else. Now I cant sign out of that apple ID in my icloud on all three of my devices my ipho

  • Router address to make my wireless secure

    My wireless has never been secure. I am trying to now make it secure but I can't find the IP address or router address for my Airport Express. I have checked the manual. I have searched the web. Any ideas?

  • Directions on how to setup printers and push them out to clients using WGM

    Hello, I am looking for directions on how to manage printers in WGM. How do you set them up and how do you push them out to clients.

  • Subcontracting Purchase Order

    When creating a subcontracting Purchase Order is is possible to issue components separate from the goods receipt. Our current SAP system configuration requires the user to receive some amount of the material being manufactured by the subcontractor an

  • Tablespaces and standby DB

    Hi all, i have standby DB on standard edition(manual management), when i add or modify tablespaces in the primary DB how impact the standby DB because the archivlog application give erro. Regards.