1. 程式人生 > >Oracle 12c RAC 到單機例項 DATAGUARD搭建

Oracle 12c RAC 到單機例項 DATAGUARD搭建

2.1 系統平臺

主機系統

● HP-UX Itanium 11.31

主機資料庫

● 12.1.0.2 RAC

備機系統

● HP-UX Itanium 11.31

備機資料庫

● 12.1.0.2 Single Instance Database With ASM

2.2 資料庫環境

主庫

備庫

IP

 

 

db_name

HIS

XNH/SEP/RHIPQZJ/RHIPBZK

HIS

XNH/SEP/RHIPQZJ/RHIPBZK

db_unique_name

HIS

XNHS/SEPS/RHIPQZJS/RHIPBZKS

sys密碼

oracle

oracle

3.1方案規劃

在省廳搭建Oracle DataGuard 備庫環境,將地市的資料同步到省廳。規劃將6套RAC生產環境異地容災到一臺單機備庫環境。

4.1 主庫配置

SQL>alter database forcelogging;

以下以HIS資料庫為例說明,其它資料庫配置一樣。

DB_NAME=his

DB_UNIQUE_NAME=his

LOG_ARCHIVE_CONFIG=’DG_CONFIG=(his,hiss)’

LOG_ARCHIVE_DEST_1=’LOCATION=+DATA’

DB_UNIQUE_NAME=his

LOG_ARCHIVE_DEST_2='SERVICE=hiss ASYNC

VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

DB_UNIQUE_NAME=hiss'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

LOG_ARCHIVE_FORMAT=%t_%s_%r.arc

LOG_ARCHIVE_MAX_PROCESSES=30

FAL_SERVER=hiss

DB_FILE_NAME_CONVERT='hiss','his'

LOG_FILE_NAME_CONVERT=’hiss’,’his’

STANDBY_FILE_MANAGEMENT=AUTO

備註:通過alter systemset命令修改相關引數。著重關注加粗引數,其它引數也要進行確認

srvctl stop database -d his

srvctl start database -d his -ihis1-o mount

SQL>alter database archivelog;

SQL>alter database open;

檢視歸檔:

 


備註:另一個節點手動startup啟動例項即可

1.     在主庫檢視redolog

 

2.     通過檢視主庫redolog有8組,standby redolog需要建立10組,每個thread5組,大小1G,如下:

SQL>alter database add standbylogfile thread 1 group 10 size 1G ;

SQL>alter database add standbylogfile thread 1 group 11 size 1G;

SQL>alter database add standbylogfile thread 1 group 12 size 1G;

SQL>alter database add standbylogfile thread 1 group 13 size 1G;

SQL>alter database add standbylogfile thread 1 group 14 size 1G;

SQL>alter database add standbylogfile thread 2 group 15 size 1G;

SQL>alter database add standbylogfile thread 2 group 16 size 1G;

SQL>alter database add standbylogfile thread 2 group 17 size 1G;

SQL>alter database add standbylogfile thread 2 group 18 size 1G;

SQL>alter database add standbylogfile thread 2 group 19 size 1G;

備註:該standbylogfile建議先在RAC中建立,這樣就可以在standby建立後也自動地有了standby logfile了,standby logfile組必須比生產庫多一個,大小根據查詢到的BYTES值大小進行設定

在主庫檢視相關日誌檢視:

 

 


4.2備庫配置

引數檔案放在ORACLE_HOME/dbs下面,以init開頭。

 


備註:著重關注紅框中引數,其它引數也要進行確認,建立好引數檔案後,將資料庫啟動到nomount狀態,檢查引數檔案是否正確。

在+DATA目錄下建立HISS目錄,並在HISS目錄下建立相關目錄

ASMCMD>cd +DATA

ASMCMD>mkdir HISS

ASMCMD>cd hiss

ASMCMD>mkdir DATAFILE

ASMCMD>mkdir CONTROLFILE

ASMCMD>mkdir ONLINELOG

ASMCMD>mkdir PASSWORD

在+FRA目錄下建立HISS目錄,並在HISS目錄下建立相關目錄

ASMCMD>cd +FRA

ASMCMD>mkdir ARCHIVELOG

ASMCMD>mkdir ONLINELOG

SQL>create spfile='+DATA/HISS/spfilehiss.ora'from pfile='inithiss.ora'

從主庫ASM拷貝到檔案系統中:

ASMCMD>pwcopy +DATA/HISS/PASSWORD/pwdhis.256.918602833/home/grid/

