亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

小型Drupal數(shù)據(jù)庫(kù)備份以及大型站點(diǎn)MySQL備份策略分享

 更新時(shí)間:2014年11月14日 21:56:15   投稿:mdxy-dxy  
為了防止web服務(wù)器出現(xiàn)故障而引起的數(shù)據(jù)丟失,數(shù)據(jù)庫(kù)備份顯得非常重要,以免出現(xiàn)重大損失。本文分析研究一下小型的Drupal站的備份策略以及大型站點(diǎn)的mysql備份策略

中小站點(diǎn)簡(jiǎn)單備份策略

基于drupal的中小行網(wǎng)站,我們可以使用backup_migrate模塊,該模塊提供了定期備份的功能,備份的時(shí)間、保留多少個(gè)備份等等設(shè)置,設(shè)置好之后,定期執(zhí)行cron即可備份成功。 一般的Drupal小站,我們只需使用svn即可,在服務(wù)器端,我們把備份好的數(shù)據(jù)提交到svn,就可以達(dá)到備份的目的。由于Drupal的備份模塊可以設(shè)置備份保留的文件份數(shù),因此不會(huì)造成太多的備份文件,從而導(dǎo)致svn很大。

下面是一個(gè)簡(jiǎn)單的備份腳本,放置到站點(diǎn)根目錄,然后加到crontab每天執(zhí)行即可。

#!/bin/bash
 
date #start date
DRUSH_PHP=/bin/php #php path
export DRUSH_PHP
 
