本文目錄一覽:
- 1、什麼是mysql多實例,如何配置mysql多實例
- 2、rpm包安裝的mysql怎樣添加多實例
- 3、mysql如何創建多個實例,求步驟,謝謝,急求
- 4、一台機器上可以安裝多個mysql嗎
- 5、如何在同一台機器上安裝多個MySQL的實例
什麼是mysql多實例,如何配置mysql多實例
mysql的多實例有兩種方式可以實現,兩種方式各有利弊。第一種是使用多個配置文件啟動不同的進程來實現多實例,這種方式的優勢邏輯簡單,配置簡單,缺點是管理起來不太方便。第二種是通過官方自帶的mysqld_multi使用單獨的配置文件來實現多實例,這種方式定製每個實例的配置不太方面,優點是管理起來很方便,集中管理。
rpm包安裝的mysql怎樣添加多實例
rpm包安裝的mysql怎樣添加多實例
1、yum安裝mysql:
[root@localhost Desktop]# cat /etc/yum.repos.d/rhel-local.repo
[rhel-source]
name=Red Hat Enterprise Linux $releasever – $basearch – Source
baseurl=file://”/media/RHEL_6.1 i386 Disc 1″/Server
enabled=1
gpgcheck=0
gpgkey=
[root@localhost Desktop]# yum install mysql
Loaded plugins: product-id, refresh-packagekit, subscription-manager
Updating Red Hat repositories.
rhel-source | 4.0 kB 00:00 …
rhel-source/primary_db | 2.4 MB 00:00 …
Setting up Install Process
Resolving Dependencies
— Running transaction check
— Package mysql.i686 0:5.1.52-1.el6_0.1 will be installed
— Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
mysql i686 5.1.52-1.el6_0.1 rhel-source 898 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 898 k
Installed size: 2.3 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : mysql-5.1.52-1.el6_0.1.i686 1/1
duration: 712(ms)
Installed products updated.
Installed:
mysql.i686 0:5.1.52-1.el6_0.1
Complete!
[root@localhost Desktop]#
mysql如何創建多個實例,求步驟,謝謝,急求
大多情況下,需要可靠而有效地克隆 MySQL 實例數據。這包括 MySQL 高可用的解決方案,其中需要在將實例加入組複製集群之前配置實例,或者在經典複製模型中將其添加為 Slave。
為複製拓撲而創建 MySQL 副本一直很麻煩。涉及的步驟很多,首先要備份 MySQL 服務器,通過網絡將備份傳輸到我們想要添加到複製集的新 MySQL 節點,然後在該節點上恢復備份並手動啟動 MySQL 服務器。為了高可用,最好還要將其正確設置備份的 GTID,並啟動並運行群集。涉及的手動步驟數量過多不利於高可用。CLONE 插件解決了這個問題並簡化了副本配置。使您可以使用 MySQL 客戶端(和 SQL 命令)來配置新節點並在發生時觀察克隆進度。無需手動處理多個步驟並維護自己的基礎架構來配置新的 MySQL 節點。
MySQL 8.0.17 引入了 CLONE SQL 語句,使當前的 MySQL 服務器成為另一個運行在不同節點的 MySQL 服務器的「克隆」。我們將執行 clone 語句的服務器實例稱為「受體」。克隆的源服務器實例稱為「供體」。供體克隆以一致的快照存儲在 InnoDB 存儲引擎中的所有數據和元數據,以替換受體中的數據。
成功執行 CLONE SQL 語句後,將自動重新啟動受體服務器。重新啟動涉及恢復克隆的快照數據,就像用老方法複製數據一樣。恢復完成後,受體就是供體的克隆版,隨時可以使用!
這裡有一些關於克隆過程的重要注意事項。
不克隆 MySQL 配置參數,並且受體保留所有原始配置參數,如克隆之前。這樣做是因為許多配置可能特定於節點(例如 PORT),因此保留它們似乎是一個不錯的選擇。另一方面,一些存儲配置確實需要在供體和受體之間匹配(例如 innodbpagesize),如果這樣的配置參數不匹配,CLONE 將報告錯誤。
CLONE 插件不會克隆二進制日誌。
CLONE 插件目前僅支持 InnoDB 存儲引擎。在其他存儲引擎(如 MyISAM 和 CSV)中創建的表將被克隆為空表。克隆基礎架構的設計允許克隆 MySQL 支持的任何存儲引擎。但是,只有 InnoDB 序列化和反序列化方法已經實現並經過測試。
克隆會阻止供體中的所有並發 DDL。
需要注意的事實是受體放棄所有數據以及任何二進制日誌,以便成為供體實例的克隆。在執行 CLONE 之前,如果認為有必要,需要備份當前受體數據。
一台機器上可以安裝多個mysql嗎
先說下,什麼是mysql的多實例,簡單的來說就是一台機器上安裝了多個mysql的服務,通過不同的端口(如3307,3308)來向外界提供服務,這些進程通過不同的socket來監聽不同的服務端口來提供個字的服務。
做個比喻:MySQL的多實例相當於房子的相當於多個卧室一樣,每個實例可以看做是一個卧室,整個服務器就是一個房子,服務器的硬件資源(cpu,mem,disk)就是共享的資源,相當於房子的衛生間,廚房,客廳一樣,是房子的公共資源,北漂蝸居在一起,可定是要公用上述的資源的。
好處:
當公司資金緊張,可以節約服務器的資源。
壞處:
當某個服務並發很高或者有慢查詢的時候,整個實例會消耗整個服務器更多的內存,cpu和各種資源,導致服務器上的其他的實例提供的服務質量下降。這就相當於大家住在一個房子的不同卧室一樣,早晨起來刷牙,洗臉等,這樣衛生間就會長期佔用,其他人需要等一樣的道理。
下面記錄下裝一個3307的MySQL的實例的步驟:
一. 基本的需求和出現的問題
當MySQL出現故障或者需要加入一個新的MySQL的實例的時候,需要重新初始化MySQL的數據庫,也就是需要重新生成新的數據庫的文件。
Linux環境中,安裝編譯好MySQL之後,還是不能直接啟動MySQL,需要初始化Mysql的一些基本東西,包括:
初始化表日誌,基本的數據庫信息等一些基本的必須文件。
二.安裝的步驟:
(1). 假設已經存在一個MySQL的實例,端口號為3306,現在需要重新添加一個端口號為3307端口的MySql的實例。
假設MySQl安裝的路徑是/usr/local/mysql/下面,找一個數據磁盤比較的地方,比如/data1/目錄下,在這個目錄下面創建數據文件夾:
1 mkdir -p /data1/mysql_3307/data
2 chown -R mysql::mysql /data1/mysql_3307
(2). 複製之前的MySQl的配置文件,到/data1/mysql_3307/目錄下面,並且進行編輯:
vim /data1/mysql_3307/my.cnf
基本的配置如下:
註:上面的路徑可能與上面的數據庫文件的存放路徑有點出入,但這個不是重點,可以自行替換一下!
(3).確保配置文件無誤,然後開始初始化數據庫:
/usr/local/mysql/scripts/mysql_install_db –defaults-file=/data1/mysql_3307/my.cnf –datadir=/data1/mysql/ –basedir=/usr/lcoal/mysql
完成後,新的mysql 3307數據庫已經初始化好了,如果有報錯,則看下報錯的日誌,一般是由於mysql的配置文件導致的,修改即可!
(4).啟動新的MySQL的實例服務:
在上面的初始化配置確保無誤的情況下,就可以開始啟動MySQL的又一個實例了。
1 /usr/local/mysql/bin/mysqld_safe –defaults-file=/data1/mysql_3308/my.cnf
2 檢查是否啟動:
3 ps -aux | grep mysql
4 如有3308的端口 則表示成功
(5).新的 mysql沒有設置root密碼,可以通過如下 的設置:
/usr/local/mysl/bin/mysqladmin -S /tmp/mysql_3308.sock -uroot passwd ‘new-paswd’;
如上面的步驟,即可完成一個機器上多個MySQL實例的安裝與運行。
當然了,可以將MySQL_server這個腳本放入到/rt/rc.local這個目錄下面,隨着服務器啟動。
(6).如果想登陸的時候,需要指定MySQL的端口號,使用-P3307來指定登錄到哪台數據庫上即可。
總結:
自己在安裝這個數據庫的時候,以為是需要再次下載一個新的數據庫的源碼包,但是其實是不用的,使用一個MySQL的源碼包,是可以安裝多個MySQL的實例的。
如何在同一台機器上安裝多個MySQL的實例
這種架構一般用在以下三類場景
1. 備份多台 Server 的數據到一台如果按照數據切分方向來講,那就是垂直切分。比如圖 2,業務 A、B、C、D 是之前拆分好的業務,現在需要把這些拆分好的業務匯總起來備份,那這種需求也很適用於多源複製架構。實現方法我大概描述下:業務 A、B、C、D 分別位於 4 台 Server,每台 Server 分別有一個數據庫來隔離前端的業務數據,那這樣,在從庫就能把四台業務的數據全部匯總起來,而不需要做額外的操作。那沒有多源複製之前,要實現這類需求,只能在匯總機器上搭建多個 MySQL 實例,那這樣勢必會涉及到跨庫關聯的問題,不但性能急劇下降,管理多個實例也沒有單台來的容易。
2. 用來聚合前端多個 Server 的分片數據。
同樣,按照數據切分方向來講,屬於水平切分。比如圖 3,按照年份拆分好的數據,要做一個匯總數據展現,那這種架構也非常合適。實現方法稍微複雜些:比如所有 Server 共享同一數據庫和表,一般為了開發極端透明,前端配置有分庫分表的中間件,比如愛可生的 DBLE。
3. 匯總併合並多個 Server 的數據
第三類和第一種場景類似。不一樣的是不僅僅是數據需要匯總到目標端,還得合併這些數據,這就比第一種來的相對複雜些。比如圖 4,那這樣的需求,是不是也適合多源複製呢?答案是 YES。那具體怎麼做呢?
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/194793.html