建立備份集

備份要求

請確保系統符合以下要求:

  1. 軟件要求:
    Oracle 19c 的資料庫備份可以在下列平台上進行:Windows Server 2012/ 2016/ 2019。
    Oracle 12c 的資料庫備份可以在下列平台上進行:Windows Server 2008/ 2008 R2/ 2012/ 2012 R2。
  2. %edition_name% 安裝: Oracle 資料庫伺服器上必須安裝最新版本的 %edition_name% 。
  3. Oracle 資料庫伺服器擴充模組: 請確保%edition_name%用戶賬號已經開啟了 Oracle 資料庫伺服器擴充模組。
  4. !

    不支援對在遠程計算機上運行的Oracle 資料庫的備份和還原。

  5. Oracle 資料庫伺服器附加模塊:請確保您的%edition_name%用戶賬號已經開啟Oracle 資料庫伺服器附加模塊。
  6. 備份配額要求: 請確保您的%edition_name%用戶賬號擁有分配足夠的存儲配額用以容納Oracle資料庫備份集的存儲容量和保存政策。
  7. 實時備份模組: 如果需要開啟實時備份功能,請確保已經開啟了實時備份擴充模組。例如:您可以對您的Oracle實例進行每半小時或每小時一次的存檔日誌實時備份。
  8. Java heap大小: %edition_name% 的默認Java heap大小設置為2048MB。對於Oracle資料庫備份,強烈建議您將Java heap大小設置提升為至少 4096MB 以達至更佳的備份及還原性能。實際的Java heap大小取決於Oracle伺服器上之可用記憶體空間。
    請參考以下文章以獲取如何修改%edition_name%的Java heap大小設置的詳情:
    https://wiki.ahsay.com/doku.php?id=public:8011_faq:how_to_modify_the_java_heap_size_of_ahsayobc
  9. 暫存資料夾: %edition_name% 上的暫存資料夾用作在備份過程中儲存:
    假脫機的Oracle 資料庫和存檔日誌檔案
    備份過程中所產生之增量或差異檔案
    為達至最佳備份/還原性能,建議暫存資料夾位於本地磁碟機並且有大量空白磁碟空間。 暫存資料夾不應位於Windows系統C:\磁碟機或Oracle主機磁碟機上。
    暫存資料夾所在的磁碟空間計算公式如下:
    (總資料庫大小 * 差異率) * 備份目標儲存位置數目 = 最大所需磁碟空間
    例如: 預設差異率為50%,如果 Oracle 資料庫大小為1TB並且只有一個備份目標儲存位置,那麼暫存資料夾所需最少磁碟空間為1.5TB。
    1TB = Oracle 資料庫的大小
    500GB = 備份過程中所產生之全部增量或差異檔案的大小

    為獲得Oracle資料庫全部數據檔案的大小,使用Oracle RMAN REPORT SCHEMA特性以及應用如下指令以計算“List of Permanent Datafiles”的大小總和。
    請注意: 顯示的數據只是示例並可能與您的Oracle實例上顯示的不同。
    C:\Users\Administrator>set ORACLE_SID=orcl
    C:\Users\Administrator>rman target /
    Recovery Manager: Release 19.0.0.0.0 - Production on Thu Oct 29 18:29:44 2020
    Version 19.3.0.0.0
    Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.
    connected to target database: ORCL (DBID=1562659286)
    RMAN> report schema;
    using target database control file instead of recovery catalog
    Report of database schema for database with db_unique_name ORCL
    List of Permanent Datafiles
    ===========================
    File   Size(MB)  Tablespace                               RB segs   Datafile Name
    ----   --------         ------------                               --------       ----------------
    1       910               SYSTEM                               YES         D:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF
    3       920               SYSAUX                               NO           D:\ORACLE\ORADATA\ORCL\SYSAUX01.DBF
    4       60                 UNDOTBS1                         YES         D:\ORACLE\ORADATA\ORCL\UNDOTBS01.DBF
    5       260               PDB$SEED:SYSTEM         NO           D:\ORACLE\ORADATA\ORCL\PDBSEED\SYSTEM01.DBF
    6       280               PDB$SEED:SYSAUX         NO           D:\ORACLE\ORADATA\ORCL\PDBSEED\SYSAUX01.DBF
    7       5                   USERS                                 NO           D:\ORACLE\ORADATA\ORCL\USERS01.DBF
    8       100               PDB$SEED:UNDOTBS1   NO           D:\ORACLE\ORADATA\ORCL\PDBSEED\UNDOTBS01.DBF
    9       260               ORCLPDB:SYSTEM         NO           D:\ORACLE\ORADATA\ORCL\ORCLPDB\SYSTEM01.DBF
    10     300               ORCLPDB:SYSAUX         NO           D:\ORACLE\ORADATA\ORCL\ORCLPDB\SYSAUX01.DBF
    11     100               ORCLPDB:UNDOTBS1     NO         D:\ORACLE\ORADATA\ORCL\ORCLPDB\UNDOTBS01.DBF
    12     5                   ORCLPDB:USERS             NO         D:\ORACLE\ORADATA\ORCL\ORCLPDB\USERS01.DBF
    List of Temporary Files
    ===========================
    File   Size(MB)  Tablespace                 Maxsize(MB)   Tempfile Name
    ----   --------         ------------                     --------           ----------------
    1       32               TEMP                         32767             D:\ORACLE\ORADATA\ORCL\TEMP01.DBF
    2       36               PDB$SEED:TEMP   32767             D:\ORACLE\ORADATA\ORCL\PDBSEED\TEMP012020-03-12_18-17-27-260-PM.DBF
    3       128             ORCLPDB:TEMP     32767             D:\ORACLE\ORADATA\ORCL\ORCLPDB\TEMP01.DBF
    RMAN>

    Oracle 備份要求

    請注意: 請在進行變更之前咨詢您的Oracle 資料庫管理員。
  10. Oracle 工具
  11. Oracle內部流程檢查: 為使得Oracle實例執行流暢,請確保Oracle實例內部流程工作正常:
    DBWO (Database Writer)
    LGWR (Log Writer)
    MMAN (Memory Manager Process)
    PMON (Process Monitor)
    PSPO (Process Spawner Process)
    SMON (System Monitor)
    CKPT (Checkpoint process (thread on Windows) that runs by default on Windows)
    ARCO (Archive Process (or thread on Windows))
    RECO (Distributed Recovery Background Process)
    SQL> select name, description from v$bgprocess where PADDR <>'00';
    NAME     DESCRIPTION
    -----   ---------------------------------------
    PMON     process cleanup
    VKTM     Virtual Keeper of TiMe process
    GEN0     generic0
    DIAG     diagnosibility process
    DBRM     DataBase Resource Manager
    VKRM     Virtual sKeduler for Resource Manager
    PSP0     process spawner 0
    DIA0     diagnosibility process 0
    MMAN     Memory Manager
    DBW0     db writer process 0
    TMON     Transport Monitor
    ARC0     Archival Process 0
    ARC1     Archival Process 1
    ARC2     Archival Process 2
    ARC3     Archival Process 3
    LGWR     Redo etc.
    CKPT     checkpoint
    SMON     System Monitor Process
    SMCO     Space Manager Process
    RECO     distributed recovery
    LREG     Listener Registration
    CJQ0     Job Queue Coordinator
    AQPC     AQ Process Coord
    MMON     Manageability Monitor Process
    MMNL     Manageability Monitor Process 2
  12. Oracle資料庫伺服器支援版本: 請確保%edition_name%支援以下Oracle資料庫伺服器版本。

    Oracle 19c

    C:\Users\Administrator>sqlplus / as sysdba
    SQL*Plus: Release 19.0.0.0.0 - Production on Thu Nov 12 12:04:25 2020
    Version 19.3.0.0.0
    Copyright (c) 1982, 2019, Oracle. All rights reserved.
    Connected to:
    Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    SQL>

    Oracle 12c

    C:\Users\Administrator>sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.1.0 - Production on Mon May 26 15:33:44 2019
    Version 12.1.0.1.0
    Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to:
    Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - Production
    Version 12.1.0.1.0
    SQL>
  13. 系統標識符(SID): 通過下列方法查詢SID:
  14. Oracle_home 路徑:

    Oracle 19c
    通過下列SQL查詢方法獲得Oracle_home 路徑。Oracle 19c 的Oracle_home 路徑是“D:\app\oracle\19.0.0\dbhome_1”。

    Oracle 12c

    通過下列SQL查詢方法獲得Oracle_home 路徑。Oracle 12c的Oracle_home 路徑是“D:\app\oracle\product\12.1.0\dbhome_1”。
  15. !

    請注意init.ora文檔中的oracle_home 路徑與通過SQL指令獲得的路徑必須一致。如果不一致,請聯繫Oracle資料庫管理員尋求支援。

  16. 資料庫狀態

    • 請確保Oracle 實例的狀態是“開啟”,應用以下查詢驗證:
      SQL > select instance_name, status form v$instance;
      INSTANCE_NAME     STATUS
      -------------     ----------
      orcl           OPEN
  17. ARCHIVELOG模式

    • 請確保資料庫實例必須為ARCHIVELOG模式。 應用下列指令驗證:
      SQL > archive log list;
      Database log mode       Archive Mode
      Automatic archival       Enabled
  18. Java 安裝: Oracle資料庫上必須安裝Java。 JServer JAVA Virtual MachineOracle Database Java Packages 是"VALID"。
    SQL > select comp_name, status from dba_registry;
    COMP_NAME                               STATUS
    ---------                               ------------
    OWB                                                  VALID
    Oracle Application Express               VALID
    Oracle Enterprise Manager               VALID
    OLAP Catalog                                   VALID
    Spatial                                                VALID
    Oracle Multimedia                                  VALID
    Oracle XML Database                     VALID
    Oracle Text                                         VALID
    Oracle Expression Filter                 VALID
    Oracle Rules Manager                     VALID
    Oracle Workspace Manager              VALID
    Oracle Database Catalog Views          VALID
    Oracle Database Packages and Types    VALID
    JServer JAVA Virtual Machine        VALID
    Oracle XDK                                  VALID
    Oracle Database Java Package          VALID
  19. Oracle系統賬戶的JAVASYSPRIV權限: %edition_name%應用Oracle system 賬戶以連接Oracle資料庫伺服器從而授權備份和還原過程。system 賬戶必須具有下列權限。
      使用下列指令查詢賬戶是否具有JAVASYSPRIV認證:
      SQL> select * from DBA_ROLE_PRIVS where upper(grantee)='SYSTEM';
      GRANTEE   GRANTED_ROLE           ADM   DEF   COM
      -------   ------------           ---   ---   ---
      SYSTEM   JAVASYSPRIV             NO     YES   NO
      SYSTEM   AQ_ADMINISTRATOR_ROLE   YES   YES   YES
      如果未有認證,授予system賬戶javasyspriv認證:
      SQL> grant javasyspriv to system;
      Grant succeeded.
  20. Oracle系統賬戶的SYSDBA 特權:
      使用下列指令查詢system賬戶是否具有SYSDBA 特權:
      SQL> select * from v$pwfile_users where sysdba='TRUE'; USERNAME SYSDB SYSOP SYSAS SYSBA SYSDG SYSKM CON_ID
      -------- ----- ----- ----- ----- ----- ----- ------
      SYS       TRUE TRUE FALSE FALSE FALSE FALSE     0
      SYSTEM   TRUE FALSE FALSE FALSE FALSE FALSE     1
      如果未有認證,授予system賬戶sysdba特權:
      Oracle 19c
      SQL> grant sysdba to system container=ALL;
      Grant succeeded
      Oracle 12c
      SQL> grant sysdba to system;
      Grant succeeded
  21. 請確保開啟TNS listener服務以允許連結到Oracle資料庫伺服器。應用lsnrctl status指令查詢TNS listener服務是否正在運行。 如果TNS listener服務未有開啟,應用lsnrctl start指令開啟服務。
    例如:Oracle 19c上正在運行TNS listener服務。
    C:\Users\Administrator>lsnrctl status
    LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 14-OCT-2020 16:45:29
    Copyright (c) 1991, 2019, Oracle. All rights reserved.
    Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
    STATUS of the LISTENER
    ------------------------
    Alias        LISTENER
    Version      TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
    Start Date   14-OCT-2020 11:11:04
    Uptime       0 days 5 hr. 34 min. 27 sec
    Trace Level   off
    Security     ON: Local OS Authentication
    SNMP         OFF
    Listener Parameter File     D:\oracle\19.3.0\dbhome\network\admin\listener.ora
    Listener Log File     D:\oracle\diag\tnslsnr\w12x-5-43\listener\alert\log.xml
    Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ora19c-w2k16)(PORT=1521)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=ora19c-w2k16)(PORT=5500))(Security=(my_wallet_directory=D:\ORACLE\admin\orcl\xdb_wallet))(Presentation=HTTP)(Session=RAW))
    Services Summary...
    Service "CLRExtProc" has 1 instance(s).
    Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Service "orcl" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "orclcXDB" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    Service "pdborcl" has 1 instance(s).
    Instance "orcl", status READY, has 1 handler(s) for this service...
    The command completed successfully
    如果未有開啟,應用下列指引開啟TNS listener:
    C:\Users\Administrator>lsnrctl start
    LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 21-OCT-2020 15:44:41
    Copyright (c) 1991, 2019, Oracle. All rights reserved.
    TNS-01106: Listener using listener name LISTENER has already been started
  22. 本地主機是可解析的
    應用ping 127.0.0.1指令驗證Oracle資料庫伺服器的本地主機IP 127.0.0.1 是否可解析,因為這將是%edition_name%用來連接Oracle實例的IP地址。
    C:\Users\Administrator>ping 127.0.0.1
    Pinging 127.0.0.1 with 32 bytes of data:
    Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
    Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
    Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
    Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
    Ping statistics for 127.0.0.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
    Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms
    C:\Users\Administrator>
  23. Oracle連接埠號碼: 採用netstattnsping指令驗證真正的連接埠號碼。
    • NETSTAT
      C:\Users\Administrator>netstat -a|more
      Active Connections
      Proto     Local Address     Foreign Address             State
      TCP     0.0.0.0:135     w12x-5-43:0                 LISTENING
      TCP     0.0.0.0:445     w12x-5-43:0            LISTENING
      TCP     0.0.0.0:1521    w12x-5-43:0                 LISTENING
      TCP     0.0.0.0:3389     w12x-5-43:0                 LISTENING
      TCP     10.16.10.81:139     w12x-5-43:0                 LISTENING
      TCP     10.16.10.81:1521     w12x-5-43:56851     ESTABLISHED
      TCP     10.16.10.81:2030     w12x-5-43:0                 LISTENING
      TCP     [::]:135         w12x-5-43:0                 LISTENING
      TCP     [::]:445             w12x-5-43:0                 LISTENING
      TCP     [::]:1521             w12x-5-43:0                 LISTENING
      TCP     [::]:3389             w12x-5-43:0                 LISTENING
      TCP     [fe80::4d71:5f81:58b0:552c%16]:2030     w12x-5-43:0     LISTENING
      TCP     [fe80::713e:e2d4:8e82:5f77%17]:1521     w12x-5-43:56760     ESTABLISHED
      TCP     [fe80::713e:e2d4:8e82:5f77%17]:2030     w12x-5-43:0     LISTENING
      TCP     [fe80::713e:e2d4:8e82:5f77%17]:56760     w12x-5-43:1521     ESTABLISHED
      請注意:顯示的數據只是示例並可能與您的Oracle實例上顯示的不同。
    • TNSPING
      C:\Users\Administrator>tnsping 127.0.0.1
      TNS Ping Utility for 64-bit Windows: Version 19.0.0.0.0 - Production on 14-OCT-2020 16:54:27
      Copyright (c) 1997, 2019, Oracle. All rights reserved.
      Used parameter files:
      D:\oracle\19.3.0\dbhome\network\admin\sqlnet.ora
      Used EZCONNECT adapter to resolve the alias
      Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=))(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
      OK (0 msec)
  24. Windows 用戶賬號權限: Windows用戶賬號必須為下列安全組中的一員。
    • ORA_DBA
    • ORA_OraDB19Home1_SYSBACKUP
    • ORA_OraDB19Home1_SYSDG
    • ORA_OraDB19Home1_SYSKM
  25. Oracle 資料庫相關的Windows服務:請確保所有Oracle 資料庫相關的服務都已開啟。
    • OracleJobScheduler$SID$
    • OracleOraDB19Home1MTSRecoveryService
    • OracleOraDB19Home1TNSListener
    • OracleRemExecServiceV2
    • OracleService$SID$

限制

  1. %edition_name% 不支援進階OracleOracle Express版本以及Oracle XE。
  2. 不支援對在遠程計算機上運行的Oracle 資料庫進行備份和還原。
  3. %edition_name% 不支援進階Oracle 資料庫建立,例如: Clusterware or RAC (Real Application Clusters), ASM (Automatic Storage Management), Data Guard 等等。
  4. %edition_name% Oracle 資料庫備份集支援對於一個Oracle實例的備份和還原。對於有多個Oracle實例建立的Oracle資料庫伺服器,要求每個實例對應一個獨立的備份集。
  5. 為還原一個完整Oracle 資料庫實例,下列項目必須在備份來源中被選擇:
    • 一定要選擇 Oracle 資料庫伺服器。
    • 當建立備份集時,全部的資料庫,包括SYSAUX, SYSTEM, UNDOTBS1, USERS 以及除了“TEMP”之外其他相關應用程式資料庫必須被選擇。否則,如果沒有這些資料庫的備份,無法完成一個完整Oracle資料庫實例還原。
      請注意: 即使備份來源選擇“TEMP”,此數據庫也會在備份進程中被跳過。

最佳實踐和建議

  1. Oracle資料庫伺服器需要通過定期完整資料庫(Tablespaces, Control & Init File, Archived Logs)備份進行保護,建議至少每星期完整備份一次。
  2. 當建立備份集時,全部的資料庫,包括SYSAUX, SYSTEM, UNDOTBS1, USERS 以及除了“TEMP”之外其他相關應用程式資料庫必須被選擇。否則,如果沒有這些資料庫的備份,無法完成一個完整Oracle資料庫實例還原。
  3. 應在系統活動較少時安排完整資料庫備份或增量/差異資料庫備份,從而實現最佳性能並最大程度減少對資料庫伺服器性能的影響(例如: 排程為在週末運行)。
  4. 存檔日誌備份應該定期進行,備份頻率取決於存檔日誌的往來數目。資料庫的往來越多,存檔日誌備份應該越頻繁(例如: 進行每日多次備份取代每日單次備份)。
  5. 為提供最大程度的數據保護和靈活還原選項,建議進行下列配置:
    至少一個非本地或雲儲存位置。
    至少一個本地儲存位置以進行快速還原。
  6. 定期測試還原以確保備份設置且執行無誤。進行還原測試也可以幫助鑒定潛在問題或還原計劃的缺口。 不要嘗試將測試簡易化是非常重要的,因為測試成功的目的不是證明所有過程都是無誤的。 通過測試可能會發現還原計劃中的缺陷,鑒定這些缺陷是十分重要的。
  7. 還原原始文件選項是為進階Oracle用戶而制定,只有在熟知并理解Oracle資料庫時方可使用,否則並不建議使用這種還原選項因為需要應用額外的Oracle技術進行手動還原。 請參考以下文章以獲取更多相關資訊:
    Oracle 19c
    https://docs.oracle.com/en/database/oracle/oracle-database/19/bradv/index.html.
    Oracle 12c
    https://docs.oracle.com/database/121/BRADV/title.html.

設置備份集細節

欄位 描述
名稱 這是備份集的名稱。您可以建立一個有意義的名稱。
備份集類型 備份集的類型(例如:Oracle 資料庫伺服器備份)。
登錄ID 這是登錄ID。預設登錄ID 為system
密碼 這是用於登錄的密碼。
主機 數據不可被用戶更改。
連接埠 這是連接到Oracle 伺服器的的連接埠。預設為1521
SID 這是Oracle SID.

建立備份集:

  1. 輸入一個有意義的備份集名稱。
  2. 選擇備份集類型。
  3. 輸入登錄ID。
  4. 輸入密碼。
  5. 輸入連接埠。
  6. 輸入SID。
  7. 點擊[下一頁] 按鈕繼續。