手動搭建Dataguard步驟(同一服務器上physic standby)

(1)建立對應standby數據庫的目錄,如$ORACLE_BASE/admin,$ORACL_EBASE/oradata下的對應目錄以及相關子目錄,歸檔日誌存放目錄,閃回區存放路徑等;創建密碼文件。

mkdir /opt/oracle/admin/standby
cd /opt/oracle/admin/standby
mkdir adump bdump cdump udump dpdump

mkdir /opt/oracle/oradata/standby

mkdir /opt/oracle/oradata/standby/archivelog

 

orapwd file=$ORACLE_HOME/dbs/orapwstandby password=oracle force=y

 

(2) 開始主庫的備份,備份包括數據文件和控制文件

alter database begin backup;

 cp /opt/oracle/oradata/ocp/system01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/undotbs01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/sysaux01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/users01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/perfstat01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/example01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/user01.dbf /home/oracle/backup/
 cp /opt/oracle/oradata/ocp/user02.dbf /home/oracle/backup/

alter database end backup;

alter system archive log current;

alter database create standby controlfile as '/home/oracle/backup/control01.ctl'; --這裏要注意語法

 

(3) 修改主庫的參數文件

create pfile from spfile

vim $ORACLE_HOME/dbs/initocp.ora

 

*.log_archive_config='dg_config=(demo,standby)'
*.fal_server=standby
*.fal_client=demo
*.standby_file_management=AUTO
*.db_unique_name=demo
*.log_archive_dest_1='LOCATION=/opt/oracle/oradata/ocp/archive/'
*.log_archive_dest_2='SERVICE=standby valid_for=(online_logfiles,primary_role) db_unique_name=standby'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'

 

(4)關閉主庫,創建spfile

shutdown immediate;

create spfile from pfile;

 

(5)創建備庫的參數文件

 

create pfile='?/dbs/initstandby.ora' from spfile;

 

改變其中的相關路徑,設置如下對應參數:
*.log_archive_dest_1='LOCATION=/opt/oracle/oradata/standby/archive/'
*.log_archive_dest_2='SERVICE=ocp valid_for=(online_logfiles,primary_role) db_unique_name=ocp'
*.log_archive_config='dg_config=(ocp,standby)'
*.fal_server=ocp
*.fal_client=standby
*.standby_file_management=AUTO
*.db_unique_name=standby
*.db_file_name_convert='/opt/oracle/oradata/ocp','/opt/oracle/oradata/standby'
*.log_file_name_convert='/opt/oracle/oradata/ocp','/opt/oracle/oradata/standby'
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'

修改pfile完成後,創建備庫對應的spfile:

create spfile='?/dbs/spfilestandby.ora' from pfile='?/dbs/initstandby.ora';

 

(6) 配置監聽,將對應的db_unique_name配置進去

vim $ORACLE_HOME/network/admin/tnsnames.ora

DEMO =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = demo)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.102)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = standby)
    )
  )

重新啓動監聽。

 

(7)copy 主庫數據文件和控制文件的備份到備庫對應目錄

cd  /home/oracle/backup/

cp * /opt/oracle/oradata/standby

 

(8)啓動備庫

export ORACLE_SID=standby

startup mount;

 

如果沒有臨時文件,記得增加臨時文件,以備查詢時排序的需要。

alter tablespace temp add tempfile '路徑' size 20M;

 

(9)啓動主庫

export ORACLE_SID=demo

startup;

 

(10) 驗證日誌是否傳送到備庫

在主庫切日誌 alter system switch logfile; / /

主庫查看 archive log list

 

備庫查看 archive log list;

 

如果沒有傳送,請檢查log_archive_dest_n的設置以及tnsnames的配置(用tnsping檢驗是否可以ping 通)

 

select process,status from v$managed_standby; --備庫上看看有哪些進程,有沒有RFS進程

 

select message_num,message from v$dataguard_status; --看看提示信息

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章