1. 程式人生 > 其它 >Python的os的檔案複製

Python的os的檔案複製

【TcaplusDB知識庫】表操作—如何查詢事務詳情

查詢指定事務的詳細資訊,目前只支援查詢加表、變更表、刪除表、清空表、複製表資料五種事務的查詢,其沿用加表、修改表、清理表、刪除表、複製表資料的許可權。

請求地址

GET/POST
http://OmsAddress/app/newoms.php/webservice/oamp/transaction/detail/<set_id>/<trans_id>?cmd=cmdVal&ip-type=webservicerest&access-token=AccessTokenVal

url中GET引數說明

引數名稱 資料型別 說明
是否必填欄位 備註
set_id 整型 事務所在的叢集的id  
trans_id 整型 事務的id  
cmd(cmdVal) 整型 介面型別 查詢加表事務:cmd=10002 查詢修改表事務:cmd=10003 查詢清理表事務:cmd=10004 查詢刪除表事務:cmd=10005 查詢複製表資料事務:cmd=10008 (表、程序)資料備份cmd:10009 表資料構造cmd:10011 機器資料構造cmd:10012 資料匯入事務cmd:10013 索引事務務cmd:10022  

 

POST請求引數說明

引數名稱 資料型別 說明 是否必填欄位 備註
get_action 整型(0、1) 是否返回事務的action列表。0:不返回;1:返回。
oms:3.38.1

 

Data引數

使用json格式表示記錄相關資訊,示例如下:

{
  "get_action": 0
}

返回語法

返回引數說明

  1. 返回狀態碼不為200時,獲取資訊失敗,返回資料為錯誤資訊

  2. 返回狀態碼為200,表示成功獲取事務詳情

事務各欄位說明

欄位名稱 欄位型別 欄位含義
Id uint32 事務id
SetId uint32 事務所在叢集的set id
AppId int32 app id ,部分型別的事務的app id無意義,也沒有值
ZoneId int32 zone id,部分型別的事務的zone id無意義,也沒有值
Type
uint32 事務型別
Status uint32 狀態碼 ,各狀態碼含義見本介面的“事務狀態(status)列表,及使用webservice介面可實現的狀態轉化”說明
CanRedo tinyint 能否重做
CanSuspend tinyint 能否掛起
CanRollback tinyint 能否回滾
Reason uint32 狀態原因碼
Num uint32 涉及的資源數目
IdName string 表名、程序ID、節點名稱等資訊
Data string 資料資訊
Memo string 備註資訊
CreateUser string 事務建立者
CreateTime datetime 事務建立時間
UpdateTime datetime 事務更新時間
ExtendInfo string 對於擴容/縮容事務,該欄位儲存CleanShardData事務的ID,對於CleanShardData事務,該欄位儲存擴容/縮容的事務ID,如cmId=72415;其他用法自行定義
MaxConcurrentCount uint32 事務內最大並行action數, 最大值為10

 

事務的action的各欄位說明

欄位名稱 欄位型別 欄位含義
TransId uint32 action所屬事務的事務id
Id uint32 action id
AppId int32 app id
ZoneId int32 zone id
Type uint32 action型別
Status uint32 狀態碼 ,各狀態碼含義如下: Status = 1:初始化中 Status = 2:資源就緒,待執行 Status = 3:執行中 Status = 4:掛起 Status = 5:回滾中 Status = 6:完成 Status = 7:已結束 Status = 8:待恢復 Status = 9:跳過
Reason uint32 狀態原因碼
Num uint32 涉及的資源數目
IdName string 表操作存表名;程序操作存程序id
Data string 資料資訊
Context string action執行時的上下文資訊
CreateTime datetime 建立時間
ExecuteTime datetime 執行時間
UpdateTime datetime 更新時間

 

事務狀態(status)列表,及使用webservice介面可實現的狀態轉化

狀態a 狀態a可轉化的狀態b 狀態a => 狀態b使用的oms的介面
待點選執行(Status = 1) 等待執行佇列中;異常結束 執行事務(webservice可呼叫);異常結束事務(webservice不可呼叫)
等待執行佇列中(Status = 2)  
執行前準備中(Status = 3)  
執行中(Status = 4) 掛起 掛起事務(webservice不可呼叫)
掛起中(Status = 5) 待恢復;異常結束 恢復事務(webservice可呼叫);異常結束事務
待恢復(Status = 6)  
待回滾(Status = 7)  
回滾中(Status = 8) 異常結束 異常結束事務
已成功完成(Status = 9),此狀態為事務結束狀態,不能再進行相關操作  
異常結束(Status = 10),此狀態為事務結束狀態,不能再進行相關操作  
已暫停(Status = 1000)    

 

