十年專注于品牌網站建設 十余年專注于網站建設_小程序開發_APP開發,低調、敢創新、有情懷!
      南昌百恒網絡微信公眾號 掃一掃關注
      小程序
      tel-icon全國服務熱線:400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡微信小程序

      百恒網絡

      南昌百恒網絡

      THINKPHP實現數據庫備份方案實操

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

      THINKPHP實現數據庫備份方案實操以及表備份、還原、表刪除、表優化、下載備份以及大數據備份

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

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

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

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

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

      #保存備份個數,備份31天數據
      number=31
      #備份保存路徑
      backup_dir=/root/mysqlbackup
      #日期
      dd=`date +%Y-%m-%d-%H-%M-%S`
      #備份工具
      tool=mysqldump
      #用戶名
      username=root
      #密碼
      password=123456
      #將要備份的數據庫
      database_name=demo

      #如果文件夾不存在則創建
      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

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

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

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

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


      原創文章出自:百恒網絡 如轉載請注明出處!專業,專注于南昌APP開發,為用戶提供高品質的網絡產品及優質服務是我們始終追求的目標!

      希望本文對廣大研發人員或從事企業網站建設公司的團隊有所幫助,如對此不太理解的,可以與南昌網絡公司百恒網絡技術部聯系。我們很高興與廣大研發人員和從事企業網站建設公司技術人員分享我們的技術和經驗。

      400-680-9298,0791-88117053
      掃一掃關注百恒網絡微信公眾號
      掃一掃打開百恒網絡小程序

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

      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售前咨詢 售前咨詢
       
      售后服務 售后服務
       
      售后服務 售后服務
       
      備案專線 備案專線
       
      ×
      国产综合精品在线| 久久精品久久久久观看99水蜜桃| 日韩在线视频一区二区三区| 国产精品麻花传媒二三区别| 国产精品1024香蕉在线观看| 99久久99久久精品免费观看| 久久精品国产精品亚洲艾草网 | 亚洲精品乱码久久久久久自慰 | 2022国产精品不卡a| 亚洲制服丝袜精品久久| 97精品免费视频| 久久久久亚洲精品天堂| 久久久久久国产精品视频| 国产精品天干天干综合网| 国产午夜无码精品免费看| 中文字幕无码精品三级在线电影 | 久久精品国产99国产精品澳门| 老司机成人精品视频lsj| 久久国产精品免费一区二区三区| 国产精品青草视频免费播放| 国产精品亚洲不卡一区二区三区| 国产精品国产三级国产| 亚洲欧洲精品成人久久奇米网| 一本精品99久久精品77| 亚洲国产精品一区二区第一页免| 日韩AV毛片精品久久久| 在线观看91精品国产网站| 免费人妻精品一区二区三区| 夜夜精品无码一区二区三区 | 亚洲国产精品第一区二区| 十八18禁国产精品www| 99国产精品热久久久久久| 久久ww精品w免费人成| 亚洲欧洲精品国产区| 国产精品久久久久久久久鸭| 高清精品一区二区三区一区| 精品国产这么小也不放过| 日本精品在线观看视频| 四虎永久在线精品视频免费观看| 日韩一卡2卡3卡4卡新区亚洲| 日韩人妻无码精品久久免费一|