顯示結果從 1 到 6 共計 6 條
-
08-06-2014 #1
分享一下我搞了6個鐘頭,邊試驗邊幹的成果,寫成參考文件,歡迎高手指點:
>>>>>要新增一台 instance 來複製 master 的資料作法,而不是把另一台 slave 暫停做 image<<<<<
在新的 instance 上製作標準的 baseline image AMI,系統為 ubuntu14.04 64bit server,資料庫使用 postgresql 9.3
當 master 掛點,由 slave 接手成為 master 後,開啟自己製作的 AMI,這時 IP 會自動更換,不用擔心 IP 衝突!
停止 postgresql 方法有二:
1. 使用 root
root@ip-172-31-10-17:~#/etc/init.d/postgresql stop
2. 使用 postgres
root@ip-172-31-10-17:~#/su postgres
postgres@ip-172-31-10-17:/home/ubuntu$service postgresql stop
停止之後開始來複製新 master 的資料吧(注意,不是掛點的 master 唷)。
我們使用 pg_basebackup 來製作複製資料(master 持續維持運作),使用者記得要切換為 postgres,不然的話,地獄之門為你而開!
前置準備,把 main 清空,我比較喜歡用 mv,當然要使用 rm -rf * 也是可以的,但要檢查好所在路徑(pwd)不然哭吧!
postgres@ip-172-31-10-17:/home/ubuntu$mv /var/lib/postgresql/9.3/main /var/lib/postgresql/9.3/main.bak
postgres@ip-172-31-10-17:/home/ubuntu$mkdir /var/lib/postgresql/9.3/main
設定 main 的權限
postgres@ip-172-31-10-17:/home/ubuntu$chmod 700 /var/lib/postgresql/9.3/main
建立 archive 資料夾(使用預設權限既可)
postgres@ip-172-31-10-17:/home/ubuntu$mkdir /var/lib/postgresql/9.3/archive
接下來開始複製資料
postgres@ip-172-31-10-17:/home/ubuntu$/usr/lib/postgresql/9.3/bin/pg_basebackup -h 172.31.10.16 -D /var/lib/postgresql/9.3/main -U repl -v -P
-h 172.31.10.16 是 master 的 IP。
-D /var/lib/postgresql/9.3/main 是 main 目錄的位置。
-U repl 是 replication 的帳號。
-v -P 這兩參數就不用解釋啦!
資料都複製好後,開始來手動複製 pg_xlog、archive_status、archive 的資料。
postgres@ip-172-31-10-17:/home/ubuntu$ cd /var/lib/postgresql/9.3/main/pg_xlog
postgres@ip-172-31-10-17:~/9.3/main/pg_xlog$scp 172.31.10.16:/var/lib/postgresql/9.3/main/pg_xlog/* .
上頭命令最後一行的點,可不是句點唷,是指這一層目錄的意思,簡單的說,就是這裡的意思。
postgres@ip-172-31-10-17:~/9.3/main/pg_xlog$cd archive_status (如果目錄不存在,請自行建立)!
postgres@ip-172-31-10-17:~/9.3/main/pg_xlog/archive_status$scp 172.31.10.16:/var/lib/postgresql/9.3/main/pg_xlog/archive_status/* .
postgres@ip-172-31-10-17:~/9.3/main/pg_xlog/archive_status$cd ../../../archive/ (如果目錄不存在,請自行建立)!
postgres@ip-172-31-10-17:~/9.3/archive$scp 172.31.10.16:/var/lib/postgresql/9.3/archive/* .
刪除備份標籤
postgres@ip-172-31-10-17:~/9.3/archive$rm ../backup_label
另一個 backup_label.old 可以不用理會!
recovery.conf 檔案內容要自行修改一下!
這時新的 slave 已經準備完成,這時必須要 master 處理一下:
新增一筆 replication 的資料,讓 master 能同步資料到 slave。
postgres@ip-172-31-10-16:/home/ubuntu$echo host replication repl 172.31.10.17/32 md5 >> /etc/postgresql/9.3/main/pg_hba.conf
設定好後,重新載入設定給 master:
postgres@ip-172-31-10-16:/home/ubuntu$service postgresql reload (是 reload 而不是 restart 唷,因為我們要服務不中斷)。
這時我們就可以回到新 slave 去把 postgresql 啟動!
postgres@ip-172-31-10-17:/home/ubuntu$service postgresql start
啟動完畢的檢查:
postgres@ip-172-31-10-17:/home/ubuntu$ps -u postgres u (注意,這裡是 postgres,而不是 postgresql)。
....
postgres: wal receiver process streaming (出現這一行就是成功的一半)
....
再來
postgres@ip-172-31-10-17:/home/ubuntu$psql -d userdata -c "SELECT * from age;"
如果出現
i
---
0
(1 row)
就成功囉!
-
-
08-06-2014 #2
你這是跟AWS有關係嗎?那應該改一下標題,看是怎樣的設定我移到Server區去分享
-
08-07-2014 #3
天語出現了!!!
-
08-07-2014 #4
對!是使用 AWS !
-
08-07-2014 #5
我會慢慢的,把我試出來的成果寫出來!
再來就是完整的建立!前端是 Nginx 接 Django,資料庫使用 PGPool2 接 PostgreSQL,並且 PostgreSQL 使用 stream 的方式做 master 與 slave 的複製!
-
08-07-2014 #6
目前台灣的資料太少,幾乎都是對岸的參考資料居多,加上有些設定只能看文件,我乾脆就把我測試的結果分享出來,也讓有興趣的朋友,少走點冤忘路!
-
相似的主題
-
[消息] IPHONE4沒SIRI沒關係,語音控制也是可以加減用
由qaz4552論壇中iPhone 最新消息回覆: 1最後發表: 09-21-2012, 18:43 -
[分享] 我的第一次........(詐騙驚魂記),剛好跟PCHOME有點關係
由hans0228論壇中新知分享回覆: 18最後發表: 09-26-2010, 08:24 -
[討論] Iphone4 有沒有jp跟facetime到底有沒有關係
由c620805論壇中解鎖優化討論區回覆: 4最後發表: 08-21-2010, 10:02 -
[分享] iPhone可以再強一點沒關係!!
由d946407論壇中新知分享回覆: 1最後發表: 08-12-2009, 11:57
iOS 12 正式開放更新(集中討論)
一天前 進 iPhone 疑難雜症發問區