10g優化備份集大小
在10g中,RMAN備份的時候進行了優化,不再備份表釋放空間的資料塊。
備份的文件看得是9i的,因此一直認為RMAN備份的時候只備份那些寫過資料的BLOCK,至於當前BLOCK是否被釋放,RMAN並不關係,因此,隨著資料檔案中的空間不斷被佔用,RMAN備份集越是趨向越來越大的。
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
PL/SQL Release 9.2.0.4.0 - Production
CORE 9.2.0.3.0 Production
TNS for Linux: Version 9.2.0.4.0 - Production
NLSRTL Version 9.2.0.4.0 - Production
SQL> CREATE TABLESPACE TEST_RMAN
2 DATAFILE '/data/oradata/testdata/test_rman01.dbf'
3 SIZE 200M;
表空間已建立。
SQL> CREATE TABLE T_RMAN
2 TABLESPACE TEST_RMAN
3 AS SELECT *
4 FROM DBA_OBJECTS;
表已建立。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立31520行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立63040行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立126080行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立252160行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立504320行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
INSERT INTO T_RMAN
*
ERROR 位於第 1 行:
ORA-01653: 表TEST.T_RMAN無法通過1024(在表空間TEST_RMAN中)擴充套件
SQL> COMMIT;
提交完成。
通過RMAN備份當前的表空間:
[oracle@localhost ~]$ rman target /
恢復管理器: 版本9.2.0.4.0 - Production
Copyright (c) 1995, 2002, Oracle Corporation. All rights reserved.
連線到目標資料庫: TESTDATA (DBID=2270762593)
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data/backup/testdata/%U';
4> BACKUP TABLESPACE TEST_RMAN;
5> }
分配的通道: C1
通道 C1: sid=19 devtype=DISK
啟動 backup 於 27-5月 -10
通道 C1: 正在啟動 full 資料檔案備份集
通道 C1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00029 name=/data/oradata/testdata/test_rman01.dbf
通道 C1: 正在啟動段 1 於 27-5月 -10
通道 C1: 已完成段 1 於 27-5月 -10
段 handle=/data/backup/testdata/5clenfku_1_1 comment=NONE
通道 C1: 備份集已完成, 經過時間:00:00:07
完成 backup 於 27-5月 -10
啟動 Control File and SPFILE Autobackup 於 27-5月 -10
段 handle=/data/backup/testdata/20100526_c-2270762593-20100527-01 comment=NONE
完成 Control File and SPFILE Autobackup 於 27-5月 -10
釋放的通道: C1
RMAN> LIST BACKUP OF TABLESPACE TEST_RMAN;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1181 Full 192M DISK 00:00:04 27-5月 -10
BP 關鍵字: 1181 狀態: AVAILABLE 標記:TAG20100527T094710
段名:/data/backup/testdata/5clenfku_1_1
備份集 1181 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
29 Full 1112664434776 27-5月 -10 /data/oradata/testdata/test_rman01.dbf
下面利用TRUNCATE TABLE,釋放表分配的空間:
SQL> TRUNCATE TABLE T_RMAN;
表已截掉。
再次備份將檢查大小:
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data/backup/testdata/%U';
4> BACKUP TABLESPACE TEST_RMAN;
5> }
分配的通道: C1
通道 C1: sid=19 devtype=DISK
啟動 backup 於 27-5月 -10
通道 C1: 正在啟動 full 資料檔案備份集
通道 C1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00029 name=/data/oradata/testdata/test_rman01.dbf
通道 C1: 正在啟動段 1 於 27-5月 -10
通道 C1: 已完成段 1 於 27-5月 -10
段 handle=/data/backup/testdata/5elenfo7_1_1 comment=NONE
通道 C1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 27-5月 -10
啟動 Control File and SPFILE Autobackup 於 27-5月 -10
段 handle=/data/backup/testdata/20100526_c-2270762593-20100527-02 comment=NONE
完成 Control File and SPFILE Autobackup 於 27-5月 -10
釋放的通道: C1
RMAN> LIST BACKUP OF TABLESPACE TEST_RMAN;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1181 Full 192M DISK 00:00:04 27-5月 -10
BP 關鍵字: 1181 狀態: AVAILABLE 標記:TAG20100527T094710
段名:/data/backup/testdata/5clenfku_1_1
備份集 1181 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
29 Full 1112664434776 27-5月 -10 /data/oradata/testdata/test_rman01.dbf
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
1183 Full 192M DISK 00:00:03 27-5月 -10
BP 關鍵字: 1183 狀態: AVAILABLE 標記:TAG20100527T094855
段名:/data/backup/testdata/5elenfo7_1_1
備份集 1183 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
29 Full 1112664435199 27-5月 -10 /data/oradata/testdata/test_rman01.dbf
在10.2中,Oracle優化了RMAN備份集,已經釋放的空間不再進行備份:
SQL> SELECT * FROM V$VERSION;
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE 10.2.0.3.0 Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production
SQL> CREATE TABLESPACE TEST_RMAN
2 DATAFILE '/data/oradata/testzj/test_rman01.dbf'
3 SIZE 200M;
表空間已建立。
SQL> CREATE TABLE T_RMAN
2 TABLESPACE TEST_RMAN
3 AS SELECT *
4 FROM DBA_OBJECTS;
表已建立。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立50335行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立100670行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立201340行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立402680行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
已建立805360行。
SQL> INSERT INTO T_RMAN
2 SELECT *
3 FROM T_RMAN;
INSERT INTO T_RMAN
*
第 1 行出現錯誤:
ORA-01653: 表 TEST.T_RMAN 無法通過 1024 (在表空間 TEST_RMAN 中) 擴充套件
SQL> COMMIT;
提交完成。
利用RMAN進行備份:
[oracle@yanttest backup]$ rman target /
恢復管理器: Release 10.2.0.3.0 - Production on 星期四 5月 27 10:54:56 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: TESTZJ (DBID=3397373484)
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data/backup/testzj/%U';
4> BACKUP TABLESPACE TEST_RMAN;
5> }
使用目標資料庫控制檔案替代恢復目錄
分配的通道: C1
通道 C1: sid=139 devtype=DISK
啟動 backup 於 27-5月 -10
通道 C1: 啟動全部資料檔案備份集
通道 C1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00022 name=/data/oradata/testzj/test_rman01.dbf
通道 C1: 正在啟動段 1 於 27-5月 -10
通道 C1: 已完成段 1 於 27-5月 -10
段控制程式碼=/data/backup/testzj/09lenjke_1_1 標記=TAG20100527T105510 註釋=NONE
通道 C1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 27-5月 -10
釋放的通道: C1
RMAN> LIST BACKUP OF TABLESPACE TEST_RMAN;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
8 Full 192.09M DISK 00:00:03 27-5月 -10
BP 關鍵字: 8 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100527T105510
段名:/data/backup/testzj/09lenjke_1_1
備份集 8 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
22 Full 8660160996 27-5月 -10 /data/oradata/testzj/test_rman01.dbf
將表進行TRUNCATE釋放空間:
SQL> TRUNCATE TABLE T_RMAN;
表被截斷。
下面再次備份並檢查空間:
RMAN> RUN
2> {
3> ALLOCATE CHANNEL C1 DEVICE TYPE DISK FORMAT '/data/backup/testzj/%U';
4> BACKUP TABLESPACE TEST_RMAN;
5> }
分配的通道: C1
通道 C1: sid=139 devtype=DISK
啟動 backup 於 27-5月 -10
通道 C1: 啟動全部資料檔案備份集
通道 C1: 正在指定備份集中的資料檔案
輸入資料檔案 fno=00022 name=/data/oradata/testzj/test_rman01.dbf
通道 C1: 正在啟動段 1 於 27-5月 -10
通道 C1: 已完成段 1 於 27-5月 -10
段控制程式碼=/data/backup/testzj/0alenjlb_1_1 標記=TAG20100527T105539 註釋=NONE
通道 C1: 備份集已完成, 經過時間:00:00:01
完成 backup 於 27-5月 -10
釋放的通道: C1
RMAN> LIST BACKUP OF TABLESPACE TEST_RMAN;
備份集列表
===================
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
8 Full 192.09M DISK 00:00:03 27-5月 -10
BP 關鍵字: 8 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100527T105510
段名:/data/backup/testzj/09lenjke_1_1
備份集 8 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
22 Full 8660160996 27-5月 -10 /data/oradata/testzj/test_rman01.dbf
BS 關鍵字 型別 LV 大小 裝置型別 經過時間 完成時間
------- ---- -- ---------- ----------- ------------ ----------
9 Full 608.00K DISK 00:00:00 27-5月 -10
BP 關鍵字: 9 狀態: AVAILABLE 已壓縮: NO 標記: TAG20100527T105539
段名:/data/backup/testzj/0alenjlb_1_1
備份集 9 中的資料檔案列表
檔案 LV 型別 Ckp SCN Ckp 時間 名稱
---- -- ---- ---------- ---------- ----
22 Full 8660161333 27-5月 -10 /data/oradata/testzj/test_rman01.dbf
可以看到,隨著表佔用的空間的釋放備份集的大小也隨之減小。
其實對於本地表空間而言,通過資料檔案頭部的BITMAP資訊完全可以獲取資料檔案中使用的BLOCK和空閒的BLOCK,只不過從10g開始,Oracle才開始在RMAN備份時利用這個資訊。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-663967/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Backup And Recovery User's Guide-RMAN備份概念-備份集的數量和大小(多路化備份集)GUIIDE
- 備份優化優化
- 10g R2 rman backup database 控制檔案備份後於備份集備份Database
- Oracle 效能優化-expdp備份速度優化02Oracle優化
- Oracle 效能優化-expdp備份速度優化03Oracle優化
- 測試truncate,delete 對rman 備份集大小的影響delete
- RMAN 增量備份最佳化 for ORACLE 10GOracle 10g
- 歸檔日誌大小 與使用rman 備份後的歸檔日誌產生的備份集大小的關係
- RMAN備份恢復效能優化優化
- 備份的優化和調整優化
- 優化SQL Server中的備份優化SQLServer
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集和備份片GUIIDE
- rman開啟備份優化對備份歸檔的影響優化
- MONGODB使用MONGDODUMP備份來搭建備份集MongoDB
- Backup And Recovery User's Guide-RMAN備份概念-備份集-備份集塊壓縮GUIIDE
- RMAN備份之備份多個備份集到帶庫(三)
- RMAN備份之備份多個備份集到帶庫(二)
- RMAN備份之備份多個備份集到帶庫(一)
- Backup And Recovery User's Guide-備份RMAN備份-使用RMAN備份備份集GUIIDE
- RMAN筆記之備份集和備份片筆記
- SQL Server 備份與恢復之六:介質集與備份集SQLServer
- 備份集地址變了
- 備份集和備份片之間的關係
- 理解備份集backup set與備份片backup piece
- 10g 熱備份命令加強
- RMAN說,我能備份(12)--RMAN中的恢復目錄和備份優化優化
- Backup And Recovery User's Guide-RMAN備份概念-備份undo(備份集加密)GUIIDE加密
- 可以將備份集備份到另外的server上嗎Server
- RMAN備份恢復——備份集儲存位置改變
- 表空間資料檔案建立大小與實際使用大小以及rman備份集的關係系列一
- 優化 SQL Server 中的備份和還原效能優化SQLServer
- oracle 10gR2 rman備份優化加強Oracle 10g優化
- Backup And Recovery User's Guide-備份RMAN備份-備份集的多重拷貝GUIIDE
- rman備份集的保留策略
- oracle 10g RMAN備份及恢復Oracle 10g
- RMAN備份多個備份集到帶庫的小bug
- SqlServer 備份集和備份片以及mirror的backup_set_idSQLServer
- RMAN備份型別 - 備份集(backupset)和映象副本(Image copy)型別