資料庫的備份與恢復分析及例項
歸檔模式:可以進行一致性備份(冷備)和非一致性備份(熱備)。
非歸檔模式:一致性備份(冷備)
一致性備份(冷備份):在資料庫正常關閉情況下做備份,資料庫處於一致性狀態。
(可以用於歸檔和非歸檔),所有SCN號一致。缺點:資料庫需要關閉。
非一致性備份(熱備份):資料庫在open狀態下備份(用於歸檔模式),
使用alter database/tablespace xxx begin backup開始備份。
優點:資料庫不需要關閉,用於7x24事務處理的資料庫。
一般手工備份主要備份控制檔案,資料檔案,以及引數檔案等。
首先檢視控制檔案,資料檔案,以及引數檔案的位置:
sys@TEST0910> select name from v$controlfile;
NAME
------------------------------------------------------------
/u01/app/oracle/oradata/test0910/control01.ctl
/u01/app/oracle/fast_recovery_area/test0910/control02.ctl
sys@TEST0910> select file#,name from v$datafile;
FILE# NAME
---------- ------------------------------------------------------------
1 /u01/app/oracle/oradata/test0910/system01.dbf
2 /u01/app/oracle/oradata/test0910/sysaux01.dbf
3 /u01/app/oracle/oradata/test0910/undotbs01.dbf
4 /u01/app/oracle/oradata/test0910/users01.dbf
5 /u01/app/oracle/oradata/test0910/example01.dbf
sys@TEST0910> col file_name for a50
sys@TEST0910> col tablespace_name for a10
sys@TEST0910> select file_id,file_name,tablespace_name,bytes/1024/1024 m from dba_data_files;
FILE_ID FILE_NAME TABLESPACE M
---------- -------------------------------------------------- ---------- ----------
4 /u01/app/oracle/oradata/test0910/users01.dbf USERS 5
3 /u01/app/oracle/oradata/test0910/undotbs01.dbf UNDOTBS1 100
2 /u01/app/oracle/oradata/test0910/sysaux01.dbf SYSAUX 650
1 /u01/app/oracle/oradata/test0910/system01.dbf SYSTEM 720
5 /u01/app/oracle/oradata/test0910/example01.dbf EXAMPLE 345.625
sys@TEST0910> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/spfiletest0910.o
ra
熱備份必須在歸檔模式下進行,不然會報錯。
先來看看資料庫是否為歸檔模式:
sys@TEST0910> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 24
Next log sequence to archive 26
Current log sequence 26
sys@TEST0910> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
手工熱備份步驟:
開庫備份只用于歸檔模式,而且熱備之前先執行命令:
熱備步驟:
alter database/tablespace XXX begin backup 這句話會導致鎖塊頭,scn號不會變化。
cp files
alter database/tablespace XXX end backup
實驗備份users表空間,並測試刪除檔案並恢復:
1、首先開始備份users表空間
sys@TEST0910> alter tablespace users begin backup;
Tablespace altered.
2、作業系統命令拷貝檔案:
[oracle@rtest ~]$ cd /u01/app/oracle
[oracle@rtest oracle]$ mkdir hot_dir
[oracle@rtest oracle]$ cp /u01/app/oracle/oradata/test0910/users01.dbf /u01/app/oracle/hot_dir/users01.dbf
3、結束users表空間的備份:
sys@TEST0910> alter tablespace users end backup;
Tablespace altered.
4、此時刪除users01.dbf檔案
[oracle@rtest oracle]$ ls /u01/app/oracle/oradata/test0910/users01.dbf
ls: /u01/app/oracle/oradata/test0910/users01.dbf: No such file or directory
5、關庫,再啟庫,報錯:
sys@TEST0910> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@TEST0910> startup
ORACLE instance started.
Total System Global Area 2505338880 bytes
Fixed Size 2230952 bytes
Variable Size 587203928 bytes
Database Buffers 1895825408 bytes
Redo Buffers 20078592 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 4 - see DBWR trace file
ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'
6、通過作業系統拷貝到正確的位置,(也可以通過rman恢復,這裡用拷貝方式)
[oracle@rtest oracle]$ cp /u01/app/oracle/hot_dir/users01.dbf /u01/app/oracle/oradata/test0910/users01.dbf
[oracle@rtest oracle]$ ls /u01/app/oracle/oradata/test0910/users01.dbf
/u01/app/oracle/oradata/test0910/users01.dbf
7、再開庫,報錯,需要介質恢復:
sys@TEST0910> alter database open;
alter database open
*
ERROR at line 1:
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/u01/app/oracle/oradata/test0910/users01.dbf'
8、介質恢復:
sys@TEST0910> recover datafile 4;
Media recovery complete.
9、再開庫,成功:
sys@TEST0910> alter database open;
Database altered.
恢復成功
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29196873/viewspace-1090234/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 備份與恢復:polardb資料庫備份與恢復資料庫
- 將RAC備份集恢復為單例項資料庫單例資料庫
- Mysql資料庫備份及恢復MySql資料庫
- postgresql備份與恢復資料庫SQL資料庫
- 資料庫備份恢復資料庫
- 資料庫備份與恢復技術資料庫
- Linux下MySQL資料庫的備份與恢復LinuxMySql資料庫
- MySQL-19.資料庫備份與恢復MySql資料庫
- mongodb資料庫備份與恢復(資料庫資料遷移)MongoDB資料庫
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- Dedecms資料庫恢復與備份的兩種方法資料庫
- 淺談達夢資料庫的備份與恢復資料庫
- Mysql資料備份與恢復MySql
- PostgreSql資料庫的備份和恢復SQL資料庫
- 磁碟資料恢復及備份工具資料恢復
- SqlServer資料庫恢復備份資料的方法SQLServer資料庫
- 達夢資料庫備份恢復資料庫
- ClickHouse資料庫單機安裝及備份恢復資料庫
- mysqldump使用方法(MySQL資料庫的備份與恢復)MySql資料庫
- 【資料庫資料恢復】ASM例項不能掛載的Oracle資料庫資料恢復案例資料庫資料恢復ASMOracle
- RabbitMQ如何備份與恢復資料MQ
- Mongo 資料庫備份和恢復命令Go資料庫
- pg_dump 備份,恢復資料庫資料庫
- 資料庫資料恢復—無備份,binlog未開啟的Mysql資料庫資料恢復案例資料庫資料恢復MySql
- 從nub備份恢復(同平臺)恢復RAC至單例項單例
- 【資料庫資料恢復】Oracle ASM例項無法掛載的資料恢復案例資料庫資料恢復OracleASM
- RAC備份恢復之Voting備份與恢復
- vivo 資料庫備份恢復系統演化資料庫
- 使用Mysqldump備份和恢復MySQL資料庫MySql資料庫
- PG-pg_dump備份/恢復資料庫資料庫
- 如何在HarmonyOS對資料庫進行備份,恢復與加密資料庫加密
- 分散式文件儲存資料庫之MongoDB備份與恢復分散式資料庫MongoDB
- gitlab的資料備份和恢復Gitlab
- NoSQL 資料庫案例實戰 -- MongoDB資料備份、恢復SQL資料庫MongoDB
- DB的備份與恢復
- GitLab的備份與恢復Gitlab
- RMAN備份恢復典型案例——資料庫卡頓資料庫
- MySQL備份與恢復——基於Xtrabackup物理備份恢復MySql
- MSSQL-最佳實踐-資料庫恢復模式與備份的關係SQL資料庫模式