国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

ORACLE備份一(ORACLE BACKUP STRATEGY)

2024-08-29 13:42:38
字體:
來源:轉載
供稿:網友
 前言
  
  這篇文章,本是我為CSDN寫的,面向對象為中低用戶,但考慮到這里也有人問過這樣的問題,偶就往這里也復制一份。在讀該文章之前,建議對Oracle構架有所了解,因為ORACLE的備份與恢復,都是與ORACLE的構架緊密相關的,非凡是ORACLE的SCN。
  
  關于備份與恢復的文章,網上也有不少,進入Google,輸入ORACLE備份,點擊搜索,我相信搜索出來的記錄沒有一個人能讀完,但是大部分不是太老,也就是太不完全,很早我就想總結一下了,我的這篇文章,主旨并不是說大家讀了這篇文章,就會了備份的相關知識,它僅僅也是一個提示,希望大家能從中得到益處。
  
  概要
  
  1、了解什么是備份
  
  2、了解備份的重要性
  
  3、理解數據庫的兩種運行方式
  
  4、理解不同的備份方式及其區別
  
  5、了解正確的備份策略及其好處
  
  一、了解備份的重要性
  
  可以說,從計算機系統出世的那天起,就有了備份這個概念,計算機以其強大的速度處理能力,取代了很多人為的工作,但是,往往很多時候,它又是那么弱不禁風,主板上的芯片、主板電路、內存、電源等任何一項不能正常工作,都會導致計算機系統不能正常工作。當然,這些損壞可以修復,不會導致應用和數據的損壞。但是,假如計算機的硬盤損壞,將會導致數據丟失,此時必須用備份恢復數據。
  
  其實,在我們的現實世界中,已經就存在很多備份策略,如RAID技術,雙機熱備,集群技術發展的不就是計算機系統的備份和高可用性嗎?有很多時候,系統的備份的確就能解決數據庫備份的問題,如磁盤介質的損壞,往往從鏡相上面做簡單的恢復,或簡單的切換機器就可以了。
  
  但是,上面所說的系統備份策略是從硬件的角度來考慮備份與恢復的問題,這是需要代價的。我們所能選擇備份策略的依據是:丟是數據的代價與確保數據不丟失的代價之比。還有的時候,硬件的備份有時根本滿足不了現實需要,假如你誤刪了一個表,但是你又想恢復的時候,數據庫的備份就變的重要了。ORACLE本身就提供了強大的備份與恢復策略,這里我們只討論ORACLE備份策略,以下的備份都是指ORACLE數據庫備份,恢復將放到下一講中。
  
  所謂備份,就是把數據庫復制到轉儲設備的過程。其中,轉儲設備是指用于放置數據庫拷貝的磁帶或磁盤。
  
  能夠進行什么樣的恢復依靠于有什么樣的備份。作為 DBA,有責任從以下三個方面維護數據庫的可恢復性:
  
  ·使數據庫的失效次數減到最少,從而使數據庫保持最大的可用性;
  
  ·當數據庫不可避免地失效后,要使恢復時間減到最少,從而使恢復的效率達到最高;
  
  ·當數據庫失效后,要確保盡量少的數據丟失或根本不丟失,從而使數據具有最大的可恢復性。
  
  災難恢復的最重要的工作是設計充足頻率的硬盤備份過程。備份過程應該滿足系統要求的可恢復性。例如,假如數據庫可有較長的關機時間,則可以每周進行一次冷備份,并歸檔重做日志,對于24*7的系統,或許我們考慮的只能是熱備份。 假如天天都能備份當然會很理想,但要考慮其現實性。企業都在想辦法降低維護成本,現實的方案才可能被采用。只要仔細計劃,并想辦法達到數據庫可用性的底線,花少量的錢進行成功的備份與恢復也是可能的。
  
  二、了解ORACLE的運行方式
  
  ORACLE數據庫有兩種運行方式:一是歸檔方式(ARCHIVELOG),歸檔方式的目的是當數據庫發生故障時最大限度恢復數據庫,可以保證不丟失任何已提交的數據;二是不歸檔方式(NOARCHIVELOG),只能恢復數據庫到最近的回收點(冷備份或是邏輯備份)。我們根據數據庫的高可用性和用戶可承受丟失的工作量的多少,對于生產數據庫,強烈要求采用為歸檔方式;那些正在開發和調試的數據庫可以采用不歸檔方式。
  
  如何改變數據庫的運行方式,在創建數據庫時,作為創建數據庫的一部分,就決定了數據庫初始的存檔方式。一般情況下為NOARCHIVELOG方式。當數據庫創建好以后,根據我們的需要把需要運行在歸檔方式的數據庫改成ARCHIVELOG方式。
  
  1、改變不歸檔方式為為歸檔方式
  
  a.關閉數據庫,備份已有的數據,改變數據庫的運行方式是對數據庫的重要改動,所以要對數據庫做備份,對可能出現的問題作出保護。
  
  b. 修改初試化參數,使能自動存檔
  
  修改(添加)初始化文件init[SID].ora參數:
  
  log_archive_start=true      #啟動自動歸檔
  log_archive_format=ARC%T%S.arc  #歸檔文件格式
  log_archive_dest=/arch12/arch    #歸檔路徑
  
  在8i中,可以最多有五個歸檔路徑,并可以歸檔到其它服務器,如備用數據庫(standby database)服務器
  
  c.啟動Instance到Mount狀態,即加載數據庫但不打開數據庫:
  
  $>SVRMGRL
  SVRMGRL >connect internal
  SVRMGRL >startup mount
  
  d.發出修改命令
  
  SVRMGRL >alter database archivelog;
  SVRMGRL>alter database open;
  
  2、改變歸檔狀態為不歸檔狀態
  
  與以上步驟相同,但有些操作不一樣,主要是在以上的b操作中,現在為刪除或注釋該參數,在d操作中,命令為
  
  SVRMGRL >alter database noarchivelog;
  
  注重,從歸檔方式轉換到非歸檔方式后一定要做一次數據庫的全冷備份,防止意外事件的發生。

  
  三、ORACLE備份的分類
  
  簡單的按照備份進行的方式,可以分為邏輯備份、冷備份(脫機備份)、熱備份(聯機備份),其實冷備份與熱備份又可以合稱為物理備份
  
  按照備份的工具,可以分為EXP/IMP備份、OS拷貝、RMAN、第三方工具,如VERITAS
  
  以下我們將從多個角度來說明以上的各種備份方式
  
  1、EXP/IMP邏輯備份
  
  導入/導出是ORACLE幸存的最古老的兩個命令行工具了,其實我從來不認為Exp/Imp是一種好的備份方式,正確的說法是Exp/Imp只能是一個好的轉儲工具,非凡是在小型數據庫的轉儲,表空間的遷移,表的抽取,檢測邏輯和物理沖突等中有不小的功勞。當然,我們也可以把它作為小型數據庫的物理備份后的一個邏輯輔助備份,也是不錯的建議。
  
  對于越來越大的數據庫,非凡是TB級數據庫和越來越多數據倉庫的出現,EXP/IMP越來越力不從心了,這個時候,數據庫的備份都轉向了RMAN和第三方工具。下面我們還是簡要介紹一下EXP/IMP的使用。
  
  i、使用方法
  
  Exp parameter_name=value
  Or Exp parameter_name=(value1,value2……)
  
  只要輸入參數help=y就可以看到所有幫助
  
  如:
  C:>set nls_lang=simplified chinese_china.zhs16gbk
  C:>exp -help
  Export: Release 8.1.6.0.0 - PRodUCtion on 星期四 4月 10 19:09:21 2003
  (c) Copyright 1999 Oracle Corporation. All rights reserved.
  
  通過輸入 EXP 命令和用戶名/口令,您可以在用戶 / 口令之后的命令:
  
  實例: EXP SCOTT/TIGER
  
  或者,您也可以通過輸入跟有各種參數的 EXP 命令來控制“導出”的運行方式。要指定參數,您可以使用要害字:
  
  格式: EXP KEYWord=value 或 KEYWORD=(value1,value2,...,valueN)
  
  實例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
  
  或 TABLES=(T1: P1,T1: P2),假如 T1 是分區表
  
  USERID 必須是命令行中的第一個參數。
  
  要害字 說明(默認)    要害字   說明(默認)
  --------------------------------------------------------------------------
  USERID  用戶名/口令      FULL     導出整個文件 (N)
  BUFFER  數據緩沖區的大小     OWNER    所有者用戶名列表
  FILE   輸出文件 (EXPDAT.DMP)  TABLES    表名列表
  COMPRESS 導入一個范圍 (Y)  RECORDLENGTH IO 記錄的長度
  GRANTS 導出權限 (Y)      INCTYPE   增量導出類型
  INDEXES 導出索引 (Y)      RECORD    跟蹤增量導出 (Y)
  ROWS  導出數據行 (Y)     PARFILE   參數文件名
  CONSTRAINTS 導出限制 (Y)  CONSISTENT  交叉表一致性
  LOG   屏幕輸出的日志文件  STATISTICS 分析對象 (ESTIMATE)
  DIRECT  直接路徑 (N)       TRIGGERS   導出觸發器 (Y)
  FEEDBACK 顯示每 x 行 (0) 的進度
  FILESIZE 各轉儲文件的最大尺寸
  QUERY  選定導出表子集的子句
  
  下列要害字僅用于可傳輸的表空間
  
  TRANSPORT_TABLESPACE 導出可傳輸的表空間元數據 (N)
  
  TABLESPACES 將傳輸的表空間列表
  
  在沒有警告的情況下成功終止導出。
  
  C:>
  
  幫助已經很具體的說明了參數的意義和使用方法,并列舉了幾個簡單的例子,注重的是,從8i開始,已經開始支持數據子集的方法,就是可以指定自己的Where條件,可以從表中導出一行或多行數據。
  
  注重上面的set nls_lang=simplified chinese_china.zhs16gbk,通過設置環境變量,可以讓exp的幫助以中文顯示,假如set nls_lang=American_america.字符集,那么你的幫助就是英文的了。
  
  增量和累計導出必須在全庫方式下才有效,而且,大多數情況下,增量和累計導出并沒有想象中的那么有效。ORACLE從9i開始,不再支持增量導出和累計導出。
  
  ii、表空間傳輸
  
  表空間傳輸是8i新增加的一種快速在數據庫間移動數據的一種辦法,是把一個數據庫上的格式數據文件附加到另外一個數據庫中,而不是把數據導出成Dmp文件,這在有些時候是非常管用的,因為傳輸表空間移動數據就象復制文件一樣快。
  
  關于傳輸表空間有一些規則,即:
  
  ·源數據庫和目標數據庫必須運行在相同的平臺上。

  
  ·源數據庫與目標數據庫必須使用相同的字符集。
  
  ·源數據庫與目標數據庫一定要有相同大小的數據塊(9i已經不用)
  
  ·目標數據庫不能有與遷移表空間同名的表空間
  
  ·SYS的對象不能遷移
  
  ·必須傳輸自包含的對象集
  
  ·有一些對象,如物化視圖,基于函數的索引等不能被傳輸
  
  可以用以下的方法來檢測一個表空間或一套表空間是否符合傳輸標準:
  
  exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);
  select * from sys.transport_set_violation;
  
  假如沒有行選擇,表示該表空間只包含表數據,并且是自包含的。對于有些非自包含的表空間,如數據表空間和索引表空間,可以一起傳輸。
  
  以下為簡要使用步驟,假如想參考具體使用方法,也可以參考ORACLE聯機幫助。
  
  a.設置表空間為只讀(假定表空間名字為APP_Data 和APP_Index)
  
  alter tablespace app_data read only;
  alter tablespace app_index read only;
  
  b.發出EXP命令
  
  SQL>host exp userid=”””sys/password as sysdba”””
  transport_tablespace=y tablespace=(app_data, app_index)
  
  以上需要注重的是
  
  ·為了在SQL中執行EXP,USERID必須用三個引號,在UNIX中也必須注重避免“/”的使用
  
  ·在816和以后,必須使用sysdba才能操作
  
  ·這個命令在SQL中必須放置在一行(這里是因為顯示問題放在了兩行)
  
  c.拷貝數據文件到另一個地點,即目標數據庫
  
  可以是cp(unix)或copy(windows)或通過FTP傳輸文件(一定要在bin方式)
  
  d.把本地的表空間設置為讀寫
  
  e.在目標數據庫附加該數據文件
  
  imp file=expdat.dmp userid=”””sys/password as sysdba”””
  transport_tablespace=y
  “datafile=(c: empapp_data,c: empapp_index)”
  
  f.設置目標數據庫表空間為讀寫
  
  alter tablespace app_data read write;
  alter tablespace app_index read write;

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝阳县| 神农架林区| 洪湖市| 凌海市| 兖州市| 岑溪市| 光山县| 民勤县| 洪湖市| 隆安县| 都江堰市| 靖安县| 怀集县| 合作市| 沭阳县| 通榆县| 阿拉善左旗| 凯里市| 宜良县| 讷河市| 喀什市| 达州市| 确山县| 漯河市| 平顶山市| 尼勒克县| 江门市| 台东县| 淮安市| 民勤县| 花莲市| 临澧县| 隆尧县| 宜黄县| 胶南市| 抚远县| 神木县| 湖州市| 措勤县| 峡江县| 惠东县|