Setting up a mysql script to mysql dump - mysql

I'm following this tutorial - http://www.howto-expert.com/how-to-create-a-server-failover-solution/ and I've done all of it successfully, there was just one bit in the comments that I need assistance with.
I'm running a woocommerce wordpress site with an rsync and mysql dump to another server (Server B)
Once Primary Server A has failed over to Secondary Server it can act like a normal server, until a service called DNSmadeeasy checks the primary is back online and switches back to that.
I was wondering if anyone would be able to help me write a script to copy the data back over once the primary database is back up. I need to do this because once the server has failed over, and someone places an order, the secondary server then has the most up to date copy of the database. A simple mysql dump would work to transfer the contents of Database B back onto the Database A.
At the moment i've tried to draw a diagram but can't seem to get it to work - Can anyone help?

Related

Best approach to working with multiple developers and databases

I've been working on a project for a couple of months now with a few other developers and it has got to the point where we all have different changes to the DB we are working with, but all of the changes are local, meaning the server is out of sync with all of our local changes.
What is the best way to handle this? At the moment I tried to basically export my database from my local PC with phpMyAdmin and import that .sql file into the database on the server but as some of the tables already exist on the server it just gives out an error...
Would I have broken my database on the server by trying to import that sql file?
What do I do?
Ok so here's what I would do in your position...
Use this tool: http://www.clevercomponents.com/downloads/dbc/dbcdownload.asp
With the database compare tool, it should identify the differences in structure between two databases.
This generates an SQL file which will alter the target (your server) database to match the master (your local).
Always backup your target database before attempting something like this, just in case it goes wrong.

MySQL have system tables for mysqldump

I am coming from SQL Server where I can find almost anything I need about a database under the systems db's. I am wondering if MYSQL has a system table that will show when the last time a database was backed up via mysqldump.
The whole reason I am asking this is I am trying to create a dashboard/report (SSRS) to show when backups complete or fail. Right now we only get alerted via email so if there is another way I am all ears

How do I migrate a SQLAnywhere 9 db running in a remote server into a mysql server on my machine?

I am working at a company that has some CRM software running in a remote Windows XP server that uses a SQLAnywhere 9 db to store its data; I have access to this remote server with an administrator account.
I would like to extract the db into a .sql file so that I can run the db locally on my machine without affecting the running db in the server (since it is key for the company's day to day operation).
The reason I need this is that we are going to test some BI Software and we need data from this database to test it, but we don't know the structure of the database since the developers of the CRM software didn't give us any documentation on it. So we need to have the database locally so that, without affecting the running CRM, we can:
understand the structure by looking at the DDL
make queries to it to get sample data
I researched a bit, and the most common solution to my problem was to use dbunload on the remote server to unload the db into a reload.sql file that contained what I needed. But most tutorials on the subject mention that I have to stop the db first (which would be catastrophic). If this is the only option, then I guess I am willing to do it on the weekend when the CRM is not used, but I wanted to know if there was another solution first.
If there is no other solution, can you point me to where I can find the proper and safer way to do this?
I have researched a lot, but prior to this day I have never even heard of SQLAnywhere, so I really need all the help I can get. My main concern is doing something that impacts negatively the CRM software.
Thank you.
You can run dbunload across the network, you just have to tell it to do an "external" unload. The default is to do an internal unload which would only work from the machine where the database server is running.
I don't have SQL Anywhere 9 documentation right now to look up the exact switch, but dbunload -? should show you all the possible switches.
Edit:
-an will create a new database and load the data and schema from another data
-xi switch will do external unload and internal reload.
-c parameters to connect to your remote database

Can't copy schema data in /mySql Workbench 6.0

I've just installed MySql Workbench 6.0.09 on recommendation. The main reason was to copy my Wordpress database which is stored in MySql.
I'm using the import/export function with a single file, however it doesn't seem to populate the new schema whether I create it before hand or let the process create it.
I've read somewhere that this cross schema copy doesn't work in older versions, but I'm unsure whether this is still the case, i'm doing something wrong, or there is a permissions issue. It seems unlikely that I'm doing something wrong as there is literally a few clicks to deal with.
Anyone advise?
From the discussion above I conclude this question is about creating a duplicate of an existing database using MySQL Workbench. There are several possible approaches for this scenario:
Createa a dump of your source server using the Data Export feature in MySQL Workbench:
. Then restore that dump on the target machine (via Data Import/Restore).
Do a quick an easy shot by using Schema Transfer Wizard. See menu -> Database -> Schema Transfer Wizard...
Start a normal MySQL to MySQL migration using the Migration Wizard under the same menu item. This would also allow to migrate to different MySQL versions.
I didn't find an answer to this however, I did work out a solution.
1) I took a backup of the existing database.
2) I edited the script produced by the backup. I edited the database name on 2 lines at the top of the script then ran it.

multiple machine MySQL through Workbench

I have recently started using MySQL Workbench, hence I apologise if this is not the proper platform to ask this question. I tried to figure out the solution of my own, but could not find any appropriate one.
Here is my situation: At my workplace, we have a huge set of data about the operational and financial figures such as sales, employee, profit, etc for European companies spread over past 7-8 years and new data keeps coming regularly. However, the problem is we work from different remote locations, me in one city and the other two colleagues in a different city. Normally, we share our work files (.xls/.doc) etc through Dropbox. So, we thought of creating a database in MySQL wherein we all can submit/edit/add this data so that we can filter and analyse this data on several ways once the collection is complete. And we plan to use and access it thereafter. We believe that this is ease a lot of our work. So all I want to know is: can all three of us collaborate simultaeousy (in order to add or edit the data) through workbench Server administration, like the way we collaborate our work through Dropbox? I want to be the host (like the administrator) and then want to allow the access to my colleagues.
Thank you for your time and answer. You may also refer me to any site or link to read more about it.
I think you are a bit confused about what MySQL Workbench is.
MySQL workbench is just a data viewer and administration tool that connects to a MySQL server, there's no data "stored" in MySQL workbench, all the data is stored in the server.
MySQL workbench can:
Connect to a MySQL server
Send SQL instructions and show the results: You can create and drop databases, send SQL queries, create and execute stored procedures and functions... all assuming you have the right privileges.
Perform administration tasks: You can create and drop users, grant or revoke permissions, etcétera
But the fact is: all is stored in a MySQL server... so the answer to your question is: Yes, you can work simmultaneously with your colleagues, if and only if all of you can connect to the same database server (as Mike W commented).
Addressing your comments, and clarifying more details:
MySQL is a database server. When you install it in a computer, all data is stored in that computer (aside from replication and other fine details). You should make regular backups of your data (MySQL has tools for that, one is mysqldump). If you want to access the data stored in your database server, you can do it:
By ussing the command-line client,
By using MySQL workbench or another GUI client program, or
By any program that can connect to the database server (via ODBC or specific libraries).
Focusing on MySQL Workbench, and addressing your specific question: If your machine breaks down, you can install the MySQL Server in any other machine, and load the backup into it. You will have to configure that new machine so that any of your coworkers can connect to it (that may imply that a new set of connection parameters is created).