新聞中心
隨著現(xiàn)代企業(yè)業(yè)務(wù)的日益復(fù)雜和數(shù)據(jù)量的不斷增加,數(shù)據(jù)庫(kù)高可靠性和可用性成為了關(guān)鍵的問(wèn)題。為了確保數(shù)據(jù)的安全性和連續(xù)性,常常采用雙機(jī)熱備的方案來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的高可用性。本文將介紹如何在Linux環(huán)境下實(shí)現(xiàn)數(shù)據(jù)庫(kù)雙機(jī)熱備的方案。

成都創(chuàng)新互聯(lián)專注于鐘山企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),商城網(wǎng)站制作。鐘山網(wǎng)站建設(shè)公司,為鐘山等地區(qū)提供建站服務(wù)。全流程按需定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
一、概述
數(shù)據(jù)庫(kù)雙機(jī)熱備是指在兩臺(tái)服務(wù)器之間建立主從備份關(guān)系,主服務(wù)器故障時(shí)自動(dòng)切換到備服務(wù)器上,保證數(shù)據(jù)的高可用性和可靠性。關(guān)鍵技術(shù)包括主從同步、心跳檢測(cè)、自動(dòng)故障切換等。
在Linux環(huán)境下,主流的數(shù)據(jù)庫(kù)軟件有MySQL和PostgreSQL,本文將以MySQL為例進(jìn)行介紹。
二、安裝配置MySQL
1.安裝MySQL
在Linux系統(tǒng)中,可以通過(guò)包管理器來(lái)安裝MySQL。例如,在Debian和Ubuntu系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo apt-get install mysql-server
在CentOS和RedHat系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo yum install mysql-server
2.配置MySQL
安裝完成后,需要對(duì)MySQL進(jìn)行一些基本配置,包括設(shè)置root密碼、創(chuàng)建數(shù)據(jù)庫(kù)等。
首先設(shè)置root密碼:
sudo mysql_secure_installation
然后創(chuàng)建數(shù)據(jù)庫(kù):
mysql -u root -p
CREATE DATABASE dbname;
GRANT ALL PRIVILEGES ON dbname.* TO ‘username’@’%’ IDENTIFIED BY ‘password’;
FLUSH PRIVILEGES;
其中,dbname為數(shù)據(jù)庫(kù)名稱,username為用戶名,password為密碼。
三、配置主從復(fù)制
1.配置主服務(wù)器
在主服務(wù)器上,需要進(jìn)行一系列的配置,以開啟主從復(fù)制功能。具體步驟如下:
1)編輯/etc/mysql/my.cnf文件,添加以下語(yǔ)句:
log-bin=mysql-bin
server-id=1
其中,log-bin設(shè)置MySQL日志記錄方式為二進(jìn)制格式,server-id設(shè)置主服務(wù)器唯一標(biāo)識(shí)號(hào)為1。
2)重啟MySQL服務(wù)器:
sudo systemctl restart mysql
3)創(chuàng)建從服務(wù)器連接主服務(wù)器的用戶賬號(hào):
mysql -u root -p
GRANT REPLICATION SLAVE ON *.* TO ‘slave_user’@’%’ IDENTIFIED BY ‘password’;
其中,slave_user為從服務(wù)器連接主服務(wù)器的用戶名,password為密碼。
4)查看主服務(wù)器當(dāng)前狀態(tài):
SHOW MASTER STATUS;
記錄下File和Position兩個(gè)參數(shù)的值,將在后續(xù)配置從服務(wù)器時(shí)需要使用。
2.配置從服務(wù)器
在從服務(wù)器上,也需要進(jìn)行一系列的配置,以連接到主服務(wù)器并完成同步。具體步驟如下:
1)編輯/etc/mysql/my.cnf文件,添加以下語(yǔ)句:
server-id=2
relay-log=/var/log/mysql/mysql-relay-bin
relay-log-index=/var/log/mysql/mysql-relay-bin.index
其中,server-id設(shè)置從服務(wù)器唯一標(biāo)識(shí)號(hào)為2,relay-log和relay-log-index設(shè)置從服務(wù)器日志的記錄方式。
2)重啟MySQL服務(wù)器:
sudo systemctl restart mysql
3)連接到主服務(wù)器:
mysql -u root -p
CHANGE MASTER TO
MASTER_HOST=’master_ip_address’,
MASTER_USER=’slave_user’,
MASTER_PASSWORD=’password’,
MASTER_LOG_FILE=’mysql-bin.000001′,
MASTER_LOG_POS=190;
其中,master_ip_address為主服務(wù)器的IP地址,slave_user和password為從服務(wù)器的連接用戶名和密碼,MASTER_LOG_FILE和MASTER_LOG_POS為在主服務(wù)器中查詢到的File和Position值。
4)啟動(dòng)從服務(wù)器的復(fù)制功能:
START SLAVE;
5)查看從服務(wù)器的復(fù)制狀態(tài):
SHOW SLAVE STATUS\G
確保Slave_IO_Running和Slave_SQL_Running均為Yes。
四、實(shí)現(xiàn)自動(dòng)故障切換
1.配置IP地址
在主從服務(wù)器之間進(jìn)行自動(dòng)故障切換時(shí),需要在兩臺(tái)服務(wù)器上配置相同的虛擬IP地址,讓客戶端連接到該虛擬IP地址上,自動(dòng)將請(qǐng)求轉(zhuǎn)發(fā)到當(dāng)前運(yùn)行的主服務(wù)器上。
具體步驟如下:
1)安裝keepalived:
在Debian和Ubuntu系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo apt-get install keepalived
在CentOS和RedHat系統(tǒng)中,可以使用以下命令進(jìn)行安裝:
sudo yum install keepalived
2)編輯/etc/keepalived/keepalived.conf文件,在vrrp_instance段中添加以下配置:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 123
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.1.100/24
}
}
其中,state為MASTER表示當(dāng)前服務(wù)器為主服務(wù)器,interface為網(wǎng)卡名稱,virtual_router_id為虛擬路由器編號(hào),priority為優(yōu)先級(jí),advert_int為心跳檢測(cè)間隔時(shí)間,authentication為認(rèn)證方式,virtual_ipaddress為指定的虛擬IP地址。
3)在從服務(wù)器上進(jìn)行相同的操作,只需要將vi_1中的state值改為BACKUP即可。
2.實(shí)現(xiàn)自動(dòng)故障切換
一旦主服務(wù)器出現(xiàn)了故障,從服務(wù)器將會(huì)接管虛擬IP地址,成為新的主服務(wù)器。當(dāng)主服務(wù)器恢復(fù)正常后,也會(huì)自動(dòng)將虛擬IP地址轉(zhuǎn)交回去。
在保證更改完成的情況下,可以手動(dòng)測(cè)試。只需停止主服務(wù)器的MySQL服務(wù),然后再查看從服務(wù)器的MySQL狀態(tài)即可。
通過(guò)以上步驟,即可實(shí)現(xiàn)在Linux環(huán)境下的數(shù)據(jù)庫(kù)雙機(jī)熱備。我們可以對(duì)數(shù)據(jù)庫(kù)的高可用性和可靠性有更好的保證。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗(yàn)豐富以策略為先導(dǎo)10多年以來(lái)專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站制作,設(shè)計(jì)師量身打造品牌風(fēng)格,熱線:028-86922220Linux雙機(jī)熱備中如何設(shè)置心跳線
雙機(jī)熱備使用lifekeeper或其他軟件,所謂心跳線就是兩臺(tái)服務(wù)器之間再搭一個(gè)
內(nèi)網(wǎng)
進(jìn)行通信。所以每臺(tái)機(jī)器上要再準(zhǔn)備一個(gè)網(wǎng)卡才行。
1、如果是
虛擬機(jī)
,每臺(tái)新增一個(gè)網(wǎng)卡然后,然后兩臺(tái)
服務(wù)器設(shè)置
新網(wǎng)卡的ip在同一個(gè)內(nèi)網(wǎng)段,能相互ping通即可;如果是實(shí)體機(jī)需要新增網(wǎng)卡,然后像虛擬機(jī)一樣設(shè)置ip。
2、確保新的ip能ping通后,再在雙機(jī)中新增心跳線即可。
心跳線主要是保障主線斷了,兩臺(tái)服務(wù)器還能通過(guò)內(nèi)網(wǎng)線路通信。
心跳線就是兩臺(tái)服務(wù)器之間用一根網(wǎng)線連接起來(lái)就OK了,然后配上IP,這個(gè)IP可以是任何IP段的,只要不是局域網(wǎng)內(nèi)的IP就成!
linux下怎么將oracle配置成雙機(jī)熱備
做oracle 的RAC可以實(shí)現(xiàn)
【DataGuard高可用性】
DataGuard確保企業(yè)數(shù)據(jù)的高可用性,數(shù)據(jù)保護(hù)以及災(zāi)難恢復(fù)。在主數(shù)據(jù)庫(kù)故障無(wú)法修復(fù)時(shí)啟動(dòng)DataGuard的備份庫(kù),可以像主庫(kù)一樣繼續(xù)對(duì)外提供服務(wù)而不影響業(yè)務(wù)的持續(xù)運(yùn)行。
主備數(shù)據(jù)庫(kù)之間通過(guò)日志傳輸實(shí)現(xiàn)數(shù)據(jù)庫(kù)數(shù)據(jù)同步。
日志傳輸過(guò)程
1、在主系統(tǒng)中利用LNS進(jìn)程(日志傳輸進(jìn)程)將日志傳輸?shù)絺溆孟到y(tǒng)
2、備用系統(tǒng)利用RFS(日志接收進(jìn)程)接收主庫(kù)傳輸過(guò)來(lái)的日志并利用MRP(日志恢復(fù)進(jìn)程)同步數(shù)據(jù)
3、DataGuard環(huán)境中必須保證3個(gè)進(jìn)程正常工作,否則此DataGuard環(huán)境將不能滿足災(zāi)備需要。
【DG可以解決的問(wèn)題】
1、在主庫(kù)停機(jī)維護(hù)時(shí),備份庫(kù)頂上,使業(yè)務(wù)應(yīng)用影響最小
(1)主庫(kù)安裝OS補(bǔ)丁或Oracle補(bǔ)丁
(2)主庫(kù)進(jìn)行數(shù)據(jù)整理
2、一個(gè)新的數(shù)據(jù)遷移項(xiàng)目,將數(shù)據(jù)遷移同型號(hào)更高端IBM服務(wù)器與存儲(chǔ)中,主庫(kù)數(shù)據(jù)2T,并且此遷移操作必須停機(jī)時(shí)間控制在30分鐘以內(nèi)(此次時(shí)間遠(yuǎn)遠(yuǎn)適于遷移數(shù)據(jù)庫(kù)文件所需時(shí)間),怎么辦?
(1)把備份庫(kù)頂上去
3、由于主庫(kù)(倉(cāng)庫(kù))數(shù)據(jù)量非常巨大(50T),所以沒有常規(guī)備份,但此系統(tǒng)存在DataGuard災(zāi)備系統(tǒng),如果主庫(kù)某數(shù)據(jù)文件由于某種原因?qū)е陆橘|(zhì)故障,你將如何對(duì)其進(jìn)行恢復(fù)。
4、異地歸檔日志
主庫(kù):18.150 備庫(kù):18.160
1、主庫(kù)和備庫(kù):開啟歸檔模式
archive log list;查看歸檔啟動(dòng)否
shutdown immediate;開啟歸檔前要正常關(guān)庫(kù)
startup mount;啟動(dòng)Mount狀態(tài)
alter database archivelog;開啟歸檔模式
alter database open;開啟數(shù)據(jù)庫(kù)
2、確認(rèn)主庫(kù)強(qiáng)制寫日志
select force_logging from v$database;
(所有sql語(yǔ)句nologging操作時(shí) 也會(huì)強(qiáng)制寫日志)
SQL> alter database force logging;
3、修改主備數(shù)據(jù)庫(kù)的參數(shù)文件
【主】
SQL>create pfile from spfile;
cd /oracle/app/oracle/product/10.2.0/db_1/dbs/
vi initTEST.ora
DB_UNIQUE_NAME=TEST
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(DB150,DB160)’
LOG_ARCHIVE_DEST_1=’LOCATION=/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TEST’
LOG_ARCHIVE_DEST_2=’SERVICE=DB160 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TEST’
FAL_SERVER=DB
FAL_CLIENT=DB160
STANDBY_FILE_MANAGEMENT=AUTO
【備】
SQL>create pfile from spfile;
cd /oracle/app/oracle/product/10.2.0/db_1/dbs/
vi initTEST.ora
DB_UNIQUE_NAME=TEST
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(DB150,DB160)’
LOG_ARCHIVE_DEST_1=’LOCATION=/home/oracle/archive VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=TEST’
LOG_ARCHIVE_DEST_2=’SERVICE=DB150 LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=TEST’
FAL_SERVER=DB
FAL_CLIENT=DB150
STANDBY_FILE_MANAGEMENT=AUTO
4、主庫(kù)和備庫(kù)
都配置“監(jiān)聽”、“傳輸文件”,并開啟監(jiān)聽
5、主庫(kù)和備庫(kù)
都創(chuàng)建“歸檔日志”目錄:mkdir /home/oracle/archive
6、主庫(kù)和備庫(kù)
cd /oracle/app/oracle/product/10.2.0/db_1/dbs/
rm -rf spfileTEST.ora
sqlplus / as sysdba
SQL> startup force;
SQL>create spfile from pfile;
7、備庫(kù)
SQL> shutdown immediate
$ sqlplus sys/lipengfei as sysdba
(連接成功)
SQL> startup nomount force;
8、主庫(kù)
SQL> show parameter ARCHIVE(查看到剛才配置的值生效了)
9、備庫(kù)
(報(bào)錯(cuò)沒有相應(yīng)目錄)
$ mkdir -p /oracle/app/admin/TEST/adump
$ mkdir -p /oracle/app/admin/TEST/bdump
$ mkdir -p /oracle/app/admin/TEST/cdump
$ mkdir -p /oracle/app/flash_recovery_area
$ mkdir -p /oracle/app/admin/TEST/udum
保證數(shù)據(jù)庫(kù)兩邊的密碼文件中的密碼一致(主備數(shù)據(jù)庫(kù)sys用戶密碼必須相同,如果備庫(kù)中沒有orapwTEST,從主庫(kù)中拷貝到來(lái))
10、主庫(kù)
mkdir /home/oracle/db_bak/
rman target /
RMAN> backup full database format=’/home/oracle/db_bak/%U’ include current controlfile for standby;
(別退出RMAN,第12步用)
11、備庫(kù)
mkdir /home/oracle/db_bak/
12、主庫(kù)(把全庫(kù)備份的文件拷貝到備庫(kù))
cd /home/oracle/db_bak/
scp 備份文件 :/home/oracle/db_bak/
RMAN>connect auxiliary sys/lipengfei@DB160
RMAN> duplicate target database for standby nofilenamecheck;—-異機(jī)(備庫(kù))恢復(fù),保證主備庫(kù)的數(shù)據(jù)和狀態(tài)一樣
13、備庫(kù)
cd /oracle/app/oradata/TEST
ls>查看有沒有文件
sqlplus / as sysdba
SQL>select open_mode from v$database;mount狀態(tài)
14、主庫(kù)
SQL> select process from v$managed_standby;
(沒有災(zāi)備的進(jìn)程)
SQL> alter system switch logfile;
SQL> select process from v$managed_standby;
PROCESS
ARCH
ARCH
LNS
已經(jīng)有了進(jìn)程,lns傳輸進(jìn)程)
15、備庫(kù)
SQL> select process from v$managed_standby;
PROCESS
ARCH
ARCH
RFS
RFS
(已經(jīng)有了進(jìn)程,rfs接收進(jìn)程)
SQL> alter database recover managed standby database disconnect from session;
SQL> select process from v$managed_standby;
PROCESS
ARCH
ARCH
RFS
RFS
MRP0
16、主庫(kù)
SQL>create table haha as select * from dba_objects;
SQL>insert into haha select * from haha;
SQL>alter system switch logfile;
17、備庫(kù)
SQL> alter database recover managed standby database cancel;
(備庫(kù)上,只有把恢復(fù)日志進(jìn)程MRP0取消,才可以打開數(shù)據(jù)庫(kù))
SQL> alter database open;
SQL> select count(*) from haha
【注意】
(1)備用數(shù)據(jù)庫(kù)在日志恢復(fù)過(guò)程中(MRP進(jìn)程存在期間)數(shù)據(jù)庫(kù)處于MOUNTED狀態(tài),此時(shí)備用數(shù)據(jù)庫(kù)無(wú)法打開供讀取使用
(2)打開備用數(shù)據(jù)庫(kù)
停止備用庫(kù)的日志恢復(fù)進(jìn)程MRP
alter database recover managed standby database cancel;
open備用數(shù)據(jù)庫(kù),備用數(shù)據(jù)庫(kù)默認(rèn)打開為只讀方式
alter database open;
(3)重新啟動(dòng)備用數(shù)據(jù)庫(kù)的MRP進(jìn)程,數(shù)據(jù)庫(kù)自動(dòng)從OPEN狀態(tài)轉(zhuǎn)換到MOUNT 狀態(tài)
alter database recover managed standby database disconnect from session;
(4)mrp進(jìn)程停止期間,只要RFS進(jìn)程存在,那么不影響日志的接收
兄弟,以上就是關(guān)于oracle DG構(gòu)架的實(shí)驗(yàn)材料,希望可以幫到你!
如果你是Redhat Linux ,可以使用Redhat Cluster Server, 簡(jiǎn)稱 RHCS, 在安裝的 ISO 中有, 推薦你使用 Redhat Enterprise Linux 6 系列的版本。
有個(gè)建議:
既然你有支持雙機(jī)熱備的硬件存儲(chǔ)和2臺(tái)服務(wù)器,為什么不弄成 RAC呢, RAC的數(shù)據(jù)安全性、穩(wěn)定性,以及硬件資源的充分利用,都雙比雙機(jī)熱備好。
如果指的是rac,clusterware或者grid里面自帶詳細(xì)操作步驟的,或者付費(fèi)找oracle的來(lái)干啊哈哈
1. 最簡(jiǎn)單的辦法:采購(gòu)一套商業(yè)熱備軟件(Rose雙機(jī)/賽門等)
2. 操作系統(tǒng)自帶的集群模塊:比較復(fù)雜,Linux平臺(tái)的下目前這個(gè)模塊還不是太成熟和完成
3. 數(shù)據(jù)庫(kù)自帶冗余組件:缺點(diǎn)是只管數(shù)據(jù)庫(kù)本身狀態(tài),其余硬、軟件、網(wǎng)絡(luò)等故障時(shí)不作為。
從配置調(diào)試和后期運(yùn)維管理來(lái)看,推薦使用商業(yè)軟件實(shí)現(xiàn),畢竟也不貴。
關(guān)于linux數(shù)據(jù)庫(kù)雙機(jī)熱備的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計(jì),高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營(yíng)銷推廣等一站式服務(wù)。
本文名稱:如何實(shí)現(xiàn)Linux數(shù)據(jù)庫(kù)雙機(jī)熱備?(linux數(shù)據(jù)庫(kù)雙機(jī)熱備)
文章位置:http://www.5511xx.com/article/dhegdig.html


咨詢
建站咨詢
