Quantcast
Channel: Severalnines - clustercontrol
Viewing all 385 articles
Browse latest View live

Severalnines Launches #ClusterControl CrowdChat

$
0
0

Today we launch our live CrowdChat on everything #ClusterControl!

This CrowdChat is brought to you by Severalnines and is hosted by a team of subject matter experts. CrowdChat is a community platform that works across Facebook, Twitter, and LinkedIn to allow users to discuss a topic using a specific #hashtag. This crowdchat focuses on the hashtag #ClusterControl. So if you’re a DBA, architect, CTO, or a database novice, register to join and become part of the conversation!

Join this online community to interact with experts on how to best deploy, manage, monitor, and scale your database clusters. Get your questions answered and join the conversation around everything #ClusterControl.

Register free

Meet the experts

Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic MySQL and Database expert with over 15 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to Couchbase, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, FOSDEM) and related meetups.

Krzysztof Książek is a Senior Support Engineer at Severalnines, is a MySQL DBA with experience managing complex database environments for companies like Zendesk, Chegg, Pinterest and Flipboard.

Ashraf Sharif is a System Support Engineer at Severalnines. He has previously worked as principal consultant and head of support team and delivered clustering solutions for big websites in the South East Asia region. His professional interests focus on system scalability and high availability.

Vinay Joosery is a passionate advocate and builder of concepts and businesses around high availability database infrastructures. Prior to co-founding Severalnines, Vinay held the post of Vice-President EMEA at Pentaho Corporation - the Open Source BI leader. He has also held senior management roles at MySQL / Sun Microsystems / Oracle, where he headed the Global MySQL Telecoms Unit, and built the business around MySQL's High Availability and Clustering product lines. Prior to that, Vinay served as Director of Sales & Marketing at Ericsson Alzato, an Ericsson-owned venture focused on large scale real-time databases.


Planets9s - MySQL Query Tuning webinar, #ClusterControl CrowdChat & Database BackUps

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

Sign up for our webinar on MySQL Query Tuning - Process & Tools

Join us for the first part of our upcoming webinar trilogy on MySQL Query Tuning led by Krzysztof Książek, Senior Support Engineer at Severalnines. This session focuses on the query tuning process and related tools. Building, collecting, analysing, tuning and testing will be discussed in detail as well as the main tools involved, tcpdump and pt-query-digest.

Sign up for the webinar

Check out our new #ClusterControl CrowdChat

This week we launched a new CrowdChat to discuss all things #ClusterControl, which is hosted by our team of subject matter experts. CrowdChat is a community platform that works across Facebook, Twitter, and LinkedIn to allow you to discuss a topic using a specific #hashtag. This crowdchat focuses on the hashtag #ClusterControl. So if you’re a DBA, architect, CTO, or a database novice, register to join and become part of the conversation!

Check out the #ClusterControl CrowdChat

ClusterControl Tips & Tricks: Customising Your Database BackUps

ClusterControl provides centralized backup management and it supports the standard mysqldump and Percona Xtrabackup backup methods. We believe the chosen command line arguments for the respective methods are optimal for most database workloads, and comply with the MySQL backup best practices. We are influenced by all the feedback we have received over the years, when working with DBAs and sysadmins. However, you might still want to customize your backup. This blog post shows you how to do this.

Read the blog

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB

Become a ClusterControl DBA: Adding Existing Databases and clusters (updated)

$
0
0

In our previous blog post we covered the deployment of four types of clustering/replication: MySQL Galera, MySQL master-slave replication, PostgreSQL replication set and MongoDB replication set. This should enable you to create new clusters with great ease, but what if you already have 20 replication setups deployed and wish to manage them with ClusterControl?

This blog post will cover adding existing infrastructure components for these four types of clustering/replication to ClusterControl and how to have ClusterControl manage them.

Adding an existing Galera cluster to ClusterControl

Adding an existing Galera cluster to ClusterControl requires: mysql user with the proper grants and a ssh user that is able to login (without password) from the ClusterControl node to your existing databases and clusters.

Install ClusterControl on a separate VM. Once it is up, open the two-step dialogue for adding an existing cluster. All you have to do is to add one of the Galera nodes and ClusterControl will figure out the rest:

After this behind the scenes, ClusterControl will connect to this host and detect all the necessary details for the full cluster and register the cluster in the overview.

Adding an existing MySQL master-slave to ClusterControl

Adding of an existing MySQL master-slave topology requires a bit more work than adding a Galera cluster. As ClusterControl is able to extract the necessary information for Galera, in the case of master-slave, you need to specify every host within the replication setup.

After this, ClusterControl will connect to every host, see if they are part of the same topology and register them as part of one cluster (or server group) in the GUI.

Adding an MySQL NDB Cluster to ClusterControl

Adding an existing MySQL NDB Cluster takes four steps in total: defining SSH, management nodes, data nodes and finally the MySQL nodes.

After this ClusterControl will connect to the management, data and MySQL nodes and see if they are indeed part of the cluster. Then it will register the cluster, start monitoring and managing it.

Adding an existing PostgreSQL replication set to ClusterControl

Similar to adding the MySQL master-slave above, the PostgreSQL replication set also requires to fill in all hosts within the same replication set.

After this, ClusterControl will connect to every host, see if they are part of the same topology and register them as part of the same group.

Adding an existing MongoDB replica set to ClusterControl

Adding an existing MongoDB replica set is just as easy as Galera: just one of the hosts in the replica set needs to be specified with its credentials and ClusterControl will automatically discover the other nodes in the replica set.

Adding an existing MongoDB sharded cluster set to ClusterControl

Adding an existing MongoDB sharded cluster is almost as easy as a MongoDB replica set: all shard routers in the cluster need to be specified with its credentials, and ClusterControl will automatically discover all shards and replica sets in the cluster.

Expanding your existing infrastructure

After adding the existing databases and clusters, they now have become manageable via ClusterControl and thus we can scale out our clusters.

For MySQL, MongoDB and PostgreSQL replication sets, this can easily be achieved via the same way we showed in our previous blogpost: simply add a node and ClusterControl will take care of the rest.

For Galera, there is a bit more choice. The most obvious choice is to add a (Galera) node to the cluster by simply choosing “add node” in the cluster list or cluster overview. Expanding your Galera cluster this way should happen with increments of two to ensure your cluster always can have majority during a split brain situation.

Alternatively you could add a replication slave and thus create asynchronous slave in your synchronous cluster that looks like this:

Adding a slave node blindly under one of the Galera nodes can be dangerous since if this node goes down, the slave won’t receive updates anymore from its master. We blogged about paradigm earlier and you can read how to solve this in this blog post:

http://severalnines.com/blog/deploy-asynchronous-replication-slave-mariadb-galera-cluster-gtid-clustercontrol

Final thoughts

We showed you how easy it is to add existing databases and clusters to ClusterControl, you can literally add clusters within minutes. So nothing should hold you back from using ClusterControl to manage your existing infrastructure. If you have a large infrastructure, the addition of ClusterControl will give you more overview and save time in troubleshooting and maintaining your clusters.

Now the challenge is how to leverage ClusterControl to keep track of key performance indicators, show the global health of your clusters and proactively alert you in time when something is predicted to happen. And that’s the subject we'll cover next time.

Read also in the same series: Become a ClusterControl DBA - Deploying your Databases and Clusters

ClusterControl 1.3.2 Released with Key MongoDB Features - Sharded Deployments, Cluster-Consistent Backups, Advisors and more

$
0
0

The Severalnines team is pleased to announce the release of ClusterControl 1.3.2.

This release contains new features, such as deploying MongoDB sharded clusters and scheduling cluster-consistent backups, MongoDB Advisors, a new alarm viewer and new deployment wizard for MySQL, MongoDB & PostgreSQL, along with performance improvements and bug fixes.

Highlights

  • For MongoDB
    • Deploy or add existing MongoDB sharded clusters
    • Support for Percona consistent MongoDB backup
    • Manage MongoDB configurations
    • MongoDB Advisors
    • New overview page for sharded clusters and performance graphs
  • For MySQL, MongoDB & PostgreSQL
    • New Alarm Viewer
    • New Deployment Wizard

For more details and resources:

Deploy or add existing MongoDB sharded clusters

Not only can users now deploy MongoDB sharded clusters, but adding your existing sharded cluster to ClusterControl is as easy as adding a replica set: all shard routers in the cluster need to be specified with its credentials, and ClusterControl will automatically discover all shards and replica sets in the cluster. Supports Percona MongoDB and MongoDB Inc v3.2.

