❶ Mysql的備份與還原,非常規備份,全量備份,增量備份
1:官方百萬級別的測試資料庫:
官方測試資料庫github網址:https://github.com/datacharmer/test_db
下載到目錄,解壓即可,運行命令:
2:自己創建簡單測試資料庫:
快速隨機生成測試語言的網站:https://generatedata.com/
選擇sql和想生成的欄位,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原後查詢庫的表數據是否完整。
採用復制整個數據存放目錄
1:查看資料庫數據存放位置
有兩種方法:
1):在資料庫中用命令 show variables like 'datadir' 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:復制目錄或者目錄下某個資料庫名
3:還原時直接復制文件夾到資料庫目錄即可
mysqlmp又可叫做全量備份。
參數 --databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqlmp格式
格式:mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 database 資料庫名 > 文件名.sql
備份testDatabase資料庫
2、備份MySQL資料庫為帶刪除表的格式
備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
3、直接將MySQL資料庫壓縮備份
備份並壓縮
4、備份MySQL資料庫某個(些)表
備份testDatabase中的myTable表,不需要用參數 --databases 或者 -B
5、同時備份多個MySQL資料庫
同時備份testDatabase和 employees兩個庫
6、備份伺服器上所有資料庫
參數 --all-databases 同 -A
7、還原MySQL資料庫的命令
1) 不指定數據名還原,默認生成原資料庫名稱,還原所有資料庫。
2) 指定數據名還原,還原指定單個資料庫,需在資料庫種預先創建一個testDatabase名稱。
3) 還原壓縮的MySQL資料庫
4) 進入資料庫用source導入
增量備份是針對於資料庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。
1:查看是否開啟bin-log日誌
進入mysql輸入命令可查看。
顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日誌文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數據如下,
3:刷新日誌,使用新的日誌文件(備份)
在命令端執行命令
日誌文件從 binlog.000022 變為 binlog.000023
這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。
4:刪除數量,從日誌還原數據
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢復數據ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。
進入資料庫再次查看數據,ABC已經恢復。
增量備份完成。
❷ MYSQL數據如何實時備份
MYSQL數據如何實時備份
依次單擊:開始--程序--Microsoft SQL Server--企業管理器--SQL Server組--管理--資料庫維護計劃
在右側空白處右鍵單擊,新建維護計劃--勾選要備份的資料庫--下一步
指定資料庫備份計劃--調度--單擊"更改"--設置備份的時間,備份周期--下一步
每日頻率即是每天什麼時間開始進行備份
發生頻率即是執行的周期
指定備份磁碟目錄--修改"使用此目錄"的路徑作為備份資料庫的存放路徑.勾選刪除早於此時間的文件,我這里選擇一周,即是資料庫備份文件把一周前的進行刪除
給此任務計劃填寫一個名字:back 2單擊"完成",就可以在資料庫維護計劃中看到剛才新建的計劃.
注意事項
一定要開啟sql server agent服務
❸ 怎麼備份mysql資料庫
如果使用腳本備份的話 可以參考如下
准備
mkdir-p/data0/backup
cat>/tmp/myuse.txt<<EOF
[cleint]
user=root
password="Oracle#2017"
EOF
腳本內容:
mysql_backup_tleish.sh
#!/bin/bash
#==============================================================================
#TITLE:mysql_backup_tleish.sh
#DESCRIPTION:
#AUTHOR:tleish
#DATE:2013-12-20changeat20180116byhilodb
#VERSION:0.4
#USAGE:./mysql_backup_tleish.sh
#CRON:
#examplecronfordailydbbackup@9:15am
#minhrmdaymonthwdaycommand
#159***/Users/[yourusername]/scripts/mysql_backup_tleish.sh
#RESTOREFROMBACKUP
#$gunzip<[backupfile.sql.gz]|mysql-u[uname]-p[pass][dbname]
#==============================================================================
#CUSTOMSETTINGS
#==============================================================================
#directorytoputthebackupfiles
BACKUP_DIR=/data0/backup
#MYSQLParameters
OPTS="--all-databases--triggers--routines--events"
#Don'
#Example:startswithmysql(^mysql)orendswith_schema(_schema$)
##在這里添加忽略備份的庫
IGNORE_DB="(^mysql|_schema$)"
##如果保持IGNORE_DB為空就是備份所有資料庫
#IGNORE_DB=""
#
PATH=$PATH:/usr/local/mysql/bin
#Numberofdaystokeepbackups
KEEP_BACKUPS_FOR=30#days
#==============================================================================
#METHODS
#==============================================================================
#YYYY-MM-DD
TIMESTAMP=$(date+%F)
functioncheckok()
{
if[$?-ne0];then
echo"backupdatabase$1failed,pleasecheckscript"
exit
fi
}
functioncheck_dir()
{
[!-d$BACKUP_DIR]&&mkdir-p$BACKUP_DIR
}
functiondelete_old_backups()
{
echo"Deleting$BACKUP_DIR/*.sql.gzolderthan$KEEP_BACKUPS_FORdays"
find$BACKUP_DIR-typef-name"*.sql.gz"-mtime+$KEEP_BACKUPS_FOR-execrm{};
}
functionmysql_login(){
localmysql_login="--defaults-extra-file=/tmp/myuse.txt"
echo$mysql_login
}
functiondatabase_list(){
if["x$IGNORE_DB"=="x"];then
localshow_databases_sql="SHOWDATABASES"
else
localshow_databases_sql="SHOWDATABASESWHERE`Database`NOTREGEXP'$IGNORE_DB'"
fi
echo$(mysql$(mysql_login)-e"$show_databases_sql"|awk-F""'{if(NR!=1)print$1}')
}
functionecho_status(){
printf' ';
printf'%0.s'{0..100}
printf' ';
printf"$1"' '
}
functionbackup_database(){
backup_file="$BACKUP_DIR/$TIMESTAMP.$database.sql.gz"
output+="$database=>$backup_file "
echo_status"...backingup$countof$totaldatabases:$database"
$(mysqlmp$(mysql_login)$OPTS$database|gzip-9>$backup_file)
checkok$database
}
functionbackup_databases(){
localdatabases=$(database_list)
localtotal=$(echo$databases|wc-w|xargs)
localoutput=""
localcount=1
fordatabasein$databases;do
backup_database
localcount=$((count+1))
done
echo-ne$output|column-t
printf"Allbackep! "
}
functionhr(){
printf'=%.0s'{1..100}
printf" "
}
#==============================================================================
#RUNSCRIPT
#==============================================================================
check_dir
delete_old_backups
hr
backup_databases
hr
運行結果如下
chmod+xmysql_backup_tleish.sh
bashmysql_backup_tleish.sh
[root@ambaos1mysqlscript]#ll/data0/backup/
total12
-rw-r--r--1rootroot130Jan1615:332018-01-16.demo.sql.gz
-rw-r--r--1rootroot130Jan1615:332018-01-16.sys.sql.gz
-rw-r--r--1rootroot130Jan1615:332018-01-16.test.sql.gz
[root@ambaos1data0]#tree-L2
.
├──backup--忽略mysql和_schema的
│├──2018-01-16.demo.sql.gz
│├──2018-01-16.sys.sql.gz
│└──2018-01-16.test.sql.gz
└──backup_old---全備的
├──2018-01-16.demo.sql.gz
├──2018-01-16.information_schema.sql.gz
├──2018-01-16.mysql.sql.gz
├──2018-01-16.performance_schema.sql.gz
├──2018-01-16.sys.sql.gz
└──2018-01-16.test.sql.gz
❹ mysql中備份和還原資料庫的語句什麼啊
一、Mysql資料庫備份指令格式:
mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 (–database) 資料庫名 > 文件名.sql
註:直接cmd執行該指令即可,不需要先mysql -u root -p鏈接資料庫
1、備份MySQL資料庫的命令
mysqlmp -hhostname -uusername -ppassword databasename > backupfile.sql
2、備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp -–add-drop-table -uusername -ppassword databasename > backupfile.sql
二、資料庫還原有三種方式:source命令、mysql、gunzip命令
1、source 命令
進入mysql資料庫控制台,
mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面參數為腳本文件(如這里用到的.sql)
mysql>source /home/work/db/bkdb.sql
2、mysql
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
3、gunzip
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
❺ 請問mysql怎麼自動備份資料庫
資料庫的自動備份,可以減輕維護者的工作量也便於系統恢復,對於比較重要的資料庫,最好還是設置下自動備份。
工具/原料
navicat for mysql
mysql 5.5
方法/步驟
打開navicat客戶端,連上mysql後,雙擊左邊你想要備份的資料庫。點擊「計劃」,再點擊「新建批處理作業」。
❻ 如何實現Mysql資料庫每天自動備份定時備份
利用UCache災備雲平台,可作為一個工具,在window伺服器現有架構不變的情況下,針對Mysql資料庫每天自動備份定時備份。
(1)新建備份任務
UCACHE災備雲控制台登錄賬號後:點擊【伺服器定時數據保護】--【數據備份】點擊【新建】按鈕,然後選要保護的對象(您的生產伺服器節點),選中對應的客戶端,選擇【文件系統】然後點擊【 下一步 】
(2)設置備份策略
選擇要進行備份的文件
(3)永久增量備份與數據保留設置
選擇完要過濾的數據之後點擊下一步,可進行下一步備份的高級功能選擇,各個選項說明如下:
【永久增量備份】開啟了永久增量備份每一次增量備份都會進行一次時間點合成形成新的一個永久增量時間點等效於完備時間點。
【數據保留策略】開啟數據保留策略一共有三種保留策略分別為數據保留期限、保留副本數、按備份策略的備份周期設置副本保留策略默認選中數據保留期限一年。可以設置保留完全副本的個數最大可設置1024個副本按備份策略的備份周期設置副本保留策略最大可設置99999個副本。
【傳輸和存儲加密】開啟傳輸加密與存儲加密選項開啟此功能的任務的數據在傳輸和存儲上都經過加密處理。一共有兩種加密方式AES256加密演算法、SM4加密演算法。
【數據壓縮】默認不開啟開啟該選項後默認啟用快速壓縮可選擇啟用強力壓縮
【重復數據刪除】勾選該選項可以啟動源端重復數據刪除的功能該選項在建立任務後不能通過修改任務的方式更改此屬性。指紋庫需要提前創建才能成功開啟重刪功能
最後新建完成
目錄和文件內容,可以全選和分選,還可以利用UCACHE災備雲控制台的「文件過濾」「目錄過濾」「時間過濾」功能進行不必要的數據不進行備份策略添加。為了備份效率不建議兩個任務包含同一文件。
(4)設置郵件告警
備份執行完畢,會得到系統的執行反饋,也可以設定告警監控策略,進行郵件監控
❼ 怎麼定時自動備份mysql數據表
一、對於Windows主機
==============
假想環境:
MySQL
安裝位置:C:\MySQL
論壇資料庫名稱為:bbs
MySQL
root
密碼:123456
資料庫備份目的地:D:\db_backup\
@echo
off
C:\MySQL\bin\mysqladmin
-u
root
–password=123456
shutdown
C:\MySQL\bin\mysqlmp
–opt
-u
root
–password=123456
bbs
>
D:\db_backup\bbs.sql
C:\MySQL\bin\mysqld-nt
將以上代碼保存為backup_db.bat
然後使用Windows的「計劃任務」定時執行該腳本即可。(例如:每天凌晨5點執行back_db.bat)
二、對於Linux主機
===========
假想環境:
MySQL
安裝位置:/usr/local/mysq
論壇資料庫名稱為:bbs
MySQL
root
密碼:123456
資料庫備份目的地:/var/db_backup/
#!
/bin/bash
/usr/local/mysql/bin/mysqladmin
-u
root
–password=123456
shutdown
/usr/local/mysql/bin/mysqlmp
–opt
-u
root
–password=123456
bbs
>
/var/db_backup/bbs.sql
/usr/local/mysql/bin/mysqld_safe
–user=mysql
&
將上述代碼保存在/usr/local/sbin/backup_db.sh
對該腳本賦予執行許可權:
#
chmod
755
/usr/local/sbin/backup_db.sh
加入crontab中自動執行:
#
crontab
-e
加入:
0
5
*
*
*
/usr/local/sbin/backup_db.sh
❽ 如何備份整個mysql資料庫
1、首先打開mysql資料庫軟體進入軟體主界面。