사용자 도구

사이트 도구


database:aurora:aurora_mariadb

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
database:aurora:aurora_mariadb [2018/02/23 09:35]
kwon37xi [JDBC 드라이버 사용시 Aurora Cluster에서 read only (slave) DB로 접속되는 현상]
database:aurora:aurora_mariadb [2024/01/09 10:41] (현재)
kwon37xi [Aurora MariaDB]
줄 1: 줄 1:
 ====== Aurora MariaDB ====== ====== Aurora MariaDB ======
 +  * [[database:mariadb:jdbc|MariaDB JDBC]] 참고.
 +
 +===== MariaDB JDBC driver Aurora 지원 중단 =====
 +  * 3.x 버전부터 Aurora 지원중단.
 +  * [[database:aurora|Aurora - AWS Database]] 의 Advanced JDBC Wrapper 등을 사용할 것.
 +
 +===== useSSL=false =====
 +  * [[https://mariadb.com/kb/en/secure-connections-overview/|Secure Connections Overview - MariaDB Knowledge Base]]
 +  * ''useSSL=false|false'' 로 항상 원하는 상태를 명시할것.
  
 ===== JDBC 드라이버 사용시 Aurora Cluster에서 read only (slave) DB로 접속되는 현상 ===== ===== JDBC 드라이버 사용시 Aurora Cluster에서 read only (slave) DB로 접속되는 현상 =====
   * Aurora Cluster 사용시 ''jdbc:mariadb:aurora'' JDBC URL을 사용하면 Cluster Failover가 지원되고 ''setReadOnly'' 설정에 따른 Master/Slave 분기가 지원된다.   * Aurora Cluster 사용시 ''jdbc:mariadb:aurora'' JDBC URL을 사용하면 Cluster Failover가 지원되고 ''setReadOnly'' 설정에 따른 Master/Slave 분기가 지원된다.
 +    * **3.0** 부터는 더이상 ''jdbc:mariadb:aurora''를 지원하지 않는다. **''jdbc:mariadb:replcation''**을 사용해야 할 것으로 보임. 
 +  * 2.2.5 이하 버전에서는 failover시에 write/read 커넥션이 바뀌는 현상이 발생할 수 있다. **2.x 최신버전 ** 사용 할 것. 버전별로 미묘한 버그가 있어서 ''2.2.5'' 이상에서도 문제 발생함.
   * [[https://jira.mariadb.org/browse/CONJ-503|[CONJ-503] MariaDB Driver Uses Read Replicas for non-Read-Only Connections - JIRA]]    * [[https://jira.mariadb.org/browse/CONJ-503|[CONJ-503] MariaDB Driver Uses Read Replicas for non-Read-Only Connections - JIRA]] 
     * 구 버전 드라이버에 Master/Slave를 잘 못 지정하는 버그가 있으므로 ''2.1'' 이상을 사용해야 한다.     * 구 버전 드라이버에 Master/Slave를 잘 못 지정하는 버그가 있으므로 ''2.1'' 이상을 사용해야 한다.
   * [[https://github.com/MariaDB/mariadb-connector-j/blob/master/documentation/failover-and-high-availability-with-mariadb-connector-j.creole|mariadb-connector-j/failover-and-high-availability-with-mariadb-connector-j.creole at master · MariaDB/mariadb-connector-j]]    * [[https://github.com/MariaDB/mariadb-connector-j/blob/master/documentation/failover-and-high-availability-with-mariadb-connector-j.creole|mariadb-connector-j/failover-and-high-availability-with-mariadb-connector-j.creole at master · MariaDB/mariadb-connector-j]] 
-    * 최신 드라이버를 사용하더라도 Connection Pool에서 커넥션을 일정기간 사용하면 끊고 새로 접속하도록 설정해야 한다. 그렇지 않으면 어느 순간 read/write가 잘 못된 곳을 바라보게 된다.+    * 최신 드라이버를 사용하더라도 Connection Pool에서 커넥션을 일정기간 사용하면 끊고 새로 접속하도록 설정해야 한다. 그렇지 않으면 어느 순간 read/write가 잘 못된 곳을 바라보게 된다.(''maxAge'' 같은 프라퍼티) 
 + 
 +<code> 
 +# 에러 메시지 
 +15:22:47.225 org.hibernate.engine.jdbc.spi.SqlExceptionHelper (conn:3568) The MySQL server is running with the --read-only option so it cannot execute this statement 
 +15:22:47.225 org.mariadb.jdbc.MariaDbStatement error executing query 
 +java.sql.SQLException: (conn:3568) The MySQL server is running with the --read-only option so it cannot execute this statement 
 +</code>
  
 +===== fractional second 반올림 현상 =====
 +  * [[database:mysql:5.6|MySQL 5.6]] 에서 발생하는 현상이 마찬가지로 발생한다.
 +  * 제일 좋은 것은 ''datetime(6)''로 지정하는 것이며, 그럴 수 없을 때는
 +    * MariaDB Connector/J 를 사용할 경우에는 ''useFractionalSeconds=false''  옵션을 지정해야 한다.
 +    * MySQL Connector/J 를 사용할 경우에는 ''sendFractionalSeconds=false'' 옵션을 지정해야 한다.
  
database/aurora/aurora_mariadb.1519347934.txt.gz · 마지막으로 수정됨: 2018/02/23 09:35 저자 kwon37xi