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


咨詢
建站咨詢
