java怎樣創(chuàng)建mysql數(shù)據(jù)庫的副本解決思路
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了下城免費(fèi)建站歡迎大家使用!
java中怎樣創(chuàng)建MySQL數(shù)據(jù)庫列表 需要使用jdbc訪問數(shù)據(jù)庫。
具體步驟如下:
1:加載驅(qū)動 ,返回連接
private static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
private static final String DATABASE_URL = "jdbc:mysql://localhost:3306/student";
private static final String DATABASE_USRE = "root";
private static final String DATABASE_PASSWORD = "cs";
/**
* 返回連接
*
* @return Connection
*/
public static Connection getConnection() {
Connection dbConnection = null;
try {
Class.forName(DRIVER_CLASS);
dbConnection = DriverManager.getConnection(DATABASE_URL,
DATABASE_USRE, DATABASE_PASSWORD);
} catch (Exception e) {
e.printStackTrace();
}
return dbConnection;
}
2:獲取連接,執(zhí)行sql語句
public static List selectAllStudent() {
Connection con = null;
PreparedStatement pstm = null;
ResultSet rs = null;
List list = new ArrayList();
String sql = "select * from Student ";
try {
con = ConnectionManager.getConnection();
pstm = con.prepareStatement(sql);
// pstm.setString(1, uname);
rs = pstm.executeQuery();
while (rs.next()) {
Student model = new Student();
model.setStuId(rs.getInt("stuId"));
list.add(model);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
ConnectionManager.closeResultSet(rs);
ConnectionManager.closeStatement(pstm);
ConnectionManager.closeConnection(con);
}
return list;
}
3:調(diào)用獲取列表方法。
方法一:作一個(gè)U盤PE系統(tǒng)啟動電腦進(jìn)行殺毒:
方法二:取下硬盤到別的機(jī)器上進(jìn)行殺毒;
在原有實(shí)例下創(chuàng)建副本應(yīng)該可以達(dá)到效果。
大多情況下,需要可靠而有效地克隆 MySQL 實(shí)例數(shù)據(jù)。這包括 MySQL 高可用的解決方案,其中需要在將實(shí)例加入組復(fù)制集群之前配置實(shí)例,或者在經(jīng)典復(fù)制模型中將其添加為 Slave。
為復(fù)制拓?fù)涠鴦?chuàng)建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 服務(wù)器,通過網(wǎng)絡(luò)將備份傳輸?shù)轿覀兿胍砑拥綇?fù)制集的新 MySQL 節(jié)點(diǎn),然后在該節(jié)點(diǎn)上恢復(fù)備份并手動啟動 MySQL 服務(wù)器。為了高可用,最好還要將其正確設(shè)置備份的 GTID,并啟動并運(yùn)行群集。涉及的手動步驟數(shù)量過多不利于高可用。CLONE 插件解決了這個(gè)問題并簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節(jié)點(diǎn)并在發(fā)生時(shí)觀察克隆進(jìn)度。無需手動處理多個(gè)步驟并維護(hù)自己的基礎(chǔ)架構(gòu)來配置新的 MySQL 節(jié)點(diǎn)。
MySQL 8.0.17 引入了 CLONE SQL 語句,使當(dāng)前的 MySQL 服務(wù)器成為另一個(gè)運(yùn)行在不同節(jié)點(diǎn)的 MySQL 服務(wù)器的“克隆”。我們將執(zhí)行 clone 語句的服務(wù)器實(shí)例稱為“受體”??寺〉脑捶?wù)器實(shí)例稱為“供體”。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數(shù)據(jù)和元數(shù)據(jù),以替換受體中的數(shù)據(jù)。
成功執(zhí)行 CLONE SQL 語句后,將自動重新啟動受體服務(wù)器。重新啟動涉及恢復(fù)克隆的快照數(shù)據(jù),就像用老方法復(fù)制數(shù)據(jù)一樣。恢復(fù)完成后,受體就是供體的克隆版,隨時(shí)可以使用!
這里有一些關(guān)于克隆過程的重要注意事項(xiàng)。
不克隆 MySQL 配置參數(shù),并且受體保留所有原始配置參數(shù),如克隆之前。這樣做是因?yàn)樵S多配置可能特定于節(jié)點(diǎn)(例如 PORT),因此保留它們似乎是一個(gè)不錯(cuò)的選擇。另一方面,一些存儲配置確實(shí)需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數(shù)不匹配,CLONE 將報(bào)告錯(cuò)誤。
CLONE 插件不會克隆二進(jìn)制日志。
CLONE 插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創(chuàng)建的表將被克隆為空表??寺』A(chǔ)架構(gòu)的設(shè)計(jì)允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經(jīng)實(shí)現(xiàn)并經(jīng)過測試。
克隆會阻止供體中的所有并發(fā) DDL。
需要注意的事實(shí)是受體放棄所有數(shù)據(jù)以及任何二進(jìn)制日志,以便成為供體實(shí)例的克隆。在執(zhí)行 CLONE 之前,如果認(rèn)為有必要,需要備份當(dāng)前受體數(shù)據(jù)。