沒有控制檔案怎麼恢復資料庫dbms_backup_restore包 英文文件
How to extract controlfiles, datafiles, and archived logs from
SMR backupsets without using RMAN
Introduction:
When using RMAN to restore objects (datafiles, controlfiles, or archivelogs)
from backupsets, the object restore can be driven from the recovery catalog
or the target database controlfile. This note explains how to extract
objects from backupsets when the recovery catalog and controlfiles have been
lost. In this scenario, you effectively perform. the RMAN functions through
PL/SQL procedure calls
Contents:
1. Prerequisites
2. Extracting the controlfile from a backupset
3. Extracting datafiles from a backupset
4. Applying incrementals
5. Extracting archivelogs from a backupset
6. A typical scenario
7. Errors
8. Things to be done
1. Prerequisites
The customer must have a knowledge of the contents of backupsets i.e. what
they contain, when the backups were created, and the type of backups. Ideally
they should have logs of the RMAN backup sessions that produced the
backupsets.
Note that the following anonymous PL/SQL blocks are run on the instance of
the database being recovered (the 'target'). The instance must be at least
started (once the controlfile has been restored the database can also be
mounted). Anonymous blocks can be executed in this manner as long as they
call only 'fixed' packages. The DBMS_BACKUP_RESTORE packages are fixed.
IMPORTANT: All the anonymous blocks must be executed by SYS or a user
who has execute privilege on SYS.DBMS_BACKUP_RESTORE
2. Extracting the controlfile from a backupset
The first stage is to extract the controlfile from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetDataFile - begins a restore conversation
PROCEDURE restoreControlfileTo - specifies the controlfile destination
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
controlfile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreControlfileTo must specify the correct controlfile
path & filename
IMPORTANT: The latest backup of the controlfile should be restored. Because
recovery (using backup controlfile) will be performed manually,
the recovering session will need to start applying redo from
the current log sequence AT THE TIME OF THE CONTROLFILE BACKUP.
Thus, to take advantage of incremental backups, restore a
controlfile taken along with the incremental backups, thus
reducing the amount of redo required during recovery.
The second stage is to extract the datafiles from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetDataFile - begins a restore conversation
PROCEDURE restoreDataFileTo - datafile number & destination
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
datafile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreDataFileTo must specify the correct datafile number,
and datafile path & filename
If incrementals are to be applied, you must execute this anonymous block
for each incremental datafile backup. The following SYS.DBMS_BACKUP_RESTORE
packaged functions & procedures are called:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE applySetDataFile - begins a restore conversation
PROCEDURE applyDataFileTo - datafile number & destination
PROCEDURE applyBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
datafile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to applyDataFileTo must specify the correct datafile number,
and datafile path & filename
The last restore stage is to extract the archivelogs from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetArchivedLog - begins a restore conversation
PROCEDURE restoreArchivedLog - archivelog sequence & thread numbers
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore
an archivelog from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreSetArchivedLog must specify the destination
where the archivelog is to be restored. Ideally the destination string
should be the same as init.ora:log_archive_dest
d. The call to restoreArchivedLog must specify the log sequence number
and thread number of the archivelog
around sys.dbms_backup_restore.restoreArchivedLog()
for seq in.. loop
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,
sequence=>seq);
end loop
6. A typical scenario
A customer has backupsets consisting of:
o. an incremental level 0 database backup
o. an incremental level 2 database backup
o. archivelogs from the time of the level 2 backup to the current time
The target database and recovery catalog have been irretrievably lost.
In this situation, the following steps should be followed (using the
above anonymous blocks):
1. Start the target instance (nomount)
2. Restore the latest controlfile, ideally from the same backupset as
the last incremental to be restored (make further copies if necessary
as per the init.ora)
3. Mount the database
4. Restore the datafiles from the level 0 backupset
5. Restore (apply) the datafiles from the level 2 backupset
6. Restore the archivelogs from the archivelog backupset
7. Using tradtional v7 recovery techniques, recover the database
(until cancel using backup controlfile)
8. Open the database (resetlogs)
9. Rebuild the recovery catalog & re-register the target database
10. Make backups of the target database and recovery catalog database
8. Errors
8.1 ORA-19615 & ORA-19613 when attempting to extract files
Errorstack:
ORA-19583: conversation terminated due to error
ORA-19615: some files not found in backup set
ORA-19613: datafile not found in backup set
ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 1043
ORA-06512: at line 40
The problem is that one or more backup pieces specified in the
v_fileTable table contain NO blocks for the datafile that you are
trying to extract.
For example, I may have run an RMAN backup and allocated 2 channels to
backup the (4 datafile) database. This will create 2 backupsets.
associated with their backupset, they will not contain blocks from a
different backupset i.e. pieces 1a and 1b will NOT contain blocks from
datafiles 3 or 4.
If I want to restore datafile 1, and include either backup pieces 1b or
2b in v_fileTable, I will get the errorstack above.
This is why it is important to know what files are in what backupset.
The original RMAN backup log will help here.
8. Things to be done
8.1. Error handling
If the procedures fail with an unhandled exception (quite likely, as
no exception handlers have been set up), the allocated device does not
get deallocated. This is unfriendly (the user must exit & restart the
session) and will be addressed
SMR backupsets without using RMAN
Introduction:
When using RMAN to restore objects (datafiles, controlfiles, or archivelogs)
from backupsets, the object restore can be driven from the recovery catalog
or the target database controlfile. This note explains how to extract
objects from backupsets when the recovery catalog and controlfiles have been
lost. In this scenario, you effectively perform. the RMAN functions through
PL/SQL procedure calls
Contents:
1. Prerequisites
2. Extracting the controlfile from a backupset
3. Extracting datafiles from a backupset
4. Applying incrementals
5. Extracting archivelogs from a backupset
6. A typical scenario
7. Errors
8. Things to be done
1. Prerequisites
The customer must have a knowledge of the contents of backupsets i.e. what
they contain, when the backups were created, and the type of backups. Ideally
they should have logs of the RMAN backup sessions that produced the
backupsets.
Note that the following anonymous PL/SQL blocks are run on the instance of
the database being recovered (the 'target'). The instance must be at least
started (once the controlfile has been restored the database can also be
mounted). Anonymous blocks can be executed in this manner as long as they
call only 'fixed' packages. The DBMS_BACKUP_RESTORE packages are fixed.
IMPORTANT: All the anonymous blocks must be executed by SYS or a user
who has execute privilege on SYS.DBMS_BACKUP_RESTORE
2. Extracting the controlfile from a backupset
The first stage is to extract the controlfile from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetDataFile - begins a restore conversation
PROCEDURE restoreControlfileTo - specifies the controlfile destination
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
controlfile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreControlfileTo must specify the correct controlfile
path & filename
IMPORTANT: The latest backup of the controlfile should be restored. Because
recovery (using backup controlfile) will be performed manually,
the recovering session will need to start applying redo from
the current log sequence AT THE TIME OF THE CONTROLFILE BACKUP.
Thus, to take advantage of incremental backups, restore a
controlfile taken along with the incremental backups, thus
reducing the amount of redo required during recovery.
3. Extracting datafiles from a backupsetPHP code:
DECLARE
v_dev varchar2(50); -- device type allocated for restore
v_done boolean; -- has the controlfile been fully extracted yet
type t_fileTable is table of varchar2(255)
index by binary_integer;
v_fileTable t_fileTable; -- Stores the backuppiece names
v_maxPieces number:=1; -- Number of backuppieces in backupset
BEGIN
-- Initialise the filetable & number of backup pieces in the backupset
-- This section of code MUST be edited to reflect the customers available
-- backupset before the procedure is compiled and run. In this example, the
-- backupset consists of 4 pieces:
v_fileTable(1):='fulldb_s15_p1';
v_fileTable(2):='fulldb_s15_p2';
v_fileTable(3):='fulldb_s15_p3';
v_fileTable(4):='fulldb_s15_p4';
v_maxPieces:=4;
-- Allocate a device. In this example, I have specified 'sbt_tape' as I am
-- reading backuppieces from the media manager. If the backuppiece is on disk,
-- specify type=>null
v_dev:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',
ident=>'t1');
-- Begin the restore conversation
sys.dbms_backup_restore.restoreSetDatafile;
-- Specify where the controlfile is to be recreated
sys.dbms_backup_restore.restoreControlfileTo(cfname=>'/support2/OFA_V804/u1/oradata/dbs/ctrl1V804.ctl');
-- Restore the controlfile
FOR i IN 1..v_maxPieces LOOP
sys.dbms_backup_restore.restoreBackupPiece(done=>v_done,
handle=>v_fileTable(i),
params=>null);
IF v_done THEN
GOTO all_done;
END IF;
END LOOP;
<<all_done>>
-- Deallocate the device
sys.dbms_backup_restore.deviceDeallocate;
END;
/
.
The second stage is to extract the datafiles from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetDataFile - begins a restore conversation
PROCEDURE restoreDataFileTo - datafile number & destination
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
datafile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreDataFileTo must specify the correct datafile number,
and datafile path & filename
4. Applying incrementalsPHP code:
DECLARE
v_dev varchar2(50); -- device type allocated for restore
v_done boolean:=false; -- has the datafile been fully extracted yet
type t_fileTable is table of varchar2(255)
index by binary_integer;
v_fileTable t_fileTable; -- Stores the backuppiece names
v_maxPieces number:=1; -- Number of backuppieces in backupset
BEGIN
-- Initialise the filetable & number of backup pieces in the backupset
-- This section of code MUST be edited to reflect the customers available
-- backupset before the procedure is compiled and run. In this example, the
-- backupset consists of 4 pieces:
v_fileTable(1):='fulldb_s15_p1';
v_fileTable(2):='fulldb_s15_p2';
v_fileTable(3):='fulldb_s15_p3';
v_fileTable(4):='fulldb_s15_p4';
v_maxPieces:=4;
-- Allocate a device. In this example, I have specified 'sbt_tape' as I am
-- reading backuppieces from the media manager. If the backuppiece is on disk,
-- specify type=>null
v_dev:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',
ident=>'t1');
-- Begin the restore conversation
sys.dbms_backup_restore.restoreSetDatafile;
-- Specify where the datafile is to be recreated
sys.dbms_backup_restore.restoreDataFileTo(dfnumber=>1,
toname=>'/support2/OFA_V804/u1/oradata/dbs/sysV804.dbf');
-- Restore the datafile
FOR i IN 1..v_maxPieces LOOP
sys.dbms_backup_restore.restoreBackupPiece(done=>v_done,
handle=>v_fileTable(i),
params=>null);
IF v_done THEN
GOTO all_done;
END IF;
END LOOP;
<<all_done>>
-- Deallocate the device
sys.dbms_backup_restore.deviceDeallocate;
END;
/
.
If incrementals are to be applied, you must execute this anonymous block
for each incremental datafile backup. The following SYS.DBMS_BACKUP_RESTORE
packaged functions & procedures are called:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE applySetDataFile - begins a restore conversation
PROCEDURE applyDataFileTo - datafile number & destination
PROCEDURE applyBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore a
datafile from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to applyDataFileTo must specify the correct datafile number,
and datafile path & filename
5. Extracting archivelogs from a backupsetPHP code:
DECLARE
v_dev varchar2(50); -- device type allocated for restore
v_done boolean:=false; -- has the datafile been fully extracted yet
type t_fileTable is table of varchar2(255)
index by binary_integer;
v_fileTable t_fileTable; -- Stores the backuppiece name
v_maxPieces number:=1; -- Number of backuppieces in backupset
BEGIN
-- Initialise the filetable & number of backup pieces in the backupset
-- This section of code MUST be edited to reflect the customers available
-- backupset before the procedure is compiled and run. In this example, the
-- backupset consists of 1 piece, a level 2 backupset:
v_fileTable(1):='fulldb_level2_s18_p1';
v_maxPieces:=1;
-- Allocate a device. In this example, I have specified 'sbt_tape' as I am
-- reading backuppieces from the media manager. If the backuppiece is on disk,
-- specify type=>null
v_dev:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',
ident=>'t1');
-- Begin the restore conversation
sys.dbms_backup_restore.applySetDataFile;
-- Specify where the datafile is to be recreated
sys.dbms_backup_restore.applyDataFileTo(dfnumber=>1,
toname=>'/support2/OFA_V804/u1/oradata/dbs/sysV804.dbf');
-- Restore the datafile
FOR i IN 1..v_maxPieces LOOP
sys.dbms_backup_restore.applyBackupPiece(done=>v_done,
handle=>v_fileTable(i),
params=>null);
IF v_done THEN
GOTO all_done;
END IF;
END LOOP;
<<all_done>>
-- Deallocate the device
sys.dbms_backup_restore.deviceDeallocate;
END;
/
.
The last restore stage is to extract the archivelogs from a backupset. This is
achieved by making use of the following SYS.DBMS_BACKUP_RESTORE packaged
functions & procedures:
FUNCTION deviceAllocate - allocates a device for sequential I/O
PROCEDURE restoreSetArchivedLog - begins a restore conversation
PROCEDURE restoreArchivedLog - archivelog sequence & thread numbers
PROCEDURE restoreBackupPiece - performs the restore
PROCEDURE deviceDeallocate - deallocates the I/O device
The following anonymous block can be created and executed to restore
an archivelog from a backupset. Before executing it, you MUST edit the block
as follows:
a. The filetable PL/SQL table entries must reflect the backuppieces
comprising the backupset
b. The v_maxPieces variable must reflect the number of backuppieces
comprising the backupset
c. The call to restoreSetArchivedLog must specify the destination
where the archivelog is to be restored. Ideally the destination string
should be the same as init.ora:log_archive_dest
d. The call to restoreArchivedLog must specify the log sequence number
and thread number of the archivelog
For restoring multiple archives from a backupset, add a loopPHP code:
DECLARE
v_dev varchar2(50); -- device type allocated for restore
v_done boolean:=false; -- has the log been fully extracted yet
type t_fileTable is table of varchar2(255)
index by binary_integer;
v_fileTable t_fileTable; -- Stores the backuppiece names
v_maxPieces number:=1; -- Number of backuppieces in backupset
BEGIN
-- Initialise the filetable & number of backup pieces in the backupset
-- This section of code MUST be edited to reflect the customers available
-- backupset before the procedure is compiled and run. In this example, the
-- archivelog backupset consists of 2 pieces:
v_fileTable(1):='al_s20_p1';
v_fileTable(2):='al_s20_p2';
v_maxPieces:=2;
-- Allocate a device. In this example, I have specified 'sbt_tape' as I am
-- reading backuppieces from the media manager. If the backuppiece is on disk,
-- specify type=>null
v_dev:=sys.dbms_backup_restore.deviceAllocate(type=>'sbt_tape',
ident=>'t1');
-- Begin the restore conversation
sys.dbms_backup_restore.restoreSetArchivedLog(destination=>'/support2/OFA_V804/app/oracle/admin/arch/arch_');
-- Specify where the archivelog is to be recreated
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,
sequence=>100);
-- Restore the archivelog
FOR i IN 1..v_maxPieces LOOP
sys.dbms_backup_restore.restoreBackupPiece(done=>v_done,
handle=>v_fileTable(i),
params=>null);
IF v_done THEN
GOTO all_done;
END IF;
END LOOP;
<<all_done>>
-- Deallocate the device
sys.dbms_backup_restore.deviceDeallocate;
END;
/
.
around sys.dbms_backup_restore.restoreArchivedLog()
for seq in
sys.dbms_backup_restore.restoreArchivedLog(thread=>1,
sequence=>seq);
end loop
6. A typical scenario
A customer has backupsets consisting of:
o. an incremental level 0 database backup
o. an incremental level 2 database backup
o. archivelogs from the time of the level 2 backup to the current time
The target database and recovery catalog have been irretrievably lost.
In this situation, the following steps should be followed (using the
above anonymous blocks):
1. Start the target instance (nomount)
2. Restore the latest controlfile, ideally from the same backupset as
the last incremental to be restored (make further copies if necessary
as per the init.ora)
3. Mount the database
4. Restore the datafiles from the level 0 backupset
5. Restore (apply) the datafiles from the level 2 backupset
6. Restore the archivelogs from the archivelog backupset
7. Using tradtional v7 recovery techniques, recover the database
(until cancel using backup controlfile)
8. Open the database (resetlogs)
9. Rebuild the recovery catalog & re-register the target database
10. Make backups of the target database and recovery catalog database
8. Errors
8.1 ORA-19615 & ORA-19613 when attempting to extract files
Errorstack:
ORA-19583: conversation terminated due to error
ORA-19615: some files not found in backup set
ORA-19613: datafile
ORA-06512: at "SYS.X$DBMS_BACKUP_RESTORE", line 1043
ORA-06512: at line 40
The problem is that one or more backup pieces specified in the
v_fileTable table contain NO blocks for the datafile that you are
trying to extract.
For example, I may have run an RMAN backup and allocated 2 channels to
backup the (4 datafile) database. This will create 2 backupsets.
Although the backup pieces may contain blocks from all datafilesPHP code:
.
+- Backup piece 1a
+- (Backupset 1) Datafiles 1,2 -+
| +- Backup piece 2a
Database -+
| +- Backup piece 1b
+- (Backupset 2) Datafiles 3,4 -+
+- Backup piece 2b
.
associated with their backupset, they will not contain blocks from a
different backupset i.e. pieces 1a and 1b will NOT contain blocks from
datafiles 3 or 4.
If I want to restore datafile 1, and include either backup pieces 1b or
2b in v_fileTable, I will get the errorstack above.
This is why it is important to know what files are in what backupset.
The original RMAN backup log will help here.
8. Things to be done
8.1. Error handling
If the procedures fail with an unhandled exception (quite likely, as
no exception handlers have been set up), the allocated device does not
get deallocated. This is unfriendly (the user must exit & restart the
session) and will be addressed
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7199859/viewspace-343209/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 沒有儲存的word文件怎麼找回來 恢復沒有儲存的word文件
- 【資料庫資料恢復】透過恢復NDF檔案修復資料庫的資料恢復過程資料庫資料恢復
- 【RMAN】如果控制檔案損壞那麼如何恢復?恢復控制檔案的方式有哪幾種?
- 【資料庫資料恢復】MongoDB資料庫檔案損壞的資料恢復案例資料庫資料恢復MongoDB
- 與控制檔案有關的恢復
- 【資料庫資料恢復】oracle資料庫誤truncate table怎麼恢復資料?資料庫資料恢復Oracle
- 同名檔案替換怎麼恢復,恢復同名檔案
- ps檔案沒儲存怎麼恢復,一鍵恢復看這裡
- 【資料庫資料恢復】MS SQL資料庫附加資料庫出錯怎麼恢復資料?資料庫資料恢復SQL
- 【資料庫資料恢復】Sql Server資料庫檔案丟失的資料恢復過程資料庫資料恢復SQLServer
- 【資料庫資料恢復】SQL server資料庫被加密怎麼辦?如何恢復?資料庫資料恢復SQLServer加密
- 與控制檔案有關的恢復(二)
- 電腦裡刪除的檔案怎麼恢復,資料恢復方法大全資料恢復
- 【資料庫資料恢復】EXT3檔案系統下MYSQL資料庫恢復案例資料庫資料恢復MySql
- 資料庫資料恢復—SQLserver資料庫中勒索病毒被加密怎麼恢復資料?資料庫資料恢復SQLServer加密
- 資料庫資料恢復-SQL SERVER資料庫檔案大小變為“0”的資料恢復方案資料庫資料恢復SQLServer
- u盤檔案損壞怎麼恢復資料 u盤損壞無法讀取怎麼恢復資料
- 【伺服器資料恢復】Zfs檔案系統下誤刪除怎麼恢復資料伺服器資料恢復
- word怎麼恢復儲存前的檔案,word檔案恢復
- 檔案替換後怎麼恢復,恢復被覆蓋的檔案
- SQL SEVER 缺少LOG檔案資料庫恢復SQL資料庫
- 資料庫資料恢復—MongoDB資料庫檔案丟失,啟動報錯的資料恢復案例資料庫資料恢復MongoDB
- 【資料庫資料恢復】Oracle資料庫檔案出現壞塊報錯的資料恢復案例資料庫資料恢復Oracle
- 帝國cms資料庫怎麼恢復資料庫
- u盤檔案損壞怎麼恢復資料 u盤恢復損壞資料的有效方法
- 剪下後的檔案可以恢復嗎?恢復剪下檔案怎麼辦?
- word自動儲存的檔案怎麼恢復,word檔案恢復
- 【/proc/檔案淺析】另類辦法恢復資料檔案和控制檔案
- win10沒儲存的檔案怎麼恢復_win10檔案未儲存的恢復方法Win10
- wps沒儲存關閉了怎麼恢復資料 wps歷史版本怎麼恢復
- MSSQL資料庫資料恢復案例:ndf檔案大小變為0KB恢復資料SQL資料庫資料恢復
- 【資料庫資料恢復】mdb_catalog.wt檔案丟失的MongoDB資料恢復案例資料庫資料恢復MongoDB
- MongoDB資料庫報錯,資料庫檔案丟失資料恢復案例MongoDB資料庫資料恢復
- win10 恢復選項沒有該怎麼辦 win10沒有恢復選項怎麼解決Win10
- Oracle 之利用BBED修改資料塊SCN----沒有備份資料檔案的資料恢復Oracle資料恢復
- 【北亞資料恢復】oracle資料庫執行truncate table命令怎麼恢復資料?資料恢復Oracle資料庫
- 織夢資料庫刪除了怎麼恢復資料庫
- 膝上型電腦資料恢復之誤格式化後檔案怎麼恢復?資料恢復
- Win10安裝了NVIDIA但是沒有控制皮膚怎麼恢復Win10