Really, good video. Would love some more details and nuances of replication. Like GTID based replication, how to handle delay, how to reset a replication etc. I assume Planetscale has extensive knowledge on those topics ;)
We have a few blog posts on replication, links below! planetscale.com/blog/what-is-mysql-replication-and-when-should-you-use-it planetscale.com/blog/mysql-replication-best-practices-and-considerations planetscale.com/blog/mysql-semi-sync-replication-durability-consistency-and-split-brains Of course, you should also check out the MySQL docs.
I suggest not using bin_log_do_db, restricting source to dump logs only for those specific schemas. Source must log all of its transaction, it is the replica job to read which one you need. If in the future you add another schema then you have to restart Source , which is not a good idea on an production environment
@@SebastianMares Well, basically it differs in behaviour. `sudo vim` means you are opening vim the editor program with elevated privilege. It's usually fine, but if the editor did something it shouldn't do then it would be a problem (say, you mistype a command in VIM) since it has elevated privilege now. But sudoedit (its actually alias for sudo -e) tells sudo that you want to edit a file. sudo then will do the procedure to safely do that for you like making a temporary copy of the file, opening the editor that the user specified (IIRC from EDITOR env var), moving those temporary file after finished editing, and this is the most important part, making sure that the editor is not running using elevated privilege. If you want to do that, then sure, do `sudo vim`, but if you just wanted to edit a file, sudo -e (or sudoedit) is usually a good practice.
@@YandiBanyu I wasn't aware of that, I thought sudoedit would simply open the default editor with super-user rights and I always found it inconvenient when the default editor is nano for example and I wanted to use vim. But true, I just tried to do an apt update from within an editor opened via sudoedit, and it complained that it doesn't have the rights to lock the files. Thanks for the suggestion and the explanation!
We're going to be releasing a course on scaling databases on our website, which will include concepts like vertical and horizontal sharding (which implies multiple primaries). If that sounds interesting to you, sign up here! planetscale.com/scale
You don't need to enable binary logs in the replica, will use storage space for nothing. Also the most important part it's to take one consistent master/primary snapshot/dump with the binary log position.
You don't have to tediously set up the log file and position like that. When you take a mysqldump of the master, just pass the --master-data=1 flag and that information will be saved to the .sql file and when you run source [dump.sql] on the slave, those parameters will already be set.
THANK YOU SO MUCH for this easy to understand explanation. You helped me make my first replication of my server. I have been manually backup up my database each day. This makes life so much easier. Now that I have done this and have 2 raspberry pi at my business sync I am thinking I should have a remote one at home just in case of fire or other catastrophies as I am in floriday. I know the static IP address of my business but how do I set the Master Host ip address for this? I am assuming a port number? I appreciate any incite. Thanks again for the video.
Glad you found it valuable. For the scenario you described, it depends on how things are configured. Does your primary server have a static + public IP address? If so that would make it simpler. If not, you might need to set up some kind of DNS-based solution.
Hey great video, great channel! But I am sad that the hobby plan was removed from my country. It was going to be used for a test run on my company, thanks to my recommendation, but now the cheapest plan is kind of expensive for this purpose. Can't you guys just make like a hobby plan just with the price to cover the costs for the countries you removed it?
Although PlanetScale makes it easy to create replicas, but I liked the way you explained the steps of creating replicas the hard way.
Thanks!
Adding value to your day!
@@PlanetScaleI learned something new👍
Really, good video. Would love some more details and nuances of replication. Like GTID based replication, how to handle delay, how to reset a replication etc. I assume Planetscale has extensive knowledge on those topics ;)
We have a few blog posts on replication, links below!
planetscale.com/blog/what-is-mysql-replication-and-when-should-you-use-it
planetscale.com/blog/mysql-replication-best-practices-and-considerations
planetscale.com/blog/mysql-semi-sync-replication-durability-consistency-and-split-brains
Of course, you should also check out the MySQL docs.
I suggest not using bin_log_do_db, restricting source to dump logs only for those specific schemas. Source must log all of its transaction, it is the replica job to read which one you need. If in the future you add another schema then you have to restart Source , which is not a good idea on an production environment
Thank you so much. I love this video.
Hey, just a heads up when editing a file as sudo, you should prefer to use sudoedit rather than directly sudo-ing the editor.
Why?
@@SebastianMares Well, basically it differs in behaviour. `sudo vim` means you are opening vim the editor program with elevated privilege. It's usually fine, but if the editor did something it shouldn't do then it would be a problem (say, you mistype a command in VIM) since it has elevated privilege now. But sudoedit (its actually alias for sudo -e) tells sudo that you want to edit a file. sudo then will do the procedure to safely do that for you like making a temporary copy of the file, opening the editor that the user specified (IIRC from EDITOR env var), moving those temporary file after finished editing, and this is the most important part, making sure that the editor is not running using elevated privilege. If you want to do that, then sure, do `sudo vim`, but if you just wanted to edit a file, sudo -e (or sudoedit) is usually a good practice.
@@YandiBanyu I wasn't aware of that, I thought sudoedit would simply open the default editor with super-user rights and I always found it inconvenient when the default editor is nano for example and I wanted to use vim. But true, I just tried to do an apt update from within an editor opened via sudoedit, and it complained that it doesn't have the rights to lock the files. Thanks for the suggestion and the explanation!
@@YandiBanyu Good safety tip! 💪
Plus it will use your file editor configurations not the root configuration s. E.g. you've configured vim, and it will use it.
great video. would love to see a video like this about running multiple masters!
We're going to be releasing a course on scaling databases on our website, which will include concepts like vertical and horizontal sharding (which implies multiple primaries). If that sounds interesting to you, sign up here! planetscale.com/scale
You don't need to enable binary logs in the replica, will use storage space for nothing. Also the most important part it's to take one consistent master/primary snapshot/dump with the binary log position.
You don't have to tediously set up the log file and position like that. When you take a mysqldump of the master, just pass the --master-data=1 flag and that information will be saved to the .sql file and when you run source [dump.sql] on the slave, those parameters will already be set.
Good tip! In this video we didn't show taking a dump, but if you're setting up replication for an existing database this is a great idea.
@@PlanetScale “Taking a Dump” heh… I’m a child.
@@spamviking8591 🤣
THANK YOU SO MUCH for this easy to understand explanation. You helped me make my first replication of my server. I have been manually backup up my database each day. This makes life so much easier. Now that I have done this and have 2 raspberry pi at my business sync I am thinking I should have a remote one at home just in case of fire or other catastrophies as I am in floriday. I know the static IP address of my business but how do I set the Master Host ip address for this? I am assuming a port number? I appreciate any incite. Thanks again for the video.
Glad you found it valuable. For the scenario you described, it depends on how things are configured. Does your primary server have a static + public IP address? If so that would make it simpler. If not, you might need to set up some kind of DNS-based solution.
How to monitor the replication and ensure the data be consistent, thank you.
Great video !
Thanks a lot. very useful.
Glad to help 🤜
Hey great video, great channel! But I am sad that the hobby plan was removed from my country. It was going to be used for a test run on my company, thanks to my recommendation, but now the cheapest plan is kind of expensive for this purpose. Can't you guys just make like a hobby plan just with the price to cover the costs for the countries you removed it?
If you're interested in trialing PlanetScale for business purposes, I recommend you reach out to our sales team! planetscale.com/contact
Where is aaron
died
The fact that you sell it and show how we can do it ourself first massive respect we salute you 🫡🫡