使用scp或者其它方式拷貝到備庫的主機中並重命名為hiss:

scp /home/grid/pwdhis.256.91860283310.241.8.9:/home/grid

mv pwdhis.256.918602833 orapwhiss

從備庫檔案系統拷貝到ASM中:

ASMCMD> pwcopy /home/grid/orapwhiss +DATA/HISS/PASSWORD/

srvctl add database -db hiss -o/extmp/app/oracle/product/12.1.0/db_1

srvctl modify database -db hiss-role physical_standby -spfile ’

+DATA/HISS/spfilehiss.ora’-pwfile ‘+DATA/HISS/PASSWORD/orapwhiss’

檢視備配置配置情況:

 


備庫建立listener.ora配置靜態監聽

SID_LIST_LISTENER =

 (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = hiss)

      (ORACLE_HOME =/u01/app/oracle/product/12.1.0/db_1)

      (SID_NAME = hiss)

    )

 )

LISTENER =

 (DESCRIPTION =

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

 )

 


主庫和備庫中配置tnsnames.ora

HIS =

 (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = his)

    )

 )

HISS =

 (DESCRIPTION =

    (ADDRESS_LIST =

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

    )

    (CONNECT_DATA =

      (SERVICE_NAME = hiss)

    )

 )

 


備註:配置完成後在主庫各節點和備庫都要通過使用者名稱/密碼方式登陸對方資料庫以驗證配置是否正確。

4.3複製主庫資料到備庫

在主庫執行:

rman target sys/[email protected] sys/[email protected]

啟動備庫為nomount狀態

RMAN>startup nomount;

使用rman工具連線主庫和備庫

RMAN> duplicate targetdatabase for standby from active database;

duplicate完成後,啟動到open狀態,在備庫執行同步:

SQL>alter database open;

SQL>alter database recovermanaged standby database using current logfile disconnect from session;

5.1 資料同步驗證

1.     在主庫檢視複製v$archive_dest檢視,如archive_log_dest_2有error報錯,則需要先根據報錯內容解決問題

 


2.        在主庫和備庫分別檢視v$archived_log檢視,對比兩端末尾日誌是否一致,並在主庫切換日誌,看是否同步到備庫。

 

 


3.     切換日誌,檢視備庫

 


4.     在主庫檢視v$log檢視,在備庫檢視v$standby_log檢視,驗證主備庫redo是否同步。

檢視主庫當前在用sequence#是585和512

 


檢視備庫當前在用sequence#是否和主庫一致

 


5.      在備庫檢視v$managed_standby檢視,驗證後臺日誌應用程序是否啟動

 

5.2 指令碼驗證

為了簡化運維人員在日常巡檢中的工作步驟,在此提供一種簡單有效的方法,該方法的原理:在主庫中建立一張表,並實時將最新系統時間update到該表中,正常情況下該表的內容為最新系統時間,如果該表能夠正常的同步到備庫中,那麼在備庫中檢視到時間也為最新系統時間;如果檢視到的時間不是最新系統時間,那麼備庫的同步狀態為查詢的時間。

以下以HIS資料庫為例,其它資料庫配置方法一樣。

1.     主庫中建立如下指令碼his_check_for_dg.sh,內容如下:

export ORACLE_BASE=/u01/app/oracle

exportORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1

export ORACLE_SID=his1

sqlplus -s " / as sysdba"<< EOF

set feedback off

set pages 0

set head off

set timing off

set echo off

drop table eisoo_check_for_dg;

create table eisoo_check_for_dg(idnumber,check_for_dg varchar2(30));

alter system archive log current;

declare

i number;

begin

delete eisoo_check_for_dg where 1=1;

insert into eisoo_check_for_dgvalues(1,to_char(sysdate,'YYYY-MM-DD HH24:MI:SS'));

for i in 1..715 loop

update eisoo_check_for_dg setcheck_for_dg=to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') where id=1;

dbms_lock.sleep(5);

commit;

end loop;

end;

/

exit

alter system archive log current;

EOF

2.     在root使用者下,通過crontab工具新增執行計劃

30 * * * * su - oracle -c /home/oracle/his_check_for_dg.sh

備註:將該指令碼寫入crontab,讓它定時執行,防止伺服器重啟或者資料庫重啟後中斷。此處指令碼含義:每個小時執行一次his_check_for_dg.sh指令碼,指令碼會每5秒更新一次時間到表eisoo_check_for_dg中,更新715次後結束,這個週期剛好1小時,之後crontab計劃讓指令碼又重新執行,開始另一個執行週期,如此迴圈。

1.     備庫通過如下指令碼檢視主庫同步的時間點是否變化以確認CDP是否正常執行,建立checkdg.sh指令碼如下:

export ORACLE_BASE=/extmp/app/oracle

export ORACLE_HOME=/extmp/app/oracle/product/12.1.0/dbhome_1

export ORACLE_SID=anyangs1

export PATH=$PATH:$ORACLE_HOME/bin

sqlplus -s "/ as sysdba"<<EOF

set feedback off

set pages 0

set head off

set timing off

set echo off

select * from eisoo_check_for_dg;

EOF

備註:將指令碼放在/home/oracle目錄下,直接執行./checkdg.sh,可以檢視到備庫時間是否在更新。

6.1 主庫歸檔日誌管理

通過本地部署的AnyBackup對資料庫進行備份,具體刪除策略或指令碼或AnyBackup中可以進行管理。具體策略可做調整


6.2 備庫歸檔日誌管理

此處以HISS為例,其它資料庫配置方法一樣。

1.     建立指令碼his_archlog_sql.sh,用來生成要刪除歸檔日誌

exportORACLE_BASE=/u01/app/oracle

exportORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1

export ORACLE_SID=hiss

applied_days=1

cat/dev/null>applied_arch.lst

chmod +x applied_arch.lst

sqlplus -s "/ assysdba"<<EOF

set feedback off

set pages 0

set head off

set timing off

set echo off

spool applied_arch.lst

select 'run{' from dual;

select 'delete nopromptarchivelog sequence '||sequence#||' thread '||thread#||';' from v\$archived_logwhere name like '%seq%' and status='A'

and applied='YES' andCOMPLETION_TIME<=sysdate-${applied_days}

order by COMPLETION_TIME;

select '}' from dual;

spool off;

exit

EOF

備註:此指令碼會生成另一個指令碼檔案applied_arch.lst,新生成的指令碼內容是1天前在備庫已經應用的歸檔日誌。

2.     建立指令碼his_archlog.sh

PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.

export PATH

export PATH=$PATH:$ORACLE_HOME/bin

ORACLE_BASE=/u01/app/oracle

ORACLE_HOME=/u01/app/oracle/product/12.1.0/db_1

ORACLE_SID=hiss

export ORACLE_BASE ORACLE_HOME ORACLE_SID

export PATH=$PATH:$ORACLE_HOME/bin

rman target / cmdfile='/home/oracle/applied_arch.lst'log='/home/oracle/his_archlog.log'

備註:此指令碼會通過rman呼叫applied_arch.lst指令碼中過期歸檔日誌再進行刪除。

3.     在root使用者下通過crontab工具設定執行計劃。

crontab –e

30 0 * * * su - oracle -c /home/oracle/his_archlog_sql.sh

40 0 * * * su - oracle -c /home/oracle/his_archlog.sh

備註:將該指令碼放到crontab中,定時執行。此計劃,會每天0:30生成已經過期並應用過的歸檔日誌;每天0:40對歸檔日誌進行刪除

相關推薦

Oracle 12c RAC單機例項 DATAGUARD搭建

2.1 系統平臺 主機系統 ● HP-UX Itanium 11.31 主機資料庫 ● 12.1.0.2 RAC 備機系統 ● HP-UX Itanium 11.31 備機資料庫 ● 12.1.0.2 Single Instance Database With ASM

Oracle 12C RAC集群搭建

oracle 12c rac集群搭建Oracle 12C RAC集群搭建一、環境準備二、系統安裝三、系統設置四、Oracle安裝五、Grid安裝本文出自 “花之旭's Blog” 博客,請務必保留此出處http://huazhixu123.blog.51cto.com/1591874/1978642O

CentOS7.2安裝oracle 12c RAC

linux oracle一、基礎結構:二、存儲規劃: 1、 GRID集群組件磁盤組+dggrid: 1個,由三個10G磁盤組成normal 2、 數據庫安裝磁盤組+dgsystem:用於數據庫基本表空間,控制文件,參數文件等+dgrecovery:用於歸檔與閃回日誌空間+dgdata:用戶數據

oracle 12C RAC 集群日誌(cluster log)目錄