drush cron
svn st sites/default/files/backup_migrate/scheduled/ | grep '^!' | awk '{print $2}' | xargs svn delete --force
svn add sites/default/files/backup_migrate/scheduled/*
svn ci sites/default/files/backup_migrate/scheduled/ -m 'add backup files'
date #end date

crontab的設(shè)置如下

復(fù)制代碼 代碼如下:

0  0 * * * cd /www/web/html/ && bash cron.sh > cron.log 2>&1

大型站點(diǎn)MySQL備份策略

如果是數(shù)據(jù)庫(kù)稍大的站點(diǎn),使用svn臨時(shí)備份就略顯單薄,這時(shí)需要使用MySQL備份策略,一般情況下我們需要把整個(gè)數(shù)據(jù)庫(kù)都備份壓縮,然后定期轉(zhuǎn)移到備份數(shù)據(jù)庫(kù)或者放到其他的云服務(wù)器,這里給出一個(gè)簡(jiǎn)單的PHP示例代碼。

#!/usr/bin/php -q
<?php
 
$to = "gaoxinzhao@gmail.com";
$hostname = exec('/bin/hostname');
$mycnf = "/home/robbin/.my.cnf";
 
$ignore = array('information_schema', 'test', 'mysql', 'wdcpdb');
 
function trimw($str) {
 $str = str_replace(array("n", "r", "t", " ", "o", "xOB"), '', $str);
 return $str;
}
 
if (!file_exists($mycnf)) {
 mail($to, "No .my.cnf exists on $hostname", "MySQL cannot dump because .my.cnf is missing on $hostname .") ;
 exit("cant get user creds");
}
 
$myconf = file_get_contents($mycnf) or die( "Failed to open bmesh_admin's .my.cnf" );
 
preg_match( "/buser(.*)/", $myconf, $matches ) or die( mail($to, "No username in .my.cnf on $hostname", "MySQL cannot dump on $hostname"));
 
$usr = (explode('=', $matches[0]));
$user = trimw($usr[1]);
 
preg_match( "/bpassword(.*)/", $myconf, $matches ) or die( mail($to, "No password in .my.cnf on $hostname", "MySQL cannot dump on $hostname"));
 
$pass = (explode('=', $matches[0]));
$password = trimw($pass[1]);
 
mysql_connect("localhost",$user,$password) or die ("could not connect: " . mysql_error());
mysql_select_db("mysql");
$result = mysql_query("show databases");
 
$bpath = "/home/robbin/backup/mysql";
$btime = date("Y-m-d H:i:s");
$bstamp = strtotime($btime);
$byear = date("Y", $bstamp);
$bmonth = date("m", $bstamp);
$bday  = date("d", $bstamp);
$btod  = date("H-i-s", $bstamp);
 
while ($res = mysql_fetch_array($result))
{
    $myDb = $res["Database"];
    if (in_array($myDb, $ignore)) continue;
    $mdir = "$bpath/$byear/$bmonth/$bday/$btod/$myDb";
    $out = `mkdir -p $mdir`;
    $myFile = $myDb . ".sql";
    $bldCmd = "cd $mdir ; ";
    $bldCmd .= "mysqldump -u$user -p$password --single-transaction --add-drop-table -R -c -Q $myDb > $myFile ;";
    //$bldCmd .= "chmod 644 $myFile ; ";
    //$bldCmd .= "chown root:root $myFile ; ";
    $bldCmd .= "gzip -9 $myFile";
    print "Backing up $myDbn";
    print "Securing $myDbn";
    $out = `$bldCmd`;
}
$out = `chmod 700 $bpath/$byear`;
print "$outn";
print "Backups are in $bpathn";

crontab的設(shè)置

復(fù)制代碼 代碼如下:

0 1 * * * /home/robbin/bin/mysql_backup.php

此外我們需要把備份的數(shù)據(jù)還要定期傳送到其他服務(wù)器上,才會(huì)避免服務(wù)器崩潰而引發(fā)數(shù)據(jù)丟失。備份及時(shí)網(wǎng)站才有保證,這里僅僅只是筆者的一點(diǎn)點(diǎn)操作分享,大家有更好的備份策略,歡迎共享。

相關(guān)文章

  • MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法

    MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法

    這篇文章主要介紹了MySQL啟動(dòng)連接的命令以及與PHP程序連接的基本語(yǔ)法,簡(jiǎn)單講述了PHP中調(diào)用MySQL的方法,需要的朋友可以參考下
    2015-11-11
  • Nacos配置MySQL8的方法

    Nacos配置MySQL8的方法

    這篇文章主要介紹了Nacos配置MySQL8的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • MySQL選擇合適的備份策略和備份工具

    MySQL選擇合適的備份策略和備份工具

    這篇文章主要介紹了MySQL選擇合適的備份策略和備份工具,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你的學(xué)習(xí)有所幫助
    2022-05-05
  • Mysql5.7修改root密碼教程

    Mysql5.7修改root密碼教程

    今天小編就為大家分享一篇關(guān)于Mysql5.7修改root密碼教程,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-02-02
  • MySQL復(fù)制之GTID復(fù)制的具體使用

    MySQL復(fù)制之GTID復(fù)制的具體使用

    從MySQL 5.6.5開(kāi)始新增了一種基于GTID的復(fù)制方式,本文主要介紹了MySQL復(fù)制之GTID復(fù)制的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決

    MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決

    本文主要介紹了MySQL導(dǎo)入數(shù)據(jù)權(quán)限問(wèn)題的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • mysql中使用replace替換某字段的部分內(nèi)容

    mysql中使用replace替換某字段的部分內(nèi)容

    這篇文章主要介紹了mysql中使用replace替換某字段的部分內(nèi)容的方法,需要的朋友可以參考下
    2014-11-11
  • MySQL使用profile查詢性能的操作教程

    MySQL使用profile查詢性能的操作教程

    這篇文章主要介紹了MySQL使用profile查詢性能的操作教程,不僅是SQL語(yǔ)句的性能,更能夠收集系統(tǒng)運(yùn)行的CPU及內(nèi)存占用情況,需要的朋友可以參考下
    2015-11-11
  • MySQL事務(wù)的四種特性總結(jié)

    MySQL事務(wù)的四種特性總結(jié)

    事務(wù)就是一組DML語(yǔ)句組成,這些語(yǔ)句在邏輯上存在相關(guān)性,這一組DML語(yǔ)句要么全部成功,要么全部失敗,是一個(gè)整體,一個(gè) MySQL 數(shù)據(jù)庫(kù),可不止你一個(gè)事務(wù)在運(yùn)行,所以一個(gè)完整的事務(wù),絕對(duì)不是簡(jiǎn)單的 sql 集合,本文就給大家總結(jié)一下MySQL事務(wù)的四種特性
    2023-08-08
  • MySQL 排序規(guī)則簡(jiǎn)介

    MySQL 排序規(guī)則簡(jiǎn)介

    排序規(guī)則是指對(duì)指定字符集下不同字符的比較規(guī)則,有明顯的體征體現(xiàn),如兩個(gè)不同的字符集不能有相同的排序規(guī)則兩個(gè)字符集有一個(gè)默認(rèn)的排序規(guī)則有一些常用的命名規(guī)則,接下來(lái)通過(guò)本文詳細(xì)介紹MySQL 排序規(guī)則,需要的朋友可以參考下
    2023-09-09

最新評(píng)論