/// <summary> /// 初始化副本 /// </summary> /// <param name="replSetName"></param> /// <param name="strMessage"></param> /// <returns></returns> public static bool InitReplicaSet(string replSetName, ref string strMessage) { //注意:这里的replSetName名称只是为了设定本工具用的MongoConfig信息, //实际的replSetName名称应该在启动命令中 var result = DataBaseCommand.InitReplicaSet(); if (result.Ok) { //修改配置 var newConfig = RuntimeMongoDbContext.GetCurrentServerConfig(); newConfig.ReplSetName = replSetName; newConfig.ReplsetList = new List <string> { newConfig.Host + (newConfig.Port != 0 ? ":" + newConfig.Port : string.Empty) }; MongoConnectionConfig.MongoConfig.ConnectionList[newConfig.ConnectionName] = newConfig; MongoConnectionConfig.MongoConfig.SaveMongoConfig(); RuntimeMongoDbContext.MongoConnSvrLst.Remove(newConfig.ConnectionName); RuntimeMongoDbContext.MongoConnSvrLst.Add( RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName, RuntimeMongoDbContext.CreateMongoServer(ref newConfig)); strMessage = result.Response.ToJson(MongoHelper.JsonWriterSettings); return(true); } strMessage = result.ErrorMessage; return(false); }
public static bool InitReplicaSet(string replSetName, ref string strMessage) { var result = CommandHelper.InitReplicaSet(replSetName, RuntimeMongoDbContext.GetCurrentServerConfig().ConnectionName, MongoConnectionConfig.MongoConfig.ConnectionList); if (result.Ok) { //修改配置 var newConfig = RuntimeMongoDbContext.GetCurrentServerConfig(); newConfig.ReplSetName = replSetName; newConfig.ReplsetList = new List <string> { newConfig.Host + (newConfig.Port != 0 ? ":" + newConfig.Port : string.Empty) }; MongoConnectionConfig.MongoConfig.ConnectionList[newConfig.ConnectionName] = newConfig; MongoConnectionConfig.MongoConfig.SaveMongoConfig(); RuntimeMongoDbContext.MongoConnSvrLst.Remove(newConfig.ConnectionName); RuntimeMongoDbContext.MongoConnSvrLst.Add( RuntimeMongoDbContext.CurrentMongoConnectionconfig.ConnectionName, RuntimeMongoDbContext.CreateMongoServer(ref newConfig)); return(true); } strMessage = result.ErrorMessage; return(false); }
/// <summary> /// 副本管理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReplicaSetToolStripMenuItem_Click(object sender, EventArgs e) { var newConfig = RuntimeMongoDbContext.GetCurrentServerConfig(); Utility.OpenForm(new FrmReplsetMgr(ref newConfig), true, true); Operater.ReplicaSet(newConfig); MyMessageBox.ShowMessage("ReplSetName", "Please refresh connection after one minute."); }
private void frmReplsetMgr_Load(object sender, EventArgs e) { GuiConfig.Translateform(this); RuntimeMongoDbContext.CurrentMongoConnectionconfig = RuntimeMongoDbContext.GetCurrentServerConfig(); var server = RuntimeMongoDbContext.GetCurrentServer(); foreach (var item in server.Instances) { lstHost.Items.Add(item.Address.ToString()); } }
/// <summary> /// 获得用户信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void UserInfoStripMenuItem_Click(object sender, EventArgs e) { //foreach (var item in MongoDBHelper._mongoUserLst.Keys) //{ var connectionName = RuntimeMongoDbContext.GetCurrentServerConfig().ConnectionName; var info = RuntimeMongoDbContext.MongoUserLst[connectionName].ToString(); if (!string.IsNullOrEmpty(info)) { MyMessageBox.ShowMessage( GuiConfig.IsUseDefaultLanguage ? "UserInformation" : GuiConfig.GetText(TextType.MainMenuOperationServerUserInfo), "The User Information of:[" + MongoConnectionConfig.MongoConfig.ConnectionList[connectionName].UserName + "]", info, true); } //} }
private void frmStatus_Load(object sender, EventArgs e) { var strType = RuntimeMongoDbContext.SelectTagType; var docStatus = new BsonDocument(); switch (strType) { case ConstMgr.ServerTag: case ConstMgr.SingleDbServerTag: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } break; case ConstMgr.DatabaseTag: case ConstMgr.SingleDatabaseTag: docStatus = RuntimeMongoDbContext.GetCurrentDataBase().GetStats().Response.ToBsonDocument(); break; case ConstMgr.CollectionTag: //TODO:这里无法看到Collection的Document Validation信息。 docStatus = RuntimeMongoDbContext.GetCurrentCollection().GetStats().Response.ToBsonDocument(); break; default: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } break; } GuiConfig.Translateform(this); UiHelper.FillDataToTreeView(strType, trvStatus, docStatus); trvStatus.DatatreeView.Nodes[0].Expand(); }
/// <summary> /// 窗体初始化 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void frmStatus_Load(object sender, EventArgs e) { if (!GuiConfig.IsMono) { Icon = GetSystemIcon.ConvertImgToIcon(Resources.KeyInfo); } GuiConfig.Translateform(this); var strType = RuntimeMongoDbContext.SelectTagType; var docStatus = new BsonDocument(); cmbChartField.Visible = false; chartResult.Visible = false; tempIsDisplayNumberWithKSystem = CtlTreeViewColumns.IsDisplayNumberWithKSystem; CtlTreeViewColumns.IsDisplayNumberWithKSystem = true; switch (strType) { case ConstMgr.ServerTag: case ConstMgr.SingleDbServerTag: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { var StatusList = new List <BsonDocument>(); var Status = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; StatusList.Add(Status); try { var ServerDesripter = MongoUtility.ToolKit.MongoHelper.GetCurrentServerDescription(); StatusList.Add(ServerDesripter); } catch (Exception) { //Repl的时候,无法获得 } UiHelper.FillDataToTreeView(strType, trvStatus, StatusList, 0); trvStatus.Height = trvStatus.Height * 2; trvStatus.DatatreeView.Nodes[0].Expand(); trvStatus.DatatreeView.Nodes[1].Expand(); return; } break; case ConstMgr.DatabaseTag: case ConstMgr.SingleDatabaseTag: docStatus = RuntimeMongoDbContext.GetCurrentDataBase().GetStats().Response.ToBsonDocument(); cmbChartField.Visible = true; chartResult.Visible = true; //{{ "db" : "aaaa", // "collections" : 8, // "objects" : 0, // "avgObjSize" : 0.0, // "dataSize" : 0.0, // "storageSize" : 32768.0, // "numExtents" : 0, // "indexes" : 8, // "indexSize" : 32768.0, // "ok" : 1.0 }} var statuspoint = docStatus.AsBsonDocument; //这里其实应该看Collection的Status,不同的引擎所拥有的状态不一样 if (statuspoint.Contains("avgObjSize")) { cmbChartField.Items.Add("AverageObjectSize"); } if (statuspoint.Contains("dataSize")) { cmbChartField.Items.Add("DataSize"); } if (statuspoint.Contains("extentCount")) { cmbChartField.Items.Add("ExtentCount"); } if (statuspoint.Contains("indexes")) { cmbChartField.Items.Add("IndexCount"); } if (statuspoint.Contains("lastExtentSize")) { cmbChartField.Items.Add("LastExtentSize"); } //MaxDocuments仅在CapedCollection时候有效 if (statuspoint.Contains("MaxDocuments")) { cmbChartField.Items.Add("MaxDocuments"); } if (statuspoint.Contains("ObjectCount")) { cmbChartField.Items.Add("ObjectCount"); } if (statuspoint.Contains("PaddingFactor")) { cmbChartField.Items.Add("PaddingFactor"); } if (statuspoint.Contains("storageSize")) { cmbChartField.Items.Add("StorageSize"); } cmbChartField.SelectedIndex = 0; try { RefreshDbStatusChart("StorageSize"); } catch (Exception ex) { Utility.ExceptionDeal(ex); } break; case ConstMgr.CollectionTag: //TODO:这里无法看到Collection的Document Validation信息。 docStatus = RuntimeMongoDbContext.GetCurrentCollection().GetStats().Response.ToBsonDocument(); //图形化初始化 chartResult.Visible = true; chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series("Usage"); var dpDataSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "DataSize", LegendToolTip = "DataSize", ToolTip = "DataSize" }; seriesResult.Points.Add(dpDataSize); var dpTotalIndexSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize) { LegendText = "TotalIndexSize", LegendToolTip = "TotalIndexSize", ToolTip = "TotalIndexSize" }; seriesResult.Points.Add(dpTotalIndexSize); var dpFreeSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().StorageSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "FreeSize", LegendToolTip = "FreeSize", ToolTip = "FreeSize" }; seriesResult.Points.Add(dpFreeSize); seriesResult.ChartType = SeriesChartType.Pie; chartResult.Series.Add(seriesResult); chartResult.Titles.Add(new Title("Usage")); break; default: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandExecute.ExecuteMongoSvrCommand(DataBaseCommand.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } break; } UiHelper.FillDataToTreeView(strType, trvStatus, docStatus); trvStatus.DatatreeView.Nodes[0].Expand(); }
private void frmStatus_Load(object sender, EventArgs e) { Icon = GetSystemIcon.ConvertImgToIcon(Resources.KeyInfo); var strType = RuntimeMongoDbContext.SelectTagType; var docStatus = new BsonDocument(); cmbChartField.Visible = false; chartResult.Visible = false; btnOpCnt.Visible = false; switch (strType) { case ConstMgr.ServerTag: case ConstMgr.SingleDbServerTag: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandHelper.ExecuteMongoSvrCommand(CommandHelper.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } if (strType == ConstMgr.ServerTag) { btnOpCnt.Visible = true; } break; case ConstMgr.DatabaseTag: case ConstMgr.SingleDatabaseTag: docStatus = RuntimeMongoDbContext.GetCurrentDataBase().GetStats().Response.ToBsonDocument(); cmbChartField.Visible = true; chartResult.Visible = true; cmbChartField.Items.Add("AverageObjectSize"); cmbChartField.Items.Add("DataSize"); cmbChartField.Items.Add("ExtentCount"); cmbChartField.Items.Add("IndexCount"); cmbChartField.Items.Add("LastExtentSize"); //MaxDocuments仅在CapedCollection时候有效 //cmbChartField.Items.Add("MaxDocuments"); cmbChartField.Items.Add("ObjectCount"); cmbChartField.Items.Add("PaddingFactor"); cmbChartField.Items.Add("StorageSize"); cmbChartField.SelectedIndex = 0; try { RefreshDbStatusChart("StorageSize"); } catch (Exception ex) { Utility.ExceptionDeal(ex); } break; case ConstMgr.CollectionTag: docStatus = RuntimeMongoDbContext.GetCurrentCollection().GetStats().Response.ToBsonDocument(); //图形化初始化 chartResult.Visible = true; chartResult.Series.Clear(); chartResult.Titles.Clear(); var seriesResult = new Series("Usage"); var dpDataSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "DataSize", LegendToolTip = "DataSize", ToolTip = "DataSize" }; seriesResult.Points.Add(dpDataSize); var dpTotalIndexSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize) { LegendText = "TotalIndexSize", LegendToolTip = "TotalIndexSize", ToolTip = "TotalIndexSize" }; seriesResult.Points.Add(dpTotalIndexSize); var dpFreeSize = new DataPoint(0, RuntimeMongoDbContext.GetCurrentCollection().GetStats().StorageSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().TotalIndexSize - RuntimeMongoDbContext.GetCurrentCollection().GetStats().DataSize) { LegendText = "FreeSize", LegendToolTip = "FreeSize", ToolTip = "FreeSize" }; seriesResult.Points.Add(dpFreeSize); seriesResult.ChartType = SeriesChartType.Pie; chartResult.Series.Add(seriesResult); chartResult.Titles.Add("Usage"); break; default: if (RuntimeMongoDbContext.GetCurrentServerConfig().LoginAsAdmin) { docStatus = CommandHelper.ExecuteMongoSvrCommand(CommandHelper.ServerStatusCommand, RuntimeMongoDbContext.GetCurrentServer()).Response; trvStatus.Height = trvStatus.Height * 2; } break; } GuiConfig.Translateform(this); UiHelper.FillDataToTreeView(strType, trvStatus, docStatus); trvStatus.DatatreeView.Nodes[0].Expand(); }