国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle數據庫的備份與恢復案例詳解

Oracle數據庫的備份與恢復案例詳解

2022-01-12 18:23學海無涯樂做舟 Oracle

這篇文章介紹了Oracle數據庫的備份與恢復的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在oracle數據庫的使用過程中,備份與恢復是經常遇到的操作。oracle中的備份分為兩大類:邏輯備份物理備份。其中物理備份又分為兩類:冷備份熱備份。本節將簡要講述如何利用各種備份手段進行oracle數據庫的備份與恢復。

1 邏輯備份/恢復(導出/導入)

邏輯備份是指利用exp命令進行備份。利用該命令進行備份,簡單易行,也不影響正常的數據庫操作。因此,經常被作為日常備份的手段。exp命令可以添加多個參數選項,以實現不同的導出策略。可以通過exp –?命令進行查看。其中,常用參數包括:ownertableinctype

1.必備參數

對于一個導出命令,可以只使用必備參數,如范例1所示。

【范例1】演示導出命令的使用。

c:\documents and settings\administrator>exp system/abc123 file=d:/b.dmp

【代碼說明】system/abc123為登錄數據庫時所使用的用戶名和密碼;file=d:/b.dmp指定數據導出所存放的文件完整路徑。這里需要注意的是,該命令并未指定登錄到哪個數據庫實例,因此,將使用系統環境變量oracle_sid所指定的數據庫實例。

注意:另外一種特殊情況為,在環境變量列表中找不到oracle_sid,那么,可以在注冊表中搜索oracle_sid項。oracle也會參考注冊表中該項的值來設置環境。

2.owner參數

owner參數,可以指定一個用戶名列表。導出時,將只導出用戶名列表中用戶所擁有的對象,如范例2所示。

【范例2】演示owner參數的使用。

c:\documents and settings\administrator>exp system/abc123 owner=(test, oracle) file=d:/b.dmp

【代碼說明】owner=(test, oracle)指定exp命令僅僅導出testoracle兩個用戶所擁有的對象。如果某個用戶不存在,例如,本例中用戶oracle不存在,那么將給出相應警告,但不會影響對于用戶test的對象的導出。

3.tables參數

當使用exp命令時,同樣可以指定tables參數。該參數用于指定導出哪些數據表。范例3演示了該參數的使用。

【范例3】演示tables參數的使用。

exp system/abc123 tables=(people, employees) file=d:/b.dmp

【代碼說明】tables=(people, employees)指定了要導出的數據表列表,在exp命令執行時,將只導出用戶systempeopleemployees表。如果要導出的表不存在,那么將給出警告信息。但不會影響其他表的導出工作。

4.關于inctype參數

在oracle 9i之前的版本中,可以利用inctype參數指定導出的增量類型。但是,在oracle 9i及以后的版本中,該參數不再使用。范例4演示了在oracle 10g中使用該參數的錯誤信息。

【范例4】oracle 10g中參數inctype已經廢除。

c:\documents  and  settings\administrator>exp  system/abc123  inctype=complete file=d:/b.dmp

【代碼說明】在exp命令中使用inctype參數,oracle將拋出錯誤錯誤信息,

對于邏輯備份,相應的恢復命令為imp。如果數據庫遭到破壞,可以利用如下命令進行恢復:

c:\documents and settings\administrator>imp system/abc123 file=d:/b.dmp

imp命令同樣可以指定參數。例如,使用owner參數只導入特定用戶的對象;使用tables參數只導入特定表,代碼如下:

c:\documents   and   settings\administrator>imp   system/abc123   file=d:/b.dmp tables=(people, employees)

該命令將只導入名為peopleemployees的表。

2 物理備份/恢復

物理備份,是指直接備份數據庫的文件。物理備份又分為兩種:冷備份和熱備份。

1.冷備份/恢復

冷備份是指在數據庫關閉的狀態下,備份所有的數據庫文件。這些文件包括:所有數據文件、所有控制文件、所有聯機redo log文件和init.ora文件(可選)。

【范例5】演示數據庫冷備份。

(1)首先以管理員身份登錄數據庫,并將數據庫關閉

c:\documents and settings\administrator>sqlplus / as sysdba

sql> shutdown normal;

database closed.

database dismounted.

oracle instance shut down.

(2)在關閉數據庫之后,可以對其物理文件進行備份。這些物理文件默認處于{oracle_home}\product\10.1.0\oradata\test,其中test為數據庫名。因此,首先返回到windows命令行下使用復制命令,或者在sql命令行中添加host關鍵字直接使用主機命令:

sql> host copy d:\oracle\product\10.1.0\oradata\test  f:\backup\

d:\oracle\product\10.1.0\oradata\test\control01.ctl

d:\oracle\product\10.1.0\oradata\test\control02.ctl

d:\oracle\product\10.1.0\oradata\test\control03.ctl