Manage MongoDB configurations

MongoDB configuration management includes functionality such as: change the configuration, import configurations for all nodes and define/alter templates. Users can immediately change the whole configuration file and write this configuration back to the database node. With this latest release of ClusterControl, users can manage MongoDB configurations even more intuitively than before.

New overview page for sharded clusters and performance graphs

The MongoDB stats and performance overview can be found under the Performance tab of your ClusterControl instance. Mongo Stats is an overview of the output of mongostat and the Performance overview gives a good graphical overview of the MongoDB opcounters. It now includes a per replicaSet/Config Server/router view for sharded clusters, alongside performance graphs.

Support for Cluster Consistent MongoDB backup

ClusterControl now supports Percona’s Consistent MongoDB backup, if installed on the ClusterControl controller node. Percona’s Consistent MongoDB backup is able to create a consistent cluster backup across many separate shards. It auto-discovers healthy members for backup by considering replication lag, replication 'priority' and by preferring 'hidden' members.

New Alarm Viewer

The enhanced viewer gives the user a better overview of events, especially if you have multiple clusters. Alarms and jobs for all clusters are now consolidated in a single view with a timeline of each event/alarm. Click on each event name to view related logs to the event/alarm and take the relevant actions required to avoid potential issues.

New Deployment Wizard

It is now possible to create entire master-slave setups in one go via our new deployment wizard. In previous versions, one had to first create a master, and afterwards, add slaves to it. You can now do it all in one go. The wizard supports MySQL Replication, MySQL Galera, MySQL/NDB, MongoDB ReplicaSet, MongoDB Shards and PostgreSQL.

There is a bunch of other improvements that we have not mentioned here. You can find all details in the ChangeLog.

We encourage you to test this latest release and provide us with your feedback. If you’d like a demo, feel free to request one.

With over 8,000 users to date, ClusterControl is the leading, platform independent automation and management solution for MySQL, MariaDB, Percona, MongoDB and PostgreSQL.

Thank you for your ongoing support, and happy clustering!

For additional tips & tricks, follow our blog: http://www.severalnines.com/blog/.

Press Release: Severalnines and WooServers bring ClusterControl to web hosting

$
0
0

New partnership helps start-ups challenge Google, Amazon and Microsoft

Stockholm, Sweden and anywhere else in the world - 07 September 2016 - Severalnines, the provider of database automation and management software for open source databases, today announced its latest partnership with WooServers. WooServers is a web hosting platform, used by 5,500 businesses, such as WhiteSharkMedia and SwiftServe to host their websites and applications.

WooServers will make available, in this partnership with Severalnines, a managed service that includes comprehensive infrastructure automation and management of MySQL-based database clusters. The service is available on WooServers data centers, as well as on Amazon Web Services and Microsoft Azure. The main target group is online businesses who rely on solid IT infrastructure, but wish to avoid the operational heavy lifting of managing high availability databases across data centers, or even across different cloud providers.

The Severalnines and WooServers’ partnership began in August 2015. WooServers felt there was a gap in the market for providing managed database services across different cloud providers. A large portion of their own clients were using more than one cloud provider to take advantage of features offered by one provider over another. However, without a distributed database infrastructure, it is hard to be cloud agnostic. Ultimately, where the data is determines where the service or application resides. And the larger the data, the harder it is to move.

Businesses can now quickly be up and running with a distributed database across the cloud services of their choice, knowing the service is managed by hosting and database experts. It is powered by MySQL clusters, with ClusterControl to automate deployment, and operational tasks such as configuration, topology changes, patching, backups, and failure recovery.

Aleksey Krasnov, co-founder of WooServers, said, “Cloud providers are trying hard to differentiate from each other, and a hyper competitive market is good news for clients. But there is very little in terms of cross-cloud compatibility, especially for database services. Being tied to a particular service may not be optimal in the long run, because if the costs escalate and you want to move to a more cost-effective vendor, you’re in for a big surprise.

We provide choice and flexibility to our clients, and our service is cloud agnostic. Since we’re using ClusterControl, it means you could even bring the data in-house and run on your own infrastructure.“

Vinay Joosery, Severalnines CEO, said, “Operational management of databases is not something you’d want your developers to spend too much time on, which makes a managed service a very logical choice. However, yielding too much control over your data to any single cloud vendor is scary. WooServers provides a service that allows businesses to benefit from cloud economics, while keeping control over their data.”

One customer who is relying on this partnership is digital advertising services provider Plexiads. After its launch in 2015, investing in IT development was a priority for Plexiads, to ensure they can compete with Google Adsense by delivering the highest quality service to its customers all over the world, especially in Africa and the Middle East. A highly available database that is resistant to outages, is vital to keep customers’ advertising running and capitalise on every revenue opportunity.

Abdelkhalek Baou, Co-CEO and Founder of Plexiads, said: “Our products challenge web giants such as Google Adsense and Adwords, and it’s important to us to keep customers satisfied in a market which is worth $60 billion. Data is a critical part of our business, and we were looking for a partner to help us build and manage a state of the art data tier for our applications. We have been very happy with WooServers and Severalnines, and feel confident we will be able to expand the infrastructure as the business grows.”

About Severalnines

Severalnines provides automation and management software for database clusters. We help companies deploy their databases in any environment, and manage all operational aspects to achieve high-scale availability.

Severalnines' products are used by developers and administrators of all skills levels to provide the full 'deploy, manage, monitor, scale' database cycle, thus freeing them from the complexity and learning curves that are typically associated with highly available database clusters. The company has enabled over 8,000 deployments to date via its popular online database configurator. Currently counting BT, Orange, Cisco, CNRS, Technicolour, AVG, Ping Identity and Paytrail as customers. Severalnines is a private company headquartered in Stockholm, Sweden with offices in Singapore and Tokyo, Japan. To see who is using Severalnines today visit, http://www.severalnines.com/company.

About WooServers

Since 2009 WooServers offers web hosting, virtual and dedicated servers with full management for the price of unmanaged solutions of its competitors. Serving more than 5500 clients WooServers has always strived to take over all system administration hassle from the client and provide hands-on support, unmatched in the industry.

During the past 3 years WooServers made a considerable expansion into the SMB client segment in order to utilize its infrastructure and DB management experience and offer custom solutions to clients with more complicated requirements. As a result, a number of new products were introduced, such Microsoft Azure Management and High-Availability Database Clusters in partnership with Severalnines. 

New ClusterControl subscriptions for managing MySQL, MongoDB and PostgreSQL

$
0
0

We’ve got your databases covered: check out our new pricing plans for ClusterControl, the single console to deploy, monitor and manage your entire database infrastructure.

Whether you’re looking to manage standalone instances, need high availability or have 24/7 SLA requirements for your databases, ClusterControl now comes with three enhanced options for you to chose from in addition to its Community Edition.

Standalone

Do you have standalone database servers to manage? Then this is the best plan for you. From real-time monitoring and performance advisors, to analyzing historical query data and making sure all your servers are backed up, ClusterControl Standalone has you covered.

Advanced

As our company name indicates, we’re all about achieving high availability. With ClusterControl Advanced, you can take the guesswork out of managing your high availability database setups - automate failover and recovery of your databases, add load balancers with read-write splits, add nodes or read replicas - all with a couple of clicks.

Enterprise

If you’re looking for all of the above in a 24/7 secure service environment, then look no further. From high-spec operational reports to role-based access control and SSL encryption, this is our most advanced plan aimed at mission-critical environments.

Here is a summary view of the new subscriptions:

Full features table & pricing plansContact us

Note that ClusterControl can be downloaded for free and that each download includes an initial 30 day trial of ClusterControl Enterprise, so that you can test the full features set of our product. It then becomes ClusterControl Community, should you decide not to purchase a plan. With ClusterControl Community, you can deploy and monitor MySQL, MongoDB and PostgreSQL.

Happy Clustering!

Planets9s - New ClusterControl pricing plans for managing MySQL, MongoDB & PostgreSQL

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

New ClusterControl pricing plans for managing MySQL, MongoDB & PostgreSQL

Whether you’re looking to manage standalone instances, need high availability or have 24/7 SLA requirements for your databases, we’ve got you covered. ClusterControl now comes with three enhanced subscription options for you to chose from: Standalone, Advanced and Enterprise. This is in addition to its Community Edition that you can use at no charge.

View the new pricing plans

