你說的還原,指有備份的還原,下面是你做過備份的恢復(fù):
霍山網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護(hù)。成都創(chuàng)新互聯(lián)公司成立于2013年到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
如我們要備份mysql中已經(jīng)存在的名為linux的數(shù)據(jù)庫,要用到命令mysqldump
命令格式如下:
[root@linuxsir01 root]# mysqldump -u root -p linux /root/linux.sql
Enter password:在這里輸入數(shù)據(jù)庫的密碼
通過上面的命令,我們要明白兩件事,首先備份數(shù)據(jù)庫是要以數(shù)據(jù)庫管理員的身份備份;其次:備份目的地是/root,備份的文件名是linux.sql。其實備份的位置和文件名,根據(jù)自己的情況來定。文件名可以自己來取,路徑也可以自己來安排;
比如我想把linux的數(shù)據(jù)庫備份到/home/beinan,數(shù)據(jù)庫的文件名為linuxsir031130.sql,所以應(yīng)該輸入如下的命令。
[root@linuxsir01 root]#mysqldump -u root -p linux /home/beinan/linuxsir031130.sql
Enter password:在這里輸入數(shù)據(jù)庫管理員root的數(shù)據(jù)庫密碼
如果數(shù)據(jù)量大會占用很大空間,這時可以利用gzip壓縮數(shù)據(jù),命令如下:
#mysqldump -u root -p tm | gzip tm_050519.sql.gz
這樣我們到/home/beinan目錄下就能發(fā)現(xiàn)mysql中名為linux的數(shù)據(jù)庫的備份文件linuxsir031130.sql
綜上所述,我們學(xué)習(xí)時要學(xué)會變通。
恢復(fù):
首先我們還是要操作上面幾個過程,比如添加數(shù)據(jù)庫管理員(如果您沒有添加過mysql數(shù)據(jù)庫管理員的話),創(chuàng)建數(shù)據(jù)庫等。
比如我們要把在/home/beinan這個目錄中的linuxsir031130.sql這個備份,導(dǎo)入名為linux的數(shù)據(jù)庫中,應(yīng)該如下操作;
[root@linuxsir01 root]#mysql -u root -p linux /home/beinan/linuxsir031130.sql
Enter password:在這里輸入密碼
如果機(jī)器好,數(shù)據(jù)庫比較小,幾分鐘就好了。
如何導(dǎo)出數(shù)據(jù)庫表的數(shù)據(jù)?(不同于備份哦)
#mysql
(#mysqluse linux;)#可有可無
#mysqlselect * from linux.table-name into outfile "/home/table-name.txt";
#/home/table-name.txt 可能會報錯,如果這樣去掉/home直接"table-name.txt"
默認(rèn)保存在/var/lib/mysql/table-name.txt
對mysql數(shù)據(jù)庫常用命令的一點補充;
幾個常用的mysql相關(guān)的管理命令
mysql 命令:基本文本的,顯示和使用的mysql數(shù)據(jù)庫。前面已經(jīng)簡單的提過用法;比如登錄等。
mysqladmin 命令,用來創(chuàng)建和維護(hù)mysql數(shù)據(jù)庫的命令,前面已經(jīng)簡單的提過;
isamchk 是用來修復(fù)、檢查和優(yōu)化.ism后綴的數(shù)據(jù)庫文件;
mysqldump 是用于備份數(shù)據(jù)庫,前面已經(jīng)簡單的說明過;
myisamchk 用來修復(fù).myi后綴的數(shù)據(jù)庫文件;
比如我們要檢查名為linux的數(shù)據(jù)庫.myi數(shù)據(jù)庫表是否存在問題,應(yīng)該用下面的命令;
要把mysqld服務(wù)器停下來
[root@linuxsir01 root]# /opt/mysql/share/mysql.server stop
然后執(zhí)行
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk /opt/mysql/var/linux/*.MYI
上面的命令的意思就是檢查所有的.myi文件,數(shù)據(jù)庫的目錄在/opt/mysql/var/linux/目錄中
如果有問題,應(yīng)該用-r參數(shù)來修復(fù)
[root@linuxsir01 root]# /opt/mysql/bin/myisamchk -r /opt/mysql/var/linux/*.MYI
7]mysqlshow 命令:顯示用戶選擇的數(shù)據(jù)庫和表
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p [數(shù)據(jù)庫名]
比如我要查看名為linux的數(shù)據(jù)庫;應(yīng)該是:
[root@linuxsir01 root]# /opt/mysql/bin/mysqlshow -uroot -p linux
只能用
db2look
+db2move
進(jìn)行遷移。
1.提取DDL
用如下命令
db2look
-d
yn
-e
-l
-o
db2look_yn.ddl
//提取出
yn(云南)
這個數(shù)據(jù)庫
所有用戶對象,包括表空間等。
2.用db2move
導(dǎo)出數(shù)據(jù)
如下
如你在
db2inist1
用戶目錄下
建立一個
data
目錄
然后執(zhí)行
db2move
yn
export
在data
目錄下
會有好多
后綴名為ixf
和msg
的文件,其中ixf為數(shù)據(jù)表文件,msg后綴的為消息文件,其中最重要的
是db2move.lst
存放導(dǎo)出表和消息文件的對應(yīng)關(guān)系。
3.去windows
下建立一個數(shù)據(jù)庫
db2
“
create
db
yn
pagesize
8
k”
//這里的pagesize需要和
ddl的統(tǒng)一
然后修改
yn.ddl
文件下
把
Linux下面
的路徑
替換為Windows
的路徑然后執(zhí)行db2
-tvf
yn.ddl
4.導(dǎo)入數(shù)據(jù)庫
db2move
yn
load
其中會生成
一個load.out的文件
記錄錯誤信息或者
導(dǎo)入失敗的表
,如加載了多少行,拒絕多少行
等。
5.查看load.out
找到那些導(dǎo)入不成功的進(jìn)行
處理,然后倒入。然后進(jìn)行完整性約束
這些檢查。如有問題
Q
我吧。
source命令用法:source FileName
作用:在當(dāng)前bash環(huán)境下讀取并執(zhí)行FileName中的命令。
注:該命令通常用命令".”來替代。
使用范例:
1、source filename
2、. filename?#(中間有空格)?
source命令(從 C Shell 而來)是bash shell的內(nèi)置命令。點命令,就是個點符號,(從Bourne Shell而來)是source的另一名稱。
同樣的,當(dāng)前腳本中配置的變量也將作為腳本的環(huán)境,source(或點)命令通常用于重新執(zhí)行剛修改的初始化文檔,如 .bash_profile 和 .profile 等等。
例如,假如在登錄后對 .bash_profile 中的 EDITER 和 TERM 變量做了修改,則能夠用source命令重新執(zhí)行 .bash_profile 中的命令而不用注銷并重新登錄。
比如在一個腳本里export $KKK=111?,假如用./a.sh執(zhí)行該腳本,執(zhí)行完畢后,運行?echo $KKK,發(fā)現(xiàn)沒有值,假如用source來執(zhí)行 ,然后再echo,就會發(fā)現(xiàn)KKK=111。
因為調(diào)用./a.sh來執(zhí)行shell是在一個子shell里運行的,所以執(zhí)行后,結(jié)構(gòu)并沒有反應(yīng)到父shell里,但是source不同他就是在本shell中執(zhí)行的,所以能夠看到結(jié)果。
source命令(從 C Shell 而來)是bash shell的內(nèi)置命令。點命令,就是一個點符號,(從Bourne Shell而來)是source的另一名稱。
這兩個命令都以一個腳本為參數(shù),該腳本將作為當(dāng)前shell的環(huán)境執(zhí)行,即不會啟動一個新的子進(jìn)程。所有在腳本中設(shè)置的變量將成為當(dāng)前Shell的一部分。
擴(kuò)展資料:
source命令的用法:
在編譯核心時,常常要反復(fù)輸入一長串命令,如:
這些命令既長,又繁瑣。而且有時候容易輸錯,浪費你的時間和精力。如果把這些命令做成一個文件,讓它自動按順序執(zhí)行,對于需要多次反復(fù)編譯核心的用戶來說,會很方便。
用source命令可以辦到這一點。它的作用就是把一個文件的內(nèi)容當(dāng)成是shell來執(zhí)行。
先在/usr/src/linux-2.4.20目錄下建立一個文件,取名為make_command,在其中輸入如下內(nèi)容:
文件建立好之后,以后每次編譯核心,只需要在/usr/src/linux-2.4.20下輸入source make_command?就行了。這個文件也完全可以做成腳本,只需稍加改動即可。
shell編程中的命令有時和C語言是一樣的。表示與,||表示或。把兩個命令用聯(lián)接起來,如?make mrproper make menuconfig,表示要第一個命令執(zhí)行成功才能執(zhí)行第二個命令。
對執(zhí)行順序有要求的命令能保證一旦有錯誤發(fā)生,下面的命令不會盲目地繼續(xù)執(zhí)行。
一、 使用mysql相關(guān)命令進(jìn)行簡單的本地備份
1 mysqlldump命令
mysqldump 是采用SQL級別的備份機(jī)制,它將數(shù)據(jù)表導(dǎo)成 SQL 腳本文件,在不同的 MySQL 版本之間升級時相對比較合適,這也是最常用的備份方法。
使用 mysqldump進(jìn)行備份非常簡單,如果要備份數(shù)據(jù)庫” db_backup ”,使用命令:
#mysqldump –u -p phpbb_db_backup /usr/backups/mysql/db_backup2008-1-6.sql
還可以使用gzip命令對備份文件進(jìn)行壓縮:
#mysqldump db_backup | gzip /usr/backups/mysql/ db_backup2008-1-6.sql.gz (備份后生成的sql不含建庫語句!)
只備份一些頻繁更新的數(shù)據(jù)庫表:
## mysqldump sample_db articles comments links /usr/backups/mysql/sample_db.art_comm_lin.2008-1-6.sql
上面的命令會備份articles, comments, 和links 三個表。
恢復(fù)數(shù)據(jù)使用命令:
#mysql –u -p db_backup /usr/backups/mysql/ db_backup2008-1-6.sql
注意使用這個命令時必須保證數(shù)據(jù)庫正在運行。
2 使用 SOURCE 語法
其實這不是標(biāo)準(zhǔn)的 SQL 語法,而是 mysql 客戶端提供的功能,例如:
# SOURCE /tmp/db_name.sql;
這里需要指定文件的絕對路徑,并且必須是 mysqld 運行用戶(例如 nobody)有權(quán)限讀取的文件。
3 mysqlhotcopy備份
mysqlhotcopy 只能用于備份 MyISAM,并且只能運行在 linux 和Unix 和 NetWare 系統(tǒng)上。mysqlhotcopy 支持一次性拷貝多個數(shù)據(jù)庫,同時還支持正則表達(dá)。以下是幾個例子:
#mysqlhotcopy -h=localhost -u=goodcjh -p=goodcjh db_name /tmp
(把數(shù)據(jù)庫目錄 db_name 拷貝到 /tmp 下)
注意,想要使用 mysqlhotcopy,必須要有 SELECT、RELOAD(要執(zhí)行 FLUSH TABLES) 權(quán)限,并且還必須要能夠有讀取 datadir/db_name 目錄的權(quán)限。
還原數(shù)據(jù)庫方法:
mysqlhotcopy 備份出來的是整個數(shù)據(jù)庫目錄,使用時可以直接拷貝到 mysqld 指定的 目錄 (在這里是 /usr/local/mysql/data/)目錄下即可,同時要注意權(quán)限的問題,另外首先應(yīng)當(dāng)刪除數(shù)據(jù)庫舊副本如下例:
# /bin/rm -rf /mysql-backup/**//*old
關(guān)閉mysql 服務(wù)器、復(fù)制文件、查詢啟動mysql服務(wù)器的三個步驟:
# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
# cp -af /mysql-backup/**//* /var/lib/mysql /
# /etc/init.d/mysqld start
Starting MySQL: [ OK ]
#chown -R nobody:nobody /usr/local/mysql/data/ (將 db_name 目錄的屬主改成 mysqld 運行用戶)
二、使用網(wǎng)絡(luò)備份
將MYSQL數(shù)據(jù)放在一臺計算機(jī)上是不安全的,所以應(yīng)當(dāng)把數(shù)據(jù)備份到局域網(wǎng)中其他Linux計算機(jī)中。假設(shè)Mysql服務(wù)器IP地址是:192.168.1.3。局域網(wǎng)使用Linux的遠(yuǎn)程計算機(jī)IP地址是192.168.1.4;類似于windows的網(wǎng)絡(luò)共享,UNIX(Linux)系統(tǒng)也有自己的網(wǎng)絡(luò)共享,那就是NFS(網(wǎng)絡(luò)文件系統(tǒng)),在linux客戶端掛接(mount)NFS磁盤共享之前,必須先配置好NFS服務(wù)端。linux系統(tǒng)NFS服務(wù)端配置方法如下:
(1)修改 /etc/exports,增加共享目錄
/export/home/sunky 192.168.1.4(rw)
/export/home/sunky1 *(rw)
/export/home/sunky2 linux-client(rw)
注:/export/home/目錄下的sunky、sunky1、sunky2是準(zhǔn)備共享的目錄,10.140.133.23、*、linux-client是被允許掛接此共享linux客戶機(jī)的IP地址或主機(jī)名。如果要使用主機(jī)名linux-client必須在服務(wù)端主機(jī)/etc/hosts文件里增加linux-client主機(jī)ip定義。格式如下:
192.168.1.4 linux-client
若修改/etc/export文件增加新的共享,應(yīng)先停止NFS服務(wù),再啟動NFS服務(wù)方能使新增加的共享起作用。使用命令exportfs -rv也可以達(dá)到同樣的效果。linux客戶端掛接(mount)其他linux系統(tǒng)或UNIX系統(tǒng)的NFS共享。這里我們假設(shè)192.168.1.4是NFS服務(wù)端的主機(jī)IP地址,當(dāng)然這里也可以使用主機(jī)名,但必須在本機(jī)/etc/hosts文件里增加服務(wù)端ip定義。/export/home/sunky為服務(wù)端共享的目錄。如此就可以在linux客戶端通過/mnt/nfs來訪問其它linux系統(tǒng)或UNIX系統(tǒng)以NFS方式共享出來的文件了。
把MYSQL數(shù)據(jù)備份到使用Linux的遠(yuǎn)程計算機(jī)需要在兩端都安裝NFS協(xié)議(Network File System),遠(yuǎn)程NFS計算機(jī)安裝NFS協(xié)議后還要修改配置文件:/etc/exports,加入一行:
/usr/backups/mysql/ 192.168.1.4 (rw, no_root_squash)
表示將/usr/backups/mysql/目錄共享。這個目錄具有遠(yuǎn)程root用戶讀寫權(quán)限。保存NFS配置文件,然后使用命令:
#exportfs -a –r
然后重新啟動NFS服務(wù):
#service nfsd start
遠(yuǎn)程計算機(jī)設(shè)定后,在MYSQL服務(wù)器/mnt 目錄下建立一個backup_share目錄:
#mkdir /mnt/backup_share
將遠(yuǎn)程的Linux計算機(jī)的/usr/backups/mysql/目錄掛載到MYSQL服務(wù)器的/mnt/backup_share目錄下:
# mount -t nfs 192.168.1.4:/usr/backups/mysql /mnt/backup_share
將目錄掛載進(jìn)來后,只要進(jìn)入/mnt/backup_share 目錄,就等于到了IP地址:192.168.1.4那部NFS 計算機(jī)的/usr/backups/mysql 目錄中。下面使用mysqldump把“phpbb_db_backup”備份到遠(yuǎn)程計算機(jī):
# mysqldump db_backup /mnt/backup_share/ db_backup2008-1-6.sql
自動完成網(wǎng)絡(luò)備份的方法:
Linux 服務(wù)器上的程序每天都在更新 MySQL 數(shù)據(jù)庫,于是就想起寫一個 shell 腳本,結(jié)合 crontab,定時備份數(shù)據(jù)庫。建立一個shell腳本:sample_db_backup.sh
# At the very end the $(date +%F) 自動添加備份日期
mysqldump -u username -p password -h hostname sample_db /mnt/backup_share/sample_db.$(date +%F)
#un-mount the filesystem
umount /mnt/backup_share
# mount \u2013o soft 192.168.1.4:/archive /mnt/backup_share
說明:mount NFS服務(wù)器的一個重要參數(shù):hard (硬) mount或soft(軟)mount。
硬掛載: NFS客戶機(jī)會不斷的嘗試與NFS服務(wù)器的連接(在后臺,一般不會給出任何提示信息),直到掛載上為止。
軟掛載:會在前臺嘗試與NFS服務(wù)器的連接,是默認(rèn)的連接方式。當(dāng)收到錯誤信息后終止mount嘗試,并給出相關(guān)信息。
對于到底是使用硬掛載還是軟掛載的問題,這主要取決于你訪問什么信息有關(guān)。例如你是想察看NFS服務(wù)器的視頻文件時,你絕對不會希望由于一些意外的情況(如網(wǎng)絡(luò)速度一下子變的很慢)而使系統(tǒng)輸出大量的錯誤信息,如果此時你用的是硬掛載方式的話,系統(tǒng)就會等待,直到能夠重新與NFS 服務(wù)器建立連接傳輸信息。另外如果是非關(guān)鍵數(shù)據(jù)的話也可以使用軟掛載方式,如FTP一些數(shù)據(jù)等,這樣在遠(yuǎn)程機(jī)器暫時連接不上或關(guān)閉時就不會掛起你的會話過程。
下面建立腳本文件權(quán)限:chmod +x ./sample_db_backup.sh
然后使用將此腳本加到 /etc/crontab 定時任務(wù)中:
01 5 * * 0 mysql /home/mysql/ sample_db_backup.sh
好了,每周日凌晨 5:01 系統(tǒng)就會自動運行 sample_db_backup.sh 文件通過網(wǎng)絡(luò)備份 MySQL 數(shù)據(jù)庫了。
三、實時恢復(fù)M y S Q L數(shù)據(jù)方法
在對MySQL數(shù)據(jù)和表格結(jié)構(gòu)進(jìn)行備份時,mysqldump是一個非常有用的工具。然而,通常情況下,一般一天只備份一次,或者在一個特定的間隔備份一次。如果在剛備份完成的一段時間以內(nèi)數(shù)據(jù)丟失,那么這些數(shù)據(jù)很有可能無法恢復(fù)。有什么方法可以對數(shù)據(jù)進(jìn)行實時性地保護(hù)呢?事實上,現(xiàn)在有幾種方法都可以實現(xiàn)MySQL數(shù)據(jù)庫的實時保護(hù)。這里介紹其中一種,即使用二進(jìn)制日志進(jìn)行數(shù)據(jù)恢復(fù)。
1 設(shè)置二進(jìn)制日志方法
要想從二進(jìn)制日志恢復(fù)數(shù)據(jù),你需要知道當(dāng)前二進(jìn)制日志文件的路徑和文件名。一般可以從選項文件(即my.cnf or my.ini,取決于你的系統(tǒng))中找到路徑。如果未包含在選項文件中,當(dāng)服務(wù)器啟動時,可以在命令行中以選項的形式給出。啟用二進(jìn)制日志的選項為-- log-bin。要想確定當(dāng)前的二進(jìn)制日志文件的文件名,輸入下面的MySQL語句:
# SHOW BINLOG EVENTS \G
2 最簡單的數(shù)據(jù)恢復(fù)
每天備份和運行二進(jìn)制日志的確是一個在MySQL服務(wù)器中恢復(fù)數(shù)據(jù)的不錯方法。比如,可以每天在深夜使用mysqldump對數(shù)據(jù)進(jìn)行備份,如果某天在數(shù)據(jù)備份完成后的一段時間里,由于某種原因數(shù)據(jù)丟失,可以使用以下方法來對其進(jìn)行恢復(fù)。首先,停止MySQL服務(wù)器,然后使用以下命令重新啟動MySQL服務(wù)器。該命令將保證是惟一可以訪問該數(shù)據(jù)庫服務(wù)器的人:
# /etc/init.d/mysqld stop
Stopping MySQL: [ OK ]
# mysqld --socket=/tmp/mysql_restore.sock --skip-networking
這里, 一socket選項將為U n i x 系統(tǒng)命名一個不同的Socket文件。一旦服務(wù)器處于獨占控制之下,就可以放心地對數(shù)據(jù)庫進(jìn)行操作,而不用擔(dān)心在進(jìn)行數(shù)據(jù)恢復(fù)的過程中有用戶嘗試訪問數(shù)據(jù)庫而導(dǎo)致更多的麻煩。進(jìn)行恢復(fù)的第一個步驟是恢復(fù)晚上備份好的dump文件:
#mysql -u root -pmypwd --socket=/tmp/mysql_restore.sock /var/backup/20080120.sql
該命令可以將數(shù)據(jù)庫的內(nèi)容恢復(fù)至晚上剛剛完成備份的內(nèi)容。要恢復(fù)dump文件創(chuàng)建后的數(shù)據(jù)庫事務(wù)處理, 可以使用mysqlbinlog工具。如果每天晚上進(jìn)行備份操作時都對日志進(jìn)行flush操作,則可以使用以下命令行工具將整個二進(jìn)制日志文件進(jìn)行恢復(fù):
mysqlbinlog /var/log/mysql/bin.123456 \
| mysql -u root -pmypwd --socket=/tmp/mysql_restore.sock
3 針對某一時問點的恢復(fù)
對于MySQL 4.1.4,可以在mysqlbinlog語句中通過--start-date和--stop-date選項指定DATETIME格式的起止時間。假設(shè)用戶在2008-1-22上午10點執(zhí)行的SQL語句刪除了一個大的數(shù)據(jù)表,則可以使用以下命令進(jìn)行恢復(fù):要想恢復(fù)表和數(shù)據(jù),你可以恢復(fù)前晚上的備份,并輸入:
#mysqlbinlog --stop-date="2008-1-22 9:59:59"
/var/log/mysql/bin.123456 |
mysql -u root -pmypwd \
--socket=/tmp/mysql_restore.sock
#mysql -u root -pmypwd
該語句將恢復(fù)所有給定一stop-date日期之前的數(shù)據(jù)。如果在執(zhí)行某SQL語句數(shù)小時之后才發(fā)現(xiàn)執(zhí)行了錯誤操作,那么可能還需要恢復(fù)之后輸入的一些數(shù)據(jù)。這時, 也可以通過mysqlbinlog來完成該功能:
#mysqlbinlog --start-date="2008-1-22 10:01:00" \
/var/log/mysql/bin.123456 \
| mysql -u root -pmypwd \
--socket=/tmp/mysql_restore.sock
#mysql -u root -pmypwd
在該行中,從上午10:01登錄的SQL語句將運行。組合執(zhí)行前夜的轉(zhuǎn)儲文件和mysqlbinlog的兩行可以將所有數(shù)據(jù)恢復(fù)到上午10:00前一秒鐘。你應(yīng)檢查日志以確保時間確切。
4 使用Position進(jìn)行恢復(fù)
也可以不指定日期和時間,而使用mysqlbinlog的選項--start-position和--stop-position來指定日志位置。它們的作用與起止日選項相同,不同的是給出了從日志起的位置號。使用日志位置是更準(zhǔn)確的恢復(fù)方法,特別是當(dāng)由于破壞性SQL語句同時發(fā)生許多事務(wù)的時候。要想確定位置號,可以運行mysqlbinlog尋找執(zhí)行了不期望的事務(wù)的時間范圍,但應(yīng)將結(jié)果重新指向文本文件以便進(jìn)行檢查。操作命令為:
mysqlbinlog --start-date="2005-04-20 9:55:00" --stop-date="2005-04-20 10:05:00"
/var/log/mysql/bin.123456 /tmp/mysql_restore.sql
該命令將在/tmp目錄創(chuàng)建小的文本文件,將顯示執(zhí)行了錯誤的SQL語句時的SQL語句。你可以用vi或者gedit文本編輯器打開該文件,尋找你不要想重復(fù)的語句。如果二進(jìn)制日志中的位置號用于停止和繼續(xù)恢復(fù)操作,應(yīng)進(jìn)行注釋。用log_pos加一個數(shù)字來標(biāo)記位置。使用位置號恢復(fù)了以前的備份文件后,你應(yīng)從命令行輸入下面內(nèi)容:
mysqlbinlog --stop-position="368312" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
mysqlbinlog --start-position="368315" /var/log/mysql/bin.123456
| mysql -u root -pmypwd
上面的第1行將恢復(fù)到停止位置為止的所有事務(wù)。下一行將恢復(fù)從給定的起始位置直到二進(jìn)制日志結(jié)束的所有事務(wù)。因為mysqlbinlog的輸出包括每個SQL語句記錄之前的SET TIMESTAMP語句,恢復(fù)的數(shù)據(jù)和相關(guān)MySQL日志將反應(yīng)事務(wù)執(zhí)行的原時間。
選項:
-b區(qū)塊大小:設(shè)置區(qū)塊大小,單位為Byte;
-c:不檢查傾倒操作的備份格式,僅準(zhǔn)許讀取使用舊格式的備份文件;
-C:使用對比模式,將備份的文件與現(xiàn)行的文件相互對比;
-D文件系統(tǒng):允許用戶指定文件系統(tǒng)的名稱;
-f備份文件:從指定的文件中讀取備份數(shù)據(jù),進(jìn)行還原操作;
-h:僅解除目錄而不包括與該目錄相關(guān)的所有文件;
-i:使用互動模式,在進(jìn)行還原操作時,restore指令將依序詢問用戶;
-m:解開符合指定的inode編號的文件或目錄而非用文件名稱指定;
-r:進(jìn)行還原操作;
-R:全面還原文件系統(tǒng)時,檢查應(yīng)從何處開始進(jìn)行;
-s文件編號:當(dāng)備份數(shù)據(jù)超過一卷磁帶時,用戶可以指定備份文件的編號;
-t:指定文件名稱,若該文件已存在備份文件中,則列出它們的名稱;
-v:顯示指令執(zhí)行過程;
-x:設(shè)置文件名稱,且從指定的存儲媒體里讀入它們,若該文件已存在在備份文件中,則將其還原到文件系統(tǒng)內(nèi);
-y:不詢問任何問題,一律以同意回答并繼續(xù)執(zhí)行指令;
實例:
dump -9 -u -f /dev/hda3 /home/frank/
Linux, 環(huán)境, 數(shù)據(jù)庫Linux, 數(shù)據(jù)庫, 環(huán)境
通過如下備份腳本備份的數(shù)據(jù)庫進(jìn)行恢復(fù)
備份腳本:
.?/home/db2admin/sqllib/db2profile ?
db2?backup?db?datedb?online?to?/dbbackup/date?include?logs ?
cd?/dbbackup/datetoday=`date?+”%Y%m%d”` ?
file1=”*$today*” ?
ftpfile=`ls?$file1` ?
echo?$ftpfile ?
lftp?-c?“open?ftp地址;user?用戶名密碼@\$0;put?$ftpfile” ?
find?/dbbackup/date?-ctime?+15?-exec?rm?{}?\;?
恢復(fù)命令:
通過root命令登錄到服務(wù)器上后切換到數(shù)據(jù)庫用戶名下用su – db2admin命令。
進(jìn)入到備份文件存放目錄即可。
當(dāng)前文章:linux數(shù)據(jù)庫還原命令,linux文件還原命令
本文URL:http://m.kartarina.com/article44/hddphe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、品牌網(wǎng)站設(shè)計、搜索引擎優(yōu)化、營銷型網(wǎng)站建設(shè)、微信小程序、移動網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)