Skip to content

Commit

Permalink
Add mysql pmax partition
Browse files Browse the repository at this point in the history
  • Loading branch information
negbie committed Mar 25, 2018
1 parent af4ae17 commit 6d6a815
Show file tree
Hide file tree
Showing 9 changed files with 109 additions and 93 deletions.
10 changes: 5 additions & 5 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ type HeplifyServer struct {
DBDataTable string `default:"homer_data"`
DBConfTable string `default:"homer_configuration"`
DBPath string `default:""`
DBBulk int `default:"100"`
DBBulk int `default:"200"`
DBTimer int `default:"2"`
DBRotate bool `default:"true"`
DBRotateLog string `default:"6h"`
Expand Down Expand Up @@ -50,12 +50,12 @@ func NewConfig() *HeplifyServer {
DBDataTable: "homer_data",
DBConfTable: "homer_configuration",
DBPath: "",
DBBulk: 100,
DBBulk: 200,
DBTimer: 2,
DBRotate: true,
DBRotateLog: "1h",
DBRotateSip: "1h",
DBRotateQos: "1d",
DBRotateLog: "6h",
DBRotateSip: "2h",
DBRotateQos: "12h",
DBDropDays: 0,
SentryDSN: "",
AlegID: "x-cid",
Expand Down
1 change: 1 addition & 0 deletions database/database-packr.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ func init() {
packr.PackJSONBytes("./files", "mysql/droptbl.sql", "\"LS0gbmFtZTogZHJvcC1sb2dzLXRhYmxlCkRST1AgVEFCTEUgbG9nc19jYXB0dXJlX2FsbF9UYWJsZURhdGU7CgotLSBuYW1lOiBkcm9wLXJlcG9ydC10YWJsZQpEUk9QIFRBQkxFIHJlcG9ydF9jYXB0dXJlX2FsbF9UYWJsZURhdGU7CgotLSBuYW1lOiBkcm9wLXJ0Y3AtdGFibGUKRFJPUCBUQUJMRSBydGNwX2NhcHR1cmVfYWxsX1RhYmxlRGF0ZTsKCi0tIG5hbWU6IGRyb3AtY2FsbC10YWJsZQpEUk9QIFRBQkxFIHNpcF9jYXB0dXJlX2NhbGxfVGFibGVEYXRlOwoKLS0gbmFtZTogZHJvcC1yZWdpc3RyYXRpb24tdGFibGUKRFJPUCBUQUJMRSBzaXBfY2FwdHVyZV9yZWdpc3RyYXRpb25fVGFibGVEYXRlOw==\"")
packr.PackJSONBytes("./files", "mysql/insconf.sql", "\"LS0gbmFtZTogaW5zZXJ0LWFsaWFzLXRhYmxlCklOU0VSVCBJTlRPIGBhbGlhc2AgKGBpZGAsIGBnaWRgLCBgaXBgLCBgcG9ydGAsIGBjYXB0dXJlX2lkYCwgYGFsaWFzYCwgYHN0YXR1c2AsIGBjcmVhdGVkYCkgVkFMVUVTCigxLCAxMCwgJzE5Mi4xNjguMC4zMCcsIDAsICdob21lcjAxJywgJ3Byb3h5MDEnLCAxLCAnMjAxNC0wNi0xMiAyMDozNjo1MCcpOwoKLS0gbmFtZTogaW5zZXJ0LWdyb3VwLXRhYmxlCklOU0VSVCBJTlRPIGBncm91cGAgKGBnaWRgLCBgbmFtZWApIFZBTFVFUyAoMTAsICdBZG1pbmlzdHJhdG9yJyk7CgotLSBuYW1lOiBpbnNlcnQtbm9kZS10YWJsZQpJTlNFUlQgSU5UTyBgbm9kZWAgKGBpZGAsIGBob3N0YCwgYGRibmFtZWAsIGBkYnBvcnRgLCBgZGJ1c2VybmFtZWAsIGBkYnBhc3N3b3JkYCwgYGRidGFibGVzYCwgYG5hbWVgLCBgc3RhdHVzYCkgVkFMVUVTCigxLCAnMTI3LjAuMC4xJywgJ2hvbWVyX2RhdGEnLCAnMzMwNicsICdob21lcl91c2VyJywgJ2hvbWVyX3Bhc3N3b3JkJywgJ3NpcF9jYXB0dXJlJywgJ2hvbWVyMDEnLCAxKTsKCi0tIG5hbWU6IGluc2VydC1zZXR0aW5nLXRhYmxlCklOU0VSVCBJTlRPIGBzZXR0aW5nYCAoYGlkYCwgYHVpZGAsIGBwYXJhbV9uYW1lYCwgYHBhcmFtX3ZhbHVlYCwgYHZhbGlkX3BhcmFtX2Zyb21gLCBgdmFsaWRfcGFyYW1fdG9gLCBgcGFyYW1fcHJpb2AsIGBhY3RpdmVgKSBWQUxVRVMKKDEsIDEsICd0aW1lcmFuZ2UnLCAneyJmcm9tIjoiMjAxNS0wNS0yNlQxODozNDo0Mi42NTRaIiwidG8iOiIyMDE1LTA1LTI2VDE4OjQ0OjQyLjY1NFoifScsICcyMDEyLTAxLTAxIDAwOjAwOjAwJywgJzIwMzItMTItMDEgMDA6MDA6MDAnLCAxMCwgMSk7CgotLSBuYW1lOiBpbnNlcnQtdXNlci10YWJsZQpJTlNFUlQgSU5UTyBgdXNlcmAgKGB1aWRgLCBgZ2lkYCwgYGdycGAsIGB1c2VybmFtZWAsIGBwYXNzd29yZGAsIGBmaXJzdG5hbWVgLCBgbGFzdG5hbWVgLCBgZW1haWxgLCBgZGVwYXJ0bWVudGAsIGByZWdkYXRlYCwgYGxhc3R2aXNpdGAsIGBhY3RpdmVgKSBWQUxVRVMKKDEsIDEwLCAndXNlcnMsYWRtaW5zJywgJ2FkbWluJywgUEFTU1dPUkQoJ3Rlc3QxMjMnKSwgJ0FkbWluJywgJ0FkbWluJywgJ2FkbWluQHRlc3QuY29tJywgJ1ZvaWNlIEVuZ2luZXJpbmcnLCAnMjAxMi0wMS0xOSAwMDowMDowMCcsICcyMDE1LTA1LTI5IDA3OjE3OjM1JywgMSk7CgotLSBuYW1lOiBpbnNlcnQtdXNlcl9tZW51LXRhYmxlCklOU0VSVCBJTlRPIGB1c2VyX21lbnVgIChgaWRgLCBgbmFtZWAsIGBhbGlhc2AsIGBpY29uYCwgYHdlaWdodGAsIGBhY3RpdmVgKSBWQUxVRVMKKCdfMTQyNjAwMTQ0NDYzMCcsICdTSVAgU2VhcmNoJywgJ3NlYXJjaCcsICdmYS1zZWFyY2gnLCAxMCwgMSksCignXzE0Mjc3MjgzNzE2NDInLCAnSG9tZScsICdob21lJywgJ2ZhLWhvbWUnLCAxLCAxKTsK\"")
packr.PackJSONBytes("./files", "mysql/parlog.sql", "\"LS0gbmFtZTogY3JlYXRlLXBhcnRpdGlvbi1sb2dzX2NhcHR1cmUKQUxURVIgVEFCTEUgbG9nc19jYXB0dXJlX2FsbF9UYWJsZURhdGUgQUREIFBBUlRJVElPTiAoUEFSVElUSU9OIHBQYXJ0aXRpb25OYW1lX3BucjAwMDAgVkFMVUVTIExFU1MgVEhBTiAoIFVOSVhfVElNRVNUQU1QKCdTdGFydFRpbWUnKSApKTsK\"")
packr.PackJSONBytes("./files", "mysql/parmax.sql", "\"LS0gbmFtZTogY3JlYXRlLXBhcnRpdGlvbm1heC1sb2dzX2NhcHR1cmUKQUxURVIgVEFCTEUgbG9nc19jYXB0dXJlX2FsbF9UYWJsZURhdGUgQUREIFBBUlRJVElPTiAoUEFSVElUSU9OIHBtYXggVkFMVUVTIExFU1MgVEhBTiBNQVhWQUxVRSk7CgotLSBuYW1lOiBjcmVhdGUtcGFydGl0aW9ubWF4LXJlcG9ydF9jYXB0dXJlCkFMVEVSIFRBQkxFIHJlcG9ydF9jYXB0dXJlX2FsbF9UYWJsZURhdGUgQUREIFBBUlRJVElPTiAoUEFSVElUSU9OIHBtYXggVkFMVUVTIExFU1MgVEhBTiBNQVhWQUxVRSk7CgotLSBuYW1lOiBjcmVhdGUtcGFydGl0aW9ubWF4LXJ0Y3BfY2FwdHVyZQpBTFRFUiBUQUJMRSBydGNwX2NhcHR1cmVfYWxsX1RhYmxlRGF0ZSBBREQgUEFSVElUSU9OIChQQVJUSVRJT04gcG1heCBWQUxVRVMgTEVTUyBUSEFOIE1BWFZBTFVFKTsKCi0tIG5hbWU6IGNyZWF0ZS1wYXJ0aXRpb25tYXgtc2lwX2NhcHR1cmVfY2FsbApBTFRFUiBUQUJMRSBzaXBfY2FwdHVyZV9jYWxsX1RhYmxlRGF0ZSBBREQgUEFSVElUSU9OIChQQVJUSVRJT04gcG1heCBWQUxVRVMgTEVTUyBUSEFOIE1BWFZBTFVFKTsKCi0tIG5hbWU6IGNyZWF0ZS1wYXJ0aXRpb25tYXgtc2lwX2NhcHR1cmVfcmVnaXN0cmF0aW9uCkFMVEVSIFRBQkxFIHNpcF9jYXB0dXJlX3JlZ2lzdHJhdGlvbl9UYWJsZURhdGUgQUREIFBBUlRJVElPTiAoUEFSVElUSU9OIHBtYXggVkFMVUVTIExFU1MgVEhBTiBNQVhWQUxVRSk7\"")
packr.PackJSONBytes("./files", "mysql/parqos.sql", "\"LS0gbmFtZTogY3JlYXRlLXBhcnRpdGlvbi1yZXBvcnRfY2FwdHVyZQpBTFRFUiBUQUJMRSByZXBvcnRfY2FwdHVyZV9hbGxfVGFibGVEYXRlIEFERCBQQVJUSVRJT04gKFBBUlRJVElPTiBwUGFydGl0aW9uTmFtZV9wbnIwMDAwIFZBTFVFUyBMRVNTIFRIQU4gKCBVTklYX1RJTUVTVEFNUCgnU3RhcnRUaW1lJykgKSk7CgotLSBuYW1lOiBjcmVhdGUtcGFydGl0aW9uLXJ0Y3BfY2FwdHVyZQpBTFRFUiBUQUJMRSBydGNwX2NhcHR1cmVfYWxsX1RhYmxlRGF0ZSBBREQgUEFSVElUSU9OIChQQVJUSVRJT04gcFBhcnRpdGlvbk5hbWVfcG5yMDAwMCBWQUxVRVMgTEVTUyBUSEFOICggVU5JWF9USU1FU1RBTVAoJ1N0YXJ0VGltZScpICkpOwo=\"")
packr.PackJSONBytes("./files", "mysql/parsip.sql", "\"LS0gbmFtZTogY3JlYXRlLXBhcnRpdGlvbi1zaXBfY2FwdHVyZV9jYWxsCkFMVEVSIFRBQkxFIHNpcF9jYXB0dXJlX2NhbGxfVGFibGVEYXRlIEFERCBQQVJUSVRJT04gKFBBUlRJVElPTiBwUGFydGl0aW9uTmFtZV9wbnIwMDAwIFZBTFVFUyBMRVNTIFRIQU4gKCBVTklYX1RJTUVTVEFNUCgnU3RhcnRUaW1lJykgKSk7CgotLSBuYW1lOiBjcmVhdGUtcGFydGl0aW9uLXNpcF9jYXB0dXJlX3JlZ2lzdHJhdGlvbgpBTFRFUiBUQUJMRSBzaXBfY2FwdHVyZV9yZWdpc3RyYXRpb25fVGFibGVEYXRlIEFERCBQQVJUSVRJT04gKFBBUlRJVElPTiBwUGFydGl0aW9uTmFtZV9wbnIwMDAwIFZBTFVFUyBMRVNTIFRIQU4gKCBVTklYX1RJTUVTVEFNUCgnU3RhcnRUaW1lJykgKSk7\"")
packr.PackJSONBytes("./files", "mysql/tblconf.sql", "\"LS0gbmFtZTogY3JlYXRlLWFsaWFzLXRhYmxlCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGBhbGlhc2AgKAogIGBpZGAgaW50KDEwKSBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKICBgZ2lkYCBpbnQoNSkgTk9UIE5VTEwgREVGQVVMVCAwLAogIGBpcGAgdmFyY2hhcig4MCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgcG9ydGAgaW50KDEwKSBOT1QgTlVMTCBERUZBVUxUICcwJywKICBgY2FwdHVyZV9pZGAgdmFyY2hhcigxMDApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYGFsaWFzYCB2YXJjaGFyKDEwMCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgaXNfc3RwYCB0aW55aW50KDEpIE5PVCBOVUxMIERFRkFVTFQgMCwKICBgc3RhdHVzYCB0aW55aW50KDEpIE5PVCBOVUxMIERFRkFVTFQgMCwKICBgY3JlYXRlZGAgdGltZXN0YW1wIE5PVCBOVUxMIERFRkFVTFQgQ1VSUkVOVF9USU1FU1RBTVAgT04gVVBEQVRFIENVUlJFTlRfVElNRVNUQU1QLAogIFBSSU1BUlkgS0VZIChgaWRgKSwKICBVTklRVUUgS0VZIGBpZGAgKGBpZGApLAogIFVOSVFVRSBLRVkgYGhvc3RfMmAgKGBpcGAsYHBvcnRgLGBjYXB0dXJlX2lkYCksCiAgS0VZIGBob3N0YCAoYGlwYCkKKSBFTkdJTkU9SW5ub0RCICBERUZBVUxUIENIQVJTRVQ9dXRmODsKCi0tIG5hbWU6IGNyZWF0ZS1ncm91cC10YWJsZQpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgZ3JvdXBgICgKICBgZ2lkYCBpbnQoMTApIE5PVCBOVUxMIERFRkFVTFQgMCwKICBgbmFtZWAgdmFyY2hhcigxMDApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgVU5JUVVFIEtFWSBgZ2lkYCAoYGdpZGApCikgRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xOwoKLS0gbmFtZTogY3JlYXRlLWxpbmtfc2hhcmUtdGFibGUKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgYGxpbmtfc2hhcmVgICgKICBgaWRgIGludCgxMCkgTk9UIE5VTEwgQVVUT19JTkNSRU1FTlQsCiAgYHVpZGAgaW50KDEwKSBOT1QgTlVMTCBERUZBVUxUIDAsCiAgYHV1aWRgIHZhcmNoYXIoMTIwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBkYXRhYCB0ZXh0IE5PVCBOVUxMLAogIGBleHBpcmVgIGRhdGV0aW1lIE5PVCBOVUxMIERFRkFVTFQgJzIwMzItMTItMzEgMDA6MDA6MDAnLAogIGBhY3RpdmVgIHRpbnlpbnQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMScsCiAgUFJJTUFSWSBLRVkgKGBpZGApCikgRU5HSU5FPUlubm9EQiAgREVGQVVMVCBDSEFSU0VUPWxhdGluMTsKCi0tIG5hbWU6IGNyZWF0ZS1ub2RlLXRhYmxlCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGBub2RlYCAoCiAgYGlkYCBpbnQoMTApIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAogIGBob3N0YCB2YXJjaGFyKDgwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBkYm5hbWVgIHZhcmNoYXIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBkYnBvcnRgIHZhcmNoYXIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBkYnVzZXJuYW1lYCB2YXJjaGFyKDEwMCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgZGJwYXNzd29yZGAgdmFyY2hhcigxMDApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYGRidGFibGVzYCB2YXJjaGFyKDEwMCkgTk9UIE5VTEwgREVGQVVMVCAnc2lwX2NhcHR1cmUnLAogIGBuYW1lYCB2YXJjaGFyKDEwMCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgc3RhdHVzYCB0aW55aW50KDEpIE5PVCBOVUxMIERFRkFVTFQgMCwKICBQUklNQVJZIEtFWSAoYGlkYCksCiAgVU5JUVVFIEtFWSBgaWRgIChgaWRgKSwKICBVTklRVUUgS0VZIGBob3N0XzJgIChgaG9zdGApLAogIEtFWSBgaG9zdGAgKGBob3N0YCkKKSBFTkdJTkU9SW5ub0RCICBERUZBVUxUIENIQVJTRVQ9dXRmODsKCi0tIG5hbWU6IGNyZWF0ZS1zZXR0aW5nLXRhYmxlCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGBzZXR0aW5nYCAoCiAgYGlkYCBpbnQoMTApIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAogIGB1aWRgIGludCgxMCkgTk9UIE5VTEwgREVGQVVMVCAnMCcsCiAgYHBhcmFtX25hbWVgIHZhcmNoYXIoMTIwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBwYXJhbV92YWx1ZWAgdGV4dCBOT1QgTlVMTCwKICBgdmFsaWRfcGFyYW1fZnJvbWAgZGF0ZXRpbWUgTk9UIE5VTEwgREVGQVVMVCAnMjAxMi0wMS0wMSAwMDowMDowMCcsCiAgYHZhbGlkX3BhcmFtX3RvYCBkYXRldGltZSBOT1QgTlVMTCBERUZBVUxUICcyMDMyLTEyLTAxIDAwOjAwOjAwJywKICBgcGFyYW1fcHJpb2AgaW50KDIpIE5PVCBOVUxMIERFRkFVTFQgJzEwJywKICBgYWN0aXZlYCBpbnQoMSkgTk9UIE5VTEwgREVGQVVMVCAnMScsCiAgUFJJTUFSWSBLRVkgKGBpZGApLAogIFVOSVFVRSBLRVkgYHVpZF8yYCAoYHVpZGAsYHBhcmFtX25hbWVgKSwKICBLRVkgYHBhcmFtX25hbWVgIChgcGFyYW1fbmFtZWApLAogIEtFWSBgdWlkYCAoYHVpZGApCikgRU5HSU5FPUlubm9EQiAgREVGQVVMVCBDSEFSU0VUPWxhdGluMTsKCi0tIG5hbWU6IGNyZWF0ZS11c2VyLXRhYmxlCkNSRUFURSBUQUJMRSBJRiBOT1QgRVhJU1RTIGB1c2VyYCAoCiAgYHVpZGAgaW50KDEwKSB1bnNpZ25lZCBOT1QgTlVMTCBBVVRPX0lOQ1JFTUVOVCwKICBgZ2lkYCBpbnQoMTApIE5PVCBOVUxMIERFRkFVTFQgJzEwJywKICBgZ3JwYCB2YXJjaGFyKDIwMCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgdXNlcm5hbWVgIHZhcmNoYXIoNTApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYHBhc3N3b3JkYCB2YXJjaGFyKDEwMCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgZmlyc3RuYW1lYCB2YXJjaGFyKDI1MCkgTk9UIE5VTEwgREVGQVVMVCAnJywKICBgbGFzdG5hbWVgIHZhcmNoYXIoMjUwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBlbWFpbGAgdmFyY2hhcigyNTApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYGRlcGFydG1lbnRgIHZhcmNoYXIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGByZWdkYXRlYCB0aW1lc3RhbXAgTk9UIE5VTEwgREVGQVVMVCBDVVJSRU5UX1RJTUVTVEFNUCwKICBgbGFzdHZpc2l0YCBkYXRldGltZSBOT1QgTlVMTCwKICBgYWN0aXZlYCB0aW55aW50KDEpIE5PVCBOVUxMIERFRkFVTFQgJzEnLAogIFBSSU1BUlkgS0VZIChgdWlkYCksCiAgVU5JUVVFIEtFWSBgbG9naW5gIChgdXNlcm5hbWVgKSwKICBVTklRVUUgS0VZIGB1c2VybmFtZWAgKGB1c2VybmFtZWApCikgRU5HSU5FPUlubm9EQiAgREVGQVVMVCBDSEFSU0VUPWxhdGluMTsKCi0tIG5hbWU6IGNyZWF0ZS11c2VyX21lbnUtdGFibGUKQ1JFQVRFIFRBQkxFIElGIE5PVCBFWElTVFMgYHVzZXJfbWVudWAgKAogIGBpZGAgdmFyY2hhcigxMjUpIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYG5hbWVgIHZhcmNoYXIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBhbGlhc2AgdmFyY2hhcigyMDApIE5PVCBOVUxMIERFRkFVTFQgJycsCiAgYGljb25gIHZhcmNoYXIoMTAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGB3ZWlnaHRgIGludCgxMCkgTk9UIE5VTEwgREVGQVVMVCAnMTAnLAogIGBhY3RpdmVgIGludCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJywKICBVTklRVUUgS0VZIGBpZGAgKGBpZGApCikgRU5HSU5FPUlubm9EQiBERUZBVUxUIENIQVJTRVQ9bGF0aW4xOwoKLS0gbmFtZTogY3JlYXRlLWFwaV9hdXRoX2tleS10YWJsZQpDUkVBVEUgVEFCTEUgSUYgTk9UIEVYSVNUUyBgYXBpX2F1dGhfa2V5YCAoCiAgYGlkYCBpbnQoMTApIE5PVCBOVUxMIEFVVE9fSU5DUkVNRU5ULAogIGBhdXRoa2V5YCB2YXJjaGFyKDIwMCkgTk9UIE5VTEwsCiAgYHNvdXJjZV9pcGAgdmFyY2hhcigyMDApIE5PVCBOVUxMIERFRkFVTFQgJzAuMC4wLjAnLAogIGBzdGFydGRhdGVgIGRhdGV0aW1lIE5PVCBOVUxMIERFRkFVTFQgJzIwMTItMDEtMDEgMDA6MDA6MDAnLAogIGBzdG9wZGF0ZWAgZGF0ZXRpbWUgTk9UIE5VTEwgREVGQVVMVCAnMjAzMi0wMS0wMSAwMDowMDowMCcsCiAgYHVzZXJvYmplY3RgIHZhcmNoYXIoMjUwKSBOT1QgTlVMTCwKICBgZGVzY3JpcHRpb25gIHZhcmNoYXIoMjAwKSBOT1QgTlVMTCBERUZBVUxUICcnLAogIGBsYXN0dmlzaXRgIGRhdGV0aW1lIE5PVCBOVUxMIERFRkFVTFQgJzIwMTItMDEtMDEgMDA6MDA6MDAnLAogIGBlbmFibGVgIGludCgxKSBOT1QgTlVMTCBERUZBVUxUICcxJywKICBQUklNQVJZIEtFWSAoYGlkYCksCiAgVU5JUVVFIEtFWSBgYXV0aGtleWAgKGBhdXRoa2V5YCkKKSBFTkdJTkU9SW5ub0RCIERFRkFVTFQgQ0hBUlNFVD1sYXRpbjEgQVVUT19JTkNSRU1FTlQ9MTsK\"")
Expand Down
14 changes: 14 additions & 0 deletions database/files/mysql/parmax.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
-- name: create-partitionmax-logs_capture
ALTER TABLE logs_capture_all_TableDate ADD PARTITION (PARTITION pmax VALUES LESS THAN MAXVALUE);

-- name: create-partitionmax-report_capture
ALTER TABLE report_capture_all_TableDate ADD PARTITION (PARTITION pmax VALUES LESS THAN MAXVALUE);

-- name: create-partitionmax-rtcp_capture
ALTER TABLE rtcp_capture_all_TableDate ADD PARTITION (PARTITION pmax VALUES LESS THAN MAXVALUE);

-- name: create-partitionmax-sip_capture_call
ALTER TABLE sip_capture_call_TableDate ADD PARTITION (PARTITION pmax VALUES LESS THAN MAXVALUE);

-- name: create-partitionmax-sip_capture_registration
ALTER TABLE sip_capture_registration_TableDate ADD PARTITION (PARTITION pmax VALUES LESS THAN MAXVALUE);
95 changes: 56 additions & 39 deletions database/rotator.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"strings"
"time"

"github.com/go-sql-driver/mysql"
"github.com/gobuffalo/packr"
"github.com/gocraft/dbr"
"github.com/negbie/dotsql"
Expand Down Expand Up @@ -33,37 +34,46 @@ func NewRotator(b *packr.Box) *Rotator {
}

func (r *Rotator) CreateDatabases() (err error) {
if config.Setting.DBDriver == "mysql" {
db, err := dbr.Open(config.Setting.DBDriver, config.Setting.DBUser+":"+config.Setting.DBPass+"@tcp("+r.addr[0]+":"+r.addr[1]+")/?"+url.QueryEscape("charset=utf8mb4&parseTime=true"), nil)
if err != nil {
return err
}
defer db.Close()
r.dbExec(db, "CREATE DATABASE IF NOT EXISTS "+config.Setting.DBDataTable+` DEFAULT CHARACTER SET = 'utf8' DEFAULT COLLATE 'utf8_general_ci';`)
r.dbExec(db, "CREATE DATABASE IF NOT EXISTS "+config.Setting.DBConfTable+` DEFAULT CHARACTER SET = 'utf8' DEFAULT COLLATE 'utf8_general_ci';`)
r.dbExec(db, `CREATE USER IF NOT EXISTS 'homer_user'@'localhost' IDENTIFIED BY 'homer_password';`)
r.dbExec(db, `CREATE USER IF NOT EXISTS 'homer_user'@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'homer_password';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBDataTable+`.* TO 'homer_user'@'localhost';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBConfTable+`.* TO 'homer_user'@'localhost';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBDataTable+`.* TO 'homer_user'@'192.168.0.0/255.255.0.0';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBConfTable+`.* TO 'homer_user'@'192.168.0.0/255.255.0.0';`)

} else if config.Setting.DBDriver == "postgres" {
db, err := dbr.Open(config.Setting.DBDriver, " host="+r.addr[0]+" port="+r.addr[1]+" user="+config.Setting.DBUser+" password="+config.Setting.DBPass+" sslmode=disable", nil)
if err != nil {
return err
for {
if config.Setting.DBDriver == "mysql" {
db, err := dbr.Open(config.Setting.DBDriver, config.Setting.DBUser+":"+config.Setting.DBPass+"@tcp("+r.addr[0]+":"+r.addr[1]+")/?"+url.QueryEscape("charset=utf8mb4&parseTime=true"), nil)
if err = db.Ping(); err != nil {
db.Close()
logp.Err("%v", err)
time.Sleep(5 * time.Second)
} else {
r.dbExec(db, "CREATE DATABASE IF NOT EXISTS "+config.Setting.DBDataTable+` DEFAULT CHARACTER SET = 'utf8' DEFAULT COLLATE 'utf8_general_ci';`)
r.dbExec(db, "CREATE DATABASE IF NOT EXISTS "+config.Setting.DBConfTable+` DEFAULT CHARACTER SET = 'utf8' DEFAULT COLLATE 'utf8_general_ci';`)
r.dbExec(db, `CREATE USER IF NOT EXISTS 'homer_user'@'localhost' IDENTIFIED BY 'homer_password';`)
r.dbExec(db, `CREATE USER IF NOT EXISTS 'homer_user'@'192.168.0.0/255.255.0.0' IDENTIFIED BY 'homer_password';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBDataTable+`.* TO 'homer_user'@'localhost';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBConfTable+`.* TO 'homer_user'@'localhost';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBDataTable+`.* TO 'homer_user'@'192.168.0.0/255.255.0.0';`)
r.dbExec(db, "GRANT ALL ON "+config.Setting.DBConfTable+`.* TO 'homer_user'@'192.168.0.0/255.255.0.0';`)
db.Close()
break
}
} else if config.Setting.DBDriver == "postgres" {
db, err := dbr.Open(config.Setting.DBDriver, " host="+r.addr[0]+" port="+r.addr[1]+" user="+config.Setting.DBUser+" password="+config.Setting.DBPass+" sslmode=disable", nil)
if err = db.Ping(); err != nil {
db.Close()
logp.Err("%v", err)
time.Sleep(5 * time.Second)
} else {
r.dbExec(db, "CREATE DATABASE "+config.Setting.DBDataTable)
r.dbExec(db, "CREATE DATABASE "+config.Setting.DBConfTable)
r.dbExec(db, `CREATE USER homer_user WITH PASSWORD 'homer_password';`)
r.dbExec(db, "GRANT postgres to homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON DATABASE "+config.Setting.DBDataTable+" TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON DATABASE "+config.Setting.DBConfTable+" TO homer_user;")
r.dbExec(db, "CREATE TABLESPACE homer OWNER homer_user LOCATION '"+config.Setting.DBPath+"';")
r.dbExec(db, "GRANT ALL ON TABLESPACE homer TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO homer_user;")
db.Close()
break
}
}
defer db.Close()
r.dbExec(db, "CREATE DATABASE "+config.Setting.DBDataTable)
r.dbExec(db, "CREATE DATABASE "+config.Setting.DBConfTable)
r.dbExec(db, `CREATE USER homer_user WITH PASSWORD 'homer_password';`)
r.dbExec(db, "GRANT postgres to homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON DATABASE "+config.Setting.DBDataTable+" TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON DATABASE "+config.Setting.DBConfTable+" TO homer_user;")
r.dbExec(db, "CREATE TABLESPACE homer OWNER homer_user LOCATION '"+config.Setting.DBPath+"';")
r.dbExec(db, "GRANT ALL ON TABLESPACE homer TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO homer_user;")
r.dbExec(db, "GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO homer_user;")
}
return nil
}
Expand All @@ -80,6 +90,7 @@ func (r *Rotator) CreateDataTables(duration int) (err error) {
r.dbExecPartitionFile(db, r.box.String("mysql/parlog.sql"), day, duration, r.logStep)
r.dbExecPartitionFile(db, r.box.String("mysql/parqos.sql"), day, duration, r.qosStep)
r.dbExecPartitionFile(db, r.box.String("mysql/parsip.sql"), day, duration, r.sipStep)
r.dbExecFile(db, r.box.String("mysql/parmax.sql"), day)
} else if config.Setting.DBDriver == "postgres" {
db, err := dbr.Open(config.Setting.DBDriver, " host="+r.addr[0]+" port="+r.addr[1]+" dbname="+config.Setting.DBDataTable+" user="+config.Setting.DBUser+" password="+config.Setting.DBPass+" sslmode=disable", nil)
if err != nil {
Expand Down Expand Up @@ -146,9 +157,7 @@ func (r *Rotator) dbExecFile(db *dbr.Connection, file string, pattern strings.Re
for _, query := range dot.QueryMap() {
logp.Debug("rotator", "db query:\n%s\n\n", query)
_, err := db.Exec(query)
if err != nil {
logp.Warn("%s\n\n", err)
}
checkDBErr(err)
}
}

Expand All @@ -165,9 +174,7 @@ func (r *Rotator) dbExecPartitionFile(db *dbr.Connection, file string, pattern s

func (r *Rotator) dbExec(db *dbr.Connection, query string) {
_, err := db.Exec(query)
if err != nil {
logp.Warn("%s\n\n", err)
}
checkDBErr(err)
}

func (r *Rotator) Rotate() (err error) {
Expand Down Expand Up @@ -247,9 +254,7 @@ func rotatePartitions(db *dbr.Connection, query string, d, p int) {

logp.Debug("rotator", "db query:\n%s\n\n", query)
_, err := db.Exec(query)
if err != nil {
logp.Warn("%s\n\n", err)
}
checkDBErr(err)
}
}

Expand Down Expand Up @@ -293,3 +298,15 @@ func setStep(name string) (step int) {
}
return
}

func checkDBErr(err error) {
if err != nil {
if config.Setting.DBDriver == "mysql" {
if mErr, ok := err.(*mysql.MySQLError); ok && mErr.Number != 1062 && mErr.Number != 1481 && mErr.Number != 1517 {
logp.Warn("%s\n\n", err)
}
} else if config.Setting.DBDriver == "postgres" {
logp.Warn("%s\n\n", err)
}
}
}
Loading

0 comments on commit 6d6a815

Please sign in to comment.