{"id":37303,"date":"2020-05-14T13:23:18","date_gmt":"2020-05-14T20:23:18","guid":{"rendered":"https:\/\/virtual-dba.com\/?p=37303"},"modified":"2021-02-10T18:11:13","modified_gmt":"2021-02-11T01:11:13","slug":"validating-vip-usage","status":"publish","type":"post","link":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/","title":{"rendered":"Validating VIP Usage"},"content":{"rendered":"<p>Recently, I was working on a database using HADR with failover handled by TSAMP. The database was configured to use a virtual IP (VIP) address. However, when I tested the failover with the application team, some of the applications were getting SQL1776N errors from the database. We quickly recognized that the applications were trying (and failing) to connect to the same physical server (which had become the standby copy) instead of the new primary, even though TSAMP had moved the VIP to the standby server. It was clear that some of the applications had not been configured to use the VIP.<\/p>\n<p>In an environment with tens or hundreds of client machines that connect to a database, it&#8217;s relatively easy for someone to make a mistake when setting up a database connection on one of the machines. In a production environment, though, it&#8217;s not always feasible to wait until a failover occurs (whether scheduled or unscheduled) in order to validate that all of the applications have been configured correctly.<\/p>\n<p>Fortunately, it is possible to verify, from the database server, which IP address clients are using to connect to the database.<\/p>\n<h4>Capturing Client Configurations from the Db2 Server<\/h4>\n<p>First, take a look at which IP addresses are in use on your system. The <span class=\"grayBox\">ip<\/span> command is used on Linux systems to display configuration information:<\/p>\n<pre class=\"gray\"><code>\n$ ip address show    \n1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000  \n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00  \n    inet 127.0.0.1\/8 scope host lo  \n       valid_lft forever preferred_lft forever  \n2: eth0:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000  \n    link\/ether 00:0c:29:b2:70:12 brd ff:ff:ff:ff:ff:ff  \n    inet 172.16.171.15\/24 brd 172.16.171.255 scope global eth0  \n       valid_lft forever preferred_lft forever  \n    inet 172.16.171.25\/24 brd 172.16.171.255 scope global secondary eth0:0  \n       valid_lft forever preferred_lft forever  \n3: eth1:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000  \n    link\/ether 00:0c:29:b2:70:1c brd ff:ff:ff:ff:ff:ff  \n    inet 192.168.242.15\/24 brd 192.168.242.255 scope global eth1  \n       valid_lft forever preferred_lft forever\n<\/code><\/pre>\n<p>In this example output, the physical server&#8217;s IP address is <strong>172.16.171.15<\/strong>, and the VIP is <strong>172.16.171.25<\/strong>. Knowing both of these IP addresses is important when reviewing the list of active connections.<\/p>\n<p>The <span class=\"grayBox\">netstat<\/span> command lists open network and socket connections on the server, showing the source IP address and port, as well as the target IP address and port. By filtering specifically for the Db2 TCPIP port(s), we get this information:<\/p>\n<pre class=\"gray\"><code>\n$ netstat -tn | grep 50000  \ntcp        0      0 172.16.171.25:50000     172.16.171.18:62586      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.17:62380      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.18:62531      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.18:62337      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.19:62647      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.19:62311      ESTABLISHED   \ntcp        0      0 172.16.171.15:50000     172.16.171.22:62912      ESTABLISHED   \ntcp        0      0 172.16.171.25:50000     172.16.171.17:61344      ESTABLISHED   \n<\/code><\/pre>\n<p>In the output above, the 4th column shows the IP address\/port on the database server, and the 5th column represents the IP address\/port on the client workstation.<\/p>\n<p>Looking in the 4th column, note that all connections except for one are using the VIP (172.16.171.25). However, one connection is coming via the physical IP address (172.16.171.15):<\/p>\n<pre class=\"gray\"><code>\ntcp        0      0 172.16.171.15:50000     172.16.171.22:62912      ESTABLISHED   <\/code><\/pre>\n<p>The fifth column indicates that the machine <strong>172.16.171.22<\/strong> has been configured to connect to Db2 using the physical IP address instead of the VIP. Using this information, the team responsible for the application on this server can review and resolve the configuration problem.<\/p>\n<h4>Platform Portability<\/h4>\n<p>The commands in this post will work on Linux systems; however, this methodology can be applied to other UNIX platforms and Windows. On UNIX forms you will need to use the <span class=\"grayBox\">ifconfig<\/span> command to display the database server&#8217;s IP addresses; Windows has the <span class=\"grayBox\">ipconfig<\/span> command. The <span class=\"grayBox\">netstat<\/span> command is available on all platforms, the <span class=\"grayBox\">-n<\/span> option is particularly useful as it displays IP addresses rather than (truncated) hostnames.<\/p>\n<h4>Conclusion<\/h4>\n<p>Fortunately, the misconfiguration I encountered occurred during a failover test, meaning that there was no real impact to the business as a result of the misconfiguration. Finding these problems is exactly the reason why testing is so important for any environment that has high availability requirements. However, using the methods from this blog post, you should be able to identify issues in your environment \u2013 before they become problems.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Recently, I was working on a database using HADR with failover handled by TSAMP. The database was configured to use a virtual IP (VIP) address. However, when I tested the failover with the application team, some of the applications were getting SQL1776N errors from the database. We quickly recognized that the applications were trying (and [&hellip;]<\/p>\n","protected":false},"author":37,"featured_media":37309,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","content-type":"","footnotes":""},"categories":[4166,17],"tags":[4156,4088,3930,3992],"class_list":["post-37303","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-db2","tag-db2-high-availability","tag-failover","tag-hadr","tag-tsamp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.1 (Yoast SEO v27.1.1) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Validating VIP Usage<\/title>\n<meta name=\"description\" content=\"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Validating VIP Usage\" \/>\n<meta property=\"og:description\" content=\"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\" \/>\n<meta property=\"og:site_name\" content=\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\" \/>\n<meta property=\"article:published_time\" content=\"2020-05-14T20:23:18+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-02-11T01:11:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/virtual-dba.com\/media\/Virtual-DBA-Validating-VIP-Usage.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"557\" \/>\n\t<meta property=\"og:image:height\" content=\"291\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Ian Bjorhovde\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:site\" content=\"@virtual_dba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Ian Bjorhovde\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\"},\"author\":{\"name\":\"Ian Bjorhovde\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/41ede0f1650b7e1a615651a12839b22c\"},\"headline\":\"Validating VIP Usage\",\"datePublished\":\"2020-05-14T20:23:18+00:00\",\"dateModified\":\"2021-02-11T01:11:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\"},\"wordCount\":536,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg\",\"keywords\":[\"db2 high availability\",\"failover\",\"HADR\",\"TSAMP\"],\"articleSection\":[\"Blog\",\"Db2\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\",\"url\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\",\"name\":\"Validating VIP Usage\",\"isPartOf\":{\"@id\":\"https:\/\/virtual-dba.com\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg\",\"datePublished\":\"2020-05-14T20:23:18+00:00\",\"dateModified\":\"2021-02-11T01:11:13+00:00\",\"description\":\"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.\",\"breadcrumb\":{\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg\",\"width\":557,\"height\":291},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/virtual-dba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Validating VIP Usage\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/virtual-dba.com\/#website\",\"url\":\"https:\/\/virtual-dba.com\/\",\"name\":\"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts\",\"description\":\"Remote Database Administration\",\"publisher\":{\"@id\":\"https:\/\/virtual-dba.com\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/virtual-dba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/virtual-dba.com\/#organization\",\"name\":\"Virtual-DBA: Remote DBA | Remote Database Administration\",\"alternateName\":\"Virtual-DBA powered by XTIVIA\",\"url\":\"https:\/\/virtual-dba.com\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"contentUrl\":\"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg\",\"width\":557,\"height\":291,\"caption\":\"Virtual-DBA: Remote DBA | Remote Database Administration\"},\"image\":{\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/virtual_dba\",\"https:\/\/www.linkedin.com\/showcase\/36220649\/\",\"https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg\"],\"description\":\"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.\",\"email\":\"info@xtivia.com\",\"telephone\":\"8886853101\",\"legalName\":\"XTIVIA, Inc\",\"foundingDate\":\"1992-05-01\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"201\",\"maxValue\":\"500\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/41ede0f1650b7e1a615651a12839b22c\",\"name\":\"Ian Bjorhovde\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/46a4ddbb91d9fda0f05b16d509c4d3f3212651af4bdb44db9aeef6197bee5c6f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/46a4ddbb91d9fda0f05b16d509c4d3f3212651af4bdb44db9aeef6197bee5c6f?s=96&d=mm&r=g\",\"caption\":\"Ian Bjorhovde\"},\"url\":\"https:\/\/virtual-dba.com\/author\/ian-bjorhovde\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Validating VIP Usage","description":"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/","og_locale":"en_US","og_type":"article","og_title":"Validating VIP Usage","og_description":"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.","og_url":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/","og_site_name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","article_published_time":"2020-05-14T20:23:18+00:00","article_modified_time":"2021-02-11T01:11:13+00:00","og_image":[{"width":557,"height":291,"url":"https:\/\/virtual-dba.com\/media\/Virtual-DBA-Validating-VIP-Usage.jpg","type":"image\/jpeg"}],"author":"Ian Bjorhovde","twitter_card":"summary_large_image","twitter_creator":"@virtual_dba","twitter_site":"@virtual_dba","twitter_misc":{"Written by":"Ian Bjorhovde","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#article","isPartOf":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/"},"author":{"name":"Ian Bjorhovde","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/41ede0f1650b7e1a615651a12839b22c"},"headline":"Validating VIP Usage","datePublished":"2020-05-14T20:23:18+00:00","dateModified":"2021-02-11T01:11:13+00:00","mainEntityOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/"},"wordCount":536,"commentCount":0,"publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg","keywords":["db2 high availability","failover","HADR","TSAMP"],"articleSection":["Blog","Db2"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/","url":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/","name":"Validating VIP Usage","isPartOf":{"@id":"https:\/\/virtual-dba.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage"},"image":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage"},"thumbnailUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg","datePublished":"2020-05-14T20:23:18+00:00","dateModified":"2021-02-11T01:11:13+00:00","description":"Testing is so important for any environment that has high availability requirements. Using the methods from this post, you should be able to identify issues in your environment before they become problems.","breadcrumb":{"@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#primaryimage","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/Virtual-DBA-Validating-VIP-Usage.jpg","width":557,"height":291},{"@type":"BreadcrumbList","@id":"https:\/\/virtual-dba.com\/blog\/validating-vip-usage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/virtual-dba.com\/"},{"@type":"ListItem","position":2,"name":"Validating VIP Usage"}]},{"@type":"WebSite","@id":"https:\/\/virtual-dba.com\/#website","url":"https:\/\/virtual-dba.com\/","name":"Virtual-DBA Remote DBA Services &amp; Support - Certified Database Experts","description":"Remote Database Administration","publisher":{"@id":"https:\/\/virtual-dba.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/virtual-dba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/virtual-dba.com\/#organization","name":"Virtual-DBA: Remote DBA | Remote Database Administration","alternateName":"Virtual-DBA powered by XTIVIA","url":"https:\/\/virtual-dba.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/","url":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","contentUrl":"https:\/\/virtual-dba.com\/wp-content\/uploads\/V-DBA-Database-Services-and-Support-Featured-Logo.jpg","width":557,"height":291,"caption":"Virtual-DBA: Remote DBA | Remote Database Administration"},"image":{"@id":"https:\/\/virtual-dba.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/virtual_dba","https:\/\/www.linkedin.com\/showcase\/36220649\/","https:\/\/www.youtube.com\/channel\/UCx3AIeUQ2ziTLKZSJDZ-SEg"],"description":"Eliminate database downtime and spiraling costs with XTIVIA\u2019s Virtual-DBA. In today\u2019s always-on business world, gaps in 24x7 on-call DBA support, neglected maintenance and security, or a stretched team struggling with overwhelming workloads can lead to costly disruptions and threaten business continuity. XTIVIA\u2019s Virtual-DBA provides the immediate, expert database administration you need, exactly when you need it, ensuring optimal performance, ironclad security, and significant cost savings without the burden of expanding your in-house team. The goal of Virtual-DBA is to provide a cost-effective solution for organizations seeking to optimize the security, management, maintenance, availability, and performance of their critical business systems, whether self-managed or cloud-managed (e.g., AWS RDS, Azure SQL Database). We accomplish this through a comprehensive remote DBA service offering designed specifically to meet the Oracle\u00ae, DB2\u00ae, Informix\u00ae, MySQL\u2122, PostgreSQL\u00ae, MongoDB\u00ae, MariaDB, and Microsoft SQL Server\u00ae, CockroachDB, Databricks, AWS, and Azure needs of our clients.","email":"info@xtivia.com","telephone":"8886853101","legalName":"XTIVIA, Inc","foundingDate":"1992-05-01","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"201","maxValue":"500"}},{"@type":"Person","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/41ede0f1650b7e1a615651a12839b22c","name":"Ian Bjorhovde","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/virtual-dba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/46a4ddbb91d9fda0f05b16d509c4d3f3212651af4bdb44db9aeef6197bee5c6f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/46a4ddbb91d9fda0f05b16d509c4d3f3212651af4bdb44db9aeef6197bee5c6f?s=96&d=mm&r=g","caption":"Ian Bjorhovde"},"url":"https:\/\/virtual-dba.com\/author\/ian-bjorhovde\/"}]}},"_links":{"self":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37303","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/comments?post=37303"}],"version-history":[{"count":0,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/posts\/37303\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media\/37309"}],"wp:attachment":[{"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/media?parent=37303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/categories?post=37303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/virtual-dba.com\/wp-json\/wp\/v2\/tags?post=37303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}