db2 v10.5 HADR快速部署手冊

來源:互聯網
上載者:User

標籤:db2 hadr

一、目錄準備
mkdir -p /home/db2inst1/db2_backup
mkdir -p /home/db2inst1/db2_archive
mkdir -p /home/db2inst1/db2_log
chmod -R 775 /home/db2inst1/db2_backup
chmod -R 775 /home/db2inst1/db2_archive
chmod -R 775 /home/db2inst1/db2_log
chown -R db2inst1:db2inst1 /home/db2inst1/db2_backup
chown -R db2inst1:db2inst1/home/db2inst1/db2_archive
chown -R  db2inst1:db2inst1 /home/db2inst1/db2_log 

二、服務和連接埠配置(注意HADR服務連接埠和執行個體連接埠要區分開)
DB2_HADR_1     55110/tcp
DB2_HADR_2     55111/tcp

db2 get dbm cfg | grep -i SVCENAME 
db2 update dbm cfg using SVCENAME DB2_db2inst1
db2 update database manager configuration using svcename DB2_HADR_1(自訂名稱)

主庫
db2 update dbm cfg using  SVCENAME 55110
備庫
db2 update dbm cfg using  SVCENAME 55111

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.12.107 PORT 50000

UPDATE ALTERNATE SERVER FOR DATABASE SAMPLE USING HOSTNAME 192.168.12.108 PORT 50000


三、開啟歸檔模式 (主庫和備庫都操作)
先修改歸檔參數,做離線備份,重啟資料庫後,手工測試歸檔

主庫
db2 update db cfg for sample using logarchmeth1 disk:/home/db2inst1/db2_archive/

db2 update db cfg for sample using NEWLOGPATH /home/db2inst1/db2_log

db2 force applications all

db2 backup db sample to /home/db2inst1/db2_backup/

db2stop force;db2start

db2 archive log for db sample

SQL1116N  A connection to or activation of database "SAMPLE" failed because
the database is in BACKUP PENDING state.  SQLSTATE=57019

備庫:

db2 update db cfg for sample using logarchmeth1 disk:/home/db2inst1/db2_archive/

db2 update db cfg for sample using NEWLOGPATH /home/db2inst1/db2_log

db2 force applications all

db2 backup db sample to /home/db2inst1/db2_backup/

db2stop force;db2start

db2 archive log for db sample


四、備份與還原從庫
主庫離線全備份
1.db2 backup database sample to /home/db1inst1/db2_backup
3.scp /home/db2inst1/db2_backup/SAMPLE.0.db2inst1.DBPART000.20171220165404.001   [email protected]:/home/db2inst1/db2_backup/


備庫還原資料
db2 restore database sample  from "/home/db2inst1/db2_backup/" taken at 20171220165404 replace history file

2.SQL2523W Warning! Restoring to an existing database that is different from

3.the database on the backup image, but have matching names. The target database

4.will be overwritten by the backup version. The Roll-forward recovery logs

5.associated with the target database will be deleted.

6.Do you want to continue ? (y/n) y

7.DB20000I The RESTORE DATABASE command completed successfully.


五、主庫參數配置

db2 get db cfg for sample | grep -i HADR                                                                   
[[email protected] db2_backup]$ db2 get db cfg for sample | grep -i HADR
 HADR database role                                      = STANDARD
 HADR local host name                  (HADR_LOCAL_HOST) =
 HADR local service name                (HADR_LOCAL_SVC) =
 HADR remote host name                (HADR_REMOTE_HOST) =
 HADR remote service name              (HADR_REMOTE_SVC) =
 HADR instance name of remote server  (HADR_REMOTE_INST) =
 HADR timeout value                       (HADR_TIMEOUT) = 120
 HADR target list                     (HADR_TARGET_LIST) =
 HADR log write synchronization mode     (HADR_SYNCMODE) = NEARSYNC
 HADR spool log data limit (4KB)      (HADR_SPOOL_LIMIT) = AUTOMATIC(0)
 HADR log replay delay (seconds)     (HADR_REPLAY_DELAY) = 0
 HADR peer window duration (seconds)  (HADR_PEER_WINDOW) = 0


db2 update db cfg for  sample using HADR_LOCAL_HOST 192.168.12.108

db2 update db cfg for  sample using HADR_LOCAL_SVC DB2_HADR_2

db2 update db cfg for  sample using HADR_REMOTE_HOST 192.168.12.107

db2 update db cfg for  sample using HADR_REMOTE_SVC DB2_HADR_1

db2 update db cfg for  sample using HADR_REMOTE_INST db2inst1

db2 update db cfg for sample using HADR_SYNCMODE NEARSYNC

db2 update db cfg for sample  using HADR_TIMEOUT 120


備庫參數配置

db2 get db cfg for sample | grep -i HADR

db2 update db cfg for sample using HADR_LOCAL_HOST 192.168.12.108

db2 update db cfg for sample using HADR_LOCAL_SVC  DB2_HADR_2

db2 update db cfg for sample using HADR_REMOTE_HOST 192.168.12.107

db2 update db cfg for sample using HADR_REMOTE_SVC  DB2_HADR_1

db2 update db cfg for sample using HADR_REMOTE_INST db2inst1

