日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ob测试过程问题记录

發(fā)布時間:2023/12/31 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ob测试过程问题记录 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、安裝部署、擴容、升級等部分較為順利,主要完成:

(1)OB單副本安裝測試

(2)OB三副本集群部署

(3)OBProxy安裝測試,請求轉(zhuǎn)發(fā)測試

(4)OCP2.4.3部署、并嘗試手工納管OB集群

(5)ODC部署和客戶端工具部署

(6)OB群集升級驗證

(7)集群在線彈性(擴容和縮容)驗證

(8)租戶資源管理(創(chuàng)建、擴容、縮容)驗證

遇到的問題:

(1)新老版本ocp安裝后,添加主機失敗,需要清理瀏覽器緩存才能成功

(2)添加主機對于mariadb包有依賴,將mysql包卸載安裝mariadb才能添加成功

(3)ocp的oracle租戶界面沒有【用戶管理】

(4)oms的增量同步功能有點問題;oms全量遷移20g數(shù)據(jù)4小時(跟源端庫的性能有關(guān)?)

(5)ocp英文版本有中文頁面

(6)oms同步任務經(jīng)常pending住,發(fā)現(xiàn)有些oms組件狀態(tài)異常,需要重啟oms docker或者此組件才能恢復

(7)ocp擴容集群(增加zone)后,rootservice_list未把新增的zone加進去,需要手動修改添加;刪除zone后也不會更新rootservice_list,需要手動修改移除

(8)命令行進行備集群到新主集群的轉(zhuǎn)換,ocp上新主集群還是顯示備集群;新備集群顯示備集群;導致ocp無法進行切主操作

(9)已經(jīng)將某observer從集群中刪除,ocp上主機信息【所屬OB集群】仍顯示屬于這個ob集群,需要更新源庫

obclient> update compute_host set status='AVAILABLE' where name='ob2';

Query OK, 1 row affected (0.00 sec)

obclient> delete from compute_host_service where host_id=1000011;

Query OK, 1 row affected (0.01 sec)

2、功能驗證,發(fā)現(xiàn)oracle的大部分功能ob的oracle租戶都可以實現(xiàn),但少部分對oracle的支持不完善,主要完成:

(1)租戶生命周期管理驗證

(2)OB的連接(命令行、jdbc等)驗證

(3)C程序連接OB驗證

(4)OB的字符集的驗證

(5)系統(tǒng)參數(shù)(全局、租戶、zone)生效、日志輸出驗證

(6)資源健康監(jiān)控(全局資源、租戶資源等、性能等)驗證

(7)OB的SQL(DDL/DML/DCL)驗證

(8)大表在線的DDL驗證,可以實現(xiàn)dml過程中對大表ddl操作

(9)OB表組(Hash/List/Range)、表分區(qū)(Hash/List/Range)、索引功能驗證

(10)Oracle兼容性功能(觸發(fā)器、視圖、函數(shù)、dblink等)驗證

遇到的問題:

(1)c程序連接ob的oci接口函數(shù)不完整,研發(fā)在進行中,升級obproxy到1.8.6暫時解決sql卡住問題

(2)ocp顯示的性能數(shù)據(jù)只能保留1周,后端不確定是否有更長時間之前的性能數(shù)據(jù)

(3)profile、Role等不支持

(4)索引rebuild不支持

(5)dblink可以創(chuàng)建,但引用時報錯"已驗證觸發(fā)器、視圖、存儲過程,待驗證dblink、package

obclient> select * from DBLIBK_TEST.t1@mylink;

ERROR:

Unknown Error

obclient> select * from TEST.t1@mylink;

ORA-01861: literal does not match format string

"

(6)對無主鍵表添加主鍵不支持

obclient> alter table test_acid_a add primary key(id);

ORA-00600: internal error code, arguments: -4007, Not supported feature or function

obclient>

(7)批量插入只支持10000左右的數(shù)據(jù),超過報錯ORA-00600: internal error code, arguments: -6212, Statement is timeout),已通過升級obproxy解決

(8)分區(qū)表不支持分區(qū)交換exchange partition?

(9)dba_segments不包含所有表?

(10)查詢gv$partition中不存在的租戶報timeout

set session ob_query_timeout=1000000000;

obclient> select * from gv$partition where tenant_id='10001';

ERROR 4012 (25000): Statement is timeout

obclient> select tenant_id from ?gv$partition group by tenant_id;