請求示例

通過 curl 方法發起請求

命令中的紅色部分是需要使用者自行填寫的引數,請參閱url中GET引數說明

curl -H "Content-type: application/json" -X "GET" -d '{ "get_action": 0 }' http://omsaddress/app/newoms.php/webservice/oamp/transaction/detail/%3Cset_id%3E/%3Ctrans_id%3E?cmd=cmdVal&ip-type=webservicerest&access-token=<access-token>&set_id=<set_id>&trans_id=<trans_id>

返回示例

成功返回示例

http請求的Status=200

1.成功查詢加表事務的詳情的用例

{
  "Id": 300,
  "AppId": 2,
  "ZoneId": 5,
  "Type": 283,
  "Status": 9,
  "Reason": 0,
  "Num": 0,
  "IdName": "add_table350",
  "Data": "proxy@;tcapsvr@master#1",
  "Memo": "AddTableManual",
  "CreateUser": "tcaplus",
  "CreateTime": "2021-07-23 16:17:20",
  "UpdateTime": "2021-07-23 16:17:47",
  "CanRedo": 1,
  "CanSuspend": 1,
  "CanRollback": 1,
  "SetId": 1,
  "ExtendInfo": "",
  "MaxConcurrentCount": 10,
  "StatusText": "已成功完成"
}

2.成功查詢修改表事務的詳情的用例

{
  "Id": 405,
  "AppId": 2,
  "ZoneId": 3,
  "Type": 281,
  "Status": 10,
  "CanRedo": 1,
  "CanSuspend": 1,
  "CanRol lback": 1,
  "Reason": 2,
  "Num": 0,
  "IdName": "test_table_generic_modify",
  "Data": "fc448894b1fc2e22ece9a6873b33c7b6",
  "Memo": "ModifyTable",
  "CreateUser": "tcaplus",
  "CreateTime": "2017-03-02 21:38:30",
  "UpdateTime": "2017-03-02 21:41:37",
  "SetId": 126,
  "ExtendInfo": "",
  "MaxConcurrentCount": 10
}

3.成功查詢清理表事務的詳情的用例

{
  "Id": 408,
  "AppId": 2,
  "ZoneId": 3,
  "Type": 279,
  "Status": 9,
  "CanRedo": 1,
  "CanSuspend": 1,
  "CanRollback": 1,
  "Reason": 0,
  "Num": 0,
  "IdName": "test_table_generic_modify",
  "Data": "",
  "Memo": "TruncateTable",
  "CreateUser": "tcaplus",
  "CreateTime": "2017-03-02 21:57:56",
  "UpdateTime": "2017-03-02 22:00:29",
  "SetId": 126,
  "ExtendInfo": "",
  "MaxConcurrentCount": 10
}

4.成功查詢刪除表事務的詳情的用例

{
  "Id": 411,
  "AppId": 2,
  "ZoneId": 3,
  "Type": 363,
  "Status": 9,
  "CanRedo": 1,
  "CanSuspend": 1,
  "CanRollback": 1,
  "Reason": 0,
  "Num": 0,
  "IdName": "test_table_generic_modify",
  "Data": "",
  "Memo": "DeleteTable",
  "CreateUser": "tcaplus",
  "CreateTime": "2017-03-02 22:12:49",
  "UpdateTime": "2017-03-02 22:17:38",
  "SetId": 126,
  "ExtendInfo": "",
  "MaxConcurrentCount": 10
}

錯誤返回

http請求的Status!=200

{
  "name": "Unauthorized",
  "message": "You are requesting with an invalid credential.",
  "code": 0,
  "status": 401,
  "type": "yii\\web UnauthorizedHttpException"
}
{
  "trans_id": [
      "for the cmd(cmd:10004),can only get those transaction of which type is in 279,type of transaction(id:411) is 363"
  ]
}

 

TcaplusDB是騰訊出品的分散式NoSQL資料庫,儲存和排程的程式碼完全自研。具備快取+落地融合架構、PB級儲存、毫秒級時延、無損水平擴充套件和複雜資料結構等特性。同時具備豐富的生態、便捷的遷移、極低的運維成本和五個九高可用等特點。客戶覆蓋遊戲、網際網路、政務、金融、製造和物聯網等領域。