exp能在什麼級別保證備份資料的一致性呢?

楊奇龍發表於2010-06-20
如果庫很大,exp的時間很長,庫中已經發生了很多改變,exp需要依賴undo嗎?
如果exp能保證備份資料的一致性,那麼能在什麼級別保證呢?是表級別、使用者級別,還是整個db級別?

對於資料庫而言
exp/imp是“拍照留念”
archivelog mode的物理backup是“錄影記錄”。
拍照只能是單點的,而“錄影記錄”允許你看到錄影期間的任何一點-----引自網路

1) exp 是包含表級別的資料完整性;也即匯出那一刻的表的快照;也就說明肯定會用undo的資料
1)可以用CONSISTENT該選項保證交叉表的一致性
3)可以用FLASHBACK_SCN保證exp這批資料的一致性
CONSISTENT=y時,確實會出現:
A "snapshot too old" error occurs when rollback space is used up

================================

CONSISTENT
Default: N

Specifies whether or not Export uses the SET TRANSACTION READ ONLY statement to ensure that the data seen by Export is consistent to a single point in time and does not change during the execution of the export command. You should specify CONSISTENT=Y when you anticipate that other applications will be updating the target data after an export has started.

If you specify CONSISTENT=N (the default), each table is usually exported in a single transaction. However, if a table contains nested tables, the outer table and each inner table are exported as separate transactions. If a table is partitioned, each partition is exported as a separate transaction.

Therefore, if nested tables and partitioned tables are being updated by other applications, the data that is exported could be inconsistent. To minimize this possibility, export those tables at a time when updates are not being done.

The following chart shows a sequence of events by two users: USER1 exports partitions in a table and USER2 updates data in that table.

Time Sequence  USER1  USER2  
1  
Begins export of TAB:P1  
2  
Updates TAB:P2
Updates TAB:P1
Commit transaction  
3  
Ends export of TAB:P1  
4  
Exports TAB:P2  
If the export uses CONSISTENT=Y, none of the updates by USER2 are written to the export file.

If the export uses CONSISTENT=N, the updates to TAB:P1 are not written to the export file. However, the updates to TAB:P2 are written to the export file because the update transaction is committed before the export of TAB:P2 begins. As a result, USER2's transaction is only partially recorded in the export file, making it inconsistent.

If you use CONSISTENT=Y and the volume of updates is large, the rollback segment will be large. In addition, the export of each table will be slower because the rollback segment must be scanned for uncommitted transactions.

  Restrictions
You cannot specify CONSISTENT=Y with an incremental export.

CONSISTENT=Y is unsupported for exports performed using AS SYSDBA.

Keep in mind the following points about using CONSISTENT=Y:

   To minimize the time and space required for such exports, you should export tables that need to remain consistent separately from those that do not.

   For example, export the EMP and DEPT tables together in a consistent export, and then export the remainder of the database in a second pass.

     A "snapshot too old" error occurs when rollback space is used up, and space taken up by committed transactions is reused for new transactions. Reusing space in the rollback segment allows database integrity to be preserved with minimum space requirements, but it imposes a limit on the amount of time that a read-consistent image can be preserved.

    If a committed transaction has been overwritten and the information is needed for a read-consistent view of the database, a "snapshot too old" error results.

   To avoid this error, you should minimize the time taken by a read-consistent export. (Do this by restricting the number of objects exported and, if possible, by reducing the database transaction rate.) Also, make the rollback segment as large as possible.

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-665744/,如需轉載,請註明出處,否則將追究法律責任。

相關文章