您好,登錄后才能下訂單哦!
通過手工管理數據庫備份的方式通常是在對數據庫進行文件方面的操作,這個過程需要管理員全面參與并且手工完成。與使用RMAN不同的是手工管理不再完全依賴系統定義的參數進行配置。
手工冷備步驟
在完全關閉數據庫的情況下,我們可以通過拷貝數據庫的數據文件,控制文件和重做日志文件來完整的備份數據庫。
登錄數據庫:
#?sqlplus?sys?as?sysdba
首先查看文件位置:
SQL>?select?file_name?from?dba_data_files; SQL>?select?name?from?v$controlfile; SQL>?select?group#,member,status?from?v$logfile;
安全關閉數據庫:
SQL>?shutdown?immediate;
然后依次創建datafile,controlfile, redofile三個備份目錄,將對應文件一次拷貝到這三個目錄即可。
對數據庫恢復也只需要將備份的數據拷貝到原來的位置,然后啟動數據庫即可。
手工熱備步驟
在使用聯機熱備功能的時候需要將數據置于歸檔模式.
SQL>?archive?log?list; Database?log?mode ???????Archive?Mode Automatic?archival ???????Enabled Archive?destination ???????USE_DB_RECOVERY_FILE_DEST Oldest?online?log?sequence?????27 Next?log?sequence?to?archive???29 Current?log?sequence ???????29 SQL>
顯示處于開啟狀態。查看進程狀態正常:
[root@temp-test?~]#?ps?-ef|grep?arc oracle????8724?????1??0?Nov06??????????00:00:02?ora_arc0_orcl oracle????8726?????1??0?Nov06??????????00:00:04?ora_arc1_orcl oracle????8728?????1??0?Nov06??????????00:00:02?ora_arc2_orcl oracle????8730?????1??0?Nov06??????????00:00:02?ora_arc3_orcl
設置歸檔日志文件的冗余,保證數據安全:
查看歸檔日志相關參數:
SQL>?show?parameter?log_archive_dest;
新建三個目錄,分別存放三分相同的歸檔日志作為冗余備份:
[oracle@temp-test?~]$?mkdir?-p?/data/app/backup/arc{1..3}? [oracle@temp-test?~]$?ll?/data/app/backup/ total?0 drwxr-xr-x?2?oracle?oinstall?6?Nov??7?13:44?arc1 drwxr-xr-x?2?oracle?oinstall?6?Nov??7?13:44?arc2 drwxr-xr-x?2?oracle?oinstall?6?Nov??7?13:44?arc3
設置3個歸檔目錄:
SQL>?alter?system?set?log_archive_dest_1='location=/data/app/backup/arc1?mandatory'; System?altered. SQL>?alter?system?set?log_archive_dest_2='location=/data/app/backup/arc2?optional'; System?altered. SQL>?alter?system?set?log_archive_dest_3='location=/data/app/backup/arc3'; System?altered.
查看設置信息:
SQL>?show?parameter?log_archive;
mandatory表示強制日志歸檔的目錄,要求日志數據必須歸檔成功后才可以切換,optional是可選的歸檔不成功也可以切換日志,如果optional目錄損壞,不影響日志歸檔。
執行日志切換,歸檔文件會保存到指定的目錄中:
SQL>?alter?system?switch?logfile; System?altered.
生成三份相同的歸檔文件:
[oracle@temp-test?backup]$?tree?/data/app/backup/ /data/app/backup/ ├──?arc1 │???└──?1_29_959021937.dbf ├──?arc2 │???└──?1_29_959021937.dbf └──?arc3 ????└──?1_29_959021937.dbf
設置最少必須歸檔成功的日志數量,必須成功兩份:
SQL>?alter?system?set?log_archive_min_succeed_dest=2; System?altered.
SQL>?show?parameter?log_archive_min_succeed_Dest; NAME?????TYPE?VALUE ------------------------------------?-----------?------------------------------ log_archive_min_succeed_dest?????integer?2
由于總共只有三個冗余文件,如果設置的數量大于3會報錯。
備份數據,查看表空間對應的數據文件:
SQL>?col?file_name?for?a47 SQL>?col?tablespace_name?for?a10 SQL>?select?file_id,file_name,tablespace_name?from?dba_data_files; ???FILE_ID?FILE_NAME???TABLESPACE ----------?-----------------------------------------------?---------- ?4?/data/app/oracle/oradata/orcl/users01.dbf???USERS ?3?/data/app/oracle/oradata/orcl/undotbs01.dbf???UNDOTBS1 ?2?/data/app/oracle/oradata/orcl/sysaux01.dbf???SYSAUX ?1?/data/app/oracle/oradata/orcl/system01.dbf???SYSTEM ?5?/data/app/oracle/oradata/orcl/example01.dbf???EXAMPLE
這里我們備份USER表,ID為4,將表置于備份模式:
SQL>?alter?tablespace?users?begin?backup; Tablespace?altered.
查看備份狀態,ID為4的user表顯示為active:
SQL>?select?*?from?v$backup; ?????FILE#?STATUS?CHANGE#?TIME ----------?------------------?----------?--------- ?1?NOT?ACTIVE???????0 ?2?NOT?ACTIVE???????0 ?3?NOT?ACTIVE???????0 ?4?ACTIVE?1529624?07-NOV-17 ?5?NOT?ACTIVE???????0
然后直接使用系統的cp命令,拷貝對應目錄下的數據文件,到備份目錄即可。然后結束備份模式:
SQL>?alter?tablespace?users?end?backup; Tablespace?altered. SQL>?select?*?from?v$backup; ?????FILE#?STATUS?CHANGE#?TIME ----------?------------------?----------?--------- ?1?NOT?ACTIVE???????0 ?2?NOT?ACTIVE???????0 ?3?NOT?ACTIVE???????0 ?4?NOT?ACTIVE?1529624?07-NOV-17 ?5?NOT?ACTIVE???????0
將當前重做日志信息寫入歸檔日志文件:
SQL>?alter?system?archive?log?current; System?altered. #?一段時間后,檢查點恢復一致 SQL>?select?checkpoint_change#,?file#?from?v$datafile; CHECKPOINT_CHANGE#FILE# ------------------?---------- ???1530603????1 ???1530603????2 ???1530603????3 ???1530603????4 ???1530603????5
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。