Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2016
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.06 KB | None | 0 0
  1. mysqldump --opt --user=<youruser> --password=<yourpassword> -host <yourhost>
  2. <yourDB> <yourtable> | mysql -u <newserveruser> -p<password>
  3.  
  4. ssh -C -l <remoteuser> <remoteserver>
  5. 'mysqldump --opt --user=<youruser> --password=<yourpassword> <yourDB> <yourtable>'
  6. | mysql -u <newserveruser> -p<password>
  7.  
  8. /* set write lock on the table so it cannot be read while updating */
  9. LOCK TABLES mytable WRITE;
  10.  
  11. /* update all rows which are present in mytable and newtable */
  12. UPDATE mytable AS M LEFT JOIN newtable AS N ON M.primarykey = N.primarykey
  13. SET M.column1=N.column1, M.column2=N.column2 [...]
  14. WHERE N.primarykey Is Not NULL;
  15.  
  16. /* delete all rows from mytable which are no longer present in newtable */
  17. DELETE M FROM mytable AS M LEFT JOIN newtable AS N on M.primarykey = N.primarykey
  18. WHERE N.primarykey Is NULL;
  19.  
  20. /* insert new rows from newtable */
  21. INSERT INTO mytable (primarykey, column1, column2, [...])
  22. SELECT (N.primarykey, N.column1, N.column2, [...]) FROM mytable AS M
  23. RIGHT JOIN newtable AS N ON M.primarykey=N.primarykey WHERE M.primarykey Is NULL
  24.  
  25. /* release lock */
  26. UNLOCK TABLES;
  27.  
  28. DELIMITER $$
  29. CREATE TRIGGER sync_table1_insert
  30. AFTER INSERT ON `table1` FOR EACH ROW
  31. BEGIN
  32. INSERT INTO table2 (id, value) VALUES (NEW.id, NEW.value);
  33. END;
  34. $$
  35. DELIMITER ;
  36.  
  37. DELIMITER $$
  38. CREATE TRIGGER sync_table1_update
  39. AFTER UPDATE ON `table1` FOR EACH ROW
  40. BEGIN
  41. UPDATE table2 SET value = NEW.value WHERE id = NEW.id;
  42. END;
  43. $$
  44. DELIMITER ;
  45.  
  46. DELIMITER $$
  47. CREATE TRIGGER sync_table1_delete
  48. AFTER DELETE ON `table1` FOR EACH ROW
  49. BEGIN
  50. DELETE FROM table2 WHERE id = OLD.id;
  51. END;
  52. $$
  53. DELIMITER ;
  54.  
  55. #!/bin/bash
  56. #1
  57. current_date=$(date +"%m%d%y")
  58. echo "File name and path: /var/www/beta-"$current_date".sql"
  59.  
  60. #2 live backup
  61. mysqldump -u root -proot beta > "/var/www/intelli_live-"$current_date".sql"
  62.  
  63. #3 Beta backup:
  64. mysqldump -u root -proot beta_database2 --ignore-table=beta.webform_submitted_data --ignore-table=beta.webform_submissions > "/var/www/beta-"$current_date".sql"
  65.  
  66. #4 and then have beta sql to import in live
  67.  
  68. mysql -u root -proot beta_database < "/var/www/beta-"$current_date".sql"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement