IQ群集搭建

      網(wǎng)友投稿 892 2025-03-31

      環(huán)境要求


      IQ 15.3 Multiplex支持的操作系統(tǒng)包括:IBM AIX、HP-IA、Linux、Sun Solaris和windows等平臺(tái)。具體的版本和補(bǔ)丁要求這里就不說(shuō)了,參見(jiàn)sybase官方網(wǎng)站或者本人的博文"IQ 15 官方資源匯集(2)"

      這個(gè)例子是兩個(gè)運(yùn)行Red Hat Linux的虛擬機(jī)構(gòu)成的集群(虛擬機(jī)建立共享虛擬盤(pán)),IQ采用的是15.3企業(yè)版。

      IQ 15.3集群除具有兩個(gè)集群之間的通訊機(jī)制:一個(gè)是INC(用于傳遞節(jié)點(diǎn)心跳信息和全局事物協(xié)調(diào)管理的信息),另一個(gè)是MIPC(用于DQP處理)。INC使用公有網(wǎng)絡(luò)(public netework);MIPC可以與INC共用網(wǎng)絡(luò),也可以使用單獨(dú)的私有網(wǎng)絡(luò)(private network)。由于進(jìn)行DQP處理時(shí)需要交換的信息相對(duì)較多、較大,建議MIPC使用單獨(dú)的私有網(wǎng)絡(luò)。

      兩個(gè)節(jié)點(diǎn)的環(huán)境如下:

      (1) node1和node2兩個(gè)節(jié)點(diǎn)分別具有兩個(gè)虛擬網(wǎng)卡,地址如下:

      node1: 192.168.2.191 ? ? ?#public ip

      node1_priv 172.16.1.101 ? #private ip

      node2: 192.168.2.193 ? ? ?#public ip

      node2_priv 172.16.1.103 ? #private ip

      (2) node1和node2兩個(gè)節(jié)點(diǎn)上要安裝好IQ 15.3企業(yè)版軟件,node1作為協(xié)調(diào)節(jié)點(diǎn)。

      (3) 用于IQ_SYSTEM_MAIN Store的共享設(shè)備:

      /dev/sdc1 2G, 映射為/dev/raw/raw21

      (4) 在本示例中,IQ_SYSTEM_TEMP Store使用本地文件作為存儲(chǔ),不使用裸設(shè)備

      (5) 用于IQ_SHARED_TEMP Store的裸設(shè)備的共享設(shè)備(IQ 15.3新增的,用于DQP處理):

      /dev/sdd1 4G, 映射為/dev/raw/raw31

      (6) 用于存放用戶(hù)數(shù)據(jù)的user main dbspace的共享設(shè)備:

      /dev/sdd3 2G, 映射為/dev/raw/raw41

      注意:IQ Multiplex安裝前對(duì)于存儲(chǔ)的規(guī)劃是最重要的一項(xiàng)準(zhǔn)備工作,IQ_SYSTEM_MAIN、IQ_SHARED_TEMP和user main 等dbsapce中的設(shè)備必須是各節(jié)點(diǎn)可以讀寫(xiě)的裸設(shè)備,并且裸設(shè)備的設(shè)備名要完全相同。IQ Temp Store中的設(shè)備是節(jié)點(diǎn)自己本地存儲(chǔ)上的裸設(shè)備或文件系統(tǒng)中的文件。

      2. 創(chuàng)建Simplex IQ Server

      IQ 15.3 Mulitplex創(chuàng)建比較有意思,首先要?jiǎng)?chuàng)建一個(gè)單IQ Server(又叫做Simplex),然后把它轉(zhuǎn)換為Multiplex,再往其中增加其它節(jié)點(diǎn)。

      創(chuàng)建Simplex IQ Server的步驟:

      (1) 創(chuàng)建符號(hào)鏈接

      A.在node1和node2上用root用戶(hù)分別執(zhí)行(假設(shè)IQ Catalog DB在/sybiq/mp2目錄下):

      ln -s /dev/raw/raw21 MP2_SYS_MAIN_FILE01.iq

      ln -s /dev/raw/raw31 MP2_SHARED_TEMP_FILE01.iq

      ln -s /dev/raw/raw41 MP2_USER_MAIN_FILE01.iq

      B.在node1上用root用戶(hù)執(zhí)行

      chmod 777 /dev/rawctl #這一步是為sybiq用戶(hù)授權(quán)以便能存儲(chǔ)設(shè)備。

      C.在node2上用root用戶(hù)執(zhí)行

      chmod 777 /dev/rawctl #這一步是為sybiq用戶(hù)授權(quán)以便能存儲(chǔ)設(shè)備

      (2) 在node1上啟動(dòng)iq utility server創(chuàng)建數(shù)據(jù)庫(kù)

      start_iq -n utility_srv

      (3) 編寫(xiě)創(chuàng)建數(shù)據(jù)的腳本createdb.sql

      CREATE DATABASE '/sybiqdb/mp2/mp2.db'

      LOG ON 'mp2.log'

      CASE RESPECT

      ACCENT IGNORE

      PAGE SIZE 4096

      COLLATION '936ZHO'

      BLANK PADDING ON

      JCONNECT ON

      IQ PATH '/sybiqdb/mp2/MP2_SYS_MAIN_FILE01.iq' --IQ_SYSTEM_MAIN

      TEMPORARY PATH '/sybiqdb/mp2/MP2_SYS_TEMP_FILE01.iqtmp' ?--使用文件方式。

      TEMPORARY SIZE 2048 ?--使用文件方式必須指定尺寸。

      MESSAGE PATH 'mp2.iqmsg'

      IQ PAGE SIZE 131072;

      (4) 執(zhí)行createdb.sql腳本,創(chuàng)建mp2數(shù)據(jù)庫(kù)

      dbisql -c "uid=DBA;pwd=sql;dbn=utility_db;eng=utility_srv" -nogui createdb.sql

      (5) 編輯params.cfg參數(shù)文件

      -cl ?128m

      -ch ?256m

      -gc ?20

      -gd ?dba

      -gk ?dba

      -gl ?all

      -gm ?20

      -ti ?4400

      -tl ?300

      -iqmc 256

      -iqtc 256

      -iqmsgsz 64

      -iqmsgnum 4

      (6)啟動(dòng)創(chuàng)建好的mp2庫(kù)

      以sybiq用戶(hù)登錄操作系統(tǒng),然后執(zhí)行:

      cd /sybiqdb/mp2

      start_iq @params.cfg -n mp2node_c -x "tcpip{host=node1;port=4888}" mp2.db

      3. 創(chuàng)建IQ Multiplex

      在創(chuàng)建了IQ Simplex Server之后,就可以使用相應(yīng)的命令把其轉(zhuǎn)換為IQ Multiplex。下面是具體的步驟:

      (1) 確認(rèn)node1機(jī)器上的以如下方式啟動(dòng)mp2數(shù)據(jù)庫(kù)

      start_iq @params.cfg -n mp2node_c -x "tcpip{host=node1;port=4888}" mp2.db

      (2) 使用dbisql用DBA用戶(hù)連接到mp2node_c上,執(zhí)行如下命令

      CREATE MULTIPLEX SERVER mp2node_w1 DATABASE '/sybiqdb/mp2/mp2.db' HOST 'node2' PORT 4888 ROLE WRITER STATUS INCLUDED

      注意:當(dāng)執(zhí)行完上面的語(yǔ)句后,node1機(jī)器上的mp2node_c iq server會(huì)自動(dòng)shutdown

      (3) 啟動(dòng)node1機(jī)器上的協(xié)調(diào)節(jié)點(diǎn)mp2node_c

      start_iq @params.cfg -n mp2node_c -x "tcpip{host=node1;port=4888}" mp2.db

      (4) 在node2機(jī)器上將node1上的mp2node_c iq server的Catalog DB備份到node2的相應(yīng)目錄中,命令如下:

      dbbackup -y -d -c "uid=DBA;pwd=sql;links=tcpip;eng=mp2node_c" /sybiqdb/mp2

      (5) 在node2機(jī)器的相應(yīng)目錄下,刪除.log文件(如果有的話(huà))

      (6) 在node2機(jī)器的應(yīng)目錄下,重新生成log文件

      cd /sybiqdb/mp2

      dblog -r -t mp2.log mp2.db

      (7) 在node2機(jī)器上的/sybiqdb/mp2目錄下創(chuàng)建params.cfg參數(shù)文件

      -cl ?128m

      -ch ?256m

      -gc ?20

      -gd ?dba

      -gk ?dba

      -gl ?all

      -gm ?20

      -ti ?4400

      -tl ?300

      -iqmc 256

      -iqtc 256

      -iqmsgsz 64

      -iqmsgnum 4

      (8) 啟動(dòng)node2機(jī)器上的mp2node_w1寫(xiě)iq server

      start_iq -STARTDIR /sybiqdb/mp2/ @params.cfg -n mp2node_w1 -x "tcpip{host=node2;port=4888}" mp2.db

      (9) 連接到node2機(jī)器上的寫(xiě)節(jié)點(diǎn)mp2node_w1,執(zhí)行如下命令為IQ_SYSTEM_TEMP臨時(shí)存儲(chǔ)空間增加db files(必須執(zhí)行這一步,否則由于mp2node_w1沒(méi)有IQ_SYSTEM_TEMP而不能進(jìn)行操作!)

      ALTER DBSPACE IQ_SYSTEM_TEMP ADD FILE IQ_SYSTEM_TEMP_FILE01 '/sybiqdb/mp2/MP2_SYS_TEMP_W1_FILE01.iqtmp' size 2048

      (10) 連接到IQ Multiplex的協(xié)調(diào)節(jié)點(diǎn)(node1機(jī)器上的mp2node_c),執(zhí)行如下存儲(chǔ)過(guò)程校驗(yàn)集群配置:

      sp_iqmpxvalidate

      如果返回“No errors detected”,表式集群配置正常。

      到此,一個(gè)兩節(jié)點(diǎn)的IQ 15.3 Multiplex創(chuàng)建完成!

      4. 設(shè)置IQ Multiplex

      在進(jìn)行了前3步驟之后,我們已經(jīng)創(chuàng)建了一個(gè)兩節(jié)點(diǎn)的IQ 15.3 集群。需要注意的是,從IQ 15開(kāi)始,不建議在系統(tǒng)的IQ_SYSTEM_MAIN創(chuàng)建用戶(hù)對(duì)象。用戶(hù)應(yīng)該創(chuàng)建新的dbspaces來(lái)存放用戶(hù)數(shù)據(jù)。

      接下來(lái)我們將進(jìn)行一些必要的設(shè)置工作。

      (1) 創(chuàng)建存放用戶(hù)數(shù)據(jù)的dbspace

      使用dbisql連接到mp2node_c節(jié)點(diǎn)(下面若無(wú)特殊說(shuō)明都連接到該節(jié)點(diǎn)),執(zhí)行下面的命令:

      CREATE DBSPACE MP2_USER_MAIN USING FILE MP2_USER_MAIN_FILE01 '/sybiqdb/mp2/MP2_USER_MAIN_FILE01.iq'

      成功執(zhí)行完上面的命令后,執(zhí)行sp_iqdbspace,可以看到新增加的dbspace信息。此外,登錄mp2node_w1寫(xiě)節(jié)點(diǎn),執(zhí)行sp_iqdbspace同樣可以看到新增加的dbspace信息。

      (2) 設(shè)置IQ_SYSTEM_MAIN的main reserve空間大小

      SYBASE建議為IQ_SYSTEM_MAIN尺寸的20%,最少不能低于200M

      SET OPTION PUBLIC.MAIN_RESERVED_DBSPACE_MB = 200 --單位為M

      (3) 回收用戶(hù)在IQ_SYSTEM_MAIN上創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象(表和索引等)的權(quán)限

      REVOKE CREATE ON IQ_SYSTEM_MAIN FROM PUBLIC

      (4) 創(chuàng)建用戶(hù)

      sp_iqaddlogin mp2user,mpuserpwd

      grant resource to mp2user

      grant readclientfile TO mp2user --支持load table from client

      GRANT CREATE ON MP2_USER_MAIN TO mp2user --允許用戶(hù)在MP2_USER_MAIN上創(chuàng)建用戶(hù)對(duì)象

      SET OPTION mp2user.DEFAULT_DBSPACE='MP2_USER_MAIN' --設(shè)置用戶(hù)的缺省dbspace

      (5) 設(shè)置數(shù)據(jù)庫(kù)選項(xiàng)(一些建議的選項(xiàng),在實(shí)踐中應(yīng)當(dāng)根據(jù)需要設(shè)定)

      set option public.NOTIFY_MODULUS=2000000;

      set option public.force_no_scroll_cursors='on';

      set option public.query_temp_space_limit=0; --IQ 15已經(jīng)是缺省了

      set option public.append_load = 'off';

      set option public.minimize_storage='on';

      set option public.Query_Plan='OFF';

      set option Public.Query_Detail ='OFF';

      set option public.ASE_BINARY_DISPLAY='Off';

      set option public.TEMP_SPACE_LIMIT_CHECK='ON'; ?--IQ 15已經(jīng)是缺省了

      SET OPTION PUBLIC.ALLOW_READ_CLIENT_FILE='ON'; --允許load table from client特性

      set option public.string_rtruncation='off'; ?--字符串截?cái)鄷r(shí)不拋出錯(cuò)誤。12.7的缺省值為OFF,15的缺省值是ON

      (6) 用新建立的用戶(hù)mp2user登錄創(chuàng)建表

      使用dbisql工具連接到mp2node_w1上,創(chuàng)建測(cè)試表:

      create table test1(id unsigned int,name char(8));

      insert into test1 values(1,'tiger123');

      commit

      使用dbisql工具以mp2user用戶(hù)連接到mp2node_c上,查詢(xún)表

      select * from test1

      --執(zhí)行上面的查詢(xún)會(huì)看到從寫(xiě)節(jié)點(diǎn)插入的數(shù)據(jù)

      5. 為支持DQP進(jìn)行設(shè)置

      IQ 15.3企業(yè)版從功能上說(shuō)缺省時(shí)打開(kāi)DQP(分布式查詢(xún)處理)的,但是需要進(jìn)行相應(yīng)的設(shè)置才能正常使用。

      (1)設(shè)置共享的IQ_SHARED_TEMP dbspace

      在創(chuàng)建IQ 15.3數(shù)據(jù)庫(kù)后,就具有IQ_SHARED_TEMP dbsapce,不過(guò)這個(gè)dbspace沒(méi)有任何dbfile。

      為了支持DQP,我們需要往這個(gè)dbspace中增加dbfile,命令如下:

      IQ群集搭建

      ALTER DBSPACE IQ_SHARED_TEMP ADD FILE IQ_SHARED_TEMP_FILE01 '/home/sybiq15/sybiqdb/mp2/MP2_SHARED_TEMP_FILE01.iq'

      在增加了dbfile之后,被增加的dbfile是只讀的,所以我們還需要把其改為可讀寫(xiě)的(這一步很重要,否則DQP功能還是不能使用!),命令如下:

      alter dbspace IQ_SHARED_TEMP alter file IQ_SHARED_TEMP_FILE01 readwrite

      (2)為了性能,修改MIPC讓其使用private network(可選)

      執(zhí)行如下命令讓Mulitplex每個(gè)節(jié)點(diǎn)使用private network進(jìn)行DQP通訊:

      ALTER MULTIPLEX SERVER mp2node_c HOST 'node1' PORT 4888 PRIVATE HOST 'node1_priv' PORT 6000

      ALTER MULTIPLEX SERVER mp2node_w1 HOST 'node2' PORT 4888 PRIVATE HOST 'node2_priv' PORT 6000

      數(shù)據(jù)庫(kù)

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶(hù)投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:收購(gòu) GitHub 滔天爭(zhēng)議后,微軟回應(yīng)一切
      下一篇:投資項(xiàng)目管理崗
      相關(guān)文章
      亚洲av永久无码| 一本天堂ⅴ无码亚洲道久久| 亚洲日韩国产精品乱-久| 亚洲国产一区二区三区青草影视| a级亚洲片精品久久久久久久 | 在线观看国产区亚洲一区成人| 国产精品成人亚洲| 麻豆亚洲AV成人无码久久精品| 亚洲国产成人AV在线播放| 亚洲综合一区二区三区四区五区| 亚洲av永久无码精品三区在线4| 亚洲国产精品综合久久久| 亚洲国产理论片在线播放| 亚洲国产av一区二区三区丶| 亚洲伊人久久大香线蕉啊| 亚洲a级在线观看| 久久亚洲精品国产亚洲老地址| 亚洲AV成人影视在线观看| 亚洲熟伦熟女专区hd高清| 亚洲男人的天堂网站| 亚洲av无码专区青青草原| 蜜芽亚洲av无码一区二区三区| www亚洲精品久久久乳| mm1313亚洲精品无码又大又粗| 亚洲国产精品碰碰| 国产成人亚洲综合| 亚洲永久无码3D动漫一区| 国产亚洲精品xxx| 亚洲视频精品在线| 亚洲成人福利在线| 久久亚洲国产最新网站| 看亚洲a级一级毛片| 国产91精品一区二区麻豆亚洲| 中文亚洲AV片在线观看不卡| 亚洲av伊人久久综合密臀性色 | 久久精品国产亚洲麻豆| 亚洲国产精品一区| 亚洲冬月枫中文字幕在线看| 亚洲码和欧洲码一码二码三码| 国产天堂亚洲精品| 自拍偷自拍亚洲精品情侣|