Join us for our MySQL Query Tuning Part 2: Indexing and EXPLAIN webinar

Why is a given query slow, what does the execution plan look like, how will JOINs be processed, is the query using the correct indexes, or is it creating a temporary table?

You are welcome to sign up for our next webinar on September 27, where we’ll look at the EXPLAIN command and see how it can help us answer these questions. EXPLAIN is one of the most powerful tools at your disposal for understanding and troubleshooting troublesome database queries. We will also look into how to use database indexes to speed up queries.

Sign up for the webinar

Sign up for our #ClusterControl CrowdChat

If you haven’t checked this out yet, do take a look at our online community to interact with experts on how to best deploy and manage your databases. CrowdChat is a community platform that works across Facebook, Twitter, and LinkedIn to allow users to discuss a topic using a specific #hashtag. This crowdchat focuses on the hashtag #ClusterControl. So if you’re a DBA, architect, CTO, or a database novice, register to join and become part of the conversation!

Join the CrowdChat

Become a MongoDB DBA: Recovering your Data

A well-designed backup and restore strategy maximizes data availability and minimizes data loss, while considering the requirements of your business. How do you best restore a MongoDB backup? What are the considerations when restoring a replicaSet as opposed to a single node? This blog gives you an overview on how to restore your data for recovery purposes, as well as when seeding a new node in a replicaSet.

Read the blog

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB

Plenty of 9s on deck at Percona Live Amsterdam - Impressions

$
0
0

Percona Live Amsterdam 2016 came to an end yesterday evening and we’re taking a few moments to share our impressions of this year’s European MySQL / MongoDB / PostgreSQL and everything-open-source-database conference (as always expertly hosted by the Percona team).

According to the Percona website, the conference was fully booked out and judging by the amount of visitors we saw present, we have no problems believing that :-)

It was a pleasure to participate once again in the conference and we took some time yesterday to broadcast live from our booth with our CEO, Vinay Joosery, for a chat on our presence there and an update on what’s been happening at Severalnines. Watch the video and catch up on Vinay’s thoughts on the conference, the latest features in ClusterControl and more:

Day 1 of the conference was all about tutorials, full day or half day ones, and already the conference seemed in full swing, though the majority of participants then took part in days 2 & 3, which covered a broad range of talks and keynote sessions.

Here are some nice sound bites that we picked up along the way …

On MySQL 8.0

"New native data dictionary is like heart surgery.. remove the heart to put in a better one"

Geir Høydalsvik, Development Director at Oracle

Community feedback

"MySQL bug #199 is finally fixed in 8.0. It dates back to 2003 and was submitted by Peter Zaitsev and requests a persistent auto increment counter after restart"

Geir Høydalsvik, Development Director at Oracle

On creating open source databases

"All top open source databases have globally distributed (development) teams"

Peter Zaitsev, CEO at Percona

On InnoDB

"It is really easy to use MySQL InnoDB Cluster - one can setup MySQL InnoDB Cluster in 4 minutes"

Frederic Descamps, Community Manager at Oracle

As a sidenote, it can be done even faster in a fully distributed environment using ClusterControl ;-)

Our team (pic below) held 2 tutorials and 3 talks this week, which gave us great opportunities to talk to participants more directly about the topics we care about, i.e. how to become a great MongoDB or MySQL DBA, taking all the necessary step for a successful upgrade to MySQL 5.7, automating and monitoring MongoDB and how to make the best choice when deciding on a load balancer such HAProxy, ProxySQL, MaxScale, nginx and more.

Of course we were also present in the expo hall with demos, t-shirts and bags!

Severalnines team

And since we’ve been told by a number of avid conference t-shirt collectors that the Severalnines t-shirts are the best, we wanted to include a shout-out to the team that produces our t-shirts (and this year’s bags), The T-Shirt Company in Dublin, Ireland.

Here they are in action printing our 9s!

See you again next year!


We’ve signed up football video and data platform Wyscout used by Real Madrid, Arsenal, Juventus & many more

$
0
0

Press release: everywhere in the world, 12th October 2016 - Severalnines, Europe’s leading database infrastructure software provider, today announced Wyscout, the world’s leading company providing video, data and technology to football people all over the world, as its latest customer. Severalnines helps manage the database where all of the player intelligence is stored in. The platform helps clubs prepare for their next match and allows scouts to make informed purchasing decisions based on player performance. The platform is used by the world’s biggest clubs including, Arsenal, Juventus and Real Madrid.

Italy-based Wyscout founded in 2004 evolved into the platform it is today, not only hosting crucial matchday data but also providing a portal for clubs to arrange transfers and trials for prospective players through its community of over 35,000 professionals.

Wyscout matured from a successful startup to a professional organisation, which has high-profile customers around the world, enhancing not only the product but customer care, marketing and sales. With this evolution, the infrastructure had to be improved to cope with the growing size of the database, which stands at half a terabyte to date. To help address this challenge, Wyscout needed a reliable, scalable and fast database in place. To achieve more agility, it was decided that the database infrastructure would be deployed and managed by Severalnines’ ClusterControl platform in a cloud environment.

The migration to the cloud, which consisted of a MySQL Galera Cluster, was conducted using ClusterControl. Several other solutions were evaluated including AWS Aurora and MemSQL, but the need for a highly available service with advanced management capabilities was critical. The system needed to be easily managed, and have high performance especially during spikes in game time. It took the team at Wyscout two months to migrate and implement the technology end-to-end. The new database cluster incurred some pre-planned costs, but that was mitigated when database performance increased by 30% despite the increased workload of 15% coming from new customers.

Wyscout’s enhanced online presence helped its entrance into the eCommerce game, as it looked to sell its products to customers online. It also has plans to make commercial use of all the player statistics it has, which is based on tagged events, such as a player making a tackle at a specific time, in football matches. This new product, which is based on the core of the business, is wholly reliant on a solid and scalable database that can handle both OLTP and OLAP-type workloads.

Francesco Nassano, Wyscout Sysadmin said, “The majority of our business is online, we are extremely reliant on the infrastructure our business proposition is built upon. It was crucial that we had a system in place to efficiently manage our databases. ClusterControl allowed us to implement a high availability database cluster and easily operate it, which helped the biggest teams in the world access player data anytime, anywhere. Severalnines technology was so easy to use we were able to implement it ourselves.”

Vinay Joosery, Severalnines CEO, added, “I’m a massive football fan and I always wonder how tech is going to improve this billion-dollar, global sport. The natural abilities on the pitch won’t change much, but the way teams prepare for their next opponent can make or break a season. It makes me happy that Severalnines is thus integral to the performance of some the world’s biggest football teams.”

About Severalnines

Severalnines provides automation and management software for database clusters. We help companies deploy their databases in any environment, and manage all operational aspects to achieve high-scale availability.

Severalnines' products are used by developers and administrators of all skills levels to provide the full 'deploy, manage, monitor, scale' database cycle, thus freeing them from the complexity and learning curves that are typically associated with highly available database clusters. The company has enabled over 8,000 deployments and serves customers such as BT, Orange, Cisco, CNRS, Technicolor, AVG, Ping Identity and Paytrail. Severalnines is a private company headquartered in Stockholm, Sweden with offices in Singapore and Tokyo, Japan. To see who is using Severalnines today visit, http://www.severalnines.com/.

Planets9s - Database Cluster Management, Optimizer & SQL Tuning, and more

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

Database Cluster Management - Manual vs Automation via ClusterControl

Database Cluster management tasks include restart/recovery of services that fail, topology changes, reconfiguration, rolling upgrades, backups and performing security procedures. Since the tasks usually involve multiple servers, these can be repetitive and error-prone. This blog looks at efficiency gains when using ClusterControl to manage a MySQL Galera cluster as compared to manual ways.

Read the blog

MySQL Query Tuning webinar: Working with optimizer and SQL tuning

Join us next Tuesday for the third and final part of our webinar trilogy on MySQL Query Tuning, in which we look at the query tuning process and tools to help with that. For Part 3, Krzysztof Książek, Senior Support Engineer at Severalnines, will take a look at working with the optimizer as well as SQL tuning. This will include a discussion on how execution plans are calculated and a closer look at InnoDB statistics, how to hint the optimizer and finally, how to optimize SQL.

Sign up for the webinar

Management and Automation of Open Source Databases

Proprietary databases have been around for decades with a rich third ­party ecosystem of management tools. But what about open source databases? This whitepaper discusses the various aspects of open source database automation and management as well as the tools available to efficiently run them.

Download the whitepaper

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB

Webinar: Become a MongoDB DBA - Scaling and Sharding

$
0
0

Join us for our third ‘How to become a MongoDB DBA’ webinar on Tuesday, November 15th! In this webinar we will uncover the secrets and caveats of MongoDB scaling and sharding.

Become a MongoDB DBA - Scaling and Sharding

MongoDB offers read and write scaling out of the box: adding secondary nodes will increase your potential read capacity, while adding shards will increase your potential write capacity. However, adding a new shard doesn’t necessarily mean it will be used. Choosing the wrong shard key may also cause uneven data distribution.

There is more to scaling than just simply adding nodes and shards. Factors to take into account include indexing, shard re-balancing,replication lag, capacity planning and consistency.

Learn with this webinar how to plan your scaling strategy up front and how to prevent ending up with unusable secondary nodes and shards. Finally, we’ll show you how to leverage ClusterControl’s MongoDB scaling capabilities and have ClusterControl manage your shards.

Date, Time & Registration

Europe/MEA/APAC

Tuesday, November 15th at 09:00 GMT / 10:00 CET (Germany, France, Sweden)

Register Now

North America/LatAm

Tuesday, November 15th at 09:00 Pacific Time (US) / 12:00 Eastern Time (US)

Register Now

Agenda

  • What are the differences in read and write scaling with MongoDB
  • Read scaling considerations with MongoDB
  • MongoDB read preference explained
  • How sharding works in MongoDB
  • Adding new shards and balance data
  • How to scale and shard MongoDB using ClusterControl
  • Live Demo

Speaker

Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic database expert with over 16 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to MongoDB, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, MongoDB Open House, FOSDEM) and related meetups.

We look forward to “seeing” you there!

This session is based upon the experience we have using MongoDB and implementing it for our database infrastructure management solution, ClusterControl. For more details, read through our ‘Become a MongoDB DBA’ blog series.

Planets9s - The complete MySQL Query Tuning Trilogy, scaling & sharding MongoDB and more!

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

Watch Part 3 of the MySQL Query Tuning Trilogy: working with optimizer and SQL tuning

This week we completed our popular webinar trilogy on MySQL Query Tuning and the three parts are now available for you to watch online. Part 3 this Tuesday focussed on working with the optimizer and SQL tuning. In this session, Krzysztof Książek, Senior Support Engineer at Severalnines, discussed how execution plans are calculated. He also took a closer look at InnoDB statistics, how to hint the optimizer and finally, how to optimize SQL. Watch this last session or indeed all three parts by following the link below.

Watch replays

Sign up for our new webinar on scaling & sharding MongoDB

Join us for our third ‘How to become a MongoDB DBA’ webinar on Tuesday, November 15th, during which we will uncover the secrets and caveats of MongoDB scaling and sharding. Learn with this webinar how to plan your scaling strategy up front and how to prevent ending up with unusable secondary nodes and shards. We’ll also show you how to leverage ClusterControl’s MongoDB scaling and shard management capabilities.

Sign up for the webinar

ClusterControl Developer Studio: Custom database alerts by combining metrics

Following our introduction blogs to the ClusterControl Developer Studio and the ClusterControl Domain Specific Language, we now look at our MongoDB replication window advisor. It was recently added to the Advisors Github repository. Our advisor will not only check on the length of the replication window, but also calculate the lag of its secondaries and warn us if the node would be in any risk of danger. All advisors are open source on Github, so anyone can contribute back to the community!

Read the blog

Schema changes in Galera cluster for MySQL and MariaDB - how to avoid RSU locks

This blog discusses the Rolling Schema Upgrade as the only feasible method to execute schema changes where pt-online-schema-change failed or is not feasible to use. We check how this behaves in real life, in two scenarios. First, we have a single connection to the Galera cluster. We don’t scale out reads, we just use Galera as a way to improve availability of our application. We will simulate it by running a sysbench workload on one of the Galera cluster nodes. We are also going to execute RSU on this node. Check out the blog for the full discussion.

Read the blog

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB

Become a MongoDB DBA: Sharding ins- and outs - part 1

$
0
0

So far in the “Become a MongoDB DBA” series, we covered Deployment, Configuration, Monitoring (part 1), Monitoring (part 2), backup, restore and read scaling.

In our latest post we showed how to offload read requests from the primary to secondaries. But what if your workload consists mostly out of write requests? Vertical scaling would only be a temporary solution, and with growth larger than Moore’s law, an alternative has to be found.

Read scaling is basically offloading requests to many secondary nodes in the same replicaSet, so write scaling should naturally be offloading requests to many primary nodes. MongoDB does not support multiple primary nodes in one replicaSet. However if we would shard our data, we could spread our data among multiple replicaSets. Each of these replicaSets would then handle a slice of the workload.

MongoDB supports sharding out of the box and it is relatively easy to set up, though there are a couple of considerations you need to take before sharding your data.

With that in mind, we’re starting a three part miniseries about MongoDB and sharding.

In this first part, we will cover the basics of sharding with MongoDB by setting up a sharded environment. If you wish to know more about sharding in general, please read our whitepaper on sharding with MySQL Fabric.

MongoDB sharding primer

The MongoDB sharding solution is similar to existing sharding frameworks for other major database solutions. It makes use of a typical lookup solution, where the sharding is defined in a shard-key and the ranges are stored inside a configuration database. MongoDB works with three components to find the correct shard for your data.

A typical sharded MongoDB environment looks like this:

Sharding tier

The first component used is the shard router called mongos. All read and write operations must be sent to the shard router, making all shards act as a single database for the client application. The shard router will route the queries to the appropriate shards by consulting the Configserver.

The Configserver is a special replicaSet that keeps the configuration of all shards in the cluster. The Configserver contains information about shards, databases, collections, shard keys and the distribution of chunks of data. Data gets partitioned by slicing the total dataset into smaller chunks of data, where these chunks are defined by the shard key. The shard key can be either a range or hash defined. These chunks are then distributed evenly over the total number of shards.

The router will know on which shard to place the data by finding the correct chunk in the Configserver. If the router thinks the chunk is becoming too large, it will automatically create a new chunk in the Configserver. The sharding metadata is stored in the config database, and this database is accessible via the shard router as well.

Prior to MongoDB 3.2 the Configserver used to be a total of three individual MongoDB nodes that were used to write the sharding metadata. In this setup the metadata is written and read thrice, and differences in data between nodes means inconsistent writes happened and will require manual intervention. If this happened, the balancer would no longer perform shard migrations and the shard router was no longer able to create new chunks.

Shard tier

Each replicaSet in a MongoDB sharded cluster is treated as an individual shard. Adding a shard will increase the write capacity, but also increase the sharding complexity. Each shard is an individual component in the cluster and there is no direct communication between them. Shards don’t know anything about other shards in the cluster.

MongoDB distributes its data evenly by balancing the total number of chunks on each shard. If the number of chunks is not spread evenly, a balancing process can be run to migrate chunks from one shard to another.

This balancing process typically gets started from a shard router (mongos), that thinks the data is unbalanced. The shard router will acquire and set a lock on the balancing process in the config database on the Configserver

Setting up a simple sharded cluster

We will give an example of how to setup a simple sharded cluster, on a single machine. In our test example we will only use the bare minimum of a single node per replicaSet and a single node for the configserver. In production you should always use at least two nodes per replicaSet (and an arbiter) and three nodes for the Configserver.

First we create the paths for each instance to run:

mkdir /var/lib/mongodb/cfg /var/lib/mongodb/sh1 /var/lib/mongodb/sh2 /var/lib/mongodb/sh3

The first component to start is Configserver:

mongod --fork --dbpath /var/lib/mongodb/cfg --logpath cfg.log --replSet cfg --configsvr

Once it has started up properly, we need to initialize the Configserver, as it is in reality a replicaSet:

mongo --eval 'rs.initiate({"_id":"cfg", "members":[{"_id":1, "host":"127.0.0.1:27019"}]});' --port 27019

Now we can start the shard router (mongos) and connect to the Configserver:

mongos --fork --configdb cfg/127.0.0.1:27019 --logpath mongos.log

As you may notice in the lines above, we are using a different port number for connecting to the Configserver. In a sharded cluster, by default, the Configserver binds to the 27019 port and the shard router to 27017. It is also considered bad practice to configure the shard nodes to bind to the default 27017 MongoDB port. This is done deliberately to prevent confusion around the port to connect to and then the default port will only apply to the shard router.