此時,已經實現了整個數據庫的冷備份。而冷備份的恢復則十分方便,只要數據庫處于關閉狀態,將備份的文件復制到原來的位置即可。

2.熱備份/恢復

數據庫的熱備份是指對處于啟動狀態下的數據庫進行備份。熱備份一個數據庫,首先要保證數據庫運行于歸檔模式,然后備份表空間的數據文件,最后備份控制文件。

【范例6】演示數據庫熱備份。

(1)在進行日志模式切換之前,必須將運行的數據庫正常關閉。因此,首先應該以管理員身份登錄數據庫,關閉數據庫。

sql> shutdown immediate;

database closed.

database dismounted.

oracle instance shut down.

(2)重新啟動數據庫實例,但是并不打開數據庫。

sql> startup mount;

oracle instance started.

total system global area  171966464 bytes

fixed size               787988 bytes

variable size          145488364 bytes

database buffers         25165824 bytes

redo buffers             524288 bytes

database mounted.

(3)利用alter命令將數據庫切換到歸檔模式。

sql> alter database archivelog;

database altered.

(4)打開數據庫,以便對數據庫進行操作。

sql> alter database open;

database altered.

(5)利用archive log list命令確認當前數據庫處于歸檔模式。

sql> archive log list;

database log mode         archive mode

automatic archival          enabled

archive destination          use_db_recovery_file_dest

oldest online log sequence     538

next log sequence to archive   540

current log sequence         540

archive mode表明當前的數據庫處于歸檔模式。oracle數據庫有聯機重做日志,該日志用于記錄用戶的數據庫操作,如插入、刪除或更新數據。一般情況下,每個oracle數據庫至少含有兩個聯機重做日志組。當一個聯機重做日志組被寫滿的時候,就會發生日志切換。另一個聯機日志組成為當前使用的日志,繼續記錄用戶操作。當前聯機日志組寫滿后,會切換到第一個聯機日志組,并覆寫其中的數據。

如果數據庫處于非歸檔模式,聯機日志在切換時就會丟棄已有信息。而在歸檔模式下,當發生日志切換時,被切換的日志會首先進行歸檔,并將信息復制到其他目錄。這樣,不會造成聯機日志信息的丟失。

(6)將數據庫中的表空間users設置為備份模式,代碼如下:

sql> alter tablespace users begin backup;

tablespace altered.

(7)復制實際的表空間的數據文件到備份目錄下,代碼如下:

sql> host copy d:\oracle\product\10.1.0\oradata\test\users01.dbf d:\back;

已復制       1 個文件。

關閉表空間的備份模式,代碼如下:

sql> alter tablespace users end backup;

tablespace altered.

(8)以同樣的方式備份數據庫中的其他表空間的數據文件。

(9)備份控制文件,代碼如下:

sql> alter database backup controlfile to 'f:\backup\test_backup' reuse;

database altered.

(10)備份控制文件的創建腳本,代碼如下:

sql> alter database backup controlfile to trace;

database altered.

此時會在{oracle_home}\admin\{instance_name}\udump目錄下生成新的控制文件的跟蹤文件。在本例中其路徑為d:\oracle\product\10.1.0\admin\test\udump。在目錄中獲得最新的跟蹤文件,該文件記錄了數據庫控制文件的創建腳本。以下代碼為文件片段:

    -- the following commands will create a new control file and use it

    -- to open the database.

    -- data used by recovery manager will be lost.

    -- the contents of online logs will be lost and all backups will

    -- be invalidated. use this only if online logs are damaged.

    -- after mounting the created controlfile, the following sql

    -- statement will place the database in the appropriate

    -- protection mode:

    --  alter database set standby database to maximize performance

    startup nomount

    create controlfile reuse database "test" resetlogs  archivelog

        maxlogfiles 16

        maxlogmembers 3

        maxdatafiles 100

        maxinstances 8

        maxloghistory 454

    logfile

      group 1 'd:\oracle\product\10.1.0\oradata\test\redo01.log'  size 10m,

      group 2 'd:\oracle\product\10.1.0\oradata\test\redo02.log'  size 10m,

      group 3 'd:\oracle\product\10.1.0\oradata\test\redo03.log'  size 10m

    -- standby logfi

復制該文件,并將該文件復制到備份目錄下。至此,熱備份的過程結束。

在備份成功之后,一旦出現數據庫故障,即可以利用備份文件進行恢復工作。例如,如果數據文件d:\oracle\product\10.1.0\oradata\test\users01.dbf損壞,那么在啟動數據庫時會拋出錯誤。

sql> startup mount;

oracle instance started.

total system global area  171966464 bytes

fixed size               787988 bytes

variable size          145488364 bytes

database buffers         25165824 bytes

redo buffers             524288 bytes

database mounted.

sql> alter database open;

alter database open

*

error at line 1:

ora-01157: cannot identify/lock data file 4- see dbwr trace file

