熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

ORACLE備份二(ORACLE BACKUP STRATEGY)

2022-06-13   來源: Oracle 

  iii導出/導入與字符集
  
  明白ORACLE的多國語言設置ORACLE多國語言設置是為了支持世界范圍的語言與字符集一般對語言提示貨幣形式排序方式和CHARVARCHARCLOBLONG字段的數據的顯示等有效ORACLE的多國語言設置最主要的兩個特性就是國家語言設置與字符集設置國家語言設置決定了界面或提示使用的語言種類字符集決定了數據庫保存與字符集有關數據(如文本)時候的編碼規則正如剛才上面的一個小例子環境變量NLS_LANG的不同導致EXP幫助發生變化這就是多國語言設置的作用(NLS_LANG包含國家語言設置與字符集設置這裡起作用的是國家語言設置而不是字符集)
  
  ORACLE字符集設定分為數據庫字符集和客戶端字符集環境設置在數據庫端字符集在創建數據庫的時候設定並保存在數據庫props$表中對於i以上產品已經可以采用Alter database character set 字符集來修改數據庫的字符集但也僅僅是從子集到超集不要通過update props$來修改字符集如果是不支持的轉換可能會失去所有與字符集有關的數據就是支持的轉換也可能導致數據庫的不正常工作字符集分為單字節字符集與多字節字符集USASCII就是典型的單字節字符集在這種字符集中length=lengthb而ZHSGBK就是常用的雙字節字符集在這裡lengthb=*length
  
  在客戶端的字符集環境比較簡單主要就是環境變量或注冊表項NLS_LANG注意NLS_LANG的優先級別為參數文件à注冊表à環境變量àalter sessionNLS_LANG的組成為國家語言設置字符集如nls_lang=simplified chinese_chinazhsgbk客戶端的字符集最好與數據庫端一樣(國家語言設置可以不一樣如zhsgbk的字符集客戶端可以是nls_lang =simplified chinese_chinazhsgbk或Ameircan_Americazhsgbk都不影響數據庫字符的正常顯示)如果字符集不一樣而且字符集的轉換也不兼容那麼客戶端的數據顯示與導出/導入的與字符集有關的數據將都是亂碼
  
  使用一點點技巧就可以使導出/導入在不同的字符集的數據庫上轉換數據這裡需要一個進制文件編輯工具即可如uedit用編輯方式打開導出的dmp文件獲取字節的內容 先把它轉換為進制數使用函數NLS_CHARSET_NAME即可獲得該字符集
  
  SQL> select nls_charset_name() from dual;
  NLS_CHARSET_NAME()
  
  USASCII
  
  可以知道該dmp文件的字符集為USASCII如果需要把該dmp文件的字符集換成ZHSGBK則需要用NLS_CHARSET_ID獲取該字符集的編號
  
  SQL> select nls_charset_id(zhsgbk) from dual;
  NLS_CHARSET_ID(ZHSGBK)
  
  
  
  把換成進制數字節的 換成 即完成了把該dmp文件字符集從usascii到zhsgbk的轉化這樣再把該dmp文件導入到zhsgbk字符集的數據庫就可以了(注意十進制數與十六進制之間的轉換想明白其中的道理)
  
  Iv跨版本使用Exp/Imp
  
  Exp/Imp很多時候可以跨版本使用如在版本與版本之間導出導入數據但這樣做必須選擇正確的版本規則為
  
  ·總是使用IMP的版本匹配數據庫的版本如果要導入到則使用的導入工具
  
  ·總是使用EXP的版本匹配兩個數據庫中低的那個版本如在之間互導則使用的EXP工具
  
  OS備份
  
  操作系統備份有兩類冷備份(Cold backup)與熱備份(Hot backup)操作系統備份與以上的邏輯備份有本質的區別邏輯備份提取數據庫的數據內容而不備份物理數據塊而操作系統備份則是拷貝整個的數據文件
  
  i冷備份
  
  在文件級備份開始前數據庫必須徹底關閉關閉操作必須用帶有normalimmediatetransaction選項的shutdown來執行
  
  數據庫使用的每個文件都被備份下來這些文件包括
  
  ☆所有數據文件
  ☆所有控制文件
  ☆所有聯機REDO LOG 文件
  ☆INITORA文件(可選)
  
  作冷備份一般步驟是
  
  a正常關閉要備份的實例(instance);
  
  b備份整個數據庫到一個目錄
  
  c啟動數據庫
  
  如
  SVRMGRL>connect internal
  SVRMGRL >shutdown immediate
  SVRMGRL >! cp <file> <backup directory>
  
  或
  SVRMGRL >!tar cvf /dev/rmt/ /u/oradata/prod
  SVRMGRL >startup
  
  注意如果利用腳本對數據庫進行冷備份必須對關閉數據庫的命令進行邏輯檢查如果發生關閉數據庫的命令不能正常執行而導致數據庫沒有正常關閉那麼所有的冷備份將回是無效的
  
  ii熱備份
  
  熱備份是當數據庫打開並對用戶有效是的OS級的數據備份熱備份只能用於ARCHIVELOG方式的數據庫在數據文件備份之前對應的表空間必須通過使用ALTER TABLESPACE …… BEGIN BACKUP以備份方式放置然後組成表空間的數據文件可以使用類似冷備份的操作系統命令進行拷貝在數據文件用操作系統命令拷貝後應使用ALTER TABLESPACE …… END BACKUP命令使表空間脫離熱備份方式
  
  熱備份沒有必要備份聯機日志但必須是歸檔狀態在實例恢復的時候可能需要用到歸檔日志當前聯機日志一定要保護好或是處於鏡相狀態當前聯機日志的損壞對於數據庫的損壞是巨大的只能以數據的丟失來進行數據庫的恢復工作
  
  對於臨時表空間存放的是臨時信息在熱備份是也可以考慮不用備份如果臨時文件發生故障可以刪除該數據文件與表空間重建一個臨時表空間
  
  熱備份的優點是顯而易見的
  
   a.可在表空間或數據文件級備份備份時間短
   b.備份時數據庫仍可使用
   c.可達到秒級恢復(恢復到某一時間點上)
   d.可對幾乎所有數據庫實體作恢復
   e.恢復是快速的在大多數情況下在數據庫仍工作時恢復
  
  操作系統作熱備份的一般步驟為
  
  ①連接數據庫
  SVRMGRL>connect internal;
  
  ②將需要備份的表空間(如User)設置為備份方式
  SVRMGRL>Alter tablespace User begin backup;
  
  ③拷貝數據文件
  SVRMGRL>!cp /u/oradata/prod/userora /backup/prod/userora
  Or
  $cp cp /u/oradata/prod/userora /backup/prod/userora
  
  ④在數據文件拷貝完成後將表空間拖體備份方式
  SVRMGRL>Alter tablespace User end backup;
  
  ⑤對所有需要備份的表空間重復
  
  ⑥使用如下的命令備份控制文件ALTER DATABSE …… BACKUP CONTROLFILE
  
  如備份成二進制文件
  alter database backup controlfile to new fielname;
  
  備份成文本文件
  alter database backup controlfile to trace;
  
  因為熱備份的時候用戶還在操作數據庫所以最好是每個表空間處於備份狀態的時間最短這樣就要求一個表空間一個表空間的備份不要一起使表空間處於備份狀態而同時拷貝數據文件
  
  注意如果在熱備份的時候如果數據庫中斷(如斷電)那麼在重新啟動數據庫的時候數據庫將提示有數據文件需要恢復你需要把正在斷電時候的處於備份狀態的數據文件通過ALTER TABLESPACE …… END BACKUP結束備份方式具體哪個數據文件或表空間處於備份狀態可以通過v$backup與v$datafile來獲得
  
  RMAN(備份與恢復管理器)
  
  i使用RMAN進行備份
  
  Recovery manager(RMAN)是ORACLE提供的DBA工具用語管理備份和恢復操作RMAN只能用於ORACLE或更高的版本中它能夠備份整個數據庫或數據庫部件其中包括表空間數據文件控制文件和歸檔文件RMAN可以按要求存取和執行備份和恢復
  
  RMAN備份有如下優點
  
  ☆支持在線熱備份
  ☆支持多級增量備份
  ☆支持並行備份恢復
  ☆減少所需要備份量
  ☆備份恢復使用簡單
  
  重要的是使用恢復管理器允許您進行增量數據塊級的備份(這個與導出/導入的增量截然不同)增量RMAN備份是時間和空間有效的因為他們只備份自上次備份以來有變化的那些數據塊另一個空間有效的RMAN特性是它只備份數據文件中使用的數據塊忽略空的未用的數據塊這個對於預分配空間的表空間有很大的好處
  
  從i開始還增加了RMAN的數據塊級別的恢復可以進一步減少數據庫恢復時間
  
  RMAN支持以下不同類型的備份
  
  FULL                數據庫全備份包括所有的數據塊
  INCREMENTAL            增量備份只備份自上次增量備份以來修改過的數據塊需要一個級的增量作為增量的基礎可以支持級增量
  OPEN                 在數據庫打開的時候使用
  CLOSED               在數據庫安裝(MOUNT)但不打開的時候備份關閉備份可以是CONSISTENT或IN CONSISTENT類型的
  CONSISTENT             在數據庫安裝單不打開並且在安裝之前數據庫被徹底關閉(而不是被破壞或異常退出)時使用CONSISTENT備份可以簡單的進行復原(RESTORE)而不是恢復(RECOVER)
  INCONSISTENT           在數據庫打開或安
From:http://tw.wingwit.com/Article/program/Oracle/201311/17189.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.