SmartDBA
更新时间:2024-03-14
SmartDBA
查询慢SQL诊断开通状态
使用以下代码可以查询慢SQL诊断开通状态
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.SlowSqlFlowStatus(instanceId)
if err != nil {
fmt.Printf("get slow sql flow status error: %+v\n", err)
return
}
fmt.Printf("get slow sql flow status success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
开通慢SQL诊断
使用以下代码可以开通慢SQL诊断
// import "github.com/baidubce/bce-sdk-go/services/rds"
err := client.EnableSlowSqlFlow(instanceId)
if err != nil {
fmt.Printf("enable slow sql flow error: %+v\n", err)
return
}
fmt.Printf("enable slow sql flow success\n")
关闭慢SQL诊断
使用以下代码可以关闭慢SQL诊断
// import "github.com/baidubce/bce-sdk-go/services/rds"
err := client.DisableSlowSqlFlow(instanceId)
if err != nil {
fmt.Printf("disable slow sql flow error: %+v\n", err)
return
}
fmt.Printf("disable slow sql flow success\n")
获取慢SQL诊断列表
使用以下代码可以获取慢SQL诊断列表
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &GetSlowSqlArgs{}
result, err := client.GetSlowSqlList(instanceId, args)
if err != nil {
fmt.Printf("get slow sql flow list error: %+v\n", err)
return
}
fmt.Printf("get slow sql flow list success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
根据SQLID获取慢SQL
使用以下代码可以根据SQLID获取慢SQL
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowSqlBySqlId(instanceId, sqlId)
if err != nil {
fmt.Printf("get slow sql detail by sqlid error: %+v\n", err)
return
}
fmt.Printf("get slow sql detail by sqlid success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL说明
使用以下代码可以获取慢SQL说明
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowSqlExplain(instanceId, sqlId, db)
if err != nil {
fmt.Printf("get slow sql explain error: %+v\n", err)
return
}
fmt.Printf("get slow sql explain success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取SQL模板维度的统计信息
使用以下代码可以获取SQL模板维度的统计信息
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetSlowSqlArgs{}
result, err := client.GetSlowSqlStatsDigest(instanceId, args)
if err != nil {
fmt.Printf("get slow sql stats digest error: %+v\n", err)
return
}
fmt.Printf("get slow sql stats digest success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL耗时分布
使用以下代码可以获取慢SQL耗时分布
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetSlowSqlDurationArgs{}
result, err := client.GetSlowSqlDuration(instanceId, args)
if err != nil {
fmt.Printf("get slow sql duration error: %+v\n", err)
return
}
fmt.Printf("get slow sql duration success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL来源IP分布
使用以下代码可以获取慢SQL来源IP分布
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetSlowSqlSourceArgs{}
result, err := client.GetSlowSqlSource(instanceId, args)
if err != nil {
fmt.Printf("get slow sql source error: %+v\n", err)
return
}
fmt.Printf("get slow sql source success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL中的表
使用以下代码可以获取慢SQL中的表
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowSqlSchema(instanceId, sqlId, db)
if err != nil {
fmt.Printf("get slow sql schema error: %+v\n", err)
return
}
fmt.Printf("get slow sql schema success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL中的列
使用以下代码可以获取慢SQL中的列
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowSqlTable(instanceId, sqlId, db, table)
if err != nil {
fmt.Printf("get slow sql table error: %+v\n", err)
return
}
fmt.Printf("get slow sql table success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL表中的索引
使用以下代码可以获取慢SQL表中的索引
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetSlowSqlIndexArgs{
SqlId: "e9fa9802-0d0e-41b4-b3ba-6496466b6cad",
Schema: "db1",
Table: "table1",
}
result, err := client.GetSlowSqlIndex(instanceId, args)
if err != nil {
fmt.Printf("get slow sql index error: %+v\n", err)
return
}
fmt.Printf("get slow sql index success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL趋势
使用以下代码可以获取慢SQL趋势
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetSlowSqlTrendArgs{
Start: "2023-05-05T05:30:13.000Z",
End: "2023-05-06T05:30:13.000Z",
}
result, err := client.GetSlowSqlTrend(instanceId, args)
if err != nil {
fmt.Printf("get slow sql trend error: %+v\n", err)
return
}
fmt.Printf("get slow sql trend success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取慢SQL调优建议
使用以下代码可以获取慢SQL调优建议
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSlowSqlAdvice(instanceId, sqlId, db)
if err != nil {
fmt.Printf("get slow sql advice error: %+v\n", err)
return
}
fmt.Printf("get slow sql advice success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取库表空间概况
使用以下代码可以获取库表空间概况
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetDiskInfo(instanceId)
if err != nil {
fmt.Printf("get disk info error: %+v\n", err)
return
}
fmt.Printf("get disk info success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取数据空间的数据库列表
使用以下代码可以获取数据空间的数据库列表
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetDbListSize(instanceId)
if err != nil {
fmt.Printf("get db list size info error: %+v\n", err)
return
}
fmt.Printf("get db list size info success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取数据空间表的详情
使用以下代码可以获取数据空间表的详情
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.GetTableListArgs{
DbName: "db1",
}
result, err := client.GetTableListInfo(instanceId, args)
if err != nil {
fmt.Printf("get table list error: %+v\n", err)
return
}
fmt.Printf("get table list success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取指定会话kill类型的相关参数
使用以下代码可以获取指定会话kill类型的相关参数
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetKillSessionTypes(instanceId)
if err != nil {
fmt.Printf("get kill session types error: %+v\n", err)
return
}
fmt.Printf("get kill session types success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取指定实例的会话概览
使用以下代码可以获取指定实例的会话概览
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSessionSummary(instanceId)
if err != nil {
fmt.Printf("get kill session summary error: %+v\n", err)
return
}
fmt.Printf("get kill session summary success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取指定实例的实时会话
使用以下代码可以获取指定实例的实时会话
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.SessionDetailArgs{}
result, err := client.GetSessionDetail(instanceId, args)
if err != nil {
fmt.Printf("get session detail error: %+v\n", err)
return
}
fmt.Printf("get session detail success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
校验执行kill操作的数据库用户及密码是否正确
使用以下代码可以校验执行kill操作的数据库用户及密码是否正确
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.KillSessionAuthArgs{}
result, err := client.CheckKillSessionAuth(instanceId, args)
if err != nil {
fmt.Printf("check kill session auth error: %+v\n", err)
return
}
fmt.Printf("check kill session auth success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取指定实例的会话kill记录
使用以下代码可以获取指定实例的会话kill记录
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.KillSessionHistory{}
result, err := client.GetKillSessionHistory(instanceId, args)
if err != nil {
fmt.Printf("get kill session history error: %+v\n", err)
return
}
fmt.Printf("get kill session history success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
根据传入的kill类型及类型所对应的值执行kill会话的操作
使用以下代码可以根据传入的kill类型及类型所对应的值执行kill会话的操作
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.KillSessionArgs{}
result, err := client.KillSession(instanceId, args)
if err != nil {
fmt.Printf("kill session error: %+v\n", err)
return
}
fmt.Printf("kill session success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取指定实例的会话统计
使用以下代码可以获取指定实例的会话统计
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSessionStatistics(instanceId)
if err != nil {
fmt.Printf("get session statistics error: %+v\n", err)
return
}
fmt.Printf("get session statistics success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
查询错误日志服务是否开启
使用以下代码可以查询错误日志服务是否开启
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetErrorLogStatus(instanceId)
if err != nil {
fmt.Printf("get error log status error: %+v\n", err)
return
}
fmt.Printf("get error log status success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
开启错误日志服务
使用以下代码可以开启错误日志服务
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.EnableErrorLog(instanceId)
if err != nil {
fmt.Printf("enable error log status error: %+v\n", err)
return
}
fmt.Printf("enable error log status success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
关闭错误日志服务
使用以下代码可以关闭错误日志服务
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.DisableErrorLog(instanceId)
if err != nil {
fmt.Printf("disable error log status error: %+v\n", err)
return
}
fmt.Printf("disable error log status success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取错误日志列表
使用以下代码可以获取错误日志列表
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.ErrorLogListArgs{}
result, err := client.GetErrorLogList(instanceId, args)
if err != nil {
fmt.Printf("get error log list error: %+v\n", err)
return
}
fmt.Printf("get error log list success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取实例限流规则列表
使用以下代码可以获取实例限流规则列表
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSqlFilterList(instanceId)
if err != nil {
fmt.Printf("get sql filter list error: %+v\n", err)
return
}
fmt.Printf("get sql filter list success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
获取某个限流规则详情
使用以下代码可以获取某个限流规则详情
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.GetSqlFilterDetail(instanceId, filterId)
if err != nil {
fmt.Printf("get sql filter detail error: %+v\n", err)
return
}
fmt.Printf("get sql filter detail success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
添加一条限流规则
使用以下代码可以添加一条限流规则
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.SqlFilterArgs{
FilterType: "SELECT",
FilterKey: "123",
FilterLimit: 0,
}
result, err := client.AddSqlFilter(instanceId, args)
if err != nil {
fmt.Printf("add sql filter error: %+v\n", err)
return
}
fmt.Printf("add sql filter success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
更新一条限流规则
使用以下代码可以更新一条限流规则
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.SqlFilterArgs{
FilterType: "SELECT",
FilterKey: "123",
FilterLimit: 0,
}
result, err := client.UpdateSqlFilter(instanceId, args)
if err != nil {
fmt.Printf("update sql filter error: %+v\n", err)
return
}
fmt.Printf("update sql filter success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
开启关闭某个限流规则
使用以下代码可以开启关闭某个限流规则
// import "github.com/baidubce/bce-sdk-go/services/rds"
args := &rds.StartOrStopSqlFilterArgs{
Action: "OFF",
}
result, err := client.StartOrStopSqlFilter(instanceId, filterId, args)
if err != nil {
fmt.Printf("start or stop sql filter error: %+v\n", err)
return
}
fmt.Printf("start or stop sql filter success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
删除某个限流规则
使用以下代码可以删除某个限流规则
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.DeleteSqlFilter(instanceId, filterId)
if err != nil {
fmt.Printf("delete sql filter error: %+v\n", err)
return
}
fmt.Printf("delete sql filter success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))
实例是否支持限流
使用以下代码可以实例是否支持限流
// import "github.com/baidubce/bce-sdk-go/services/rds"
result, err := client.IsAllowedSqlFilter(instanceId)
if err != nil {
fmt.Printf("is allowed sql filter error: %+v\n", err)
return
}
fmt.Printf("is allowed sql filter success\n")
jsonData, _ := json.Marshal(result)
fmt.Println(string(jsonData))