db2 update db cfg for sample using HADR_SYNCMODE NEARSYNC

db2 update db cfg for sample using HADR_TIMEOUT 120

db2 get db cfg for sample | grep -i HADR

啟動HADR


先啟動備庫
standby端的資料庫通過primary端的資料庫恢複來,恢複後必須是roll forward-pending狀態,
restore中不能使用without rolling forward,啟動備庫之前先確定這個狀態
備庫狀態確認
db2 get db cfg for sample | grep Rollforward
Rollforward pending                                     = DATABASE

相比於主庫:
db2 get db cfg for sample | grep Rollforward
Rollforward pending                                     = NO


啟動備庫
db2 start hadr on database sample as standby
[[email protected] ~]$ db2 start hadr on database sample as standby
SQL1766W  The command completed successfully. However, LOGINDEXBUILD was not
enabled before HADR was started.
查看HADR狀態-目前只有備庫,狀態是disconnected


啟動主庫
db2 deactivate database sample
db2 start hadr on database sample as primary

現在主庫和備庫已經建立串連,HADR實驗環境部署完成

db2 get snapshot for db on sample | grep -A 15 "HADR Status"

db2 get snapshot for db on hadb01 | grep -A 15 "HADR Status"


SQL1768N
未能啟動 HADR。原因碼 = reason-code。
說明:
與原因碼對應的解釋是:

1  不可恢複資料庫,這是因為正在使用迴圈日誌記錄。
2  資料庫啟用了無限活動紀錄記錄。
3  資料庫啟用了 DATALINKS。
4  HADR_LOCAL_HOST 配置參數與本地主機名稱不匹配。
5  HADR_LOCAL_SVC 配置參數是無效服務名稱。
6  HADR_REMOTE_SVC 配置參數是無效服務名稱。
7  在 HADR 逾時時間間隔內,主要資料庫未能與它的備用資料庫建立串連。
8  一個或多個 HADR 資料庫配置參數沒有任何值。
9  資料庫配置為使用原始日誌。但是,HADR 不支援對資料庫記錄檔使用原始 I/O(直接磁碟存取)。
10 命令由於 STOP HADR 命令、取消啟用資料庫或內部錯誤而被 HADR 關閉所中斷。
98 未安裝有效 HADR 許可證。命令未成功完成。
99  在 HADR 啟動期間發生了內部錯誤。


使用者響應:
與原因碼對應的使用者響應是:

1 資料庫必須是可恢複的資料庫。啟用日誌歸檔或者開啟 LOGRETAIN,然後重新發出該命令。
2 禁用無限活動紀錄記錄並重新發出該命令。
3 將資料庫管理員配置參數 DATALINKS 設定為 NO 並重新發出該命令。
4 將 HADR_LOCAL_HOST 設定更正為與本地主機名稱相匹配。
5 確保 HADR_LOCAL_SVC 配置參數是有效服務名稱。對於 Unix 平台,編輯 /etc/services 檔案。對於 Windows,編輯 %SystemRoot%\system32\drivers\etc\services。另外,可以為此參數指定文字連接埠號碼。
6 確保 HADR_REMOTE_SVC 配置參數是有效服務名稱。對於 Unix 平台,編輯 /etc/services 檔案。對於 Windows,編輯 %SystemRoot%\system32\drivers\etc\services。另外,可以為此參數指定文字連接埠號碼。
7 檢查備用資料庫上的遠程主機和遠程服務參數。確保備用資料庫是聯機的,並且網路在起作用。如果網路速度太慢,則還要考慮增大 HADR_TIMEOUT 配置參數,或者使用 BY FORCE 選項來啟動主要資料庫。
8 確保一個或多個 HADR 資料庫配置參數具有值。
9 將資料庫重新設定為對記錄檔只使用檔案系統儲存空間,而不是使用原始 I/O(直接磁碟存取)裝置。參閱 DB2 資訊中心中有關 logpath 和 newlogpath 資料庫配置參數的討論。
10找出 HADR 關閉的原因,如有必要,重新發出 START HADR 命令。
98 擷取並安裝有效 HADR 許可證,然後重新提交該命令。
99 如果問題仍然存在,請與“IBM 支援機構”聯絡。


有時候我們會希望讓一個執行個體下的某個資料庫停止對外提供服務,而不影響其它的資料庫,
這時就需要停止單個資料庫。
方法總結如下:

一種方法是:
使用 quiense database停止單個資料庫:
如果連上來的使用者不是sysadm中的一員,你可用instance使用者串連上資料庫,然後用
db2 quiesce db IMMEDIATE FORCE CONNECTIONS
然後
db2 reset 或者db2 terminate
然後
deactivate db
辦完事後,記得用db2 unquiesce db來恢複其對外串連。

具體流程如下:
db2 connect to sample
db2 quiesce db immediate force connections
db2 terminate

db2 deactivate db sample

db2 connect to sample
db2 unquiesce db

注意:
QUIESCE DATABASE 後,僅有 sysadm, sysmaint, dbadm, 或 sysctrl 使用者可以訪問資料庫。
另一種方法:
停止訪問:
db2 uncatalog database sample
db2 terminate

啟動訪問:
db2 catalog database sample
db2 terminate
db2 connect to sample

db2 v10.5 HADR快速部署手冊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.