+-----------+

| tenant_id |

+-----------+

| ? ? ? ? 1 |

| ? ? ?1003 |

+-----------+

2 rows in set (0.15 sec)

(11)

3、性能驗證整體沒問題,已完成

(1)benchmarksql對OB集群性能測試

(2)Jmeter簡單測試OB

(3)OB集群啟停時間驗證

4、ob高可用測試符合paxos,能保證某個zone down時的高可用和快速恢復,已完成:

(1)OBserver三節(jié)點節(jié)點故障高可用驗證

(2)LVS三副本負載均衡obproxy的驗證

(3)管理節(jié)點(rootserver)、計算節(jié)點異常驗證

(4)重建故障節(jié)點驗證

(5)網(wǎng)卡、服務器、磁盤異常驗證

(8)群集異常掉電故障模擬驗證

遇到的問題:

(1)lvs配置有些問題

(2)集群斷電測試:需要先手動mount nfs,保證nfs目錄正常可用再起observer,否則日志備份失敗;

發(fā)現(xiàn)被接管的集群的所有observer都恢復正常,ocp才能正確顯示ob集群,否則會顯示ob集群不可用;

mount萬nfs后需要手動ALTER SYSTEM noarchivelog/archivelog重啟日志備份進程;且obproxy若安裝在斷電的節(jié)點,需要手動起

集群重啟之后不能直接進行增量備份,需要先進行全備(全備之前要進行合并),否則報錯

2021-02-24 16:40:02.169 ERROR 55 --- [ ? ? ? ? task-9,4616ae5921df434e,1ec1d0662bc7] c.a.o.s.o.b.PhysicalBackupTaskService ? ?: data backup pre-check failed, full data backup needed before incremental data backup

log archive status is interrupted,需要重啟下log備份進程alter system noarchivelog/archivelog; ?

5、ob的備份恢復測試,邏輯備份obdump有些問題,已經(jīng)解決

(1)OB數(shù)據(jù)物理備份、恢復驗證

(2)OB數(shù)據(jù)邏輯備份、恢復驗證

(3)OB的回收站、閃回表、回滾表功能驗證

遇到的問題:

