Go Back   vb.org Archive > vBulletin Article Depository > Read An Article > Programming Articles
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Tutorial: How to make a reliable database backup
TECK's Avatar
TECK
Join Date: Nov 2001
Posts: 4,182

 

Canada
Show Printable Version Email this Page Subscription
TECK TECK is offline 06-06-2002, 10:00 PM

[high]UPDATES[/high]
People who ripped my tutorial, without placing a link that point here, as discussed:
[high]Tutorial:[/high] Backup A Reliable Database
[high]Ripper's Comments:[/high] Good Tutorial, Use It!

Please let them know also what you think about it. Thanks.
------------------------------------------------------
This tutorial is [high]vBulletin.org and cPublisher.com copywrited[/high]. All rights reserved.
Please ask permission in this thread to copy the tutorial. If granted, post a link that points to this page.


Database backups are the most important for MySQL users. If something goes wrong, you can easily restore all your tables and other information contained into.
Unfortunately, the vBulletin database backup is reliable only if used on a very small database, due to browser timeout limitations. On a large database the backup can take up to 20 minutes.

[high]TOOLS NEEDED[/high]
SecureCRT - 2.4MB (for more info, visit SecureCRT site)

NOTE: SecureCRT (30 days evaluation) combines the secure logon and data transfer capabilities of Secure Shell (SSH) with the reliability, usability and configurability of a proven Windows terminal emulator.
Another popular alternative would be PuTTY (free), a implementation of SSH and Telnet for Windows platforms, along with an xterm terminal emulator.
I tried both tools and decided that SecureCRT is the best for my needs because all data (send and receive) is encrypted. Also SecureCRT was much more flexible. I will use SecureCRT in all my steps, for this tutorial.

[high]BACKUP PROCEDURE[/high]
I assume that you already installed SecureCRT and configured correctly it's options, including the connection protocol, hostname, port and username. If you are not sure about any values, now is the time to contact your host and enquire this information.

01. Create a [high]/backup[/high] folder in your ROOT, using your FTP client. Later on, you will need to know the path to that folder. If you are not sure how to get the path for your backup folder, create a info.php file with the content:
<?php phpinfo(32); ?>

Upload it into your backup folder and open it in your internet browser. Look for this information:
_SERVER["DOCUMENT_ROOT"] > /path/to/backup/folder

02. Login onto your server, using SecureCRT. You will see this information:
[USERNAME HOSTNAME]$ _

That means you are successfully logged in and ready do give commands, at the prompt.

03. At the prompt, type:
mysqldump --opt -u [high]USERNAME[/high] -p [high]DATABASENAME[/high] > [high]/path/to/backup/folder[/high]/bk060502.sql

NOTE: Change the highlighted values with your own. You will need the MySQL database USERNAME that your web host created for you, NOT the one you access to your FTP server. In most cases, they are different.
If you are not sure, contact your host to obtain this information.
060502: month date year (easier to remember the last date you backup your database). Change it with the corresponding date of your actual backup.

04. You will be asked for your password:
Enter password: _

Enter your MySQL database PASSWORD and hit Enter.
NOTE: If you have a large database, it might take up to 20 minutes until your backup is done. Relax and smoke a cigarette or grab a snack.
When done, you will see in the SecureCRT window, the command prompt.

05. Login onto your FTP server and go to your /backup folder. You will see there your bk060502.sql file. Save it to a safe place (a CD-RW is good for me).

[high]RESTORE PROCEDURE[/high]
Well, here it comes that day when your tables are corrupted and nothing works in your beloved vBulletin. If you would not had done a backup, you would probably hit your head against the wall because you lost all your 3845 members and 285,793 threads. Tables corruption can happen pretty often, even if MySQL is known for it's reliability.

01. Login onto your FTP server and upload your bk060502.sql file to your /backup folder.

02. Login onto your server, using SecureCRT. You will see this information:
[USERNAME HOSTNAME]$ _

That means you are successfully logged in and ready do give commands, at the prompt.

03. At the prompt, type:
mysql -u [high]USERNAME[/high] -p [high]DATABASENAME[/high] < [high]/path/to/backup/folder[/high]/bk060502.sql

NOTE: Change the highlighted values with your own.

04. You will be asked for your password:
Enter password: _

Enter your MySQL database PASSWORD and hit Enter. When done, you will see in the SecureCRT window, the command prompt.

[high]COMMON ERRORS[/high]
The most frequent error you might get is this:
ERROR 1045: Access denied for user...

There are 3 causes for this:
1. You didn't replace the "username" with the MySQL username assigned by your administrator.
2. You supplied the wrong password (usernames and passwords are case-sensitive).
3. You don't have access. Contact your administrator for more assistance.

NOTE: Since SecureCRT have all data encrypted, it's possible also to safely specify your password into the command line. I recommend not to do it, just to keep a good habit. In normal conditions, if you do so, it's very possible your password can then be viewed by others using your system.

[high]OTHER RESSOURCES[/high]
- Moving Servers (vBulletin Technical Manual)
- mysqldump (Dumping Table Structure and Data)

If this tutorial was useful, please post your comments. Happy backups.
Reply With Quote
  #32  
Old 01-11-2003, 08:38 PM
TECK's Avatar
TECK TECK is offline
 
Join Date: Nov 2001
Location: Canada
Posts: 4,182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No need to turn the board off.
Reply With Quote
  #33  
Old 01-11-2003, 09:05 PM
JakeC JakeC is offline
 
Join Date: Sep 2002
Location: Yakima, WA
Posts: 74
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks, I appreciate it.

JakeC
Reply With Quote
  #34  
Old 02-15-2003, 02:22 AM
WHO WHO is offline
 
Join Date: Nov 2002
Posts: 12
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Is it normal for the backup made this way to be about half the size of the one that was downloaded via the vB admin backup? And should I be getting "Database Error" emails to my admin account every 2 seconds while backing it up? Other than that, everything seemed to have gone well.

Thanks.
Reply With Quote
  #35  
Old 02-15-2003, 02:39 AM
TECK's Avatar
TECK TECK is offline
 
Join Date: Nov 2001
Location: Canada
Posts: 4,182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

No and No.
Reply With Quote
  #36  
Old 02-28-2003, 07:58 AM
lioncool1589 lioncool1589 is offline
 
Join Date: Feb 2003
Posts: 76
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

teck help me out i got this error

mysqldump --opt -u***** -p clan?racknine?net > /home/myback.sql

mysqldump: Got error: 1130: Host 'localhost.localdomain' is not allowed to connect to this MySQL server when trying to connect
Reply With Quote
  #37  
Old 05-25-2003, 04:47 PM
UND3Rburn UND3Rburn is offline
 
Join Date: Apr 2003
Posts: 34
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Great Tutorial Teck! Ive been looking for a way to do this for a while.
Reply With Quote
  #38  
Old 06-18-2003, 01:26 AM
sajjid sajjid is offline
 
Join Date: Jul 2002
Posts: 86
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

i have very small board for that reason i share server with someone but dont have have shell access backing up is not a problem i use SQLyog or MySQL-Front clients backing up my database is ok but when i restore it takes ages and i mean ages. The way it backsup is it runs SQL Query on every thing like thousands for word and search they take the most time i was wondering is there a way i can just upload the whole backup file so it dosnt run Queries instead i just delete the old one and replace it with new one.
i have broadband connection so it would take long to uoload the files.
Many Thanks
Reply With Quote
  #39  
Old 07-11-2003, 10:46 AM
allan grossman allan grossman is offline
 
Join Date: Apr 2003
Location: surreal city, usa
Posts: 163
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

My backup strategy - this runs as a daily cron job.

My web root and the databases are on /usr not /var - and /usr is on a 40g IDE drive. The rest of the system is on a 10k rpm SCSI drive. No reason for the web content to be faster than my internet connection

I get one copy of the backup on each spindle and then manually copy one of the backups to a different machine once a week or so. I guess I could automate that if I wanted to.

#!/bin/sh

service httpd stop

mysqldump -uusername -ppassword -c vb_bassforum > /usr/www/archive/vb_bassforum.sql.dump
mysqldump -uusername -ppassword -c pointbeing > /usr/www/archive/pointbeing.sql.dump
mysqldump -uusername -ppassword -c hcbf > /usr/www/archive/hcbf.sql.dump

service httpd start

cp /var/spool/mail/* /usr/www/archive/mail

#change dump permissions so I can restore databases from remote with phpMyAdmin if I need to.

chown wizard /usr/www/archive/*.dump
chgrp apache /usr/www/archive/*.dump
chmod 660 /usr/www/archive/*.dump

tar cf /archive/backup.tar /usr/www/*

cp /archive/* /usr/archive
Reply With Quote
  #40  
Old 09-20-2003, 07:15 PM
centris's Avatar
centris centris is offline
 
Join Date: Nov 2001
Location: Scotland
Posts: 48
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

A little hint for those who's database does not run on their webserver, i.e. where your host has a dedicated mysql server.

You must use the '-h' option to specify a mysql server

Example:

mysqldump --opt -h mysite.co.uk -u name -p dbname > /home/www.mysite.co.uk/public_html/backup/vbulletin.sql

I spent weeks trying to get my head round this, eventualy our sysadmin helped out with the above info.
Reply With Quote
  #41  
Old 09-21-2003, 12:44 AM
raxafarian raxafarian is offline
 
Join Date: Apr 2003
Posts: 28
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Visionray
Trying to get this to work.

When I log on to CRT, I don't get [USERNAME HOSTNAME]$ _

I get
bash-2.04*$


Anyways, when I type in the mysql bla bla, it says

"no such file or directory exists.

This is the path Im typing
home/virtual/site376/fst/var/www/html/backup/blablabla.sql

This is the exact info I was given from the info.php file.
I know the directory is there, I can see it on my server, but CRT isn't recognizing it.

Any ideas?

use: /var/www/html/backup/blablabla.sql


actually....get it out of 'web accessible' area...
/var/backup/blablabla.sql
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 11:16 PM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.06268 seconds
  • Memory Usage 2,310KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_article
  • (1)navbar
  • (4)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete