PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : گرفتن پشتیبان و بازنشانی (backup / restore ) دیتابیس بوسیله shell ( آموزش )



irmizban
January 27th, 2012, 00:24
سلام.
برای صاحبان سایت های دینامیک گرفتن بک آپ از دیتایس خیلی مهمه و اگر این بک آپ حجمش بالا باشه ( مثلا بالای 100 مگابایت یا حتی حدود 1 گیگابایت ) بک آپ گیری دشوار خواهد شد و با سرعتی که ما در ایران داریم تقریبا غیر ممکن هست .
حالا من میخوام آموزش گرفتن بک آپ و ریستورکردن آن رو از طریق خود سرور بیان کنم امیدوارم مفید باشه.
برای اینکار شما باید به سرور لینوکسی با دسترسی شل داشته باشید . ( حتما باید دسترسی شما root باشه)

اول : برنامه PuTTY رو دانلود کنیداین نرم افزار به نظر من حرفه ای ترین در shell هست > http://www.chiark.greenend.org.uk/~s.../download.html (http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html)

اینک مستقیم دانلود : http://the.earth.li/~sgtatham/putty/.../x86/putty.exe (http://the.earth.li/%7Esgtatham/putty/latest/x86/putty.exe)
با اجرای برنامه و ورود به فضای شل سایت ( اگر کار با این نرم افزار رو نمیدونید بگید تا توضیحی مختصر بدم) کار رو آغاز میکنیم .

uname = نام کاربری دیتابیس (username)
dbname= نام دیتابیس
db_backup.sql = نام فایلی که اطلاعات دیتابیس در اون هست .

1_ طریقه بک آپ گیری (backup) :




mysqldump -u uname -p dbname > db_backup.sql



کاری که خط فرمان بالا در شل لینوکس انجام میده از دیتابیس dbname بک آپ میگیره و بعد اون رو با نام db_backup.sql ذخیر میکنه .
حالا شما با داشتن این بک آپ و آرشیو کردن اون میتونید هر زمان که بخواهین اون رو ریستو یا دانلود کند...

* اگر قصد دارید فایل بک آپ رو بصورت فشورد ( مثل zip) داشته باشین دستور زیر رو استفاده کنید .





mysqldump -u uname -p dbname | gzip -9 > db_backup.sql.gz


دراین حالت فایل تولید شده به صورت فشرده در میاد .

برای اینکه اون رو هم از حالب فشرده خارج کنید یعنی sql.gz به .sql دستور زیر :





gunzip db_backup.sql.gz



2_ طریقه ریستور کردن (restore):

ابتدا یک دیتابیس جدید بسازید و یک یوزم هم برای اون درست کنید .
و بعد :




mysql -u uname –p dbname < db_backup.sql




و اما اگر نوع فایل بک آپ به صورت فشرده بود (.sql.gz ) از دستور زیر استفاده کنید :




gunzip < [db_backup.sql.gz] | mysql -u unmae -p dbname




زمان بک آپ گیری و ریستو کردن بستگی به حجم دیتابیس داره نیز قدرت سرور مثلا من سروی که داشتم سی پیو 8 هسته ای بود و حجم دیتابیس حدود 1.5 گیگابایت برای ریستور کردن حدود 5 دقیقه زمان بورد.

اگر دیتابیس شما روی یک هاست دیگه هست و بک آپ رو جای دیگه گذاشتین از دستور زیر برای انتقال اون به سرور خودتون استفاده کنید .





wget http://domain.com/database.sql


این مقاله رو خودم در یکی از فروم ها قبلا متشر کرده بودم که دیدم بد نیست ایجا هم بهش پرداخته بشه .

موفق باشید .

mohsenjim
July 20th, 2012, 19:22
قربان یوزر نیم و پسورد و اسم دیتابیس رو از کجا بفهمیم؟
من سرور مجازیم پنل vmware داره... با اون نمی شه بک آپ گرفت؟
من بخوام از کل سرور بک آپ بگیرم باید چه کار کنم؟

VatanDC
December 12th, 2013, 11:47
از کجا متوجه بشیم که دیتا بیس سایتمون تو کجا هستش ؟
تو var/lib/mysql یکسری فایل هستش اما متاسفانه هیچکدوم sql نیست یکسری فایل با پسوند frm هستند

