您好,欢迎光临本网站![请登录][注册会员]  
文件名称: pgpool-I I的recovery
  所属分类: 其它
  开发工具:
  文件大小: 250kb
  下载次数: 0
  上传时间: 2019-04-20
  提 供 者: weixin_********
 详细说明:NULL 博文链接:https://lvhuiqing.iteye.com/blog/1883404JPIG仕租分科会200902亍牛又卜 1.2.同期L了刂一 PostgreSQl前段下機能寸石£ pepo l0特徴加b、井常{早ψ\段階期一沙t宪装在札 大(图3)。二机钴、各pgp了口七又加2台⑦ Postgre SQL圹一八接、(1)7可刂竹一沙日∽加5受切取 大更新系刀SQL充、(2)2台叨 PostgreSQL L送寸石形式 psql psql (1)更新系SQ左送信 pepo l popol popol 各 popol口七又加 (2)更新系SLt2台 複数 Post greS则L_七接徒 Postgres【彰送 PostgreSQL PostgreSQL 网3 popol石同期可刂分一沙>亻x一 1.3,簡单内部樽造¢說明 pepo|-ll砝了儿于了口乜又少又亍厶下、共有×乇刂下宁一夕共有、乜又才¢相互排他制御、沙少十儿石 内部通信老行(区4)。 Pgpo|1制猫 pgpool pgpool parool pcp x乇 (1)con info (1)CONN_CONTER_SEM (2)pids 接数力>卜 3Req info (2)REQUEST_ INFO_SEM (4)InRecovery 内部甬信 冈4, pepo-|内部構造 了口七又間共有寸召情報: (1)接統情報 con info (2)了口乜又pid pids (3)刂夕工又卜情報 Roq info (4)刂力八刂中力否力 ReCovey Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 以下(1)小与(3)下各種情報左定義寸石構造体示寸。 ypedef struct i cha database [SM DAtABaSe]; /x Database name x/ char user [SM USER]; /x User name x/ major; x protocol ma jor version x/ minor; / protocol minor vcrsion Int counter; / used counter * t i me t create t ime; /k connect ion creation t, ime nt load ba lancing node;/米 load balancing node冰 3 ColrlectionInfo typedef struct pid t pid; x oSs process id 7 time t start time; /k fork( time */ ConnectionInfo *connect ion info; /x connection informat ion typedef struct i POOL REQUEST KINDkind; / request kind x/ nt node id [MAX NUM BACKENDS]; /* request node id nt mastor nodc id: k the youngest nodc id which is not in down status int conn counter POOL REQUEST INTO: Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 2.才>力八以 2.1.才>力八 gpol-II、一方⑦ PostureS圹一八(“丿一下”七小場合办石)邡障害起二L了、残刂ω廿一八丶飞稼 慟L→石二上力石(Ⅸ5 害、通信叨切断炉(υ又∽又)遲机£輊微本力、八-F工了障害石重傷本O志不有刂 得石邡、 popol laψ又求∽時問Σ下一卜障詈在檢知∪、残刂Φ丿一下稼動L石。 pgpool[正常本丿一卜送信L 運用在純石二七力下老石 通信断八一下障害匕 ostgreso 本人与力⑦彈害癸生 冈5,障害兇生 問題l障害力占復旧、→刂刂力八刂下石。 popol-II比(後述寸石刁工一x20匚<短時問仑除\z)正常 連用左稀水力b刂力八刂飞老石。二札在才与不力八刂飞召。 正常運用在統水力、 正常運用态統本力、 障書丿一下在修復下老石 丿一下在追加下老石 psq Pgpt postgresql postgresl ostgreso postgres postgres2 同期 同期 冈6, Pppoa|-|⑨内部糟造 扫、二仂機能使方七障害復旧烂讨飞水<、正常運用在弒加丿一卜追加乇可能¢石 Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 2.2.才亻力八刂仕組孙 popol-II才∽亻沙力八刂叨仕租办左解說寸石(区7)。 pepo l-II叨才>亻>刂力八刂l、2→0丁r x心分加札飞↓石。 x1 刂力八刂元0心一又八%勹了了态刂力八刂寸石圹一八斬送 刁一x2 刁工一又1作中{更靳亡机大了一力亻了口圹在送U、圹一八再起動。先軟送札大一又八y 夕了了七合打廿了亍一夕八一又①刂力八後民圹一匕又開始。 习王一x 刁工一x2 元一夕0檢索竹更新可能 psq 全接菥在切断 popol 丿力/寸石側①+一 刂力八寸召側⑦一八 postgresql postgres1 postgresO postgresql 八一又八夕7了0朝送 刁工一又1①期間二更新机大 7一力亻口夕在彰送 图7才亻力八y 2.3. Postures匚不卜一儿寸石 parool-数 pgpo0l-II砝甚才亻力八夫行寸石大妙、 PostgreSQL側⑦関数 pgpool recovery() pgpool remote start(在宪行寸石。 CREATE OR REPLACE FUNCT ION pgpool_recovery(text, text, text) RETURNS bool AS ' $I ibdir/pgpool-recovery',pgpool_ recovery LANGUAGE C STRICT; CREATE OR REPLACE FUNCT ION pgpool_remote start(text, text) RetuRns bool AS $I ibdir/pgpool-recovery','pgpool_remote start LANGUAGE C STRICT Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 関数 pgpool recovery( pgpool remote start(∽機能l、亍一夕八一又勹歹又夕上力机大汐工儿又勹刂 卜O宪行石 →志刂:pgpl-Ilh関数 pg recovery(水毫介飞、儿又夕刂了卜左实行廿石飞苏石(图8) pgpool-Il (1) grecovery(又少孙名)夫行 PostgreSQL pg recovery pgpoo rec (2)又少不郏行 recovery._xx_stage. sh 图8 Postgres上儿又夕刂了卜行吵仕組孙 参考飞 pgpool_ recovery o宪装示寸。本体l0 So system彐又∽F念呼U出寸¢扬石二匕加打加石。 pgpoo -recovey.c Datum pgpool-recovery(PG_FUNCT ON_ARGS) int r; char * scr ipt Dat umGet CStr ing (Direct Funct ionCal l1(textout PointerGetDatum(PG_GETARG_ TEXT_P(O)) char remote_ host= DatumGet CStr ing(DirectFunct ionAl l1 (textout PointerGet Datum(PG GETARG TEXT P(1)))) char *remote data directory DatumGet CStr ing(DirectFunct ionAl lI(textou Pointer Get Datum(PG GETARG_ TEXT_ P(2)))) snpr int f(recovery scr ipt sizeof(recovery scr ipt).%s,/ %s %s %s%s DataDir, script, DataDir, remote host remote -data directory) elog(DEBuG1,"recovery_scr ipt: %s, recovery_scr ipt); r system(recovery scr ipt): elog(ErRoR. pgpool_ recovery failed); PG RETURN BOOL(true); Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 24,才以力八¢夕亻厶沙一 以下、 pepo l-II石、才河亻刂力八刂如理刃夕亻厶沙一竹少又在示寸(冈9)。与农才y亻刂 力八刂O卜刂力(、 pcp recovery node彐又冰下¢扔石 x1 pg start backup()関数O夫行後一又八ν夕了以了在刂力八刂側O+一八[送寸石。 刁工-x2 WAL口切刂替礻飞最新⑦7一力亻了口圹在刂力八《側⑦圹一八[斬送、最後 PostgreSQL一八在 再起動寸石。 pcp recovery node彐了∽F夫行 了工一x1 刁王一x2 popol pgpool recovery oc pgpool_recovery(T pgpool_ remote starts y_1st stage. sh recovery2 End stage.sh| pgpool_remote start老夫行 V pestart-backupORT!: V. pg switch logo. v postgresql 元一夕八一又 夕5又夕 刁x一x1期間更新机大 八一又八y夕了y了0送 Postgres-八叨 ML口纩仑切刂替元、 再起動+刂力八 力亻了口 一力4了口L了彰送 力/完了 postgres1 于一夕心一又 力又夕 一力刁口少 图9才力以④夕亻沙一>又 参考末!、上記02工一又夷行寸石p8pl-I①丿一又彐一下念技粹匕了示寸 Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 recovery. C nt start_recovery (int recovery_ node /米1 st stage x i f (exec checkpoint(conn) =0) if (exec recovery (conn, recovery backend, FIRST_ STAGE)! = 0) /米2 nd stage if wait connection closed=0) if ( exec checkpoint (conn)I= 0) i f (execrecovery (conn, recovery backend, SECOND_ STAGE) =0); f(exec_ remote start(conn, recovery_ backend)!=0) if (check_postmaster started ( recovery backend )) send- fail back_request (recovery_node) / wait for fai|back米/ while (!pcp wakeup_ request )t struct t imeval t=1. 01 冰 poll ing s|GUSR2 signal per1sec米/ select(o, NULL. NULL. NULL. &t) pcp wakeup request =0 return o static int exec_recovery (PGconn *conn, Backend Info backend, char stage) PGresul t xresul t char khost name hostname backend- >backend host name scr ipt =(stage = FIRST_ STAGE)? pool conf ig>recovery 1st stage command: pool conf ig->recovery 2nd st age command snpr intf(recovery_command. " SELECT pgpoo_recovery('‰s’.‰','%s’)", script. host name, backend->backend data directory) result PQexec(conn, recovery command) r =(PQresul tStatus (resul t)I= PGRES_ TUPLES_ OK); POclear (resul t); return r Copyr i ght 2009. Suzuki Hironobu. Al i right reserved JPIG仕租分科会200902亍牛又卜 Append ix A-1. recovery lst stage, sh #!/bin/bash PSQL=/usr/local/pgsql/bin/psq MASTER_ BASEDIR-$ RECOVERY HOST-$2 RECOVERY BASEDIR=$3 #八一又八少夕了y了0開始 $PSQL -C SELECT pg start backup( pgpool-recovery)" postgres #力八刂先用 Oprecovry.conf刁7亻儿生成 echo " restore command cp sRECOVERY BASEDIR/arch ive log/%f %p>SMASTER BASED IR/recovery. conf #刂力八刂先O宁一夕八一又乃又夕在念O妙民八少夕了少了 ssh -T $RECOVERY HOST rm -rf SRECOVERY BASEDIRbk ssh -T $RECOVERY_HOST mv -f SRECOVERY_ BASEDIR.. bkh #宁一夕心一又夕弓又夕=八一又八%夕了以了在刂力八刂先鸢送 rsync -az -c ssh $MASTER BASEDIR/ $RECOVERY HOST: SRECOVERY BASEDIR/ ssh-T SRECOVERY_HOST cp-f SRECOVERY_ BASEDIR. bk/postgresql. conf SRECOVERY_ BASEDIR ssh -T $RECOVERY_HOST rm -f SRECOVERY_BASEDIR/postmaster. pid #力八刂先[二軻送大下、不要民农 frecovery.conf充削除 rm -f SMASTER_ BASED IR/recovery. conf #一又八夕了%了0終了 $PSQL -C"SELECT pg_stop backup()"postgres A-2, recovery 2nd stage, sh #i/ bin/bash PSQL=/usr/local/pgsql/bin/ psq MASTER BASEDIR=$ RECOVERY HOST=S2 RECOVERY BASEDIR=$3 #最新①了一力亻口夕保存 SPSQL -C 'SELECT pg_ switch_xlog()" postgres #最新①了一力亻丁口夕刂力八刂先〖送 r sync -az -e ssh SMASTER_ BASEDIR/archive log/ $RECoVERY_HOST: SRECoVERY_ BASEDIR/archive log/ Copyr i ght 2009. Suzuki Hironobu. Al i right reserved 10/11
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: pgpool-II的recovery
 输入关键字,在本站1000多万海量源码库中尽情搜索: