什么是存儲(chǔ)過程?
存儲(chǔ)過程,是被存儲(chǔ)在數(shù)據(jù)庫中的目錄,并且可以由一個(gè)程序、一個(gè)觸發(fā)器或者甚至一個(gè)存儲(chǔ)過程以后調(diào)用的聲明的sql代碼段。
什么是觸發(fā)器?
觸發(fā)器是事件驅(qū)動(dòng)的專屬程序,它們被存儲(chǔ)下來,由數(shù)據(jù)庫管理。觸發(fā)器是發(fā)起一個(gè)事件后觸發(fā)一個(gè)SQL過程(像:INSERT,delete或UPDATE)都可以觸發(fā)。
當(dāng)我們執(zhí)行mysqldump ,它會(huì)自動(dòng)觸發(fā)的備份,但默認(rèn)不會(huì)備份存儲(chǔ)過程。
備份存儲(chǔ)程序和常見的例子
我們需要指定 -routines 參數(shù)來完成數(shù)據(jù)和表的存儲(chǔ)過程的備份。 以下命令將包括存儲(chǔ)過程的整個(gè)數(shù)據(jù)庫的備份。例如你的數(shù)據(jù)庫名稱為“mydb”。
# mysqldump -u root -p --routines mydb > mydb.sql
登錄后復(fù)制
只備份存儲(chǔ)過程和觸發(fā)器(無數(shù)據(jù)和表格)使用以下命令。
# mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt mydb > mydb.sql
登錄后復(fù)制
恢復(fù)存儲(chǔ)過程
要恢復(fù)數(shù)據(jù)庫的存儲(chǔ)過程使用下面的簡單命令,但要確保你已經(jīng)備份,以避免之前任何數(shù)據(jù)的丟失。
# mysql -u root -p mydb
登錄后復(fù)制