ora-01110: data file 4: 'd:\oracle\product\10.1.0\oradata\test\users01. dbf'

由于無法找到數據文件users01.dbf,數據庫啟動失敗。此時,需要將以前備份的數據文件復制到原目錄中。

sql>   host   copy   f:\backup\users01.dbf   d:\oracle\product\10.1.0\oradata\

test\users01.dbf;

    已復制       1 個文件。

此時,重新啟動數據庫。

  sql> alter database open;

   alter database open

*

  error at line 1:

   ora-01113: file 4 needs media recovery

   ora-01110: data file 4: 'd:\oracle\product\10.1.0\oradata\test\users01. dbf'

oracle在啟動時,總是會檢查控制文件中的標識(checkpoint cnt與checkpoint scn)與數據文件中的標識是否相同。如果不同,則需要重新恢復數據文件,以同步控制文件中的標識與數據文件中的標識。恢復的命令如下:

sql> recover datafile 'd:\oracle\product\10.1.0\oradata\test\users01. dbf';

當然,也可以使用如下語句代替。

sql> recover datafile 4;

此時,oracle可能會要求用戶指定歸檔日志。歸檔日志默認存儲在{oracle_home}\flash_recovery_area\{database_name}\archivelog\下,為recover命令選擇最近的歸檔日志或使用oracle建議的歸檔日志,如圖所示。

Oracle數據庫的備份與恢復案例詳解

選擇歸檔日志

在選擇了歸檔日志之后,oracle將使用該歸檔日志進行恢復。恢復成功之后,可以成功打開數據庫。

sql> alter database open;

database altered.

備份控制文件的意義在于,當控制文件丟失時,可以將熱備份的控制文件還原。而備份跟蹤文件的意義在于,當備份的控制文件無法正常使用時,利用跟蹤文件重新創建控制文件。

3 利用pl/sql developer備份數據庫

除了利用各種命令對數據庫進行備份之外,還可以利用pl/sql developer進行備份。利用該工具進行備份,簡單易學,而且不易出錯。利用pl/sql developer進行備份的模式包括針對整個數據庫、針對某個用戶、針對某些特定表等。本節以備份某個用戶對象為例,講述如何利用pl/sql developer進行備份。

【范例7】演示利用pl/sql developer備份用戶system所有對象。

  • (1)打開pl/sql developer,并利用system用戶登錄數據庫test。
  • (2)在左側窗口的下拉菜單中選擇【my objects】從而保證所有的操作都是針對當前用戶的對象。
  • (3)選擇菜單欄中的【tools】菜單下的【export user objects】菜單項,將彈出導出窗口,如圖所示。

Oracle數據庫的備份與恢復案例詳解

利用pl/sql developer備份用戶的所有對象

  • (4)選擇列表中所有對象,并為【output file】指定導出文件的路徑。導出的文件實際上是一個sql腳本文件。其中記錄了當前用戶的所有對象的創建腳本。一旦數據庫出現故障,可以重建數據庫,并在其中創建相應用戶(system用戶無須創建,為數據庫默認用戶),然后利用該用戶登錄數據庫,并執行該sql腳本,即可實現數據庫對象的重新創建。
  • (5)除了備份數據庫對象之外,還需要備份數據表中的數據。備份表中數據,需要使用【tools】菜單下的【export tables】功能。

以上所述是小編給大家介紹的oracle數據庫的備份與恢復案例詳解,希望對大家有所幫助。在此也非常感謝大家對服務器之家網站的支持!

原文鏈接:https://blog.csdn.net/weixin_41918841/article/details/88413250

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: av一区二区三区 | 一本色道精品久久一区二区三区 | 中文字幕在线观看av | 欧美午夜影院 | 日韩中文字幕一区二区三区 | 一区二区三区在线播放 | 日韩精品无码一区二区三区 | 日本亚洲最大的色成网站www | 国产一区二区三区 | 91精品国产乱码久久久久久久久 | 亚洲精品一区二区三区蜜桃下载 | 欧美黄色一区 | 亚洲精彩视频 | 亚洲区欧美区 | 性欧美另类 | 日韩成人av在线 | 亚洲一区免费 | 国产噜噜噜噜噜久久久久久久久 | 久久久久国产精品免费免费搜索 | 蜜桃一区二区 | 久久99精品久久久 | 99久久99久久精品 | 久久久精品网 | 日韩欧美的一区二区 | 糈精国产xxxx在线观看 | 在线观看成人 | 色永久| a级在线免费视频 | 色播视频网站 | 国产视频一区二 | 日韩一区免费在线观看 | 国产精品久久久久久久久久久久冷 | 天天天天操 | 99福利视频 | 欧洲一区在线观看 | 精品一区二区电影 | 欧美综合在线观看 | 国产精品视频网 | 狠狠综合久久 | 亚洲精品久久久一区二区三区 | 一区二区日本 |