Example #1
0
        /// <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);
        }
Example #2
0
        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);
        }
Example #3
0
        /// <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.");
        }
Example #4
0
        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());
            }
        }
Example #5
0
        /// <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);
            }
            //}
        }
Example #6
0
        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();
        }
Example #7
0
        /// <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();
        }
Example #8
0
        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();
        }