資料庫備份的思路

2021-10-10 09:47:06 字數 1691 閱讀 5375

資料庫備份是非常重要的

主要是通過全量備份和log_bin日誌結合達到比較好的備份效果

全量備份在linux的操作

mysqldump -u root -p  資料庫名稱  > 備份儲存路徑

比如:mysqldump -u root -p mytest > /tmp/database/mytest.sql

寫成程式,備份檔案名加上時間,要求儲存最新的3次備份,自動程式備份(每天,每週)

可以通過在配置檔案中新增 log-bin 選項來開啟二進位制日誌

[mysqld] 

log-bin=dir

/[filename]

其中,dir 引數指定二進位制檔案的儲存路徑;filename 引數指定二進位制檔案的檔名,其形式為 filename.number,number 的形式為 000001、000002 等。

每次重啟 每 mysql 服務後,都會生成乙個新的二進位制日誌檔案,這些日誌檔案的檔名中 服 filename 部分不會改變, 部 number 會不斷遞增。

如果沒有 dir 和 filename 引數,二進位制日誌將預設儲存在資料庫的資料目錄下,預設的檔名為 hostname-bin.number,其中 hostname 表示主機名。

案例配置如下:

log-bin=mysql-bin 

binlog_format=mixed

server-id = 1

mysql的binlog日誌限制大小和期限設定

設定日誌保留時長expire_logs_days自動刪除 檢視當前日誌儲存天數: show variables like 『%expire_logs_days%』; 這個預設是0,也就是logs不過期,可通過設定全域性的引數,使他臨時生效: set global expire_logs_days=7; 設定了只保留7天binlog, 下次重啟mysql這個引數缺省會失敗,所以需在my.cnf中設定expire_logs_days = 7;max_binlog_size = 100m

如果二進位制日誌寫入的內容超出給定值,日誌就會發生滾動。你不能將該變數設定為大於1gb或小於4096位元組。 預設值是1gb。

開啟後日誌會自動記錄所有寫操作

現假設資料庫名為 mytest被誤刪

用最新全量備份重新生成資料庫

mysql -u root -p

#根據提示輸入密碼後進入mysql控制台

show databases;

#建立資料庫

create database mytest;

#進入資料庫

use mytest;

#從檔案匯入所有資料

source /var/databakup/mytest.sql

2.按資料庫備份時間用log_bin日誌進行恢復

mysqlbinlog --start-datetime=

'2020-09-27 22:22:22' --stop-datetime=

'2020-09-27 22:30:00' /www/server/data/mysql-bin.000036 | mysql -uroot -p

資料庫備份

匯出方案 匯出自己的方案exp scott tiger oracle owner scott file d scott.dmp 成功匯入方案 imp userid retest retest oracle file e rem.dmp full y 匯出表 兩百萬資料 exp userid scot...

資料庫備份

備份 使用 isql usa p ssybase 命令連線至資料庫,依次備份早教系統edu cfg和edu stat兩個使用者資料庫。前提條件是backup server服務要啟動 dump database edu cfg to home sybase edu cfg jiangsu 201405...

資料庫備份

sqlserver 作業 新建作業 1.常規中,填寫名字及說明 2.步驟中新建步驟,填寫步驟名稱,選擇型別 transact sql指令碼 t sql 填寫命令,內容如下 declare name varchar 250 set name d bakdb 備份檔案名稱 convert varchar...