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

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

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

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

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

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

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

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

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

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

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

      #保存?zhèn)浞輦€(gè)數(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ù)庫(kù)
      database_name=demo

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

      #簡(jiǎn)單寫法 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

      #找出需要?jiǎng)h除的備份
      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)載請(qǐng)注明出處!專業(yè),專注于南昌APP開發(fā),為用戶提供高品質(zhì)的網(wǎng)絡(luò)產(chǎn)品及優(yōu)質(zhì)服務(wù)是我們始終追求的目標(biāo)!

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

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

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務(wù) 售后服務(wù)
       
      售后服務(wù) 售后服務(wù)
       
      備案專線 備案專線
       
      ×
      久热这里只有精品12| 亚洲精品成人久久久| 最新国产精品亚洲| 正在播放国产精品每日更新| 日韩免费的视频在线观看香蕉| 经典国产乱子伦精品视频| 亚洲AV无码久久精品狠狠爱浪潮| 精品无码人妻久久久久久| 日韩精品中文字幕在线| 国产亚洲精品美女2020久久 | 人妻熟妇乱又伦精品HD| 国产成人精品天堂| 久久亚洲精品国产精品| 国产成人精品2021| 国产精品一区二区久久不卡| 久久国产精品一区| 国产高清在线精品一本大道国产| 日韩一级在线播放免费观看| 精品无码久久久久久午夜| 2021日韩麻豆| 亚洲?V无码成人精品区日韩| 国产精品一区二区三区久久| 日韩AV无码精品一二三区| 精品伊人久久大线蕉地址| 尤物国午夜精品福利网站| 免费无码精品黄AV电影| 久久久久久久久66精品片| 99re6这里只有精品视频| 日本午夜精品一区二区三区电影| 午夜精品久久久久久久| 久久精品99久久香蕉国产| 久久精品国产亚洲AV麻豆~| 久久精品视频免费播放| 久久精品免费视频观看| 久久国内精品自在自线400部o| 久久亚洲国产精品五月天| 无码国产精品一区二区免费3p | 国产精品综合久成人| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产日产欧产精品精品蜜芽| 久久亚洲精品11p|