干熟妇在线视频午夜剧场一级A级|99成人香视频日本两性激情视频|久久 午夜福利无码精品人妻一区|热久久超碰精品精品少妇一区二区|五月天综合在线国产一区免费视频|亚洲成人中心热re久久99|亚洲国产怡红院丁香五月综合h|玖玖九久久久午夜射精视频

十年專注于品牌網(wǎng)站建設(shè) 十余年專注于網(wǎng)站建設(shè)_小程序開發(fā)_APP開發(fā),低調(diào)、敢創(chuàng)新、有情懷!
南昌百恒網(wǎng)絡(luò)微信公眾號 掃一掃關(guān)注
小程序
tel-icon全國服務(wù)熱線:400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)微信小程序

百恒網(wǎng)絡(luò)

南昌百恒網(wǎng)絡(luò)

THINKPHP實現(xiàn)數(shù)據(jù)庫備份方案實操

THINKPHP數(shù)據(jù)庫備份 百恒 2023-02-04 3670
      通過THINKPHP實現(xiàn)數(shù)據(jù)庫備份方案實操,其中包括最佳數(shù)據(jù)備份還原shell腳本方式、表備份、表還原、表刪除、表優(yōu)化、下載備份以及大數(shù)據(jù)備份采取措施等實操方法,通過實例全面的介紹Mysql數(shù)據(jù)庫的基本操作,希望對廣從事網(wǎng)站建設(shè)開發(fā)的技術(shù)人員及企業(yè)有所幫助。

THINKPHP實現(xiàn)數(shù)據(jù)庫備份方案實操以及表備份、還原、表刪除、表優(yōu)化、下載備份以及大數(shù)據(jù)備份

第一步:composer 下載 tp5er/tp5-databackup
下載:tp5er/tp5-databackup

最佳數(shù)據(jù)備份還原- shell腳本方式
1、//備份整個數(shù)據(jù)庫
mysqldump -uroot -hhost -ppassword dbname > backdb.sql
2、//備份數(shù)據(jù)庫中的某個表
mysqldump -uroot -hhost -ppassword dbname tbname1, tbname2 > backdb.sql
3、//備份多個數(shù)據(jù)庫
mysqldump -uroot -hhost -ppassword --databases dbname1, dbname2 > backdb.sql
4、//備份系統(tǒng)中所有數(shù)據(jù)庫
mysqldump -uroot -hhost -ppassword --all-databases > backdb.sql
5、//恢復(fù)
mysql -uroot -p\'123456\' dbname < backdb.sql 
使用本類進行數(shù)據(jù)庫備份

第二步:使用composer進行安裝
優(yōu)先
composer require tp5er/tp5-databackup 
同時支持tp6和tp5版本

引入類文件
use \\tp5er\\Backup; 
參數(shù)說明
$start:無論是備份還是還原只要一張表備份完成$start就是返回的0
$file :sql文件的名字,下面有名字命名規(guī)范,如果名字命令不規(guī)范,在展示列表中就會出現(xiàn)錯誤 
配置文件
$config=array(
    \'path\'     => \'./Data/\',//數(shù)據(jù)庫備份路徑
    \'part\'     => 20971520,//數(shù)據(jù)庫備份卷大小
    \'compress\' => 0,//數(shù)據(jù)庫備份文件是否啟用壓縮 0不壓縮 1 壓縮
    \'level\'    => 9 //數(shù)據(jù)庫備份文件壓縮級別 1普通 4 一般  9最高
); 
第三步:實例化
 $db= new Backup($config); 