Next we start up three individual replicaSets that will become shards later on:

mongod --fork --dbpath /var/lib/mongodb/sh1 --logpath sh1.log --port 27001 --replSet sh1
mongod --fork --dbpath /var/lib/mongodb/sh2 --logpath sh2.log --port 27002 --replSet sh2
mongod --fork --dbpath /var/lib/mongodb/sh3 --logpath sh3.log --port 27003 --replSet sh3

And, just like the configserver, we need to initialize these replicaSets as well:

mongo --eval 'rs.initiate({"_id":"sh1", "members":[{"_id":1, "host":"127.0.0.1:27001"}]});' --port 27001
mongo --eval 'rs.initiate({"_id":"sh2", "members":[{"_id":1, "host":"127.0.0.1:27002"}]});' --port 27002
mongo --eval 'rs.initiate({"_id":"sh3", "members":[{"_id":1, "host":"127.0.0.1:27003"}]});' --port 27003

Now we can add these replicaSets as shards via mongos:

mongo --eval 'sh.addShard("sh1/127.0.0.1:27001");'
mongo --eval 'sh.addShard("sh2/127.0.0.1:27002");'
mongo --eval 'sh.addShard("sh3/127.0.0.1:27003");'

In the addShard command you have to specify the full MongoDB connect string to add the shard. In our case we only have one host per replicaSet, but had we had a real production shard, it could have looked something like this:

mongo --eval 'sh.addShard("sh1/node1.domain.com:27018,node2.domain.com:27018,node3.domain.com:27018");'

Even though we now have a fully functioning sharded cluster, writing any data via the shard routers will only store the data on the shard with the least amount of data. This is because we have not enabled the database for sharding and defined a shard key for the collection we like to shard.

Setting up a sharded cluster using ClusterControl

We have just demonstrated how to set up a very simple test cluster, and it would be quitecomplex to show how to set up a full production cluster. So instead and for greater ease,we will show how to set up a MongoDB sharded cluster using ClusterControl with its four step wizard.

The first step is to allow ClusterControl to ssh to the hosts that we are going to deploy upon.

The second step is the definition of shard routers and configservers:

Third step is defining the shards:

And in the last step we define the database specific settings, such as which version of MongoDB we will deploy:

The total time taken to fill in this wizard should be around 1 minute, and after pressing the Deploy button, ClusterControl will automatically create a newly sharded cluster.

This is a quick and easy way to get started with a MongoDB sharded cluster.

Shard key

As described in the MongoDB sharding primer paragraph, the shard key is one of the most important factors in the sharding of MongoDB. By defining the shard key, you also influence the effectiveness of the shards. The shard key is either an indexed field or part of an indexed compound field that is present in every document in your collection.

Based upon this field, the shard key defines a range of shard key values that get associated with a chunk. As we described earlier, the chunks are distributed evenly over the shards in the cluster, so this directly influences the effectiveness of the sharding.

An example of a shard key and its distribution can be seen below:

mongos> sh.status()
--- Sharding Status ---
… 
databases:
{  "_id" : "shardtest",  "primary" : "sh1",  "partitioned" : true }
    shardtest.collection
        shard key: { "_id" : 1 }
        unique: false
        balancing: true
        chunks:
            sh1    1
            sh2    2
            sh3    1
        { "_id" : { "$minKey" : 1 } } -->> { "_id" : 2 } on : sh3 Timestamp(6, 1)
        { "_id" : 2 } -->> { "_id" : 24 } on : sh1 Timestamp(5, 1)
        { "_id" : 24 } -->> { "_id" : 1516 } on : sh2 Timestamp(4, 1)
        { "_id" : 1516 } -->> { "_id" : { "$maxKey" : 1 } } on : sh2 Timestamp(6, 4)

As you can see, we defined a shard key on the identifier of the document and distributed this over three shards in total. The overview of the chunks per shard seems to be quite balanced and the ranges of the identifiers show on which shard the data resides.

Limitations of the shard key

Keep in mind that once you start sharding a collection, you can no longer change the shard key and update the values of the shard key fields.

Also, unique indexes are limited within sharding: only the _id index and the index (or compound index) on the shard key can be unique. This means you can’t shard a collection that doesn’t meet these requirements, nor place unique indexes on other fields after sharding the collection.

Influence of the shard key

As we mentioned earlier, the shard key influences the performance of the sharding. This means you can optimize your shard keys for read and/or writing data. The most determining factors for this are the cardinality, frequency and rate of change of your shard key. We will illustrate this with some examples.

Sequential writes

Assume you have an application that writes a lot of sequential data only once, for instance a click-tracking application, with the following document:

{ 
    "_id" : ObjectId("5813bbaae9e36caf3e4eab5a"), 
    "uuid" : "098f253e-6310-45a0-a6c3-940be6ed8eb4", 
    "clicks" : 4, 
    "pageurl" : "/blog/category/how-to", 
    "ts" : Timestamp(1477688235, 1) 
}

You can distribute your data in many ways with this document. Using the timestamp of the document would mean the data gets sharded on time-intervals. So your data gets routed sequentially to one shard until the chunk is full, then the router will point to the next shard until that chunk is full. As you can already conclude: this will not scale your writes. Only one single shard is performing all write operations, while the other shards are doing next to nothing in terms of write operations. This is illustrated in the picture below.

If scaling your write capacity is your concern, you could choose the UUID field as your shard key. This means data for each unique person will be sharded, so ranges of UUIDs will be created for each chunk of data. Data will naturally be written in a more distributed manner among shards than with the timestamp shard-key. There could still be unevenness if the UUIDs are not generated in a random way.

As the shard key on the UUID field scales your write operations a lot better, it may not be the desired shard key for analyzing your full dataset within a specific time range. As the shard router is unaware of the secondary index on the timestamp, each and every shard will then be consulted to retrieve the required data. Each and every shard will return the data that they have for this query, and the shard router will combine this into a single record set that can be returned to the client. Also the UUID field may suffer from a large cardinality of documents for some of the UUIDs, so data still gets distributed unevenly.

An alternative would be using the MongoDB hashed sharding strategy. A hash function will be applied on the values of a shard key, where the hash function will make the distribution among shards pseudo-random. This means two near values of the shard key are unlikely to end up in the same chunk.

Consulting one single shard, and returning a sequential part of the chunk is always more desirable than receiving data back from many shards. Also combining many result sets on the shard router into a single result set is always slower than returning the result set directly from a single shard.

Random writes

If your application writes data in a more uniform way, for instance a user on a social network, this would mean you would get both inserts and updates on your data. Suppose we have the following document:

{
    "_id" : ObjectId("5813c5a9e9e36caf3e4eab5b"),
    "uuid" : "098f253e-6310-45a0-a6c3-940be6ed8eb4",
    "firstname" : "John",
    "lastname" : "Doe",
    "email" : "john.doe@gmail.com",
    "registration_time" : Timestamp(1477690793, 1)
}

Even though the write operations of new users (inserts) are happening sequentially, users who freshen up their profile with new details will also cause writes. This means the writing of data can be a bit more evenly distributed than the sequential writes example we gave earlier. We can anticipate this and choose our shard key accordingly. Choosing the timestamp field would not make sense in this case, as updates on a user document would require a write operation to all shards to find the correct record. A better candidate would be the UUID generated for the user. This would distribute the users evenly over the shards. If your UUID is generated randomly, the inserts of new users will also be distributed evenly.

As long as you use the UUID to access the data, reading back user data is also very efficient. But similar to the click-tracking example, selecting a range of users that registered in a certain timeframe would require consulting each and every shard again. This can’t be overcome easily.

The shard key paradigm

As you can see, the shard key influences the way you read and write your data. Choosing it wrongly could make data retrieval and updating data very slow. That’s why it is so important to choose the right shard key up front.

To ease the pain, you could also store certain data multiple times in different collections, and shard your data in various ways. For instance: the ranges of users that registered in a certain timeframe could be stored in a secondary collection. This collection only contains the references to the documents in the other collection including the timestamp. This collection will then be sharded on the timestamp field. The downside is naturally that there is a double administration this way.

Enabling sharding on our cluster

Now that we have covered the theory behind the shard keys, we can enable sharding on the database in our example cluster:

mongo --eval 'sh.enableSharding("shardtest");'

Without enabling sharding on this database, we will not be able to shard the collections inside it. Once enabled, any collection within that database will end up on the primary shard. The primary shard is the shard with the least amount of data upon enabling the database for sharding. You can change the primary shard assignment afterwards with the movePrimary command.

We need to configure the shard key separately by sharding the collection:

mongo --eval 'sh.shardCollection("shardtest.collection", {"_id":});'

Our shard key is set on the identifier field of the collection. Now if we would insert many large documents of data, this would give us a nicely sharded collection:

mongo shardtest --eval 'data="a";for (i=1; i < 10000; i++) { data=data+"a"; db.collection.insert({"_id": i, "data": data}); }; '

And this is what the shard distribution looks like after inserting all 10000 documents:

mongos> sh.status()
--- Sharding Status ---
...
  databases:
    {  "_id" : "shardtest",  "primary" : "sh1",  "partitioned" : true }
        shardtest.collection
            shard key: { "_id" : 1 }
            unique: false
            balancing: true
            chunks:
                sh1    4
                sh2    4
                sh3    3
            { "_id" : { "$minKey" : 1 } } -->> { "_id" : 2 } on : sh1 Timestamp(5, 1)
            { "_id" : 2 } -->> { "_id" : 3 } on : sh1 Timestamp(1, 2)
            { "_id" : 3 } -->> { "_id" : 839 } on : sh2 Timestamp(6, 1)
            { "_id" : 839 } -->> { "_id" : 1816 } on : sh2 Timestamp(2, 3)
            { "_id" : 1816 } -->> { "_id" : 2652 } on : sh3 Timestamp(4, 1)
            { "_id" : 2652 } -->> { "_id" : 3629 } on : sh3 Timestamp(3, 3)
            { "_id" : 3629 } -->> { "_id" : 4465 } on : sh1 Timestamp(4, 2)
            { "_id" : 4465 } -->> { "_id" : 5442 } on : sh1 Timestamp(4, 3)
            { "_id" : 5442 } -->> { "_id" : 6278 } on : sh2 Timestamp(5, 2)
            { "_id" : 6278 } -->> { "_id" : 7255 } on : sh2 Timestamp(5, 3)
            { "_id" : 7255 } -->> { "_id" : { "$maxKey" : 1 } } on : sh3 Timestamp(6, 0)

You can see our collection consists of several ascending series, each on a single shard. This is due to our linear iteration of inserting documents, while the inserts only happened on a single shard for the duration of the entire range.

As we described in the theory earlier, we can enable a hashing algorithm in the shard key definition to prevent this:

mongo --eval 'sh.shardCollection("shardtest.collection", {"_id":"hashed"});'

If we now re-insert the same data, and look at the sharding distribution, we see it created very different ranges of values for the shard key:

mongos> sh.status()
--- Sharding Status ---
… 
  databases:
    {  "_id" : "shardtest",  "primary" : "sh1",  "partitioned" : true }
        shardtest.collection
            shard key: { "_id" : "hashed" }
            unique: false
            balancing: true
            chunks:
                sh1    3
                sh2    4
                sh3    3
            { "_id" : { "$minKey" : 1 } } -->> { "_id" : NumberLong("-6148914691236517204") } on : sh3 Timestamp(4, 0)
            { "_id" : NumberLong("-6148914691236517204") } -->> { "_id" : NumberLong("-4643409133248828314") } on : sh1 Timestamp(4, 1)
            { "_id" : NumberLong("-4643409133248828314") } -->> { "_id" : NumberLong("-3078933977000923388") } on : sh1 Timestamp(3, 12)
            { "_id" : NumberLong("-3078933977000923388") } -->> { "_id" : NumberLong("-3074457345618258602") } on : sh1 Timestamp(3, 13)
            { "_id" : NumberLong("-3074457345618258602") } -->> { "_id" : NumberLong(0) } on : sh2 Timestamp(3, 4)
            { "_id" : NumberLong(0) } -->> { "_id" : NumberLong("1545352804953253256") } on : sh2 Timestamp(3, 8)
            { "_id" : NumberLong("1545352804953253256") } -->> { "_id" : NumberLong("3067091117957092580") } on : sh2 Timestamp(3, 9)
            { "_id" : NumberLong("3067091117957092580") } -->> { "_id" : NumberLong("3074457345618258602") } on : sh2 Timestamp(3, 10)
            { "_id" : NumberLong("3074457345618258602") } -->> { "_id" : NumberLong("6148914691236517204") } on : sh3 Timestamp(3, 6)
            { "_id" : NumberLong("6148914691236517204") } -->> { "_id" : { "$maxKey" : 1 } } on : sh3 Timestamp(3, 7)

As shown in the status above, the shards have the same number of chunks assigned to them. As the hashing algorithm ensures the hashed values are nonlinear, our linear inserts have now been inserted across all shards. In our test case, inserts were performed by a single thread; but in a production environment with high concurrency, the difference in write performance has improved greatly.

Conclusion

In this first part we have shown how MongoDB sharding works, and how to set up your own sharded environment. Making the choice for a shard key should not be taken lightly: it determines the effectiveness of your sharded cluster and can’t be altered afterwards.

In the next part of the sharding series we will focus on what you need to know about monitoring and maintaining shards.

MySQL Replication: All the Severalnines Resources

$
0
0

As many of you will know, MySQL Replication has become an instrumental part of scale-out architectures in LAMP environments. MySQL offers plenty of solutions when there is a need to scale out, the most common being to add read replicas. The major bottleneck for our data is generally not so much oriented around writing our data but more around reading it back. Therefore the easiest way to scale MySQL is to add replicas for reading.

We’ve produced a number of resources during the course of this year aimed at helping users to get started with MySQL Replication and/or get more out of their existing setups.

We’ve summarised these resources here in a handy overview, so that you can pick and chose the ones that might be the most relevant to you.

Do check them out and let us know your feedback!

The White Papers

The MySQL© Replication Blueprint by Severalnines

This is a great resource for anyone wanting to build or optimise a MySQL replication set up. The MySQL Replication Blueprint is about having a complete ops-ready solution from end to end. From monitoring, management and through to load balancing, all important aspects are covered.

Download the whitepaper

MySQL Replication for High Availability

This whitepaper covers MySQL Replication with information on the latest features introduced in 5.6 and 5.7. There is also a hands-on, practical section on how to quickly deploy and manage a replication setup using ClusterControl.

Download the whitepaper

The On-Demand Webinars

Introducing the Severalnines MySQL© Replication Blueprint

The Severalnines Blueprint for MySQL Replication includes all aspects of a MySQL Replication topology with the ins and outs of deployment, setting up replication, monitoring, upgrades, performing backups and managing high availability using proxies as ProxySQL, MaxScale and HAProxy. This webinar provides an in-depth walk-through of this blueprint and explains how to make best use of it.

Watch the replay!

Managing MySQL Replication for High Availability

This webinar covers deployment and management of MySQL replication topologies using ClusterControl. We show you how to schedule backups, promote slaves and what the most important metrics are worth keeping a close eye on. We also demonstrate how you can deal with schema and topology changes and how to solve the most common replication issues.

Watch the replay!

Become a MySQL DBA: Schema Changes for MySQL Replication & Galera Cluster

Find out how to implement schema changes in the least impacting way to your operations and ensure availability of your database. This webinar also covers some real-life examples and discusses how to handle them.

Watch the replay!

Become a MySQL DBA: Replication Topology Changes for MySQL and MariaDB

Discover how to perform replication topology changes in MySQL / MariaDB, and what the failover process may look like. This webinar also discusses some external tools you may find useful when dealing with these operations.

Watch the replay!

We trust that these resources prove useful!

Happy replicating!

Planets9s - MySQL Replication Resources and MongoDB Scaling & Sharding

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

MySQL Replication: All the Severalnines Resources

We’ve just published this handy overview of all the Severalnines resources we produced during the course of this year, which are aimed at helping users to get started with MySQL Replication and/or get more out of their existing setups. From monitoring, management and through to load balancing, with information on the latest features introduced in 5.6 and 5.7 - all important aspects are covered. Do check these out and let us know if you have any questions.

Access the resources

Upcoming Webinar: Become a MongoDB DBA - Scaling and Sharding

In this third webinar of the ‘Become a MongoDB DBA’ series, we will focus on scaling and sharding your MongoDB setup. You’ll learn how to plan your scaling strategy up front and how to prevent ending up with unusable secondary nodes and shards. And we’ll show you how to leverage ClusterControl’s MongoDB scaling and shards management capabilities.

Sign up for the webinar

Become a MongoDB DBA: Sharding ins- and outs - part 1