oracle 12C RAC 集群日誌([grid@shurkcs ~]$ adrci ADRCI: Release 12.2.0.1.0 - Production on Thu Mar 1 09:25:45 2018 Copyright (c) 1982, 2017, Oracle and/or its a

centos 7部署oracle 12c rac 上菜了

基礎 滿足 51cto ssh 安裝虛擬機 fdisk www 安裝oracle 多說 oracle 12c 發布用很長一段時間了,雖然在近期部署了幾套單實例oracle 12c,但一直都沒有機會在生產環境實施12c rac,當然,既不能把現有的11g rac幹掉,替換成1

Oracle 12C RAC 升級

下載最新的OPatch工具 各個版本的opatch Patch 6880880 Or using the next URL: https://updates.oracle.com/download/6880880.html   下載補丁 https://supp

Oracle 12c R2 單例項資料庫建立 和 開機自啟

/etc/oratab是在建立資料庫例項時建立的,需要用root使用者執行root.sh,如果忘記執行在自啟動和關閉時會失敗,錯誤資訊:"/etc/oratab" is not accessible。它記錄主機中有多少個數據庫。在$ORACLE_HOME/bin目錄下的$ORACLE_HOME/bin/dbs

Oracle Study之--Oracle 12c RAC install (二)

2017/05/12 19:27:10 CLSRSC-4001: Installing Oracle Trace File Analyzer (TFA) Collector.2017/05/12 19:27:36 CLSRSC-4002: Successfully installed Oracle Trace

Oracle Study之--Oracle 12c RAC install (一)

ORACLE 使用者: [[email protected] ~]$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/oracle/.ssh/id_r

Oracle 12c RAC 中廢棄的維護命令 crs_*

 注:本文謝絕轉載! 在Oracle 10g,11g的RAC中,我們常用crs_stat來監控RAC的執行狀態。 但由於crs_stat 顯示是不完整的,所以我們會對crs_stat 進行二次封裝,讓結果看起來更清爽一點。 如下圖:   到了12c 的叢集環境

Oracle 12C RAC安裝grid時root.sh報錯ORA-00845

ron size connect root cls crs-4000 pro execution int Oracle 12C RAC安裝grid時root.sh在二節點報錯: CRS-2676: Start of ‘ora.cssd‘ on ‘prodb2‘ succee

Centos 6.5 安裝Oracle 12C RAC

1  共享裝置配置 1.1            裝置劃分說明 冗餘策略 卷劃分及大小說明 OCRVOTING Ocrvoting01 8G Ocrvot

Oracle 12c RAC 配置安裝文件

 一、安裝RAC的準備工作 1、新增組和使用者(所有節點) groupadd -g 1000 oinstall groupadd -g 1200 asmadmin groupadd -g 1201 asmdba groupadd -g 1202 asmoper gro

dataguard搭建-rac單機

dataguard rac到單機一 檢查源端,打開歸檔SQL>archive log list; #如果未打開,關閉數據庫 Shutdown immediate; #啟動至mount狀態 Startup mount #開啟歸檔 SQL> alter database archivelog ; D

ORACLE 12C R2 RAC搭建

目錄 1、ORACLE 12.2軟硬體要求 1.1 硬體最低配置要求 序號

ORACLE RAC ASM環境下DATAGUARD搭建步驟

1、準備工作 Host IP          DB_NAME     DB_UNIQUE_NAME    Net Service Name 主庫xxxxxxxxx    wechatqa      wechatqa        wechatqa , wechatqa1,

oracle 12c RMAN異機恢復還原RAC叢集(ASM)為單例項庫(檔案系統)記錄

CONFIGURE CONTROLFILE AUTOBACKUP ON備份集準備 backup database format '/home/databak/whole_%d_%U'; backup spfile format '/home/databak/spfile_%

oracle 12c r2 rac + ORA-28040

ora-28040一、環境 服務端: oracle 12.2.0.1 rac 客戶端: 小於 oracle 11.2.0.3二、現象 當使用小於 oracle 11.2.0.3客戶端版本連接oracle 12.2.0.1 rac 數據庫報“ORA-28040: No matching authen

Oracle RAC(Linux)搭建

重新 註意 ip地址 passwd note manager system app eal 1、前言 此文檔詳細描述了Oracle 11gR2 數據庫在AIX上的安裝RAC的需求及安裝步驟。 參考文檔 《Oracle? Real Application Clusters

史上最詳細Oracle 12c搭建過程(內附源碼包)

請求 源碼包下載 可用 groupadd set port instr lease 添加 簡介 Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統。它是在數據庫領域一直處於領先地位的產品。可以說Oracle