Oracle災備系統-DATAGUARD

分清主備庫
查看SID 
主庫
[oracle@localhost ~]$ echo $ORACLE_SID
NANA
備庫
[oracle@zw4 ~]$ echo $ORACLE_SID
STANDBY
二配置
 
一主庫 NANA數據庫配置
步驟1
確認主庫處於歸檔模式,若是爲非歸檔則必須改成歸檔模式
修改成歸檔模式
 
SQL> alter database archivelog;
 
查看是否爲歸檔模式
SQL> archive log list;
步驟 2
primary 數據庫置爲 FORCE LOGGING 模式
SQL> alter database force logging;
SQL>  select t.FORCE_LOGGING from v$database t;
步驟 3 :配置監聽系統
SQL> 配置 net service names( 方式多樣,不詳述 ) 並測試
兩個數據庫能夠互相連通
開啓監聽
[oracle@localhost ~]$ lsnrctl start
配置監聽
[oracle@localhost admin]$ netmgr
查看 SID
[oracle@localhost admin]$ echo $ORACLE_SID
SQL> show parameter db_name;
 
在各數據庫 配置互相的監聽
步驟 4
建立 primary 數據庫初始化參數文件便於參數修改
SQL> create pfile='/home/oracle/initdg.ora' from spfile;
修改主庫參數文件
1. 先確認主庫名稱
DB_UNIQUE_NAME=NANA   --show parameter DB_UNIQUE_NAME 確認主庫名
2. 網絡鏈接的名字
LOG_ARCHIVE_CONFIG=‘DG_CONFIG=(NANA ,STANDBY) -- 此處爲主庫網絡鏈接串 (tnsnames.ora)
3. 查看歸檔文件路徑
SQL> show parameter archive
LOG_ARCHIVE_DEST_1= LOCATION=/home/oracle/archivelog    -- 主庫的歸檔日誌路徑
4 查看監聽的數據庫
[oracle@localhost~]$more
 /oracle/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
5 配置備庫參數
LOG_ARCHIVE_DEST_2=‘SERVICE=standby LGWR ASYNC -- 此處爲備庫網絡鏈接串 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby‘ 備庫的 DB_UNIQUE_NAME
 
6. 查看 LOG_ARCHIVE_DEST_STATE 狀態
SQL> show parameter archive;
8. 查看 remote
SQL> show parameter remote;
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
9
備庫至關於服務端 主庫至關於客戶端 主庫不斷相備庫請求鏈接
FAL_SERVER=standby  
FAL_CLIENT=primary
 
10 查看主庫和備庫的數據文件路徑和日誌文件路徑
SQL> select file_name from dba_data_files;
主庫
備庫
說明 :‘/oracle/app/oradata/NANA’ 爲主庫數據 \ 日誌文件路徑 ; ‘/oradata/STANDBY ‘ 爲備庫數據 \ 日誌文件路徑
DB_FILE_NAME_CONVERT='/oracle/app/oradata/NANA ','/oradata/STANDBY‘
LOG_FILE_NAME_CONVERT='/oracle/app/oradata/NANA ','/oradata/STANDBY‘
 
11 STANDBY_FILE_MANAGEMENT=AUTO
 
主庫的初始化參數
*.audit_file_dest='/oracle/app/admin/NANA/adump'
*.background_dump_dest='/oracle/app/admin/NANA/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oracle/app/oradata/NANA/control01.ctl','/oracle/app/oradata/NANA/control02.ctl','/oracle/app/oradata/NANA/control03.ctl'
*.core_dump_dest='/oracle/app/admin/NANA/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_name='NANA'
 
DB_UNIQUE_NAME=NANA     
LOG_ARCHIVE_CONFIG='DG_CONFIG=(nana,standby)'   
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archivelog
VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=NANA'
LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
FAL_SERVER=standby 
FAL_CLIENT=nana
DB_FILE_NAME_CONVERT=' /oracle/app/oradata/NANA','/oradata/STANDBY'
LOG_FILE_NAME_CONVERT='/oracle/app/oradata/NANA ','/oradata/STANDBY'
STANDBY_FILE_MANAGEMENT=AUTO
 
 
 
*.db_recovery_file_dest='/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=NANAXDB)'
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/app/admin/NANA/udump'
 
備庫 standby 數據庫配置
1. 修改備庫 sys 用戶密碼保持與庫密碼一致
SQL> alter user sys identified by sys;
2. 從庫改
db_name 與主庫一致
3. 配庫歸檔文件路徑與主庫一致
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'
 
  配庫參數
 
*.audit_file_dest='/oracle/app/admin/STANDBY/adump'
*.background_dump_dest='/oracle/app/admin/STANDBY/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oradata/STANDBY/control01.ctl','/oradata/STANDBY/control02.ctl','/oradata/STANDBY/control03.ctl'
*.core_dump_dest='/oracle/app/admin/STANDBY/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
 
db_name='NANA'
DB_UNIQUE_NAME=standby
LOG_ARCHIVE_CONFIG='DG_CONFIG=(nana,standby)'
DB_FILE_NAME_CONVERT='/oracle/app/oradata/NANA','/oradata/STANDBY'
LOG_FILE_NAME_CONVERT='/oracle/app/oradata/NANA','/oradata/STANDBY'
STANDBY_FILE_MANAGEMENT=AUTO
LOG_ARCHIVE_DEST_1='LOCATION=/home/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_2='SERVICE=nana LGWR ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=NANA'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
FAL_SERVER=NANA      主庫和備庫相反
FAL_CLIENT=standby
STANDBY_FILE_MANAGEMENT=AUTO
 
*.db_recovery_file_dest='/oracle/app/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP) (SERVICE=STANDBYXDB)'
*.job_queue_processes=10
*.log_archive_dest_1='location=/home/oracle/data.bak'
*.open_cursors=300
*.pga_aggregate_target=89128960
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_max_size=268435456
*.sga_target=268435456
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/oracle/app/admin/STANDBY/udump'
~
 
主陪庫的參數複製到相應的數據庫參數裏
[oracle@localhost ~]$ vi /home/oracle/initdg.ora
 
先關掉數據庫
SQL> shutdown abort
制定文件啓動數據庫
SQL> startup pfile=/home/oracle/initdg.ora
啓動後產看歸檔日誌文件的位置
SQL> show parameter archive
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
log_archive_config                   string      DG_CONFIG=(nana,standby)
log_archive_dest                     string
log_archive_dest_1                   string      LOCATION=/home/oracle/archivel
                                                 og
                                                 VALID_FOR=(ALL_LOGFILES,ALL_RO
                                                 LES) DB_UNIQUE_NAME=NANA
log_archive_dest_10                  string
log_archive_dest_2                   string      SERVICE=standby LGWR ASYNC
                                                 VALID_FOR=(ONLINE_LOGFILES,PRI
                                                 MARY_ROLE) DB_UNIQUE_NAME=STAN                                                 DBY
log_archive_dest_3                   string
 
步驟7:遷移主庫stand數據庫的數據文件、控制文件到standby
RMAN
利用新的參數文件啓動NANAOPEN狀態
-利用新的參數文件啓動standby nomount 狀態
前備庫起到nomount
SQL> startup pfile=/home/oracle/initdg.ora nomount
 
 
 
-主庫上利用RMAN製做nana數據庫備份(全部RMAN操做都在主數據庫上執行)
 主庫作rman備份
進入RMAN
[oracle@localhost ~]$ rman
RMAN> connect target
查看備份數據
RMAN> list backup
刪除備份文件
RMAN> delete backup;
備份數據
 
RMAN>backup full database format='/home/oracle/archivelog/%U' include current controlfile for standby;
 
-NANA主庫的rman的備份集拷貝至standby庫相同的路徑,並在主庫鏈接,不要斷開上面的鏈接,若是斷開,那麼從新鏈接主庫
 
 
將備份文件拷貝到備庫的相同目錄下
[oracle@localhost ~]$ scp *_1
oracle@10.1.1.32:/home/oracle/archivelog/
 
RMAN > connect target /
RMAN > connect auxiliary sys/sys@standby
 
複製standby數據庫,接着上面的鏈接在主庫上執行
RMAN > duplicate target database for standby nofilenamecheck;
 
正常運行無錯誤後直接執行下面的命令進行主備庫的日誌同步
說明 : 此命令結束後從庫直接啓動 mount
執行完後會自動啓動到mount
 
修改 standby 數據庫自動恢復狀態
alter database recover managed standby database disconnect from session;
 
 
確認 DATAGUARD 環境狀態是否正常
主庫操做 :
select process from v$managed_standby;
PROCESS
------------------
查詢主庫
是否存在日誌網絡傳輸進程
ARCH
ARCH
ARCH
LNS -- 確認主庫有此 lns 進程 ( 日誌網絡服務進程 - 負責把主庫歸檔日誌傳輸到備庫 )
若是無此進程則執行下面命令
alter system set log_archive_dest_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby';
alter system set log_archive_dest_state_2=ENABLE;
alter system switch logfile;
繼續確認有無 lns 進程 , 若是尚未啓動則查看相關錯誤信息
select error from v$archive_dest; 根據具體 ORACLE 錯誤碼查找錯誤緣由
 
備庫操做 :
SQL> select process from v$managed_standby;
PROCESS
------------------
ARCH
ARCH
RFS -- 遠程文件服務 - 接收由主庫 lns 進程傳送過來的日誌
RFS
MRP0 -- 介質恢復進程 - 同步主庫日誌數據到從庫
注意 : 若是沒有 RFS 進程 , 則查看主庫 lns 進程是否正常 . 若是沒有 MRP 進程則執行
alter database recover managed standby database disconnect from session;
相關文章
相關標籤/搜索