Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

cách chuyển đổi một phiên ngủ đông chỉ đọc thành ghi trong một giao dịch (Master / Slave DB)

Chúng tôi mở các giao dịch ở chế độ chỉ đọc và sau đó chuyển đổi nó sang chế độ ghi vì các kết nối chỉ đọc sẽ không thành vấn đề như với salve DB.

Chúng tôi ghi đè HibernateTemplate lớp và tạo các phương thức để tạo phiên ở chế độ ghi

 public final void writeEnabled(){
    getSession().doWork(jdbcWorkWriteEnabled);
}

public final void writeDisabled(boolean flush){
    if(flush)
        flush();
    getSession().doWork(jdbcWorkWriteDisabled);
}

public static final void writeEnabled(Session session){
    session.doWork(jdbcWorkWriteEnabled);
}

public static final void writeDisabled(boolean flush,Session session){
    if(flush)
        session.flush();
    session.doWork(jdbcWorkWriteDisabled);
}

final static Work jdbcWorkWriteEnabled = new Work(){
    public void execute(Connection connection) throws SQLException {
        connection.setReadOnly(false);
    }
};

final static Work jdbcWorkWriteDisabled = new Work(){
    public void execute(Connection connection) throws SQLException {
        connection.setReadOnly(true);
    }
};

Trong logic ứng dụng trước khi ghi, chúng tôi kiểm tra
Kết nối đang ở chế độ ghi sau đó chỉ cần ghi.
Nếu kết nối chỉ đọc thì trước tiên hãy đặt nó ở chế độ ghi, thực hiện thao tác ghi và một lần nữa đưa nó trở lại chế độ chỉ đọc.
>


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách kết nối với cơ sở dữ liệu bằng Sequel Pro

  2. Trích xuất dữ liệu từ json bên trong trường mysql

  3. Xử lý múi giờ trong PHP và MySQL

  4. Nhận mục nhập cụ thể trong trường hợp mục nhập trùng lặp

  5. Tìm nạp dữ liệu đã thay đổi sau khi trang được cập nhật