[英]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.