操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    在上篇《主從原理篇》中,基本上把主從復(fù)制原理、主從架構(gòu)模式、數(shù)據(jù)同步方式、復(fù)制技術(shù)優(yōu)化.....等各類細(xì)枝末節(jié)講清楚了,本章則準(zhǔn)備真正對聊到的幾種主從模式落地實(shí)踐,但實(shí)踐的內(nèi)容通常比較枯燥乏味,因?yàn)榫褪钦{(diào)整各種配置、設(shè)置各種參數(shù)等步驟。

    本章中就搭建最基本的兩種常用搭建,一主一從/多從架構(gòu)、雙主/多主多寫架構(gòu),其他例如級聯(lián)復(fù)制架構(gòu)、多主一從架構(gòu)的配置過程大致相同,因此各位小伙伴可以舉一反三,這里就不再詳細(xì)展開實(shí)踐。

    本身這章原本打算不寫的,因?yàn)閮?nèi)容相對會比較無趣,但看了一下網(wǎng)上的搭建教程基本雜亂無章,想要從零跟著搭建出一個完善的主從集群也不是易事,所以還是寫下這章實(shí)踐篇,系統(tǒng)性梳理好MySQL主從集群的詳細(xì)搭建過程。

    PS:個人編寫的《技術(shù)人求職指南》小冊已完結(jié),其中從技術(shù)總結(jié)開始,到制定期望、技術(shù)突擊、簡歷優(yōu)化、面試準(zhǔn)備、面試技巧、談薪技巧、面試復(fù)盤、選Offer方法、新人入職、進(jìn)階提升、職業(yè)規(guī)劃、技術(shù)管理、漲薪跳槽、仲裁賠償、副業(yè)兼職……,為大家打造了一套“從求職到跳槽”的一條龍服務(wù),同時也為諸位準(zhǔn)備了七折優(yōu)惠碼:3DoleNaE,近期需要找工作的小伙伴可以復(fù)制鏈接了解詳情:https://s.juejin.cn/ds/USoa2R3/

    一、CentOS7安裝MySQL8.0

    其實(shí)基于Docker容器去構(gòu)建會更簡單,基本上就敲幾行命令,開放一下端口映射即可,但那種方式似乎缺少一些原汁原味,因此這里還是基于原生的Linux-CentOS7系統(tǒng),完成MySQL主從復(fù)制集群的搭建工作,但在此之前先安裝一個MySQL8.0版本。

    ?首先創(chuàng)建MySQL的目錄并進(jìn)入:

    [root@localhost]# mkdir /soft && mkdir /soft/mysql/
    [root@localhost]# cd /soft/mysql/

    ?下載MySQL的安裝包,可以通過FTP工具上傳離線環(huán)境包,也可通過wget命令在線獲取安裝包:

    [root@localhost]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

    沒有wget命令的可通過yum命令安裝:

    [root@localhost]# yum -y install wget

    ?解壓MySQL的壓縮包,并對解壓后的目錄重命名:

    [root@localhost]# tar -xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
    [root@localhost]# mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8.0

    ?Linux-CentOS內(nèi)核會自帶MariaDB這個開源版的MySQL,因此在正式安裝前,一定要先檢測是否一下,如果存在則卸載一下:

    [root@localhost]# rpm -qa | grep mariadb
    mariadb-libs-5.5.68-1.el7.x86_64
    
    [root@localhost]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

    ?卸載掉MariaDB后,進(jìn)入重命名后的目錄并創(chuàng)建一個data文件夾,用于存放數(shù)據(jù):

    [root@localhost]# cd mysql8.0 && mkdir data

    ?配置系統(tǒng)的環(huán)境變量,配置好后記得刷新配置文件:

    [root@localhost]# vi /etc/profile
    # 在最后面加一行:
    #   export PATH=$PATH:/soft/mysql/mysql8.0/bin:/soft/mysql/mysql8.0/lib
    # 按ESC鍵,輸入 :wq 保存退出
    
    [root@localhost]# source /etc/profile

    其實(shí)這一步不配置也行,MySQL8.0的啟動文件中,會自動去配置系統(tǒng)的PATH變量。

    ?接著要創(chuàng)建一個mysql的用戶組,并創(chuàng)建一個用戶和分配密碼、權(quán)限:

    [root@localhost]# groupadd mysql
    [root@localhost]# useradd -g mysql mysql
    [root@localhost]# chown -R mysql.mysql /soft/mysql/mysql8.0

    這一步千萬要做,有人也許會想:我可以直接用root用戶呀,的確可以用,但后續(xù)會產(chǎn)生天多的麻煩,因?yàn)槟阈枰謩痈暮芏嗪芏嗟呐渲梦募赃@一步千萬別省略,不要圖簡單!

    ?接著進(jìn)入MySQL解壓目錄下的bin文件夾,初始化MySQL的基本信息:

    [root@localhost]# cd /soft/mysql/mysql8.0/bin
    [root@localhost]# ./mysqld --user=mysql --basedir=/soft/mysql/mysql8.0 --datadir=/soft/mysql/mysql8.0/data/ --initialize
    
    # 如果執(zhí)行報錯,請先執(zhí)行 yum install -y libaio 安裝一下依賴庫

    這一步的命令略微有些長,但實(shí)際上的作用就是指定MySQL的系統(tǒng)用戶、安裝目錄、數(shù)據(jù)存放目錄等信息,這行命令執(zhí)行完成后會得到一個臨時密碼,也就是在最后一行輸出的結(jié)尾,如下:

    臨時密碼


    這個密碼各位小伙伴可以手動先復(fù)制出來,因?yàn)楹罄m(xù)需要通過這個臨時密碼連接
    MySQL

    ?接著需要配置一下MySQL的配置文件,啟動MySQL時會默認(rèn)讀取/etc/my.cnf這個文件,因此配置如下:

    [root@localhost]# vi /etc/my.cnf
    [mysqld]
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data
    
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4

    上述最主要的是配置安裝目錄和數(shù)據(jù)目錄,這里僅是基礎(chǔ)配置,后續(xù)還會做更改~!

    同時,MySQL的默認(rèn)目錄是/usr/local/mysql/,如果你和我一樣,沒有在這個目錄下安裝MySQL,那也記得一定要修改MySQL的啟動文件,如下:

    [root@localhost]# cd /soft/mysql/mysql8.0
    [root@localhost]# vi support-files/mysql.server
    
    # 其中安裝目錄和數(shù)據(jù)目錄默認(rèn)為空,啟動時會去加載/usr/local/mysql/目錄
    basedir=datadir=# 記得將其修改為你自定義的安裝目錄和數(shù)據(jù)目錄(最后不要加斜杠)
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data

    ?修改完成后,接著先嘗試通過MySQL啟動腳本,運(yùn)行MySQL程序:

    [root@localhost]# ./support-files/mysql.server start
    Starting MySQL.Logging to '/soft/mysql/mysql8.0/data/localhost.localdomain.err'.
    .. SUCCESS!

    當(dāng)出現(xiàn)SUCCESS后表示啟動成功,接著可以查詢一下后臺進(jìn)程:

    [root@localhost]# ps aux | grep mysql

    ?后臺有進(jìn)程則表示安裝成功,接著可以連接一下MySQL并重置密碼:

    [root@localhost]# mysql -uroot -p
    Enter password: (這里輸入前面得到的臨時密碼)
    
    # 密碼輸入正確后會進(jìn)入MySQL終端,此時可以嘗試簡單查詢
    mysql> show databases;
    ERROR 1820 (HY000): You must reset your password using ALTER USER ...

    此時你會看到一個信息提示,也就是必須要通過ALTER USER重置密碼后,才能進(jìn)行操作:

    mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123456';

    重置密碼后再次進(jìn)行查詢,此時就能查詢出結(jié)果啦~:

    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows in set (0.03 sec)
    
    mysql> quit

    ?對MySQL-root賬號的密碼做了重置后,為了后續(xù)方便啟動,此時可將MySQL添加到系統(tǒng)服務(wù):

    # 先停止MySQL服務(wù)
    [root@localhost]# ./support-files/mysql.server stop
    
    # 將MySQL啟動文件復(fù)制到系統(tǒng)etc目錄下
    [root@localhost]# cp -a ./support-files/mysql.server /etc/init.d/mysql
    
    # 給予啟動文件的執(zhí)行權(quán)限
    [root@localhost]# chmod +x /etc/init.d/mysql
    
    # 通過系統(tǒng)etc目錄下的啟動文件創(chuàng)建系統(tǒng)服務(wù)
    [root@localhost]# chkconfig --add mysql

    MySQL創(chuàng)建好系統(tǒng)服務(wù)后,后續(xù)可通過service命令來快捷管理MySQL,指令如下:

    # 查看MySQL服務(wù)的運(yùn)行狀態(tài)
    [root@localhost]# service mysql status
    
    # 啟動MySQL服務(wù)
    [root@localhost]# service mysql start
    
    # 停止MySQL服務(wù)
    [root@localhost]# service mysql stop
    
    # 重啟MySQL服務(wù)
    [root@localhost]# service mysql reload
    
    # 平滑重啟MySQL服務(wù)(先處理完已接收的SQL后再重啟)
    [root@localhost]# service mysql force-reload

    ?通過服務(wù)命令啟動MySQL,并使用更改后的密碼連接:

    [root@localhost]# service mysql start
    [root@localhost]# mysql -uroot -p
    Enter password: 123456
    Welcome to the MySQL monitor.  Commands end with ;
    .......

    能夠看到上述歡迎信息,即表示一切無誤!

    ?MySQL8.0版本中,root賬號默認(rèn)是不接受遠(yuǎn)程連接的,因此這里還需要修改一下遠(yuǎn)程連接的權(quán)限:

    # 進(jìn)入mysql系統(tǒng)庫
    mysql> use mysql;
    
    # 直接通過update修改系統(tǒng)用戶表
    mysql> update user set host="%" where user="root";
    
    # 刷新一下所有用戶的權(quán)限信息
    mysql> flush privileges;

    到這里,root用戶也支持遠(yuǎn)程連接了,但MySQL8.0的密碼認(rèn)證套件換掉了,所以需要通過SSL加密方式去連接,這里需要牢記!

    上述這個流程,是經(jīng)過本人兩次實(shí)驗(yàn)的,所以絕對可靠,大家需要安裝時,只需無腦復(fù)制命令并執(zhí)行即可~

    二、一主一從架構(gòu)搭建實(shí)踐

    經(jīng)過第一階段后,安裝好了一個最基本的MySQL裸機(jī),但想要搭建主從集群,最少也需要兩個節(jié)點(diǎn),所以還需要再開一個節(jié)點(diǎn),如果為了圖簡單,也可以直接克隆上一臺機(jī)器,這樣最省時省力,我這里就不重復(fù)再安裝一次了,現(xiàn)有兩臺機(jī)器的信息如下:

    • ? 192.168.12.128、CentOS7、MySQL8.0:后續(xù)將作為主節(jié)點(diǎn)(主庫)使用。
    • ? 192.168.12.129、CentOS7、MySQL8.0:后續(xù)將作為從節(jié)點(diǎn)(從庫)使用。

    大家也可以選擇更多的節(jié)點(diǎn)來作為從庫,方法基本上一樣,也就是再開一個節(jié)點(diǎn),配置和129的一樣即可。

    2.1、配置MySQL主節(jié)點(diǎn)(master)

    首先一起來搭建一下MySQL的主節(jié)點(diǎn),大體可分為三步:

    • ? ①修改主節(jié)點(diǎn)的配置文件。
    • ? ②開放主節(jié)點(diǎn)的端口。
    • ? ③創(chuàng)建一個用于同步數(shù)據(jù)的賬號。

    2.1.1、修改主庫的核心配置

    主從集群的配置實(shí)則非常簡單,只需修改前面安裝時的my.cnf文件即可,如果服務(wù)器是Windows系統(tǒng),則找到對應(yīng)的my.ini文件做修改,在修改前記得先停掉MySQL服務(wù),然后將主庫的/etc/my.cnf文件修改成如下內(nèi)容:

    [root@localhost]# service mysql stop
    [root@localhost]# vi /etc/my.cnf
    
    [mysqld]
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data
    
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4
    
    # ------接下來的是主從集群配置-------
    
    # 主庫在主從集群中的唯一標(biāo)識
    server-id=1
    # 開啟bin-log日志,并為bin-log日志取個前綴名(有默認(rèn)值可不寫)
    log-bin=mysql-bin-log
    # 同步復(fù)制時過濾的庫(主要將一些不需要備份/同步庫寫進(jìn)來)
    # 也可以通過binlog-do-db=xx1,xx2... 來指定要復(fù)制的目標(biāo)庫
    binlog-ignore-db=mysql
    # 指定bin-log日志的格式為混合模式(默認(rèn)為statement)
    binlog_format=mixed
    # 設(shè)置單個binlog日志文件的最大容量
    max_binlog_size=1024M

    2.1.2、開放主節(jié)點(diǎn)的端口

    更改/etc/my.cnf文件后,因?yàn)楹罄m(xù)從庫會通過網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)同步,因此還需要對外開放相應(yīng)的3306端口,同時也要記得刷新防火墻,如下:

    [root@localhost]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    [root@localhost]# firewall-cmd --reload
    [root@localhost]# firewall-cmd --zone=public --list-ports

    如果嫌這樣比較麻煩,也可以直接將防火墻關(guān)閉:

    [root@localhost]# systemctl stop firewalld.service

    但最好不要這樣做,因?yàn)楸3窒到y(tǒng)防火墻的正常運(yùn)轉(zhuǎn),在線上情況時,往往比裝N多個殺毒軟件都管用,系統(tǒng)自帶的防火墻能夠有效的協(xié)助咱們攔截大量網(wǎng)絡(luò)攻擊和木馬植入。

    2.1.3、創(chuàng)建用于數(shù)據(jù)同步的賬號

    開放對應(yīng)的數(shù)據(jù)庫端口后,接著重啟MySQL服務(wù)并使用root登錄,稍后從庫需要一個賬號作為同步賬號,這里可以用root賬號,但最好再創(chuàng)建一個用戶做區(qū)分,同時新的賬號也可以做精準(zhǔn)的權(quán)限控制:

    [root@localhost]# service mysql start
    [root@localhost]# mysql -uroot -p
    
    mysql> create user 'zhuzi'@'%' identified with mysql_native_password by '666666';
    mysql> grant replication slave on *.* to 'zhuzi'@'%';

    上面我為了圖簡單,因此直接為新用戶zhuzi分配了所有權(quán)限,但線上環(huán)境最好根據(jù)自己的需求取分配權(quán)限!

    這里有個小細(xì)節(jié)要牢記,我在創(chuàng)建用戶時通過with指定密碼套件為mysql_native_password,這是早版本中,默認(rèn)的密碼認(rèn)證套件,而在MySQL8.0中則將默認(rèn)套件換成了caching_sha2_password,如果基于默認(rèn)的認(rèn)證套件創(chuàng)建用戶,后續(xù)通過該賬號連接時,則需要以SSL加密形式連接。

    2.1.4、查看主庫的運(yùn)行狀態(tài)

    最后來簡單查看一下master主節(jié)點(diǎn)的狀態(tài),如下:

    mysql> show master status;

    主庫狀態(tài)


    目前主庫的
    bin-log日志正在使用mysql-bin-log.000001這個文件,Position也就是《主從原理篇》中提到的POS點(diǎn),更具體一點(diǎn)的說,它代表當(dāng)前日志文件的光標(biāo)位置,每個MySQL節(jié)點(diǎn)都有可能不一致,因此MySQL5.7之后的版本并不會使用這種最基本的數(shù)據(jù)復(fù)制方式,這里先做簡單演示,后續(xù)會使用GTID復(fù)制。

    2.2、配置MySQL從節(jié)點(diǎn)(slave)

    前面配置好了MySQL的主庫,接著再來弄一下MySQL從庫,配置步驟也大致相同,但這里需要牢記一點(diǎn):如果你的單/多個從節(jié)點(diǎn)是直接克隆出來的,一定要記得更改的一下server_uuid,因?yàn)榭寺?dǎo)致每個節(jié)點(diǎn)的server_uuid相同,這種情況下是無法搭建出主從集群的

    更改server_uuid的方式也很簡單,MySQL在啟動時會隨機(jī)生成一個UUID放到數(shù)據(jù)目錄下的auto.cnf文件中,如果是克隆出來的機(jī)器,直接rm -rf移除auto.cnf文件,再次重啟MySQL后又會生成一個新的UUID

    2.2.3、更改從庫的核心配置

    同樣得先修改一下從庫的/etc/my.cnf文件,將其配置為如下格式:

    [root@localhost]# service mysql stop
    [root@localhost]# vi /etc/my.cnf
    
    [mysqld]
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data
    
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4
    
    # ------接下來的是主從配置-------
    
    # 從庫在主從集群中的唯一標(biāo)識
    server-id=2
    
    # 開啟bin-log日志(為了主從切換時使用,不開啟bin-log的從機(jī)只能當(dāng)備庫使用)
    log-bin=mysql-bin-log
    # 同步復(fù)制時要過濾的庫
    binlog-ignore-db=mysql
    # 指定bin-log日志的格式為混合模式
    binlog_format=mixed
    # 設(shè)置單個binlog日志文件的最大容量
    max_binlog_size=1024M
    
    # 開啟relay-log日志(同樣可以指定前綴名)
    relay_log=mysql-relay-log
    # 開啟存儲過程、函數(shù)、觸發(fā)器等內(nèi)容的同步功能
    log_bin_trust_function_creators=true
    # 同步執(zhí)行跳過一些錯誤碼(防止同步寫入時出現(xiàn)錯誤導(dǎo)致復(fù)制中斷)
    slave_skip_errors=1062

    如果你的從庫只打算作為備庫使用,那則無需再開啟從庫的bin-log日志,因?yàn)檫@會讓從庫的性能下降,畢竟寫數(shù)據(jù)時還需要多寫一次日志,相較于只寫數(shù)據(jù)而言,性能開銷近乎降低一倍。但如若從庫還打算用于熱備切換,那則必須也要開啟bin-log日志,否則這個從節(jié)點(diǎn)升級為主庫后,無法接收客戶端SQL寫入數(shù)據(jù),也無法給其他從庫提供數(shù)據(jù)復(fù)制的基礎(chǔ)。

    2.2.2、開放從庫的端口和防火墻

    不僅僅只有主庫需要開放3306端口,從庫所在的機(jī)器同樣需要,因?yàn)橹鲝闹g是基于TCP/IP協(xié)議來構(gòu)建網(wǎng)絡(luò)連接,從而實(shí)現(xiàn)傳輸數(shù)據(jù)的,TCP協(xié)議是一種對端協(xié)議,一方的端口未開放都有可能導(dǎo)致數(shù)據(jù)傳輸出現(xiàn)問題:

    [root@localhost]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
    [root@localhost]# firewall-cmd --reload
    [root@localhost]# firewall-cmd --zone=public --list-ports

    2.2.3、從庫連接賬號實(shí)現(xiàn)數(shù)據(jù)同步

    想要配置主庫的連接賬號,從庫也需要先登錄root賬號,或者其他具備權(quán)限的賬號也行,接著執(zhí)行下述命令即可:

    [root@localhost]# service mysql start
    [root@localhost]# mysql -uroot -p
    
    mysql> change master to master_host='192.168.12.128',
           master_user='zhuzi',
           master_password='666666',
           master_port=3306,
           master_log_file='mysql-bin-log.000001',
           master_log_pos=653;

    也就是基于原本主庫上創(chuàng)建的zhuzi賬號,以此來建立網(wǎng)絡(luò)連接,在主庫數(shù)據(jù)更新后,從庫會以客戶端的方式請求主庫的bin-log日志,接著寫入到自身的relay-log日志中,后續(xù)從庫上的SQL線程會讀取relay-log日志解析執(zhí)行。

    這里額外提一句:如果你主庫上創(chuàng)建的遠(yuǎn)程賬號,使用了8.0中默認(rèn)的caching_sha2_password套件,那在這里連接時,也僅僅只需要在最后加上一行master_ssl=1即可!

    2.2.4、啟動從庫線程、觀察從庫狀態(tài)

    從庫上連接好賬號之后,接著需要啟動一下從庫線程:

    mysql> start slave;
    mysql> show slave status\G;

    上述命令執(zhí)行完成后,會出現(xiàn)下面這一堆信息:

    從庫狀態(tài)


    在其中必須要看到
    Slave_IO_Running、Slave_SQL_Running兩個線程的狀態(tài)都為Yes時,這才意味著主從集群搭建完成。

    2.2.5、測試主從數(shù)據(jù)同步的效果

    前面手把手帶著諸位將最基本的主從集群搭建出來了,如果你想要為主節(jié)點(diǎn)搭載更多的從庫,只需要再多開幾個機(jī)器/節(jié)點(diǎn),重復(fù)前面的從庫配置即可,接著來實(shí)際測試看看主從同步的效果,先看看主從節(jié)點(diǎn)各自的數(shù)據(jù)情況:

    # 查詢主節(jié)點(diǎn)的庫信息
    mysql> show databases;
    +--------------------+
    |Database|
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows inset(0.01 sec)
    
    # 查詢從節(jié)點(diǎn)的庫信息
    mysql> show databases;
    +--------------------+
    |Database|
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | sys                |
    +--------------------+
    4 rows inset(0.01 sec)

    從上述信息中可看出,目前主、從節(jié)點(diǎn)都屬于裸機(jī)狀態(tài),其中沒有任何數(shù)據(jù),接著先在主節(jié)點(diǎn)上創(chuàng)建一個名為db_zhuzi的庫:

    mysql> create database db_zhuzi;

    庫同步


    從上圖的效果中,也能夠明顯看出,雖然從節(jié)點(diǎn)上未主動創(chuàng)建庫,但從節(jié)點(diǎn)會直接將主節(jié)點(diǎn)上創(chuàng)建的
    db_zhuzi庫直接同步過來,接著再創(chuàng)建一張zz_users看看:

    mysql> create table `zz_users`  (
    `user_id`int(8)notnull,
    `user_name` varchar(255)notnull,
    `user_sex` varchar(255)notnull,
    `password` varchar(255)notnull,
    `register_time` datetime
    )
    engine=InnoDB
    character set=utf8 
    collate=utf8_general_ci 
    row_format=Compact;

    表同步


    從效果圖上看,不僅僅之前創(chuàng)建庫的操作會同步,創(chuàng)建表的記錄依舊會通過
    bin-log日志同步過來,這也就意味著DDL語句都會做同步,那接下來再試試DML語句,也就是增、刪、改語句的效果是怎么樣呢?

    mysql> insert into `zz_users` values(1,"熊貓","女","6666",now()),(2,"竹子","男","1234",now());

    數(shù)據(jù)同步


    效果依舊十分明顯,咱們只在
    master節(jié)點(diǎn)上執(zhí)行了數(shù)據(jù)插入動作,但從節(jié)點(diǎn)上依舊可以查詢出數(shù)據(jù),這也就意味著主庫上插入的數(shù)據(jù),也被同步過來啦~,對于修改、刪除操作則不再重復(fù)演示,大家可以自己玩一玩,效果依舊是相同的!

    三、GTID復(fù)制、無損復(fù)制落地實(shí)操

    經(jīng)過第二階段的內(nèi)容講解后,就已經(jīng)完成了最傳統(tǒng)的主從集群搭建,但這種集群有一個令人十分難受的點(diǎn),也就是當(dāng)主節(jié)點(diǎn)宕機(jī)后,假設(shè)從節(jié)點(diǎn)成為了新主,如果這里還有其他從節(jié)點(diǎn),就需要指向新主,但POS定位又會成為一個問題,畢竟各個從庫之間的復(fù)制進(jìn)度也許不一致,所以需要開發(fā)/運(yùn)維人員手動介入,才能尋找到合適的同步點(diǎn)。

    也正是由于上述這個問題,所以在MySQL5.6中引入了一種名為GTID復(fù)制的技術(shù),專門用于處理從庫尋點(diǎn)的問題,在前面配置從節(jié)點(diǎn)時,需要咱們手動指定master_log_pos=653同步點(diǎn),而開啟GTID復(fù)制后則可根治該問題,但具體如何操作呢?接著咱們來實(shí)操一下。

    3.1、GTID復(fù)制實(shí)操

    因?yàn)橹霸蹅儚膸煲呀?jīng)配置好了同步,因此這里需要停止一下從庫的同步線程,如下:

    mysql> stop slave;

    停止從庫的同步線程,接著主從節(jié)點(diǎn)都需要退出連接,然后停止MySQL服務(wù):

    mysql> quit
    [root@localhost]# service mysql stop

    接著需要再次更改兩個節(jié)點(diǎn)的/etc/my.cnf文件,增加如下內(nèi)容:

    # 開啟GTID復(fù)制
    gtid_mode=on
    # 跳過一些可能導(dǎo)致執(zhí)行出錯的SQL語句
    enforce-gtid-consistency=true

    接著再重啟兩個節(jié)點(diǎn)上的MySQL服務(wù),然后登錄從節(jié)點(diǎn),再通過下述命令建立與主庫的連接:

    mysql> change master to master_host='192.168.12.128',
           master_user='zhuzi',
           master_password='666666',
           master_port=3306,
           master_auto_position=1;

    從這里可以看到,原本需要通過master_log_file='mysql-bin-log.000001', master_log_pos=653指定同步的日志文件和同步點(diǎn),但在GTID復(fù)制模式中,只需要設(shè)置一個master_auto_position=1即可,接下來它會自動尋找同步點(diǎn),接著來試試效果,但不要忘了在從機(jī)上啟動slave線程:

    mysql> start slave;

    測試結(jié)果如下:

    GTID復(fù)制

    • ? ①首先分別在主從節(jié)點(diǎn)上查詢表數(shù)據(jù),此時各自用戶表中都只有兩條數(shù)據(jù)。
    • ? ②啟動從節(jié)點(diǎn)上的同步線程,并在主節(jié)點(diǎn)上插入一條ID=3的數(shù)據(jù)。
    • ? ③從上圖也能明顯看到從節(jié)點(diǎn)上有數(shù)據(jù),配置了GTID復(fù)制后,數(shù)據(jù)同步機(jī)制依舊正常工作。
    • ? ④最后查看一下主節(jié)點(diǎn)的狀態(tài),可以明顯看到目前Executed_Gtid_Set已經(jīng)有值啦!

    如果未開啟GTID復(fù)制,主從節(jié)點(diǎn)的數(shù)據(jù)同步必須要求手動指定POS同步點(diǎn),從庫會依照指定同步點(diǎn)開始同步數(shù)據(jù),而開啟GTID復(fù)制模式后,MySQL會自動尋找數(shù)據(jù)的同步點(diǎn)。

    3.2、無損復(fù)制實(shí)操

    MySQL5.7中對原有的半同步復(fù)制模式做了增強(qiáng),也就是引入了無損復(fù)制的模式,具體的概念可參考上篇《MySQL主從原理篇-無損復(fù)制》MySQL的無損復(fù)制是插件式實(shí)現(xiàn)的,這也就意味著想要使用還需要先安裝插件,如下:

    主節(jié)點(diǎn)執(zhí)行:INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
    從節(jié)點(diǎn)執(zhí)行:INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

    分別在主從節(jié)點(diǎn)上安裝后,接著依舊要停止同步線程、退出連接、關(guān)閉MySQL服務(wù),接著再次修改主從的/etc/my.cnf配置文件,內(nèi)容如下:

    # 主節(jié)點(diǎn)上新增配置:
    # 開啟無損復(fù)制
    rpl_semi_sync_master_enabled=on
    # 等待從節(jié)點(diǎn)ACK的時長(不指定默認(rèn)為10s)
    rpl_semi_sync_master_timeout=3000
    
    # 從節(jié)點(diǎn)上新增配置:
    rpl_semi_sync_slave_enabled=on

    在各自的文件中新增上述配置后,再次重啟MySQL服務(wù)就能將復(fù)制模式改為無無損復(fù)制方案,但線上最好不要使用這種無損復(fù)制,因?yàn)闀?dǎo)致MySQL整體性能直線下滑,如果對數(shù)據(jù)實(shí)時性要求較高,可以引入Canal中間件來監(jiān)控主節(jié)點(diǎn)的Bin-log日志。

    四、多主架構(gòu)搭建實(shí)戰(zhàn)

    經(jīng)過第三階段的學(xué)習(xí)后,咱們掌握了一些主從集群中的高級特性,接著再來搭建一下另一種十分流行的主從架構(gòu)方案,也就雙主/多主多寫架構(gòu),其實(shí)這種多主的思想十分簡單,好比目前我這兩個節(jié)點(diǎn)組成的集群,兩個互為各自的主節(jié)點(diǎn),也互為各自的從節(jié)點(diǎn),這里就不對這些概念做重復(fù)敘述了,不了解的可參考《主從原理篇-多種主從架構(gòu)模型》中的詳細(xì)說明,這里就直接上實(shí)戰(zhàn)。

    4.1、修改第一個節(jié)點(diǎn)的配置文件

    這里也就是將原本的128節(jié)點(diǎn),再在其配置文件中加上從庫的配置信息,然后再設(shè)置一下自增步長和初始值即可,完整配置文件如下:

    [mysqld]
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data
    
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4
    
    # ------主節(jié)點(diǎn)配置-------
    # 當(dāng)前節(jié)點(diǎn)在集群中的唯一標(biāo)識
    server-id=1
    # 開啟bin-log日志,并為bin-log日志取個前綴名(有默認(rèn)值可不寫)
    log-bin=mysql-bin-log
    # 同步復(fù)制時過濾的庫(主要將一些不需要備份/同步庫寫進(jìn)來)
    # 也可以通過binlog-do-db=xx1,xx2... 來指定要復(fù)制的目標(biāo)庫
    binlog-ignore-db=mysql
    # 指定bin-log日志的格式為混合模式(默認(rèn)為statement)
    binlog_format=mixed
    # 設(shè)置單個binlog日志文件的最大容量
    max_binlog_size=1024M
    
    # ------GTID配置-------
    # 開啟GTID復(fù)制
    gtid_mode=on
    # 跳過一些可能導(dǎo)致執(zhí)行出錯的SQL語句
    enforce-gtid-consistency=true
    
    # ------從節(jié)點(diǎn)配置-------
    # 開啟relay-log日志(同樣可以指定前綴名)
    relay_log=mysql-relay-log
    # 開啟存儲過程、函數(shù)、觸發(fā)器等內(nèi)容的同步功能
    log_bin_trust_function_creators=true
    # 同步執(zhí)行跳過一些錯誤碼(防止同步寫入時出現(xiàn)錯誤導(dǎo)致復(fù)制中斷)
    slave_skip_errors=1062
    
    # ------自增序列配置-------
    # 設(shè)置自增初始值為1
    auto_increment_offset=1
    # 設(shè)置自增步長為2,自增序列為{1、3、5、7、9.....}
    auto_increment_increment=2

    4.2、修改第二個節(jié)點(diǎn)的配置文件

    上面完成了第一個節(jié)點(diǎn)配置后,接著再來配置第二個節(jié)點(diǎn)的信息,基本上大致相同,主要有兩點(diǎn)不同的地方:

    [mysqld]
    basedir=/soft/mysql/mysql8.0
    datadir=/soft/mysql/mysql8.0/data
    
    port=3306
    socket=/tmp/mysql.sock
    character-set-server=UTF8MB4
    
    # ------主節(jié)點(diǎn)配置-------
    # 當(dāng)前節(jié)點(diǎn)在集群中的唯一標(biāo)識
    server-id=2
    # 開啟bin-log日志,并為bin-log日志取個前綴名(有默認(rèn)值可不寫)
    log-bin=mysql-bin-log
    # 同步復(fù)制時過濾的庫(主要將一些不需要備份/同步庫寫進(jìn)來)
    # 也可以通過binlog-do-db=xx1,xx2... 來指定要復(fù)制的目標(biāo)庫
    binlog-ignore-db=mysql
    # 指定bin-log日志的格式為混合模式(默認(rèn)為statement)
    binlog_format=mixed
    # 設(shè)置單個binlog日志文件的最大容量
    max_binlog_size=1024M
    
    # ------GTID配置-------
    # 開啟GTID復(fù)制
    gtid_mode=on
    # 跳過一些可能導(dǎo)致執(zhí)行出錯的SQL語句
    enforce-gtid-consistency=true
    
    # ------從節(jié)點(diǎn)配置-------
    # 開啟relay-log日志(同樣可以指定前綴名)
    relay_log=mysql-relay-log
    # 開啟存儲過程、函數(shù)、觸發(fā)器等內(nèi)容的同步功能
    log_bin_trust_function_creators=true
    # 同步執(zhí)行跳過一些錯誤碼(防止同步寫入時出現(xiàn)錯誤導(dǎo)致復(fù)制中斷)
    slave_skip_errors=1062
    
    # ------自增序列配置-------
    # 設(shè)置自增初始值為1
    auto_increment_offset=2
    # 設(shè)置自增步長為2,自增序列為{1、3、5、7、9.....}
    auto_increment_increment=2

    第二個節(jié)點(diǎn)的配置信息和第一個節(jié)點(diǎn)的信息,只有兩點(diǎn)不同:

    • ? server-id=2:這個是各節(jié)點(diǎn)在集群中的唯一標(biāo)識,不能重復(fù)。
    • ? auto_increment_offset=2:自增初始值從1變?yōu)?span style="color: #DD1144; --tt-darkmode-color: #DD1144;">2,最終效果會變?yōu)椋?/li>
      • ? 192.168.12.128:1、3、5、7、9、11、13、15、17.......
      • ? 192.168.12.129:2、4、6、8、10、12、14、16、18......

    接著需要先啟動一下原本作為從庫的192.168.12.129節(jié)點(diǎn),同樣需要創(chuàng)建一個同步賬號,如下:

    [root@localhost]# service mysql start
    [root@localhost]# mysql -uroot -p
    
    mysql> create user 'zhuzi'@'%' identified with mysql_native_password by '666666';
    mysql> grant replication slave on *.* to 'zhuzi'@'%';

    創(chuàng)建好了賬號后,接著再啟動192.168.12.128節(jié)點(diǎn)的MySQL服務(wù),兩個節(jié)點(diǎn)都通過root賬號登錄,接著執(zhí)行下述命令,都將對方指定為自己的主節(jié)點(diǎn):

    # 192.168.12.128節(jié)點(diǎn)上執(zhí)行,將192.168.12.129設(shè)為自己的主節(jié)點(diǎn)
    mysql> change master to master_host='192.168.12.129',
           master_user='zhuzi',
           master_password='666666',
           master_port=3306,
           master_auto_position=1;
    
    # 192.168.12.129節(jié)點(diǎn)上執(zhí)行,將192.168.12.128設(shè)為自己的主節(jié)點(diǎn)
    mysql> change master to master_host='192.168.12.128',
           master_user='zhuzi',
           master_password='666666',
           master_port=3306,
           master_auto_position=1;

    最后再分別啟動各自的同步線程:

    mysql> start slave;

    然后再在任意一個節(jié)點(diǎn)上創(chuàng)建一張zz_user用戶表:

    mysql> create table `zz_user`  (
    `user_id`int(8)notnull auto_increment,
    `user_name` varchar(255),
      primary key (`user_id`)using btree
    )
    engine=InnoDB
    character set=utf8 
    collate=utf8_general_ci 
    row_format=Compact;

    上述表中將user_id設(shè)置為了主鍵,并具備自增特性,同時因?yàn)閮蓚€節(jié)點(diǎn)互為主從,所以在一個節(jié)點(diǎn)上創(chuàng)建表之后,就會自動同步給另一個節(jié)點(diǎn),因此無需在兩個節(jié)點(diǎn)上都創(chuàng)建表,測試一下:

    雙主復(fù)制

    • ? ①在192.168.12.128節(jié)點(diǎn)上,插入了一條名為“竹子”的用戶數(shù)據(jù)。
    • ? ②在192.168.12.129節(jié)點(diǎn)上,可以查詢出名為“竹子”的這條用戶數(shù)據(jù)。
    • ? ③在192.168.12.129節(jié)點(diǎn)上,插入了一條名為“熊貓”的用戶數(shù)據(jù)。
    • ? ④在192.168.12.128節(jié)點(diǎn)上,也可以查詢出名為“熊貓”的這條用戶數(shù)據(jù)。

    從上述結(jié)果中可明顯看出效果,這也就意味著咱們的雙主雙寫架構(gòu)就搭建完成啦!兩臺節(jié)點(diǎn)都支持客戶端讀寫數(shù)據(jù),同時兩個節(jié)點(diǎn)都具備完整數(shù)據(jù),這也就是所謂的雙主雙寫架構(gòu),大家也可以用更多的節(jié)點(diǎn)來搭建環(huán)形多主架構(gòu),但之前《MySQL優(yōu)化篇-架構(gòu)優(yōu)化》中聊過,搭建雙主以上的多主架構(gòu)則沒有必要了,可以直接將架構(gòu)升級到分庫分表。

    五、主從實(shí)踐篇總結(jié)

    前面的步驟中實(shí)現(xiàn)了數(shù)據(jù)庫的主備、主主搭建,但這僅僅只是數(shù)據(jù)庫的基礎(chǔ)架構(gòu),如果想要將這些架構(gòu)應(yīng)用到業(yè)務(wù)中,還得解決客戶端的連接問題,畢竟現(xiàn)在從原有的單庫變?yōu)榱硕鄮欤虼硕鄶?shù)據(jù)源的連接需要再通過新的手段處理,業(yè)內(nèi)一般有三種做法:

    • ? ①基于Spring、MyBatis提供的接口和類,攔截SQL語句動態(tài)選擇對應(yīng)的數(shù)據(jù)源。
    • ? ②使用Sharding-JDBC這類驅(qū)動層框架,配置多個數(shù)據(jù)源,路由改寫的工作交給框架完成。
    • ? ③使用MyCat、Sharding-Proxy等這類代理中間件,業(yè)務(wù)系統(tǒng)連接中間件,路由改寫的工作交給中間件完成。

    基于上述三種方案,配置好多數(shù)據(jù)源的管理后,業(yè)務(wù)系統(tǒng)在線上運(yùn)行時,會自行根據(jù)SQL類型分發(fā)請求,比如主從搭建讀寫分離架構(gòu),就是將SQLinsert、delete、update、alter...這類關(guān)鍵字開頭的語句,分發(fā)到主節(jié)點(diǎn)處理,對于select這類關(guān)鍵字開頭的語句,分發(fā)到從節(jié)點(diǎn)處理。

    對于雙主雙寫的架構(gòu)而言,就只需要取模分發(fā)或隨機(jī)分發(fā)即可,無需區(qū)分讀寫操作,畢竟兩個節(jié)點(diǎn)都會相互同步數(shù)據(jù),因此最終都會具備完整的數(shù)據(jù),所以集群內(nèi)的任意節(jié)點(diǎn),都具備處理讀寫請求的能力。

    PS:雖然本章中只搭建了一主多從、多主多寫兩種架構(gòu),但對于多主一從、級聯(lián)復(fù)制這兩種架構(gòu),也僅僅只是節(jié)點(diǎn)數(shù)量的分配不同,因此大家有興趣可自行搭建,這里就不再重復(fù)贅述~

    同時,為了確保數(shù)據(jù)庫集群的高可用,一般也會結(jié)合Keeplived+VIP來對各節(jié)點(diǎn)做虛擬IP映射和宕機(jī)檢測,這樣能夠確保MySQL出現(xiàn)宕機(jī)時,能夠第一時間將流量切換到新主上,并且也能夠快速重啟宕機(jī)的程序,但Keeplived+VIP在之前關(guān)于《Nginx高可用》的文章詳細(xì)講過,大家感興趣可以去看看,這里同樣不做重復(fù)贅述。

    來源:企業(yè)官網(wǎng)

    主營建筑工程造價軟件、自稱2022年的市場占有率接近八成,廣聯(lián)達(dá)(002410.SZ)近日因“疑似全員年終獎歸0”的話題沖上社交平臺熱榜。

    2024年1月以來,多名廣聯(lián)達(dá)員工在社交平臺爆料稱:公司將全體員工年終績效強(qiáng)制清零,員工入職時簽的合同offer有14薪、有15薪,這意味著上萬名員工將無法拿到年終獎,相當(dāng)于工資被削減了20%。

    此后,廣聯(lián)達(dá)總裁辦公室向全體員工發(fā)出一封公開信緩和局勢,內(nèi)容提到:2023年經(jīng)營結(jié)果未達(dá)預(yù)期,為平衡公司長短期的經(jīng)營需要,總裁辦公會做出了績效獎金的相應(yīng)決策。結(jié)合當(dāng)前對2023年財務(wù)結(jié)果的預(yù)估,公司會根據(jù)績效結(jié)果對員工進(jìn)行相應(yīng)激勵。公司經(jīng)營管理團(tuán)隊(duì)對整體經(jīng)營結(jié)果擔(dān)責(zé),年度獎金為零。

    2023年前三季度,廣聯(lián)達(dá)凈利潤大幅下滑,盈利相較于限制性股票激勵計劃的解禁條件甚遠(yuǎn)。房地產(chǎn)及建筑業(yè)景氣度深度下滑,主營業(yè)務(wù)受到?jīng)_擊,公司在提價銷售、打擊盜版、利用公共資源交易中心拓展市場等方面頻出“盤外招”,也引發(fā)了市場非議。

    01

    取消全員年終獎金惹爭議

    一位認(rèn)證為廣聯(lián)達(dá)在職員工的網(wǎng)友在社交平臺表示:“此前口頭通知是年終獎全員歸零,內(nèi)外網(wǎng)抗議后,公司總裁辦又發(fā)了一封公開信,口頭傳達(dá)的結(jié)果是只會給績效得分A和B+的人發(fā)一點(diǎn)激勵,但如何評定績效等級以及相應(yīng)發(fā)放多少并未公布。”

    廣聯(lián)達(dá)最近一份財務(wù)報表顯示,公司出現(xiàn)營收增速下滑、凈利潤大跌的情況。截至2023年前三季度,公司營業(yè)收入為47.49億元,較去年同期增長7.02%;歸屬上市公司股東凈利潤出現(xiàn)大幅下跌,第三季度同比下降94.44%,前三季度合計凈利潤為2.61億元,同比下跌59.02%。

    對于收入增速下滑,廣聯(lián)達(dá)在業(yè)績報告中解釋:受宏觀經(jīng)濟(jì)增速放緩、房地產(chǎn)投資下行、建筑業(yè)項(xiàng)目開工下降等因素影響,公司所服務(wù)的建筑行業(yè)相關(guān)客戶面臨一定的經(jīng)營壓力,出于控制成本費(fèi)用等考慮,客戶當(dāng)前在數(shù)字化方面的投入強(qiáng)度有所降低。

    針對2023年第三季度凈利潤大跌,廣聯(lián)達(dá)解釋:公司營業(yè)總成本比2022年同期增加6.93億元,同比增長18.34%,營業(yè)總成本增速高于營業(yè)收入增速,導(dǎo)致凈利潤下滑較多。營業(yè)總成本增加主要是人力成本和折舊攤銷增加所致,其中人力成本增加 4.99億元,主要是去年員工人數(shù)增加所致。

    有廣聯(lián)達(dá)員工稱,廣聯(lián)達(dá)年終獎清零是為了滿足2023年限制性股票的盈利解禁條件。

    2022年9月8日,廣聯(lián)達(dá)披露的《關(guān)于向2022年限制性股票激勵計劃激勵對象授予限制性股票的公告》顯示:公司以25.04元/股的價格,向管理團(tuán)隊(duì)和核心骨干人員417人授予限制性股票775.95萬股。

    其中,公司董事、總裁袁正剛獲授24萬股限制性股票,占授予限制性股票總數(shù)的3.0930%;高級副總裁劉謙獲授16.8萬股,占比為2.1651%,包括此2人在內(nèi),共8位高管獲授數(shù)量均在8萬股以上,剩余不到88%的份額由其他409位公司核心管理人員、核心技術(shù)(業(yè)務(wù))骨干分享。

    此次激勵計劃的解禁考核年度為2022-2024年三個會計年度,考核目標(biāo)分別為:2022年凈利潤不低于9.5億元、2023年凈利潤不低于12.5億元、2024年凈利潤不低于15.6億元。

    其中,第一個限售期在2023年10月屆滿,廣聯(lián)達(dá)完成凈利潤不低于9.5億元的目標(biāo),上述高層及骨干解除限售比例為40%的股票,且已于2023年10月24日開始上市流通。但從2023年前三季度2.62億元的凈利潤表現(xiàn)來看,距離12.5億元的全年考核目標(biāo)有著不小的差距。

    2023年8月召開的一次投資者交流會議上,廣聯(lián)達(dá)董事會秘書李樹劍曾表示:“外部環(huán)境大大低于年初設(shè)想,公司收入增速降低后,還要保持研發(fā)和營銷費(fèi)用,我們也不裁員,所有成本加在一起使得公司利潤達(dá)成目標(biāo)的壓力會非常大。”

    李樹劍提到,公司會通過收縮虧損業(yè)務(wù)、保持造價業(yè)務(wù)穩(wěn)定增長等方式,使整體利潤有穩(wěn)定增速。造價業(yè)務(wù)在2023年前三季度錄得36.73億元的營收,占總營收比例高達(dá)77.34%。

    02

    被訴不正當(dāng)競爭

    2022年7月,廣聯(lián)達(dá)高管在接受媒體采訪時稱,公司造價軟件在全國市場的占有率達(dá)80%以上。廣聯(lián)達(dá)的營收從2018年的28.62億元攀升至2022年的65.52億元。期間,廣聯(lián)達(dá)的造價軟件收費(fèi)模式由買斷制改為年費(fèi)制,且?guī)缀跄昴隄q價。

    一位造價行業(yè)從業(yè)者認(rèn)為,面對一個規(guī)模增長見頂?shù)氖袌觯瑥V聯(lián)達(dá)的實(shí)際舉措是改變了造價業(yè)務(wù)的銷售政策,將多年訂單調(diào)整為年度訂單,后者的折扣幅度更低,此舉被市場理解為變相提價。

    廣聯(lián)達(dá)回應(yīng)稱,此舉是為了緩解上游大客戶的資金壓力,比如地產(chǎn)類客戶。在業(yè)績會上,廣聯(lián)達(dá)高管稱:“簽三年合同肯定是有一定的折扣,但這個折扣我們也是可控的,比如說控制在八折水平上,不能降到?jīng)]底線,長遠(yuǎn)來看,我們對自身業(yè)務(wù)還是有信心的。”

    2023年房地產(chǎn)及建筑業(yè)景氣度深度下滑,廣聯(lián)達(dá)主營業(yè)務(wù)受到?jīng)_擊,也引發(fā)了公司一些不尋常的舉動。

    多名造價從業(yè)者反映,為打擊盜版售賣行為,廣聯(lián)達(dá)向造價從業(yè)者銷售的帶有著作權(quán)的軟件加密鎖(軟件破解驅(qū)動程序)有強(qiáng)制售賣、逐年提價等情況。據(jù)悉,軟件加密鎖用于控制廣聯(lián)達(dá)軟件的使用權(quán)限,可以將廣聯(lián)達(dá)軟件的使用權(quán)限與特定的硬件設(shè)備綁定,從而防止盜版和非法復(fù)制行為。使用時,用戶需要將鎖插入計算機(jī)的USB接口,然后通過廣聯(lián)達(dá)軟件對鎖進(jìn)行授權(quán),才能正常使用軟件。

    一把軟件加密鎖在2020年之前的費(fèi)用不到1萬元,使用期限為一年。2023年,一把軟件加密鎖的價格漲至1.5萬元左右。一份大型房企區(qū)域公司的權(quán)力清單運(yùn)行責(zé)任監(jiān)督備案表顯示,因公司項(xiàng)目支付審計部編織工程預(yù)算、審核工程進(jìn)度和結(jié)算款等工作的需要,需向廣聯(lián)達(dá)支付加密鎖年費(fèi),2把鎖的價格為29600元。

    盜版加密鎖的年費(fèi)僅為幾百元,因此,部分工程造價從業(yè)者選擇盜版鎖,一位造價從業(yè)者表示:“前幾年,廣聯(lián)達(dá)對于盜版鎖的態(tài)度是默許存在的。有點(diǎn)像微軟默認(rèn)盜版Windows軟件存在一樣,這樣可以擴(kuò)大市場占有率,借此還可以培養(yǎng)用戶的使用習(xí)慣,讓你習(xí)慣使用廣聯(lián)達(dá)軟件。但2023年開始,廣聯(lián)達(dá)查殺盜版鎖行動開始頻繁,很多盜版鎖用戶的工程文件被查殺。”

    此外,對于不同時段保存的計價文件,廣聯(lián)達(dá)會進(jìn)行“無差別攻擊”,即對廣聯(lián)達(dá)老版本正版鎖編制的文件,標(biāo)識為盜版文件,對其進(jìn)行強(qiáng)制上鎖破壞,使得過往計價數(shù)據(jù)無法恢復(fù)。或者未使用盜版鎖,只是接收了盜版鎖編制的文件,也會導(dǎo)致軟件被鎖。

    無論是因?yàn)槭褂迷缒臧姹镜膹V聯(lián)達(dá)軟件鎖、還是接收盜版鎖文件導(dǎo)致軟件被鎖,直接有效的解決方案都是購買新鎖。

    此外,一位工程造價人員反映,廣聯(lián)達(dá)涉及違規(guī)收集用戶資料情況。在安裝新版廣聯(lián)達(dá)驅(qū)動時,廣聯(lián)達(dá)會給電腦植入隨機(jī)數(shù)字命名的文件夾,且不能強(qiáng)制查殺該文件。

    在拓展新業(yè)務(wù)及新客戶方面,廣聯(lián)達(dá)也遭遇競爭對手的非議,被指控不正當(dāng)競爭。

    深圳建信云科技有限公司(下稱“建信云”)針對廣聯(lián)達(dá)發(fā)起了一系列訴訟。其中一起民事案件在深圳立案,2023年7月11日第一次開庭,8月25日再次開庭。建信云認(rèn)為,廣聯(lián)達(dá)利用為政府公共資源交易中心開發(fā)電子系統(tǒng)的便利,推廣自己的商業(yè)軟件,限制其他競爭對手。

    2021年8月和2022年11月,廣聯(lián)達(dá)先后兩次中標(biāo)深圳公共資源交易中心系統(tǒng)建設(shè)項(xiàng)目,中標(biāo)金額接近2億元,成為公共資源交易中心的技術(shù)開發(fā)商。作為官方唯一的標(biāo)書編制工具軟件提供方,廣聯(lián)達(dá)通過該渠道推廣銷售自家開發(fā)的商業(yè)軟件。此外,深圳公共資源交易中心提供的九種建模軟件種類,有六種都是廣聯(lián)達(dá)的商業(yè)軟件或安裝了廣聯(lián)達(dá)插件的軟件。

    公開資料顯示,2018年至2022年間,廣聯(lián)達(dá)中標(biāo)的北京市區(qū)兩級公共資源交易中心系統(tǒng)建設(shè)業(yè)務(wù)有20多個。2022年報顯示,廣聯(lián)達(dá)的數(shù)字交易業(yè)務(wù)營業(yè)收入突破4億元,其中公共資源交易管理系統(tǒng)的運(yùn)維、運(yùn)營收入占比持續(xù)提升。

    在2023年中期業(yè)績會上,廣聯(lián)達(dá)的高管表示,房地產(chǎn)的開工數(shù)量下降比較大,行業(yè)正在面臨從地產(chǎn)類項(xiàng)目逐步向基建類、城市更新類項(xiàng)目的結(jié)構(gòu)型轉(zhuǎn)移。

    作者|宋虹姍

    編輯|岳嘉

    作者|宋虹姍

    掃碼加群請備注公司、職位、姓名

網(wǎng)站首頁   |    關(guān)于我們   |    公司新聞   |    產(chǎn)品方案   |    用戶案例   |    售后服務(wù)   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區(qū)    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權(quán)所有