Oracle之雙機熱備部署+切換故障問題解決


https://wenku.baidu.com/view/1d6d0db10242a8956bece48c.html?qq-pf-to=pcqq.c2c

上面鏈接,樓主親測有效,簡單來說->>>A服務器安裝數據庫后,共享磁盤文件夾改名,在B服務器安裝完了創建表空間 用戶然后A服務器就可以用B服務器創建的用戶名登錄了,希望幫到大家!

 

下面這個沒有測試

 create tablespace HOSPITAL  datafile 'G:\oradata\orcl\MYDB_EMR.dbf' size 800M  autoextend on  next 50M  maxsize unlimited

ORACLE 數據庫雙機熱備方案(Windows)      http://www.microcolor.cn/solutions/70.html 

 

最近實施的一個項目中使用了某國產雙機熱備產品,但是在數據庫做雙機熱備時出現了一些問題,沒辦法。不得不研究一番了!經過兩天的研究終於問題得以解決。將問題處理步驟記錄下來以備后用,也希望能幫助到需要的人。
一、首先介紹下我們的環境:兩台服務器+一個存儲+兩個雙機熱備軟件
二、雙機熱備工作流程:在兩台服務器上分別安裝一個雙機熱備軟件,並且兩台服務器都掛載了存儲,雙機熱備軟件一直在監測兩台服務器上配置的服務項是否正常,當監測到某台服務器上雙機軟件中配置的服務啟動不了或者出現故障,雙機軟件自動切換另一台服務器上並啟動雙機軟件配置的所有服務。
三、當然本片文章是以數據庫的雙機熱備為主,我就將oracle數據庫的雙機搭建過程和問題處理做一總結
        第一步:掛載存儲至兩台服務器上(例如兩台服務器的掛載盤符為E盤);
        第二步:在服務器A上安裝oracle:將oracle安裝文件安裝在D盤下,數據文件安裝在存儲E盤上,安裝完成后並將Oracle服務設置為手動;
        第三步:關掉服務器A並進入服務器B:將服務器A安裝在存儲E盤的oracle的數據文件更改其他名稱;
        第四步:按照第二步的步驟在服務器B上安裝oracle(需要注意的是B和A服務器安裝Oracle的安裝文件和數據文件路徑必須完全一樣);
        第五步:在雙機熱備軟件上配置oracle服務,並配置一個虛擬IP供外部訪問,到時候應用軟件只需連接該虛擬IP和端口就可以訪問數據庫了;
 以上是oracle雙機的安裝步驟,那樣只是安裝完成但是實際上是有隱患的,我這邊就真正出現了,
四、問題現象:只要雙機熱備軟件切換數據庫那么整個數據庫就宕了!無法啟動;
五、問題原因:因為最初一個服務器A上Oracle正常運行的時候,Oracle控制文件已經記錄下了該數據庫運行的所有狀態,當oracle雙機切換到服務器B的時候,oracle監測到控制文件保存的狀態和存儲上的數據文件真實狀態一不一致,那么自然數據庫就不會切換到B上了。
六、解決方法:自定義初始化文件,並修改自定義的初始文件的配置內容,使得控制文件都加載的是存儲上的控制文件用以保持兩台服務器的控制文件和數據文件狀態一致,並使兩台服務器的數據庫啟動時都加載自定義的初始化文件,具體方法如下:
      1、使用pl/sql dev 執行CREATE PFILE='C:\INIT.ORA' FROM SPFILE;語句,並且修改*.control_files參數到E盤下的控制文件,將生成的INIT.ORA復制到D:\app\mypfile\;

 

orcl.__db_cache_size=1946157056
orcl.__java_pool_size=67108864
orcl.__large_pool_size=16777216
orcl.__oracle_base=\'d:\\app\\Administrator\'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=1811939328
orcl.__sga_target=2717908992
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=654311424
orcl.__streams_pool_size=0
*.audit_file_dest=\'d:\\app\\Administrator\\admin\\orcl\\adump\'
*.audit_trail=\'db\'
*.compatible=\'11.2.0.0.0\'
*.control_files=\'e:\\app\\Administrator\\oradata\\orcl\\control01.ctl\',\'e:\\app\\Administrator\\oradata\\orcl\\control02.ctl\'
*.db_block_size=8192
*.db_domain=\'\'
*.db_name=\'orcl\'
*.db_recovery_file_dest=\'d:\\app\\Administrator\\flash_recovery_area\'
*.db_recovery_file_dest_size=4102029312
*.diagnostic_dest=\'d:\\app\\Administrator\'
*.dispatchers=\'(PROTOCOL=TCP) (SERVICE=orclXDB)\'
*.memory_target=4518313984
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile=\'EXCLUSIVE\'
*.undo_tablespace=\'UNDOTBS1\'

2、編寫sql腳本test.sql並將腳本放置到D:\app\mypfile\,內容:

 

connect / as sysdba
shutdown immediate
startup pfile=\'D:\\app\\mypfile\\init.ora\';
exit;

3、編寫批處理腳本test.bat,內容:

 

sqlplus /nolog @D:\\app\\mypfile\\test.sql

4、這時候在雙機熱備軟件中在oracle啟動前添加test.bat,這樣問題解決了;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM