[20171204]guaranteed restore point.txt
[20171204]guaranteed restore point.txt
--//昨天幫別人升級再次遇到關於相關問題,實際上主要問題在於升級文件沒有完成後取消restore point的設定.
--//比如我以前寫的做dg的文件沒有 alter database force logging;這個步驟,我包括我同事做dg經常忘記這個步驟.
--//從另外一個方面也說明,安裝文件很重要,包括更改與更新文件的工作.
--//自己也在測試環境做一個記錄與總結:
1.環境:
SCOTT@book> @ &r/ver1
PORT_STRING VERSION BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
2.建立guarantee restore point:
CREATE TABLESPACE T01 DATAFILE '/mnt/ramdisk/book/T01.dbf' SIZE 11M AUTOEXTEND OFF LOGGING ONLINE EXTENT MANAGEMENT
LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;
SYS@book> create restore point book1204 guarantee flashback database;
Restore point created.
3.測試1:
--//無法刪除表空間以及資料檔案:
SCOTT@book> drop tablespace t01 including contents and datafiles;
drop tablespace t01 including contents and datafiles
*
ERROR at line 1:
ORA-38881: Cannot drop tablespace T01 on primary database due to guaranteed restore points.
4.測試2:
--//測試建立新表空間與資料檔案.
SCOTT@book> CREATE TABLESPACE T06 DATAFILE '/mnt/ramdisk/book/T06.dbf' SIZE 11M AUTOEXTEND OFF LOGGING ONLINE EXTENT
MANAGEMENT LOCAL AUTOALLOCATE BLOCKSIZE 8K SEGMENT SPACE MANAGEMENT AUTO FLASHBACK ON;
Tablespace created.
--//建立新的表空間與資料檔案ok.shrink也可以.
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T06.dbf' RESIZE 10M ;
Database altered.
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T06.dbf' RESIZE 8M ;
Database altered.
--//如果使用一些資料塊後呢?
SCOTT@book> create table t06 tablespace t06 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=1e5;
Table created.
SCOTT@book> truncate table t06 ;
Table truncated.
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T06.dbf' RESIZE 5M ;
Database altered.
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T06.dbf' RESIZE 2M ;
Database altered.
--//OK,只要在guaranteed restore points建立的資料檔案,shrink是沒有問題的.刪除在guaranteed restore points後建立的表空間看看:
SCOTT@book> drop table t06 purge ;
Table dropped.
SCOTT@book> drop tablespace t06 including contents and datafiles;
drop tablespace t06 including contents and datafiles
*
ERROR at line 1:
ORA-38881: Cannot drop tablespace T06 on primary database due to guaranteed restore points.
--//無法刪除.
5.測試3:
--//測試shrink已經存在的資料檔案呢?
SCOTT@book> create table t01 tablespace t01 as select rownum id ,to_char(rownum,'FM000000')||lpad('A',26,'A') name from dual connect by level<=2e5;
Table created.
SCOTT@book> truncate table t01 ;
Table truncated.
SCOTT@book> column PARTITION_NAME noprint
SCOTT@book> select * from dba_extents where file_id=7;
OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
------ -------------------- ------------------ --------------- --------- ---------- ---------- ---------- ---------- ------------
SCOTT T01 TABLE T01 0 7 128 65536 8 7
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T01.dbf' RESIZE 8M ;
ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T01.dbf' RESIZE 8M
*
ERROR at line 1:
ORA-38883: Cannot shrink data file /mnt/ramdisk/book/T01.dbf on primary database due to guaranteed restore points.
--//因為那些塊已經使用,在建立guaranteed restore points後無法shrink.繼續測試資料檔案增大在回收呢?
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T01.dbf' RESIZE 12M ;
Database altered.
SCOTT@book> ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T01.dbf' RESIZE 11M ;
ALTER DATABASE DATAFILE '/mnt/ramdisk/book/T01.dbf' RESIZE 11M
*
ERROR at line 1:
ORA-38883: Cannot shrink data file /mnt/ramdisk/book/T01.dbf on primary database due to guaranteed restore points.
--//增加可以,再回收not way..
--//實際上主要理解guaranteed restore points的內在原理,上面的操作遇到的問題就很好理解.
6.備份變大.
--//這個問題以前已經遇到過.再做1次.
SCOTT@book> truncate table t01 ;
Table truncated.
SCOTT@book> select * from dba_extents where file_id=7;
OWNER SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME EXTENT_ID FILE_ID BLOCK_ID BYTES BLOCKS RELATIVE_FNO
------ -------------------- ------------------ ------------------------------ ---------- ---------- ---------- ---------- ---------- ------------
SCOTT T01 TABLE T01 0 7 128 65536 8 7
--//T01表空間佔用空間現在僅僅64K,加上os,檔案,點陣圖區1M,看看備份大小.
RMAN> backup datafile 7 format '/home/oracle/backup/T01_%U' ;
Starting backup at 2017-12-04 09:10:26
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=119 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/mnt/ramdisk/book/T01.dbf
channel ORA_DISK_1: starting piece 1 at 2017-12-04 09:10:26
channel ORA_DISK_1: finished piece 1 at 2017-12-04 09:10:27
piece handle=/home/oracle/backup/T01_gbsl8uo2_1_1 tag=TAG20171204T091026 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2017-12-04 09:10:27
Starting Control File and SPFILE Autobackup at 2017-12-04 09:10:27
piece handle=/u01/app/oracle/fast_recovery_area/BOOK/autobackup/2017_12_04/o1_mf_s_961837827_f29843yf_.bkp comment=NONE
Finished Control File and SPFILE Autobackup at 2017-12-04 09:10:28
$ ls -lh /home/oracle/backup/T01_gbsl8uo2_1_1
-rw-r----- 1 oracle oinstall 11M 2017-12-04 09:10:26 /home/oracle/backup/T01_gbsl8uo2_1_1
--//檔案大小11M.
--//刪除restore point,以上問題就不存在.
SCOTT@book> set numw 12
SCOTT@book> select * from V$RESTORE_POINT;
SCN DATABASE_INCARNATION# GUA STORAGE_SIZE TIME RESTORE_POINT_TIME PRE NAME
------------ --------------------- --- ------------ ----------------------------- ------------------ --- --------------------
13278252070 2 YES 52428800 2017-12-04 08:49:49.000000000 YES BOOK1204
SYS@book> drop restore point book1204;
Restore point dropped.
RMAN> backup datafile 7 format '/home/oracle/backup/T01x_%U' ;
Starting backup at 2017-12-04 09:14:57
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00007 name=/mnt/ramdisk/book/T01.dbf
channel ORA_DISK_1: starting piece 1 at 2017-12-04 09:14:57
channel ORA_DISK_1: finished piece 1 at 2017-12-04 09:14:58
piece handle=/home/oracle/backup/T01x_gdsl8v0h_1_1 tag=TAG20171204T091457 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2017-12-04 09:14:58
$ ls -lh /home/oracle/backup/T01*
-rw-r----- 1 oracle oinstall 11M 2017-12-04 09:10:26 /home/oracle/backup/T01_gbsl8uo2_1_1
-rw-r----- 1 oracle oinstall 1.6M 2017-12-04 09:14:57 /home/oracle/backup/T01x_gdsl8v0h_1_1
總結:
實際上只要概念清楚,以上的問題還是很好解決的.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2148230/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- guarantee restore points-Flashback after RMAN restoreREST
- canvas restore()CanvasREST
- canvas save()和restore()CanvasREST
- DOCKER特性 - LIVE RESTOREDockerREST
- DBMS_BACKUP_RESTORE.DBMS_BACKUP_RESTORE用於特殊情況下的恢復REST
- [LeetCode] 93. Restore IP AddressesLeetCodeREST
- git操作之二:git restoreGitREST
- provider for back&restore app datyaIDERESTAPP
- python leetcode 93. Restore IP AddressesPythonLeetCodeREST
- [20190228]Backup Restore Throttle sleep.txtREST
- git restore極簡使用記錄GitREST
- Crunchy PostgreSQL database restore via pgo commandSQLDatabaseRESTGo
- Reboot Restore Rx Pro中文版bootREST
- RMAN restore validate database報ORA-19693RESTDatabase
- rman 還原歸檔日誌(restore archivelogRESTHive
- db2備份恢復(backup restore)DB2REST
- iptables報錯!iptables-restore unable to initialize table 'filterRESTFilter
- HowTo Restore RMAN Disk backups of RAC Database to Single Instance On Another NoRESTDatabase
- SQLSERVER 2012從2000還原失敗:Restore of database failedSQLServerRESTDatabaseAI
- cdc目標端資料庫初始化(backup restore)資料庫REST
- PL/SQL package SYS.DBMS_BACKUP_RESTORE version 19.16.00.00 in TARGET database isSQLPackageRESTDatabase
- You may fail to backup log or restore log after TDE certification/key rotation.AIREST
- RMAN restore fails with ORA-01180: can not create datafile 1 (文件 ID 1265151.1)RESTAI
- Android 高階UI9 Canvas save和restore例項解析AndroidUICanvasREST
- Oracle rac使用nid和dbms_backup_restore包修改dbid和dbnameOracleREST
- DBMS_BACKUP_RESTORE用於特殊情況下的恢復(轉)REST
- Tensorflow儲存神經網路引數有妙招:Saver和Restore神經網路REST
- ncurses螢幕操作:getyx(),getparyx(),getmaxyx(),scr_dump(),scr_restore(),getwin(),putwin()REST
- 如何恢復 Windows 上 PostgreSQL 14 中被誤刪的 pg_restore.exeWindowsSQLREST
- 重新restore了mysql到另一臺機器上後mysql 編碼問題報錯RESTMySql
- 【12c】12c RMAN新特性之通過網路遠端恢復資料庫(RESTORE/Recover from Service)資料庫REST
- Drive SnapShot 1.50 是一款高階的磁碟映像備份軟體,Image for Windows 是TeraByte Drive Image Backup and Restore Suite中的主要元件,它是一款強大的磁碟克隆和備份軟體WindowsRESTUI元件