{"id":649,"date":"2010-02-11T20:49:38","date_gmt":"2010-02-12T01:49:38","guid":{"rendered":"http:\/\/appcrawler.com\/wordpress\/?p=649"},"modified":"2011-07-06T10:13:26","modified_gmt":"2011-07-06T15:13:26","slug":"vip-migrations","status":"publish","type":"post","link":"http:\/\/appcrawler.com\/wordpress\/2010\/02\/11\/vip-migrations\/","title":{"rendered":"VIP migrations"},"content":{"rendered":"<p>We start with a two node cluster with all components up.<\/p>\n<pre lang=\"text\">\r\nlinux2:oracle:tst10g2:\/home\/oracle>.\/crsstat.ksh\r\nHA Resource                                   Target     State\r\n-----------                                   ------     -----\r\nora.linux1.ASM1.asm                           ONLINE     ONLINE on linux1\r\nora.linux1.LISTENER_LINUX1.lsnr               ONLINE     ONLINE on linux1\r\nora.linux1.gsd                                ONLINE     ONLINE on linux1\r\nora.linux1.ons                                ONLINE     ONLINE on linux1\r\nora.linux1.vip                                ONLINE     ONLINE on linux1\r\nora.linux2.ASM2.asm                           ONLINE     ONLINE on linux2\r\nora.linux2.LISTENER_LINUX2.lsnr               ONLINE     ONLINE on linux2\r\nora.linux2.gsd                                ONLINE     ONLINE on linux2\r\nora.linux2.ons                                ONLINE     ONLINE on linux2\r\nora.linux2.vip                                ONLINE     ONLINE on linux2\r\nora.tst10g.ReqMan.cs                          ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g1.srv                 ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g2.srv                 ONLINE     ONLINE on linux2\r\nora.tst10g.db                                 ONLINE     ONLINE on linux2\r\nora.tst10g.tst10g1.inst                       ONLINE     ONLINE on linux1\r\nora.tst10g.tst10g2.inst                       ONLINE     ONLINE on linux2\r\n<\/pre>\n<p>I then gracefully shutdown all components on the second node, which is what we did on oh1xpwcdb01 on Wednesday afternoon\u2026<\/p>\n<pre lang=\"text\">\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl stop instance -d tst10g -i tst10g2\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl stop asm -n linux2\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl stop nodeapps -n linux2\r\n<\/pre>\n<p>&#8230;and we then see all components are down, including the VIP on linux2.<\/p>\n<pre lang=\"text\">\r\nlinux2:oracle:tst10g2:\/home\/oracle>.\/crsstat.ksh\r\nHA Resource                                   Target     State\r\n-----------                                   ------     -----\r\nora.linux1.ASM1.asm                           ONLINE     ONLINE on linux1\r\nora.linux1.LISTENER_LINUX1.lsnr               ONLINE     ONLINE on linux1\r\nora.linux1.gsd                                ONLINE     ONLINE on linux1\r\nora.linux1.ons                                ONLINE     ONLINE on linux1\r\nora.linux1.vip                                ONLINE     ONLINE on linux1\r\nora.linux2.ASM2.asm                           OFFLINE    OFFLINE\r\nora.linux2.LISTENER_LINUX2.lsnr               OFFLINE    OFFLINE\r\nora.linux2.gsd                                OFFLINE    OFFLINE\r\nora.linux2.ons                                OFFLINE    OFFLINE\r\nora.linux2.vip                                OFFLINE    OFFLINE\r\nora.tst10g.ReqMan.cs                          ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g1.srv                 ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g2.srv                 ONLINE     OFFLINE\r\nora.tst10g.db                                 ONLINE     ONLINE on linux2\r\nora.tst10g.tst10g1.inst                       ONLINE     ONLINE on linux1\r\nora.tst10g.tst10g2.inst                       OFFLINE    OFFLINE\r\nlinux2:oracle:tst10g2:\/home\/oracle>\r\n<\/pre>\n<p>If we were to ping linux2-vip from another computer, it would time out.<\/p>\n<pre lang=\"text\">\r\n\r\nlinux1:oracle:tst10g1:\/home\/oracle>ping -c 4 linux2-vip\r\nPING linux2-vip (192.168.1.154) 56(84) bytes of data.\r\nFrom linux1.home (192.168.1.50): icmp_seq=1 Destination Host Unreachable\r\nFrom linux1.home (192.168.1.50) icmp_seq=1 Destination Host Unreachable\r\nFrom linux1.home (192.168.1.50) icmp_seq=2 Destination Host Unreachable\r\nFrom linux1.home (192.168.1.50) icmp_seq=3 Destination Host Unreachable\r\n--- linux2-vip ping statistics ---\r\n3 packets transmitted, 0 received, +4 errors, 100% packet loss, time 2009ms\r\n, pipe 3\r\nlinux1:oracle:tst10g1:\/home\/oracle>\r\n<\/pre>\n<p>We then restart all components for the next part of our test, and see everything is up\u2026<\/p>\n<pre lang=\"text\">\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl start nodeapps -n linux2\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl start asm -n linux2\r\nlinux2:oracle:tst10g2:\/home\/oracle>srvctl start instance -d tst10g -i tst10g2\r\nlinux2:oracle:tst10g2:\/home\/oracle>.\/crsstat.ksh\r\nHA Resource                                   Target     State\r\n-----------                                   ------     -----\r\nora.linux1.ASM1.asm                           ONLINE     ONLINE on linux1\r\nora.linux1.LISTENER_LINUX1.lsnr               ONLINE     ONLINE on linux1\r\nora.linux1.gsd                                ONLINE     ONLINE on linux1\r\nora.linux1.ons                                ONLINE     ONLINE on linux1\r\nora.linux1.vip                                ONLINE     ONLINE on linux1\r\nora.linux2.ASM2.asm                           ONLINE     ONLINE on linux2\r\nora.linux2.LISTENER_LINUX2.lsnr               ONLINE     ONLINE on linux2\r\nora.linux2.gsd                                ONLINE     ONLINE on linux2\r\nora.linux2.ons                                ONLINE     ONLINE on linux2\r\nora.linux2.vip                                ONLINE     ONLINE on linux2\r\nora.tst10g.ReqMan.cs                          ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g1.srv                 ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g2.srv                 ONLINE     ONLINE on linux2\r\nora.tst10g.db                                 ONLINE     ONLINE on linux2\r\nora.tst10g.tst10g1.inst                       ONLINE     ONLINE on linux1\r\nora.tst10g.tst10g2.inst                       ONLINE     ONLINE on linux2\r\nlinux2:oracle:tst10g2:\/home\/oracle>\r\n<\/pre>\n<p>We then simulate a failure by taking down the network interface to which the VIP is assigned on linux2\u2026<\/p>\n<pre lang=\"text\">\r\nlinux2:oracle:tst10g2:\/home\/oracle>sudo \/sbin\/ifdown eth0\r\nroot's password:\r\neth0      device: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)\r\neth0      configuration: eth-id-00:14:d1:10:09:ba\r\n<\/pre>\n<p>\u2026and see that the listener on linux2 is down and the linux2 VIP is now running on linux1\u2026<\/p>\n<pre lang=\"text\">\r\nlinux1:oracle:tst10g1:\/home\/oracle>.\/crsstat.ksh\r\nHA Resource                                   Target     State\r\n-----------                                   ------     -----\r\nora.linux1.ASM1.asm                           ONLINE     ONLINE on linux1\r\nora.linux1.LISTENER_LINUX1.lsnr               ONLINE     ONLINE on linux1\r\nora.linux1.gsd                                ONLINE     ONLINE on linux1\r\nora.linux1.ons                                ONLINE     ONLINE on linux1\r\nora.linux1.vip                                ONLINE     ONLINE on linux1\r\nora.linux2.ASM2.asm                           ONLINE     ONLINE on linux2\r\nora.linux2.LISTENER_LINUX2.lsnr               ONLINE     OFFLINE\r\nora.linux2.gsd                                ONLINE     ONLINE on linux2\r\nora.linux2.ons                                ONLINE     ONLINE on linux2\r\nora.linux2.vip                                ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.cs                          ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g1.srv                 ONLINE     ONLINE on linux1\r\nora.tst10g.ReqMan.tst10g2.srv                 ONLINE     ONLINE on linux2\r\nora.tst10g.db                                 ONLINE     ONLINE on linux2\r\nora.tst10g.tst10g1.inst                       ONLINE     ONLINE on linux1\r\nora.tst10g.tst10g2.inst                       ONLINE     ONLINE on linux2\r\nlinux1:oracle:tst10g1:\/home\/oracle>\r\n<\/pre>\n<p>Basically:<\/p>\n<p>1. a clean shutdown will not fail a VIP to a surviving node, because no failure has occurred.  This is why all nodes are included in a JDBC URL.<\/p>\n<p>2. In a failure, the VIP *is* failed over to a surviving node.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We start with a two node cluster with all components up. linux2:oracle:tst10g2:\/home\/oracle>.\/crsstat.ksh HA Resource Target State &#8212;&#8212;&#8212;&#8211; &#8212;&#8212; &#8212;&#8211; ora.linux1.ASM1.asm ONLINE ONLINE on linux1 ora.linux1.LISTENER_LINUX1.lsnr ONLINE ONLINE on linux1 ora.linux1.gsd ONLINE ONLINE on linux1 ora.linux1.ons ONLINE ONLINE on linux1 ora.linux1.vip&hellip;<\/p>\n<p class=\"more-link-p\"><a class=\"more-link\" href=\"http:\/\/appcrawler.com\/wordpress\/2010\/02\/11\/vip-migrations\/\">Read more &rarr;<\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_mi_skip_tracking":false,"footnotes":""},"categories":[19,22],"tags":[],"_links":{"self":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/649"}],"collection":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/comments?post=649"}],"version-history":[{"count":8,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/649\/revisions"}],"predecessor-version":[{"id":1343,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/posts\/649\/revisions\/1343"}],"wp:attachment":[{"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/media?parent=649"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/categories?post=649"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/appcrawler.com\/wordpress\/wp-json\/wp\/v2\/tags?post=649"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}