(1)obdumper導出對象定義暫時由于ob版本問題擱置(已升級到2.2.76解決

(2)過期的備份不能自動刪除,黑屏刪除命令有問題

obclient> ALTER SYSTEM SET DELETE OBSOLETE;

ORA-00900: You have an error in your SQL syntax; check the manual that corresponds to your OceanBase version for the right syntax to use near 'DELETE OBSOLETE' at line 1

(3)備份策略問題--黑屏應該查詢哪張表

6、測試ocp告警發(fā)送到釘釘已完成

7、分布式事務能力(原子性、一致性、隔離性等)驗證

obclient> set session ob_query_timeout=1000000000;

Query OK, 0 rows affected (0.00 sec)

obclient> delimiter //

declare

obclient> declare

? ?-> i number;

? ?-> rand number;

? ?-> begin

? ?-> for i in 1..99999 loop

? ?-> update test_acid_a set col1=i where id=1;

? ?-> update test_acid_a set col1=i where id=2;

? ?-> update test_acid_a set col1=i where id=3;

? ?-> update test_acid_a set col1=i where id=4;

? ?-> update test_acid_a set col1=i where id=5;

? ?-> update test_acid_a set col1=i where id=6;

? ?-> update test_acid_a set col1=i where id=7;

? ?-> update test_acid_a set col1=i where id=8;

? ?-> update test_acid_a set col1=i where id=9;

? ?-> update test_acid_a set col1=i where id=10;

? ?-> update test_acid_a set col1=i where id=11;

? ?-> update test_acid_a set col1=i where id=12;

? ?-> select dbms_random.random into rand from dual;

? ?-> ? ? if mod(rand,2)=1 then

? ?-> ? ? ? ? ? ? commit;

? ?-> ? ? ? ? else

? ?-> ? ? ? ? ? ? rollback;

? ?-> ? ? ? ? end if;

? ?-> end loop;

? ?-> end;

? ?-> //

ORA-00600: internal error code, arguments: -6212, Statement is timeout

obclient> delimiter ;

8、ob專家來寧交流問題記錄

1、使用ob需要注意的點

(1)每個observer建議不超過5萬分區(qū)(ob痛點,到3.1版本支持20萬分區(qū))

(2)ob不支持額外加主鍵(ob痛點),且create table as select * from 不會帶主鍵,建議create相同表結(jié)構(gòu)的表時直接create ,不建議主鍵多于4個字段

(3)ob的分區(qū)鍵一定要是主鍵的一部分(ob的痛點)

(4)ob的oci接口需要適配,螞蟻建議浩鯨列出oci列表,跟進ob開發(fā);ob建議jdbc流式讀取

(5)ob初始化時就要指定足夠的盤大小,后期不能擴磁盤(除非擴機器或者重建節(jié)點)

(6)dml操作時不寫clog(較快),commit時才寫clog并落盤(commit較慢),且clog為順序io(wal);

(7)ob有保護機制,設置ob_trx_idle_timeout(默認為120s),如果事務長時間不commit,會自動回滾事務;建議跑批業(yè)務拆為多個短事務(間隔上千行)分批提交

(8)上線的oracle租戶不多,螞蟻建議使用oracle租戶(mysql租戶也不支持存儲過程)

(9)浩鯨提出國際項目(尤其歐洲)對第三方軟件(各種jar包)的合規(guī)性限制較大,需要螞蟻確認下第三方軟件的合規(guī)性問題

(10)ob_query_timeout默認是100s且不建議運維從集群層面調(diào)大,需要開發(fā)對長查詢加上hint或者在session層面調(diào)整

(11)tablegroup訂單表和訂單子表建議選擇分區(qū)數(shù)為數(shù)量較大的那個,避免分布式事務

(12)hash分區(qū)建議分區(qū)數(shù)不要太小(hash分區(qū)不能加分區(qū))

(13)變化數(shù)據(jù)都存儲在內(nèi)存,白天都是隨機讀,不落盤,晚上基于基線meger隨機寫;合并之前如果斷電,恢復時如果redo體量大,ob的策略是從其他副本全量拉數(shù)據(jù)

(14)oms同步最好讓ob廠家來搭建oms,否則同步可能會有問題

(15)不太建議使用二級分區(qū)

(16)多副本默認只有主副本提供讀寫服務(除非指定弱一致性讀,不太推薦)

(17)建議初始設置primary zone來避免分布式事務,建議unit=1

(18)建議全ssd(螞蟻內(nèi)部全flash卡),且要考慮clog直接落盤,需要配置高些(但ob的瓶頸不在io)

2、后期發(fā)展(ob3.x)

(1)高版本計算存儲分離

(2)完善對于oracle租戶的支持如dblink(ob-ob,ob-oracle的dblink)、分區(qū)交換等

3、零碎知識點

(1)tpcc測試:oracle租戶,阿里云上,上千臺主機,10%的分布式事務

(2)大部分副本所在的機房提供讀寫能力;跨城市最好遠端城市為只讀副本;備集群可以只要一個副本(省資源)、也可以多副本

(3)內(nèi)存絕對隔離、cpu相對隔離,io不做隔離(ob的瓶頸不是io,是內(nèi)存或cpu)

(4)轉(zhuǎn)儲相當于checkpoint;螞蟻每天合并5、6小時,(合并之前如果斷電,恢復時如果redo體量大,ob的策略是從其他副本全量拉數(shù)據(jù));三副本如果在合并之前全部斷電,只能等待應用redo

(5)paxos協(xié)議:commit要等最少兩個副本返回成功(事務會有個事務超時時間120s,長事務或者大事務會導致自動回滾,);只讀副本不參與決策(只讀副本的observer的配置可以比其他observer低)

(6)主副本如果down掉,obproxy先去查down掉的主副本、發(fā)現(xiàn)不可用再去找其他的好的副本,時間會長些(obproxy的最大連接數(shù)8000)

(7)ob建議使用存儲過程;ob insert可以values多個(可以跟mysql一致)

(8)還原點:restorepoint(中間表結(jié)構(gòu)不能改變,只能查詢那個還原點的數(shù)據(jù),多一秒少一秒無法查詢)

(9)手動同步sequence時最大值增加一些

(10)clog大小建議內(nèi)存4倍

(11)sql審計對性能影響很小(旁路記錄),螞蟻內(nèi)部也是開的

(12)ob的lsm tree沒有碎片的概念;5c對應10個線程(50 c++線程);可以ise加速sas

總結(jié)

以上是生活随笔為你收集整理的ob测试过程问题记录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。