GaussDB(DWS)《ROACH小課堂Ⅰ測試方法篇之交互測試》
Chapter one. 集群運維管理交互篇

1.1 交互manage cn——增刪CN
交互對象簡介
通過gs_om的managecn功能,給集群增加或者刪除cn。
交互觀察點
備份后,集群通過managecn增加或者刪除了cn,導致cn數變更,或者ccn編號變更。對于后續增量備份或者恢復是否造成功能上的影響。
測試方法
1.? 導入數據,并查詢數據狀態
2.? 執行集群級全量備份
3.? 通過managecn刪除編號最小的cn
4.? 執行集群級全量恢復
5.? 啟動集群
6.? 查詢備份前和恢復后數據是否一致
1.2 交互gs_replace——實例和節點修復
交互對象簡介
當集群中某個節點或者實例故障,但是機器仍然可用。因為集群是主備模式的,使用gs_replace工具,通過備機rebuild主機實例,修復集群故障的實例或者節點。
交互觀察點
備份后,發生實例或者節點故障,通過gs_replace修復后。觀察修復后的集群,增量備份或者恢復功能是否正常。
測試方法
1.? 導入數據
2.? 執行備份
3.? 人為故障一個實例或者單節點卸載
4.? gs_replace修復故障實例或者節點
5.? 執行恢復
6.? 校驗數據一致性
1.3 交互warmstandby——溫備
交互對象簡介
當集群的單節點發生故障后,該主機無法使用,需要替換為新的主機時。通過gs_replace的warstandby工具,在不需要重建集群的情況下,平滑替換壞掉的主機。Warmstanby后,新主機的hostname和ip都會發生變化,且該主機上的數據,全部需要build重建。
交互觀察點
一個集群節點的hostname或者IP改變,是否會影響已完成備份集和節點的映射關系,進而影響增量備份或者恢復的功能。
測試方法
1.? 導入數據
2.? 執行備份
3.? warmstanby替換集群中的一個節點
4.? 執行恢復
5. 校驗數據一致性
1.4 交互gs_guc——參數設置
交互對象簡介
目前GaussDB(DWS)配置文件(“postgresql.conf”、“pg_hba.conf”)中的參數默認值都是單機的配置模式。應用程序可以通過調用gs_guc來設置適合自己的參數。簡而言之,通過gs_guc可以修改實例的參數配置信息。
交互觀察點
備份操作能否正確備份guc參數的值。
測試方法
1.? 修改guc參數并記錄當前結果
2.? 執行備份
3.? 再次修改guc參數值
4.? 執行恢復
5.? 確認guc參數值是否和備份前一致
1.5 交互logcial_cluster——邏輯集群
交互對象簡介
邏輯集群區別于物理集群,自定義物理集群中的多個或全部(無意義)節點作為一個邏輯上的集群。當物理集群規模較大時,劃分若干邏輯集群給不同用戶使用,可以有效提升物理資源的利用率,并在一定程度上做到不同業務數據隔離,eg,一個邏輯集群用于查詢,一個邏輯集群用于計算。
交互觀察點
備份和恢復后的數據一致性
測試方法
1. 創建邏輯集群:gs_lcctl -t create --name logical_cluster_roach -h hostname1,hostname2 --non-interactive
-name指定邏輯集群和對應nodegroup的名稱
-h指定用來創建邏輯集群的節點hostname,用逗號分割
2. 創建邏輯集群用戶和邏輯集群下的表:
create user roach password 'Roach@789' node group logical_cluster_roach;
set role roach password "Roach@789";
create table logical_tab1(id int) with(orientation=column) to group logical_cluster_roach;
create table logical_tab2(id int) with(orientation=column) to group logical_cluster_roach;
create table logical_tab3(id int) with(orientation=column) to group logical_cluster_roach;
insert into logical_tab1 values(generate_series(1,100));
insert into logical_tab2 values(generate_series(1,100));
insert into logical_tab3 values(generate_series(1,100));
3. 執行集群級備份:
Python3 $GPHOME/script/GaussRoach.py -t backup --media-destination /home/perfadm/media --metadata-destination /home/perfadm/meta --media-type disk --master-port 9009
4. 分別刪除和插入數據給邏輯集群下的一張表:
insert into roach.logical_tab2 values(generate_series(1,100));
drop table roach.logical_tab3;
5. 執行集群恢復:
python $GPHOME/script/GaussRoach.py -t restore --media-destination /home/perfadm/media --metadata-destination /home/perfadm/meta --media-type disk --master-port 9009 --backup-key 20200930_153821 –clean
6. 啟動集群:python $GPHOME/script/GaussRoach.py -t start
7. 查看邏輯集群數據恢復成功并校驗數據是否和備份時一致:
select count(*) from roach.logical_tab1;
select count(*) from roach.logical_tab2;
select count(*) from roach.logical_tab3;
1.6 交互upgrade——升級
交互對象簡介
使用gs_upgradectl工具,用戶可以根據GaussDB(DWS)提供的新特性,決定是否對現有系統進行升級。
交互觀察點
升級可能涉及系統表和數據庫組件的變更。升級成功成功后,觀察能否正常備份恢復。
測試方法
1.? 導入數據
2.? 安裝老版本集群
3.? gs_upgradectl自動升級集群
4.? 執行備份
5.? 只能恢復
6.? 數據一致性校驗
1.7 交互gs_expand/gs_shrink——擴容/縮容
交互對象簡介
gs_expand工具來幫助用戶在業務發展和數據量增加的情況下,集群性能和存儲等方面出現瓶頸后,可以使用gs_expand工具增加主機來提升集群的性能及存儲;隨著業務場景和數據量的變化,需要集群節點具有可擴展性以及可收縮性。GaussDB(DWS)提供了gs_shrink工具來幫助完成對數據庫集群節點進行縮容操作。
交互觀察點
擴容或者縮容,會改變集群的主機數和DN數,以及數據在DN上的分布。在擴容或者縮容完成后的集群上,備份恢復功能依然要能生效,且保證恢復后數據的一致性。
測試方法
1.? 導入數據
2.? 擴容/縮容
3.? 執行備份
4.? 執行恢復
5.? 數據一致性校驗
2?? Chapter two. 存儲交互篇
2.1 交互logical replication——邏輯復制
交互對象簡介
邏輯復制功能描述:完成不同數據庫之間的DML數據同步,低時延,支持兩套集群異形,同步期間兩套集群均為可讀可寫
邏輯復制流程:
1.主集群開啟邏輯復制功能和xlog邏輯復制,兩個guc參數
2.主集群創建邏輯復制槽
3.設置中間件SRD工具,連接兩個不同的數據庫
邏輯復制開啟,并建立連接后
當主集群數據庫執行DML時,記錄到xlog中的DML,會被邏輯復制解碼器,解碼到邏輯復制槽中緩存,然后重定向輸出到文件中,解碼出的就是DML的sql。
SDR中間件發送該文件到需要同步的數據庫集群上,由CN執行這個sql完成DML的重放,完成數據同步
交互觀察點
1.邏輯復制相關GUC參數——已驗證,DN上設置的參數,可以備份恢復
2.主集群創建邏輯復制槽時,在DN目錄下生成的物理文件——已驗證容災不會備份
測試方法
邏輯復制:
1.guc參數打開:
gs_guc set -I all -N all -Z datanode -c 'wal_level=logical'
gs_guc set -I all -N all -Z datanode -c 'enable_slot_log = on'
2.創建邏輯復制槽:
gsql -d postgres -p [dn_port] -c "select * from pg_create_logical_replication_slot('test_logical_slot', 'mppdb_decoding');"
3.查詢邏輯復制槽
execute direct on (dn_6001_6002) 'SELECT * FROM pg_replication_slots';
4.執行容災備份恢復
5.在備集群查詢相關guc參數以及創建邏輯復制槽時,DN目錄下是否生成物理文件
2.2 交互foreign table——外表對接
交互對象簡介
外表(external table)就像普通的表對像一樣,可以select等,只是它是只讀的,數據庫中只保存了表結構的描述,表數據卻沒有存放在數據庫內,而是存放在了文件系統上。當用戶想偶爾使用數據庫外的結構化數據時,用起外表來就非常方便,甚至比sqlldr都要方便的多。
外部表是在數據庫以外的文件系統上存儲的只讀表,例如EXCEL、CSV等文件
交互觀察點
1.容災備份恢復是否成功——成功
2.查詢外表是否存在——存在
測試方法
1.在主集群導入外表
postgres=# DROP FOREIGN TABLE IF EXISTS product_info_ext;
postgres=# CREATE FOREIGN TABLE product_info_ext(product_price integer not null,product_id char(30) not null,product_time date ,product_level char(10) ,product_name varchar(200) ,product_type1 varchar(20) ,product_type2 char(10) ,product_monthly_sales_cnt integer ,product_comment_time date ,product_comment_num integer ,product_comment_content varchar(200)) SERVER gsmpp_server OPTIONS(LOCATION 'gsfs://192.168.0.90:5000/*',FORMAT 'CSV' ,DELIMITER ',',ENCODING 'utf8',HEADER 'false',FILL_MISSING_FIELDS 'true',IGNORE_EXTRA_DATA 'true') READ ONLY LOG INTO product_info_err PER NODE REJECT LIMIT 'unlimited';
返回如下信息表示創建成功:
CREATE FOREIGN TABLE
2.執行容災備份恢復
3.在恢復后的集群中查詢外表是否存在
2.3 交互EC對接
交互對象簡介
SQL on other GaussDB是Extension Connector的功能之一,支持GaussDB(DWS)集群發送SQL語句給另一個GaussDB集群執行,并獲取執行結果,執行結果可以參與本地表關聯查詢或者入本地表或入本地文件系統。通俗來說,EC對接是指把SQL轉到另一個集群中的數據庫上執行
交互觀察點
1.是否影響容災功能——經評估,所需修改的配置不在備份內容中,執行容災恢復后需要重新配置Oracle環境,且備集群不感知
測試方法
1.安裝Oracle數據庫,并安裝相對應的對接工具
2.修改相關guc參數
3.執行容災備份恢復,檢查容災恢復是否成功
3???? Chapter three.SQL交互篇
3.1 交互PostGIS——處理地理信息系統空間型數據
交互對象簡介
PostGIS Extension是PostgreSQL的空間數據庫擴展,提供如下空間信息服務功能:空間對象、空間索引、空間操作函數和空間操作符。
PostGIS Extension完全遵循OpenGIS規范。
交互觀察點
1.是否影響容災功能——不影響
2.容災備份恢復后,備集群上postGIS是否可用——跨平臺場景不可用,同平臺可用
測試方法
1.停止集群,主集群分發postgis庫文件后kill om_monitor進程,重啟集群
2.執行容災備份恢復
3.2 交互CFUNCTION——C函數
交互對象簡介
Cfunction是一種c函數,是用來實現某些功能運算和完成各種特定操作的重要手段
交互觀察點
1.是否影響容災功能——不影響
2.跨平臺容災,是否生成正確的cfunc文件清單——文件清單在meta路徑下
3.同平臺容災——備集群cfunction可用
測試方法
1.導入500條cunction函數
2.執行容災全量備份恢復
3.查詢備集群元數據路徑下是否存在cfunc的清單(同平臺驗證cfunction可用性)
4.第一次全量備份結束后,再次導入300條cfunction
5.執行容災增量備份恢復
6. 查詢備集群元數據路徑下是否更新cfunc的清單(同平臺驗證cfunction可用性)
4?? Chapter four.安全交互篇
4.1 交互認證鑒權
交互對象簡介
為了使集群外用戶可以安全登錄至集群數據庫內進行查詢等操作,通過cert認證,MD5認證,和trust認證,三種認證鑒權來保證。
交互觀察點
1.是否影響容災功能——不影響
2.容災恢復后,完成備集群認證鑒權配置,驗證是否可通過認證鑒權的方式登錄恢復后的集群數據庫內——可以
3.容災恢復后,完成備集群認證鑒權配置,驗證是否可以不通過認證鑒權方式直接登錄恢復后的集群數據庫——不可以
測試方法
1.主集群分別執行三種認證鑒權方式:(操作比較繁瑣,整理在文檔中)
2.執行容災備份恢復
3.備集群按照《認證鑒權.txt》中的方式配置鑒權環境并檢查是否配置完成后,只能通過認證鑒權登錄備集群數據庫
4.2 交互私有表
交互對象簡介
創建具有INDEPENDENT屬性的私有用戶,針對該用戶的對象,數據庫管理員(包含初始用戶和其他管理員用戶)在未經其授權前,只能進行控制操作(DROP、ALTER、TRUNCATE),無權進行INSERT、DELETE、SELECT、UPDATE、COPY、GRANT、REVOKE、ALTER OWNER操作。
交互觀察點
1.是否影響容災功能——不影響
2.容災恢復后,私有用戶及其名下的數據是否可用——可用
測試方法
1.在主集群中創建一張私有表
1)連接postgres數據庫:
gsql -d postgres -p 6000 –r
2)創建independent用戶:
create user vip with independent identified by "vip1234.";
3)切換到independent用戶:
set role vip password "vip1234.";
4)在independent用戶下創建表并插入數據:
create table bible (id int,add text) with(orientation=column) distribute by hash(id);
insert into bible values(1008,'beijing');
2.執行容災備份恢復:
3.在備集群查詢私有用戶及其名下的數據是否可用
EI企業智能 Gauss AP 數據倉庫服務 GaussDB(DWS)
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。