dataguard 搭建 oracle_sid不同 2節點 primary+standby

hellohf123發表於2021-09-22

primary 

standby 

Ip

10.8.98.103

10.8.98.104

hostname

dbserver01

dbserver02

Oracle_sid

prod1

proddg

資料庫版本

11.2.0.4

11.2.0.4

Db_name

prod

prod

Db_unique_name

prodpri

prodstd

tnsnames

tns_primary

tns_standby


主機安裝oracle,備機只需要安裝資料庫軟體,不需要建庫。

1、主機設定歸檔模式

1
2
3
4
5
6
7
SQL> archive log list;
Database log mode        Archive Mode
Automatic archival        Enabled
Archive destination            /oracle/app/oracle/oradata/prod/arch
Oldest online log sequence     60
Next log sequence to archive   62
Current log sequence         62

主機開啟force logging 模式

1
SQL> alter database force logging;


2、主機新增standby log

1
2
3
alter database add standby logfile group 21( '/oracle/app/oracle/oradata/prod/redo21_standby.log' ) size 50M;
alter database add standby logfile group 22( '/oracle/app/oracle/oradata/prod/redo22_standby.log' ) size 50M;
alter database add standby logfile group 23( '/oracle/app/oracle/oradata/prod/redo23_standby.log' ) size 50M;


3. 配置主庫的初始化引數,如果配置引數有問題,重啟資料庫服務就ok。

#dg add
alter system set db_unique_name='prodpri' scope=spfile;
alter system set log_archive_config='DG_CONFIG=(prodpri,prodstd)' scope=both ;
alter system set LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/oradata/prod/arch  valid_for=(all_logfiles,all_roles)  db_unique_name=prodpri' scope=both;
alter system set LOG_ARCHIVE_DEST_2='SERVICE=tns_standby LGWR  SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prodstd' scope=both;
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile ;
alter system set log_archive_max_processes=8 scope=both ;
alter system set db_file_name_convert='/oracle/app/oracle/oradata/prod/','/oracle/app/oracle/oradata/prod/' scope=spfile;
alter system set log_file_name_convert='/oracle/app/oracle/oradata/prod/','/oracle/app/oracle/oradata/prod/' scope=spfile;
alter system set standby_file_management=AUTO scope=both;
alter system set fal_server='tns_standby' scope=both ;
alter system set FAL_CLIENT='tns_primary' scope=both ;


重啟資料庫服務,並查詢是否生效

set linesize 500 pages 0
col value for a90
col name for a50
select name, value from v$parameter where name in ('db_name','db_unique_name','log_archive_config', 'log_archive_dest_1','log_archive_dest_2','log_archive_dest_state_1','log_archive_dest_state_2','remote_login_passwordfile','log_archive_format','log_archive_max_processes','fal_server','db_file_name_convert', 'log_file_name_convert', 'standby_file_management');


4.根據spfile建立pfile

SQL> create pfile from spfile;


5.主機更改 lisenter.ora,tnsnames.ora

[oracle@dbserver01 admin]$ cat listener.ora 
# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
      (GLOBAL_DBNAME = prod)
      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0)
      (SID_NAME = prod1))
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /oracle/app/oracle
[oracle@dbserver01 admin]$
[oracle@dbserver01 admin]$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = dbserver01)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )
tns_primary =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )
tns_standby =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )

重啟資料庫監聽。


5. 複製主機上 lisenter.ora,tnsnames.ora (需要更改部分),pfile檔案 (部分引數需要更改),密碼檔案 (需要改名)到備機。

pfile更改以下幾行

db_unique_name=' prodstd' scope=spfile;

LOG_ARCHIVE_DEST_1='LOCATION=/oracle/app/oracle/oradata/prod/arch  valid_for=(all_logfiles,all_roles)  db_unique_name= prodstd' scope=both;

LOG_ARCHIVE_DEST_2='SERVICE= tns_primary LGWR  SYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME= prodpri' scope=both;

fal_server=' tns_primary' scope=both ;

FAL_CLIENT=' tns_standby' scope=both ;

*.dispatchers='(PROTOCOL=TCP) (SERVICE=prod dgXDB)'

備機根據引數檔案initproddg.ora建立相應的資料夾

1
2
3
mkdir -p /oracle/app/oracle/admin/prod/adump
mkdir -p /oracle/app/oracle/oradata/prod/
mkdir -p /oracle/app/oracle/oradata/prod/arch


更改完之後,create spfile from pfile,並且從spfile重新啟動



備機 lisenter.ora

[oracle@dbserver02 admin]$ cat listener.ora 
# listener.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
  (SID_LIST =
     (SID_DESC =
      (GLOBAL_DBNAME = prod)
      (ORACLE_HOME = /oracle/app/oracle/product/11.2.0)
      (SID_NAME = proddg))
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )
ADR_BASE_LISTENER = /oracle/app/oracle
[oracle@dbserver02 admin]$

並重新啟動監聽


備機 tnsnames.ora

[oracle@dbserver02 admin]$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /oracle/app/oracle/product/11.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PROD =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )
tns_primary =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.103)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )
tns_standby =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.8.98.104)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = prod)
    )
  )



6、測試tnsping  ok,主備機都啟動到nomount狀態,均從spfile啟動

然後主機開啟資料庫,備機開啟到nomount狀態。


7. 實施資料庫克隆透過rman duplicate  (在備機操作)

請參照 http://blog.itpub.net/70004783/viewspace-2788445/

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

相關文章