As some of you will know, MongoDB supports sharding out of the box and it is relatively easy to set up. However, there are important considerations you need to take before sharding your data and with that in mind, we’ve started a three part miniseries about MongoDB and sharding. In this initial post, we cover the basics of sharding with MongoDB by setting up a sharded environment with related recommendations.

Read the blog

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB


Join our live webinar on how to scale and shard MongoDB

$
0
0

We’re live next Tuesday, November 15th, with our webinar ‘Become a MongoDB DBA - Scaling and Sharding’!

Join us and learn about the three components necessary for MongoDB sharding. We’ll also share a read scaling considerations checklist as well as tips & tricks for finding the right shard key for MongoDB.

Overall, we’ll discuss how to plan your MongoDB scaling strategy up front and how to prevent ending up with unusable secondary nodes and shards. And we’ll look at how to leverage ClusterControl’s MongoDB scaling and shards management capabilities.

Sign up below!

Date, Time & Registration

Europe/MEA/APAC

Tuesday, November 15th at 09:00 GMT / 10:00 CET (Germany, France, Sweden)
Register Now

North America/LatAm

Tuesday, November 15th at 09:00 Pacific Time (US) / 12:00 Eastern Time (US)
Register Now

Agenda

  • What are the differences in read and write scaling with MongoDB
  • Read scaling considerations with MongoDB
  • MongoDB read preference explained
  • How sharding works in MongoDB
  • Adding new shards and balance data
  • How to scale and shard MongoDB using ClusterControl
  • Live Demo

Speaker

Art van Scheppingen is a Senior Support Engineer at Severalnines. He’s a pragmatic database expert with over 16 years experience in web development. He previously worked at Spil Games as Head of Database Engineering, where he kept a broad vision upon the whole database environment: from MySQL to MongoDB, Vertica to Hadoop and from Sphinx Search to SOLR. He regularly presents his work and projects at various conferences (Percona Live, MongoDB Open House, FOSDEM) and related meetups.

We look forward to “seeing” you there!

This session is based upon the experience we have using MongoDB and implementing it for our database infrastructure management solution, ClusterControl. For more details, read through our ‘Become a MongoDB DBA’ blog series.

We’re keeping the tills ringing at eCommerce platform vidaXL

$
0
0

ClusterControl helps vidaXL compete with the world's largest e-commerce platforms by managing its MongoDB & MySQL databases.

Press Release: everywhere around the world, November 9th 2016 - today we announced vidaXL, an international eCommerce platform where you can “live it up for less”, as our latest customer. ClusterControl was deployed to help manage vidaXL’s polyglot database architecture, which consists of SQL and NoSQL database solutions to handle specific tasks within the enterprise.

vidaXL caters to the product hunters, offering items for inside and outside the home at competitive prices. With a catalogue of currently over 20,000 products to choose from and selling directly in 29 countries, it has a huge task of managing and updating the database its consumers rely on to fulfil their orders. With 200,000 orders monthly, vidaXL is one of the largest international e-retailers.

The eCommerce company is growing and it has an aim of expanding its product catalogue to over 10,000,000 items within the next 12 months. This extremely large selection of goods creates a wealth of new data; images alone in the catalogue create roughly 100 terabytes worth of data, and the products rows between one to two terabytes. The increase of data originally required vidaXL to hire more database administrators (DBAs), but it searched for a cost-effective solution.

ClusterControl was deployed to manage the database systems. As scaling was an issue for vidaXL, particularly the horizontal scaling of its servers, ClusterControl as a single platform replaced the need for a combination of tools and the sometimes unreliable command line control. The ClusterControl deployment took around one week to implement, with no extra support required from Severalnines.

ClusterControl is easily integrated within a polyglot framework, managing different databases with the same efficiency. vidaXL is using several different databases, MongoDB and MySQL for product and customer listings, along with ElasticSearch, for its real-time search capabilities; ClusterControl was plugged in to automate management and give control over scaling of MongoDB and MySQL. The operations team also leveraged it for proactive reporting.

Zeger Knops, Head of Business Technology, vidaXL said, “We’re looking to grow exponentially in the near future with the products we offer and maintain our position as the world’s largest eCommerce operator. This means we cannot suffer any online outages which lead to a loss of revenue. Scaling from thousands to millions of products is a giant leap and that will require us to have a strong infrastructure foundation. Our back-end is reliant on different databases to tackle different tasks. Using several different tools, rather than a one-stop shop, was detrimental to our productivity. Severalnines is that “shop” and we haven’t looked back. It’s an awesome solution like no other.”

Vinay Joosery, Severalnines CEO, added, “As we head towards the busy end of the year for retailers with Cyber Monday just around the corner, a product catalogue of VidaXL’s size requires strong database management skills and technologies. Keeping operations online and supplying people with their required orders is key. We trust that VidaXL will continue to reap the benefits of ClusterControl as it grows.”

About Severalnines

Severalnines provides automation and management software for database clusters. We help companies deploy their databases in any environment, and manage all operational aspects to achieve high-scale availability.

Severalnines' products are used by developers and administrators of all skills levels to provide the full 'deploy, manage, monitor, scale' database cycle, thus freeing them from the complexity and learning curves that are typically associated with highly available database clusters. The company has enabled over 8,000 deployments to date via its popular ClusterControl product. Currently counting BT, Orange, Cisco, CNRS, Technicolor, AVG, Ping Identity and Paytrail as customers. Severalnines is a private company headquartered in Stockholm, Sweden with offices in Singapore and Tokyo, Japan. To see who is using Severalnines today visit, http://www.severalnines.com/company.

We’ve answered Eurofunk’s database SOS call

$
0
0

Eurofunk replaces Oracle with feature-rich Severalnines ClusterControl

Today we’re happy to announce Eurofunk, one of the largest European command centre system specialists, as our latest customer. Severalnines was brought on board to help manage the databases used by European blue light services’ command centres who are responsible for dispatching response teams to emergencies. Eurofunk also provides command centres for well-known car manufacturers.

Eurofunk began operations in 1969 as a sole trader with a focus on consumer electronics and radio technology. It evolved into a crucial component of the emergency services in Europe, responsible for planning, implementing and operating command centres.

To provide efficient blue light services, it is crucial for Eurofunk to have an IT infrastructure which is highly available and fast. Unreliability and slow performance is unforgivable in a sector relying so heavily on speed of execution and directness of action.

Severalnines’ ClusterControl was preferred to Oracle because database speed was improved at a fraction of Oracle’s licensing costs. Eurofunk also experienced database downtime caused by prolonged fail-over times of their Oracle databases. With ClusterControl, it was possible to easily deploy an active/active cluster to reduce downtime scenarios. Galera Cluster for MySQL was chosen as a back-end database replication technology; Severalnines provided the platform to deploy, monitor and manage the back-end cluster and associated database load balancers, along with full enterprise support for the operations team.

Severalnines also helped Eurofunk improve end user experience for dispatchers working in the control centres. Rolling updates to the database layer is possible so emergency services have continuous access to up-to-date information to work with.

Stefan Rehlegger, System Architect, Eurofunk, said, “It’s been hard to find a unified feature-rich database cluster management system in today’s market but we’ve found one that has proved invaluable to our projects. With Severalnines’ help we’ve been able to deploy a centralised system across Europe and we’re planning to expand our usage of ClusterControl to other territories. The deployment via a web interface without any background knowledge of database clustering helps us make services available on a 24h basis more easily. Severalnines also provided great support during systems implementation; it is the database management life-saver for a fast-paced business like ours.”

Vinay Joosery, Severalnines CEO, added, “As an outsider who has watched too many TV shows, working in emergency response looks like the coolest thing to do. In reality the pressure command and control centres are under must be unbearable and to do their work effectively, they need the freshest information on accidents and emergencies. I’m happy to see Severalnines’ technology markedly improve the performance of their systems. Eurofunk keeps people safe and if we can keep their database safe and available, it means they can continue doing the great work they do.”

About Severalnines

Severalnines provides automation and management software for database clusters. We help companies deploy their databases in any environment, and manage all operational aspects to achieve high-scale availability.

Severalnines' products are used by developers and administrators of all skills levels to provide the full 'deploy, manage, monitor, scale' database cycle, thus freeing them from the complexity and learning curves that are typically associated with highly available database clusters. The company has enabled over 8,000 deployments to date via its popular ClusterControl product. Currently counting BT, Orange, Cisco, CNRS, Technicolor, AVG, Ping Identity and Paytrail as customers. Severalnines is a private company headquartered in Stockholm, Sweden with offices in Singapore and Tokyo, Japan. To see who is using Severalnines today visit, http://www.severalnines.com/about-us/company.

