簡體   English   中英

還原表空間 USERS 不起作用。 Oracle 備份

[英]Restore tablespace USERS doesn't work. Oracle backup

我創建了一個模式和 my_table_test;

ALTER SESSION SET CURRENT_SCHEMA=c##wojtek_admin; 

CREATE TABLE my_table_test
( id_test INT 
);

在此處輸入圖像描述

然后我使用以下命令創建了一個備份: BACKUP TABLESPACE USERS FORMAT 'c:\FRA\users%u'; 然后我刪除了 my_table_test 並運行以下命令:

RMAN> RUN{
2> SQL 'ALTER TABLESPACE USERS OFFLINE';
3> RESTORE TABLESPACE USERS;
4> RECOVER TABLESPACE USERS;
5> SQL 'ALTER TABLESPACE USERS ONLINE';
6> }

為什么在我恢復 USERS TABLESPACE 后 my_table_test 被刪除?

在此處輸入圖像描述

在此處輸入圖像描述

在多租戶數據庫中,您將擁有多個“用戶”表空間。 一個在 CDB 級別,一個用於每個 PDB。

RMAN> report schema;

Report of database schema for database with db_unique_name T101N

List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    960      SYSTEM               YES     +DATAC4/T101N/DATAFILE/system.500.1057688607
3    620      SYSAUX               NO      +DATAC4/T101N/DATAFILE/sysaux.498.1057688643
4    840      UNDOTBS1             YES     +DATAC4/T101N/DATAFILE/undotbs1.587.1057688657
5    310      PDB$SEED:SYSTEM      NO      +DATAC4/T101N/86B637B62FE07A65E053F706E80A27CA/DATAFILE/system.482.1057689319
6    380      PDB$SEED:SYSAUX      NO      +DATAC4/T101N/86B637B62FE07A65E053F706E80A27CA/DATAFILE/sysaux.503.1057689319
7    5        USERS                NO      +DATAC4/T101N/DATAFILE/users.499.1057688659
8    190      PDB$SEED:UNDOTBS1    NO      +DATAC4/T101N/86B637B62FE07A65E053F706E80A27CA/DATAFILE/undotbs1.489.1057689319
9    310      PDB1:SYSTEM          YES     +DATAC4/T101N/B52F60948095635FE053B506330A63CA/DATAFILE/system.405.1057690077
10   390      PDB1:SYSAUX          NO      +DATAC4/T101N/B52F60948095635FE053B506330A63CA/DATAFILE/sysaux.501.1057690077
11   195      PDB1:UNDOTBS1        YES     +DATAC4/T101N/B52F60948095635FE053B506330A63CA/DATAFILE/undotbs1.497.1057690077
12   5        PDB1:USERS           NO      +DATAC4/T101N/B52F60948095635FE053B506330A63CA/DATAFILE/users.566.1057690091

List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    67       TEMP                 32767       +DATAC4/T101N/TEMPFILE/temp.573.1057688719
2    43       PDB$SEED:TEMP        32767       +DATAC4/T101N/B52F34797E9D6750E053B506330AE7C0/TEMPFILE/temp.481.1057689337
3    43       PDB1:TEMP            32767       +DATAC4/T101N/B52F60948095635FE053B506330A63CA/TEMPFILE/temp.496.1057690079

筆記。 RMAN 的最佳功能。 RMAN 實際上可以告訴您在不同的場景下該做什么。

# data recovery advisor (DRA)
list failure all;
advise failure;
repair failure preview;
repair failure;

首先,重要的是要注意看起來您正在使用多租戶數據庫,但您決定將用戶數據放在根容器中,這通常是個壞主意 - 您應該對幾乎所有東西都使用可插入數據庫(這也意味着您不需要在用戶名前加上C##前綴。

到目前為止,您的 restore 和 recover 語句將恢復表空間。 如果您想在刪除表空間之前將其恢復到,那么 Oracle 還需要在system表空間(用於數據字典)上做一些工作 - 但您不僅想恢復和恢復您的USERS表空間。 您需要在其他地方恢復備份,將其恢復到所需的點,然后獲取USERS表空間並將其放回原始數據庫。

This is simply referred to as Tablespace Point In Time Recovery, Oracle has helpfully done all the hard scripting work for you, but you should read what's going on https://docs.oracle.com/cd/E11882_01/backup.112/e10642 /rcmtspit.htm#BRADV89790

RECOVER TABLESPACE users
  UNTIL ?
  AUXILIARY DESTINATION '?';

(一旦您閱讀了文檔,您將了解如何填寫此內容)。

還可以在表級別輕松執行此操作,因此如果您只想恢復刪除的表而不恢復該表空間中的所有其他內容,您可以:

RECOVER TABLE c##wojtek_admin.my_table_test
UNTIL ?
AUXILIARY DESTINATION '?'  ;

有關詳細信息,請參閱https://oracle-base.com/articles/12c/rman-table-point-in-time-recovery-12cr1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM