Oracle 單機配置DataGuard

kakaxi9521發表於2021-05-20

一.主庫引數配置

1.啟用force logging (強制記錄日誌)

-- 檢視

select log_mode,force_logging from v$database;

-- 啟動

alter database force logging;


2.啟用歸檔

-- 檢視

archive log list;

select log_mode from v$database;

alter database archivelog;


二.配置監聽

TNS:

主庫

DBPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbpri)

    )

  )


備庫:

DBSTD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbstd)

      (UR = A)

    )

  )


三.配置主庫引數

--1. 修改歸檔檔名字尾為.arc(可選)

alter system set log_archive_format=’%t_%s_%r.arc’ scope=spfile;


--2. 檢查db_unique_name

show parameter db_unique_name

alter system set db_unique_name=’dbpri’ scope=spfile;


--3. 修改log_archive_config 引數,括號中為組備庫的db_unique_name

alter system set log_archive_config=’DG_CONFIG=(dbpri,dbstd)’ scope=both;


--4. 配置log_archive_dest_1 ,主庫歸檔位置

alter system set log_archive_dest_1=’LOCATION=/u01/archivelog/dbpri  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)  DB_UNIQUE_NAME=dbpri’ scope=both;


--5. 配置log_archive_dest_2,備份歸檔引數,採用LGWR非同步傳輸方式

alter system set log_archive_dest_2=’SERVICE=dbstd LGWR ASYNC VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE)  DB_UNIQUE_NAME=dbstd’ scope=both;


--6. 修改歸檔日誌程式的最大數量(可選)

alter system set log_archive_max_processes=30 scope=both;

show parameter log_archive_max_processes;


--7. 檢查資料庫口令檔案的使用模式(可選)

Show parameter remote_login_passwordfile

Alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;


--8.修改/etc/hosts 檔案


--9. 修改db_file_name_convert引數,主備庫資料檔名稱跟路徑對應關係

--主庫跟備庫存放檔案的路徑不一定一樣,如果一樣的話可以不指定,但是不一樣就需要指定,一般來說主庫跟備庫的例項名不一樣,所以肯定是前面路徑是備庫資料檔案路徑,後面是主庫路徑

alter system set db_file_name_convert=’/u01/app/oracle/oradata/dbstd/’,’/u01/app/oracle/oradata/dbpri/’  scope=file;


--10. 修改log_file_name_convert引數,主備庫日誌檔名稱跟路徑對應關係

Alter system set log_file_name_convert=’/u01/app/oracle/oradata/dbstd/’,’/u01/app/oracle/oradata/dbpri/’  scope=file;;


--11. 設定standby_file_management為auto

--設定檔案管理模式,此項設定為自動,不然在主庫建立資料檔案後,備庫不會自動建立

Alter system set standby_file_management=auto;


--12.修改fal_client及fal_server

Alter system set fal_client=’dbpri’ scope=both;   --主庫tns

Alter system set fal_server=’dbstd’ scope=both;  --備庫tns



四.配置備庫引數

1.密碼檔案,主庫和備庫的sys密碼必須一致

-- 方式1: 使用orapwd 設定相同密碼

orapwd file=orapwsbdb password=

-- 方式2: scp 主庫密碼檔案到備庫$ORALCE_HOME/dbs目錄下,並修改密碼檔名為orapwdbstd


2.設定pfile檔案並啟動到nomount狀態

在備庫的dbs目錄下建立initdbstd.ora 並參考主庫新增引數

db_name='dbpri'

db_unique_name='dbstd'

pga_aggregate_target=13520338944     --設定跟主庫一樣

sga_target=40563113984               --設定跟主庫一樣

audit_file_dest='/u01/app/oracle/admin/dbpri/adump'     --建立這個路徑

compatible='11.2.0.4.0'                                --相容性引數 主備庫要保持一致

log_archive_format='%t_%s_%r.arc'

control_files='/u01/app/oracle/oradata/dbstd/control01.ctl','/u01/app/oracle/fast_recovery_area/dbstd/control02.ctl'   --注意修改檔案路徑中的例項名

log_archive_config='DG_CONFIG=(dbpri,dbstd)'

log_archive_dest_1='LOCATION=/u01/archivelog/dbstd VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=dbstd'

log_archive_dest_2='SERVICE=dbpri LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=dbpri'

db_file_name_convert='/u01/app/oracle/oradata/dbpri/','/u01/app/oracle/oradata/dbstd/'     --前面是對方的,後面是本地的

log_file_name_convert='/u01/app/oracle/oradata/dbpri/','/u01/app/oracle/oradata/dbstd/'

fal_client='dbstd'  --該引數與主庫設定相反

fal_server='dbpri'  --該引數與主庫設定相反

standby_file_management='AUTO'


用剛編輯的initdbstd.ora 檔案將資料庫啟動到nomount狀態

startup nomount pfile=’/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs/initdbstd.ora';

Create spfile from pfile;

利用spfile將資料庫啟動到nomount狀態。



五.配置備庫tns

主庫tns

DBPRI =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbpri)

      (UR = A)

    )

  )



備庫tns:

DBSTD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))

    (CONNECT_DATA =

      (SERVER = DEDICATED)

      (SERVICE_NAME = dbstd)

      (UR = A)

    )

  )



測試tns

主庫和備庫分別測試

tnsping dbpri

tnsping dbstd


sqlplus sys/system@dbpri as sysdba;

sqlplus sys/system@dbstd as sysdba;


六.使用duplicate 建立物理standby

備庫執行

-- 連線RMAN 並連線輔助(auxiliary) 例項,備庫目前狀態是nomount狀態。

rman target sys/system@dbpri auxiliary sys/system@dbstd;


-- 執行復制

-- nofilenamecheck 不進行檔名檢查(如果複製資料時,備庫的路徑和原庫一致,就需要加nofilenamecheck,否者會報錯)

duplicate target database for standby from active database nofilenamecheck;


七.新增standby 日誌組並開啟同步

1.主庫新增standby 日誌組

?Standby 日誌組數量: redo 日誌組數量+1

?新增前需要檢視已有的日誌組號

?Standby 日誌大小與普通日誌相同大小即可

?為日後主備切換做準備,所以主庫上也新增standby 日誌


Select * from v$log;

Select * from v$logfile;


主庫新增:

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/dbpri/redo04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/dbpri/redo05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/dbpri/redo06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/dbpri/redo07.log') size 50m;


備庫新增:

alter database add standby logfile group 4 ('/u01/app/oracle/oradata/dbstd/redo04.log') size 50m;

alter database add standby logfile group 5 ('/u01/app/oracle/oradata/dbstd/redo05.log') size 50m;

alter database add standby logfile group 6 ('/u01/app/oracle/oradata/dbstd/redo06.log') size 50m;

alter database add standby logfile group 7 ('/u01/app/oracle/oradata/dbstd/redo07.log') size 50m;

檢視standby 日誌:

Select * from v$standby_log;


開啟備庫:

alter database open;


2.設定同步

-- 1. 開啟實時同步(啟動MRP程式),備庫操作

alter database recover managed standby database using current logfile disconnect from session;

alter database recover managed standby database using current logfile disconnect; -- 簡寫


--2. 開啟同步,日誌切換才會同步

Alter database recover managed standby database disconnect from session;


--3. 停止同步 (關閉MRP 程式)

Alter database recover managed standby database cancel;


3.主備庫檢查模式

Select open_mode,database_role,protection_mode,protection_level from v$database;


八.總結

本篇整理了oracle 11gR2 DG 單機環境搭建過程,日誌傳輸為LGWR ASYNC非同步傳輸,開啟real time apply。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/21374452/viewspace-2773108/,如需轉載,請註明出處,否則將追究法律責任。

相關文章