Planets9s - Eurofunk replaces Oracle with feature-rich Severalnines ClusterControl

$
0
0

Welcome to this week’s Planets9s, covering all the latest resources and technologies we create around automation and management of open source database infrastructures.

Eurofunk replaces Oracle with feature-rich Severalnines ClusterControl

This week we’re happy to announce Eurofunk, one of the largest European command centre system specialists, as our latest ClusterControl customer. Severalnines was brought on board to help manage the databases used by European blue light services’ command centres who are responsible for dispatching response teams to emergencies. Severalnines’ ClusterControl was preferred to Oracle because database speed was improved at a fraction of Oracle’s licensing costs.

Read the story

Webinar next Tuesday: How to build a stable MySQL Replication environment

If you'd like to learn how to build a stable environment with MySQL replication, this webinar is for you. From OS and DB configuration checklists to schema changes and disaster recovery, you’ll have the information needed. Join us next Tuesday as Krzysztof Książek, Senior Support Engineer at Severalnines, shares his top 9 tips on how to best build a production-ready MySQL Replication environment.

Sign up for the webinar

How to deploy MySQL & MongoDB clusters in the cloud

This blog post describes how you can easily deploy and monitor your favourite open source databases on AWS and DigitalOcean. NinesControl is a service we recently released, which helps you deploy MySQL Galera and MongoDB clusters in the cloud. As a developer, if you want unified and real-time monitoring of your database and server infrastructure with access to 100+ collected key database and host metrics with custom dashboards providing insight to your operational and historic performance … Then NinesControl is for you :-)

Read the blog

That’s it for this week! Feel free to share these resources with your colleagues and follow us in our social media channels.

Have a good end of the week,

Jean-Jérôme Schmidt
Planets9s Editor
Severalnines AB

Tips and Tricks: Receive email notifications from ClusterControl

$
0
0

As sysadmins and DBAs, we need to be notified whenever something critical happens to our database.  But would it not be nicer if we were informed upfront, and still have time to perform pre-emptive maintenance and retain high availability? Being informed about anomalies or anything that may degrade cluster health and performance is key. In this tips and tricks post, we will explain how you can set up email notifications in ClusterControl and stay up to date with your cluster state.

Email notification types in ClusterControl

First we will explain the two types of email notifications that ClusterControl can send. The normal notifications will be sent instantly, once an alert is triggered or an important event occurs. This instant mail type (deliver) is necessary if you wish to immediately receive critical or warning notifications that require swift action.

The other type is called digest, where ClusterControl will accumulate all notifications and then send them each day in a single email on a preset time. Informational and warning notifications, that do not need immediate action can best be sent via the digest email.

Then there is a third option: not to send a notification and ignore the message. This, obviously, should only be configured if you are absolutely certain you don’t wish to receive this type of notification.

Setting up email notifications per user

There are two methods for setting up email notifications in ClusterControl. The below is the first one, where you can set the email notifications on a user level. Go to Settings > Email Notifications.

Here you can select an existing user and load it’s current settings. You can change at what time digest emails are to be sent, and to prevent ClusterControl from sending too many emails, what the limit is for the non-digest emails. Be careful: if you set this too low, you will no longer receive notifications for the remainder of the day! Setting this to -1 sets this to unlimited. Per alarm/event category, the email notifications can be set to the notification type necessary.

Keep in mind that this setting is on a global level, so this accounts for all clusters.

Setting up email notifications per cluster

On the cluster level, the notifications can be set for both users and additional email addresses. This interface can be found via Cluster > Settings > General Settings > Email Notifications.

Here you can select an existing user/email address and load it’s current settings. You can change at what time digest emails are to be sent, and to prevent ClusterControl from sending too many emails, what the limit is for the non-digest emails. Again here, if you set this too low, you will no longer receive notifications for the remainder of the day! Setting this to -1 sets this to unlimited. Per alarm/event category the email notifications can be set to the notification type necessary.

Keep in mind all settings are on a cluster specific level, so this only changes settings for the selected cluster.

Adding and removing email addresses

Apart from defining the email notification settings, you can also add new email addresses by clicking on the plus-button. (+) This can be handy if you wish to send notifications to, for example, a distribution list inside your company.

Removing email addresses can be done, by selecting the email address that needs removal and click the minus-button. (-)

Configuring the mail server

To be able to send email, you need to tell ClusterControl how to send emails. There are two options: via sendmail or via an SMTP server.

When you make use of sendmail, the server where you have installed ClusterControl should have a local command line mail client installed. ClusterControl will send it’s email using the -r option to set the from-address. As sendmail may not deliver your email reliably, the recommended method of sending email would be via SMTP.

If you decide to use an SMTP server instead, you may need to authenticate against this server. Check with your hosting provider if this is required.

Once set in the first cluster, the mail server settings will be carried over to any new cluster created.

Sending a test email

In the Configure Mail Server interface, you can also send a test email. This will create a backend job, that will send an email to all configured recipients for this cluster under Email Notification Settings.

Troubleshooting

If your test email is not arriving and you have set your mail server settings to sendmail, you can check its workings from the ClusterControl host.

CMON log files

You can check your CMON logfiles and see if the email has been sent.

In /var/log/cmon_<clusterid>.log, you should see something similar to this:

2016-12-09 12:44:11 : (INFO) Executing email job.

If you see a log line like this, you may want to increase the daily message limit:

2016-12-09 12:44:47 : (WARNING) Refusing to send more than 10 messages daily to 'mailto://you@yourcompany.com'

As said earlier: if the message limit has been reached, you will no longer receive notifications.

A message about the -r option indicate your mail client does not support the from-header:

2016-12-09 12:44:17 : (WARNING) mail command doesn't support -r SENDER argument, retrying without that.

You can follow this support article to learn how which packages to install.

Sendmail log files

You can also check the local sendmail log files (/var/log/maillog) and see if your email gets delivered. A typical sendmail connection flow looks like the following:

Dec  9 17:36:41 localhost sendmail[24529]: uB9HafLM024529: from=clustercontrol@yourcompany.com, size=326, class=0, nrcpts=1, msgid=<584aeba9.9LBxfOatDgnTC+vm%clustercontrol@yourcompany.com>, relay=root@localhost
Dec  9 17:36:41 localhost postfix/smtpd[24530]: connect from n1[127.0.0.1]
Dec  9 17:36:41 localhost postfix/smtpd[24530]: 2C0AF4094CF9: client=n1[127.0.0.1]
Dec  9 17:36:41 localhost postfix/cleanup[24533]: 2C0AF4094CF9: message-id=<584aeba9.9LBxfOatDgnTC+vm%clustercontrol@yourcompany.com>
Dec  9 17:36:41 localhost sendmail[24529]: uB9HafLM024529: to=you@yourcompany.com, ctladdr=clustercontrol@yourcompany.com (0/0), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30326, relay=[127.0.0.1] [127.0.0.1], dsn=2.0.0, stat=Sent (Ok: queued as 2C0AF4094CF9)
Dec  9 17:36:41 localhost postfix/qmgr[1256]: 2C0AF4094CF9: from=<clustercontrol@yourcompany.com>, size=669, nrcpt=1 (queue active)
Dec  9 17:36:41 localhost postfix/smtpd[24530]: disconnect from n1[127.0.0.1]
Dec  9 17:36:41 localhost postfix/smtp[24534]: 2C0AF4094CF9: to=<you@yourcompany.com>, relay=mail.yourcompany.com[94.142.240.10]:25, delay=0.38, delays=0.05/0.02/0.08/0.24, dsn=2.0.0, status=sent (250 OK id=1cFP69-0002Ns-Db)

If these entries are not to be found inside the log file, you can increase the loglevel of Sendmail.

Command line email

A final check would be to run the mail command and see if that arrives:

echo "test message" | mail -r youremail@yourcompany.com -s "test subject" youremail@yourcompany.com

If the message from the command line arrives, but the ClusterControl message does not, it may be related to not having set the from-email address in ClusterControl. ClusterControl will then send the email from the default user on the system. If the hostname is not properly set on the ClusterControl host to a fully qualified domain name, this may result in your email server not accepting any emails by an unqualified domain name, or non-existing user.

We hope these tips help you configure notifications in ClusterControl.

Viewing all 385 articles
Browse latest View live