AVA-SERVER
December 12th, 2013, 11:54
با سلام:
دوست خوبم قسمت بک آپ ها ذخیره خواهد شد.
به درصورت نیاز به انتقال بک آپ ها به سرور دیگر ، آخر این آموزش رو بخونید
موفق باشید
دهدارشیرازی

VatanDC
December 12th, 2013, 12:04
با سلام:
دوست خوبم قسمت بک آپ ها ذخیره خواهد شد.
به درصورت نیاز به انتقال بک آپ ها به سرور دیگر ، آخر این آموزش رو بخونید
موفق باشید
دهدارشیرازی
این اموزش کامل اموزش انتقال را داده است .
فقط یک مسئله ای چطور می توانم پسورد دیتابیس - و یوزرنیمش را استخراج کنم ؟
چون اطلاع ندارم :(

AVA-SERVER
December 12th, 2013, 12:13
این مورد امکان ندارد ، استخراج پسورد اگر به این سادگی بود که سایتا به راحتی هک میشد ، شما نیاز به انتقال سایت های خود دارید؟
البته استخراج پسورد امکان پذیر است ولی بسیار دشوار

VatanDC
December 12th, 2013, 12:26
جناب پیدا کردم یوزر و پسورد دیتابیس رو الان تنها چیزی که پیدا نمیکنم مسیر که بکاپ ها ذخیره میشه
داخل روت نبود

AVA-SERVER
December 12th, 2013, 12:28
عرض کردم که داخل قسمت بک آپ ها ذخیره خواهد شد ، شما میتونید به سرور دیگری منتقل کنید برای راحتی کار

VatanDC
December 12th, 2013, 13:39
عرض کردم که داخل قسمت بک آپ ها ذخیره خواهد شد ، شما میتونید به سرور دیگری منتقل کنید برای راحتی کار

میشه بفرمائید پوشه بکاپ کجاست ؟

VatanDC
December 16th, 2013, 17:23
up....................................

i-Power
December 16th, 2013, 17:28
میشه بفرمائید پوشه بکاپ کجاست ؟

با سلام خدمت شما،

احتمالا همکار عزیز پوشه ی بکاپ ها در این قسمت رو می فرمایند ( /backups )

در دایرکتوری / بررسی بفرمایید.

موفق باشید

VatanDC
December 17th, 2013, 13:34
راستش هرکجا رو که بگید بنده گشتم نبوده این فولدر
امکان ادرس دهی هستش که بزنیم داخل یک ادرسی ریخته بشه اگه هست ممنون میشم commend رو قرار بدید .
با تشکر

i-Power
December 17th, 2013, 13:43
راستش هرکجا رو که بگید بنده گشتم نبوده این فولدر
امکان ادرس دهی هستش که بزنیم داخل یک ادرسی ریخته بشه اگه هست ممنون میشم commend رو قرار بدید .
با تشکر

با سلام خدمت شما،

از دستور locate backups استفاده کنید، البته نمی دونم برای دایرکتوری ها هم صادق هست یا خیر.

موفق باشید

Yas-Host
December 17th, 2013, 13:46
راستش هرکجا رو که بگید بنده گشتم نبوده این فولدر
امکان ادرس دهی هستش که بزنیم داخل یک ادرسی ریخته بشه اگه هست ممنون میشم commend رو قرار بدید .
با تشکر

ببنید شما در هرجایی که در سرور قرار گرفته باشید مثلا در شاخه root و یا اصلا /home سرور باشید میتوانید دستور بک آپ گیری یا ریستور کردن آن را اجرا نمایید برای مثال میخواهیم در فولدر public_html یوزرنیم test بک آپ mysql با اطلاعات زیر را بگیریم:
ابتدا دستور cd /home/test/public_html را میزنیم سپس :

username : test_dbone
dbname : test_dbname
password : test
با زدن دستور زیر میتونید اینکار رو انجام بدید

mysqldump -u test_dbone -p test_dbname > db_backup.sql

و حالا در هر جایی از سرور بودید بک آپ mysql مورد نظر به نام db_backup.sql سیو میشود.

برای اینکه ببنید در کدوم قسمت از سرور هستید(تشریف دارید) دستور pwd را بزنید.



موفق باشید.