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