可用性保障
SQL-Relay可以作为一个前端为数据库集群或多个SQL-Relay服务器提供负载均衡(load-balancing)、故障切换(fail-over),以保证服务的高可用性。
数据库集群的负载均衡和故障切换
SQL-Relay可以为不同的数据库节点和节点间的分布式会话维持一个连接池。如果单个节点失效,SQL-Relay会尝试重连的同时用剩余节点提供服务。
配置文件中,每一个链接标签(connection tag)定义了一个维持链接的节点。下面的例子中,SQL-Relay有3个oracle节点。
<?xml version="1.0"?>
<instances>
<instance id="example" connections="10">
<users>
<user user="sqlruser" password="sqlrpassword"/>
</users>
<connections>
<connection string="user=scott;password=tiger;oracle_sid=orcl1"/>
<connection string="user=scott;password=tiger;oracle_sid=orcl2"/>
<connection string="user=scott;password=tiger;oracle_sid=orcl3"/>
</connections>
</instance>
</instances>
connection的数量不限。
SQL Relay同样支持非均衡的载荷分布(disproportionate distribution of load),如果某些节点处理能力较强,则SQL Relay可以将较多流量导向该节点。
SQL Relay 通过metric属性来表示每个节点的能力,并不表示具体数值,只是一种处理能力的相对比例,越大则处理能力越强。
<?xml version="1.0"?>
<instances>
<instance id="example" connections="10">
<users>
<user user="sqlruser"