在此南昌網(wǎng)站建設(shè)公司開發(fā)工程師溫馨提醒廣大開發(fā)人員文件命名規(guī)則,請嚴格遵守,否則會帶來很多不必要的麻煩
$file=[\'name\'=>date(\'Ymd-His\'),\'part\'=>1] 
數(shù)據(jù)類表列表
return $this->fetch(\'index\',[\'list\'=>$db->dataList()]); 
備份文件列表
 return $this->fetch(\'importlist\',[\'list\'=>$db->fileList()]); 
備份表
 $tables="數(shù)據(jù)庫表1";
 $start= $db->setFile($file)->backup($tables[$id], 0); 
導(dǎo)入表
 $start=0;
 $start= $db->setFile($file)->import($start); 
刪除備份文件
 $db->delFile($time); 
下載備份文件
 $db->downloadFile($time); 
修復(fù)表
 $db->repair($tables) 
優(yōu)化表
 $db->optimize($tables) 
大數(shù)據(jù)備份采取措施1
如果備份數(shù)據(jù)比較大的情況下,需要修改如下參數(shù)
//默認php代碼能夠申請到的最大內(nèi)存字節(jié)數(shù)就是134217728 bytes,如果代碼執(zhí)行的時候再需要更多的內(nèi)存,根據(jù)情況定義指定字節(jié)數(shù)
memory_limit = 1024M
//默認php代碼申請到的超時時間是20s,如果代碼執(zhí)行需要更長的時間,根據(jù)代碼執(zhí)行的超時時間定義版本運行超時時間
max_execution_time =1000 
大數(shù)據(jù)備份采取措施2
 自由設(shè)置超時時間。支持連貫操作,該方法主要使用在表備份和還原中,防止備份還原和備份不完整
    //備份
    $time=0//表示不限制超時時間,直到程序結(jié)束,(慎用)
    $db->setTimeout($time)->setFile($file)->backup($tables[$id], 0);
    //還原
    $db->setTimeout($time)->setFile($file)->import($start); 
備份shell腳本
#!/bin/bash

# 1.備份全部數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)
# mysqldump -uroot -p123456 -A > /data/mysqlDump/mydb.sql
# 2.備份全部數(shù)據(jù)庫的結(jié)構(gòu)(加 -d 參數(shù))
# mysqldump -uroot -p123456 -A -d > /data/mysqlDump/mydb.sql
# 3.備份全部數(shù)據(jù)庫的數(shù)據(jù)(加 -t 參數(shù))
# mysqldump -uroot -p123456 -A -t > /data/mysqlDump/mydb.sql
# 4.備份單個數(shù)據(jù)庫的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù)庫名mydb)
# mysqldump -uroot-p123456 mydb > /data/mysqlDump/mydb.sql
# 5.備份單個數(shù)據(jù)庫的結(jié)構(gòu)
# mysqldump -uroot -p123456 mydb -d > /data/mysqlDump/mydb.sql
# 6.備份單個數(shù)據(jù)庫的數(shù)據(jù)
# mysqldump -uroot -p123456 mydb -t > /data/mysqlDump/mydb.sql
# 7.備份多個表的數(shù)據(jù)和結(jié)構(gòu)(數(shù)據(jù),結(jié)構(gòu)的單獨備份方法與上同)
# mysqldump -uroot -p123456 mydb t1 t2 > /data/mysqlDump/mydb.sql
# 8.一次備份多個數(shù)據(jù)庫
# mysqldump -uroot -p123456 --databases db1 db2 > /data/mysqlDump/mydb.sql
南昌網(wǎng)站建設(shè)公司百恒網(wǎng)絡(luò)開發(fā)工程師提醒大家以下是大數(shù)據(jù)庫還原操作方法: 
# 1.在系統(tǒng)命令行中,輸入如下實現(xiàn)還原:
# mysql -uroot -p123456 < /data/mysqlDump/mydb.sql # 2.在登錄進入mysql系統(tǒng)中,通過source指令找到對應(yīng)系統(tǒng)中的文件進行還原: # mysql> source /data/mysqlDump/mydb.sql

#保存?zhèn)浞輦€數(shù),備份31天數(shù)據(jù)
number=31
#備份保存路徑
backup_dir=/root/mysqlbackup
#日期
dd=`date +%Y-%m-%d-%H-%M-%S`
#備份工具
tool=mysqldump
#用戶名
username=root
#密碼
password=123456
#將要備份的數(shù)據(jù)庫
database_name=demo

#如果文件夾不存在則創(chuàng)建
if [ ! -d $backup_dir ];
then     
    mkdir -p $backup_dir;
fi

#簡單寫法 mysqldump -u root -p123456 users > /root/mysqlbackup/users-$filename.sql
$tool -u $username -p$password $database_name > $backup_dir/$database_name-$dd.sql

#寫創(chuàng)建備份日志
echo "create $backup_dir/$database_name-$dd.dupm" >> $backup_dir/log.txt

#找出需要刪除的備份
delfile=`ls -l -crt $backup_dir/*.sql | awk \'{print $9 }\' | head -1`

#判斷現(xiàn)在的備份數(shù)量是否大于$number
count=`ls -l -crt $backup_dir/*.sql | awk \'{print $9 }\' | wc -l`

if [ $count -gt $number ]
then
  #刪除最早生成的備份,只保留number數(shù)量的備份
  rm $delfile
  #寫刪除文件日志
  echo "delete $delfile" >> $backup_dir/log.txt
fi


原創(chuàng)文章出自:百恒網(wǎng)絡(luò) 如轉(zhuǎn)載請注明出處!專業(yè),專注于南昌APP開發(fā),為用戶提供高品質(zhì)的網(wǎng)絡(luò)產(chǎn)品及優(yōu)質(zhì)服務(wù)是我們始終追求的目標!

希望本文對廣大研發(fā)人員或從事企業(yè)網(wǎng)站建設(shè)公司的團隊有所幫助,如對此不太理解的,可以與南昌網(wǎng)絡(luò)公司百恒網(wǎng)絡(luò)技術(shù)部聯(lián)系。我們很高興與廣大研發(fā)人員和從事企業(yè)網(wǎng)站建設(shè)公司技術(shù)人員分享我們的技術(shù)和經(jīng)驗。

400-680-9298,0791-88117053
掃一掃關(guān)注百恒網(wǎng)絡(luò)微信公眾號
掃一掃打開百恒網(wǎng)絡(luò)小程序

歡迎您的光顧,我們將竭誠為您服務(wù)×

售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售前咨詢 售前咨詢
 
售后服務(wù) 售后服務(wù)
 
售后服務(wù) 售后服務(wù)
 
備案專線 備案專線
 
×