新聞中心
MySQL是一種開源的關系型數據庫管理系統,它被廣泛應用于各種類型的應用程序和網站。其中,MySQL數據庫字典是一種非常有用的工具,它可以幫助開發(fā)者更好地理解和管理MySQL數據庫。在本篇文章中,我們將介紹。

一、MySQL數據庫字典的定義
MySQL字典是MySQL數據庫的文檔化信息。它包含如下的內容:
1. 數據庫的結構(包括表名,字段名稱,字段數據類型,以及索引等信息)
2. 數據庫的物理結構(包括表空間,塊大小等信息)
3. 數據庫的MSQL命令語法
4. 安全信息(包括用戶和密碼)
二、MySQL數據庫字典的創(chuàng)建方法
1. 使用MySQL Workbench
MySQL Workbench是一種用于設計,開發(fā)和管理MySQL數據庫的工具,它提供了一個創(chuàng)建數據庫字典的功能。下面是使用MySQL Workbench創(chuàng)建MySQL數據庫字典的步驟:
步驟1:打開MySQL Workbench
步驟2:單擊”Server”選項卡
步驟3:單擊”Data Export”選項卡
步驟4:在Data Export面板中,單擊”Start Export”按鈕
步驟5:選擇要導出的表,并選擇要導出的導出選項
步驟6:單擊”Export to Self-Contned File”選項
步驟7:設置字典文件的名稱和位置
步驟8:單擊”Start Export”按鈕
2. 使用Navicat
Navicat是一種流行的MySQL管理工具,它提供了創(chuàng)建MySQL數據庫字典的功能。下面是使用Navicat創(chuàng)建MySQL數據庫字典的步驟:
步驟1:打開Navicat
步驟2:連接到MySQL數據庫
步驟3:右鍵單擊需要導出的數據庫
步驟4:從彈出菜單中選擇”Export Database Structure”選項
步驟5:根據需要選擇導出格式
步驟6:設置導出選項
步驟7:單擊”Start”按鈕
三、MySQL數據庫字典的使用方法
創(chuàng)建MySQL數據庫字典之后,我們可以使用其來管理和維護MySQL數據庫。下面是使用MySQL數據庫字典的一些場景:
1. 數據庫的性能優(yōu)化
通過分析MySQL數據庫字典,我們可以查找潛在的性能問題,并采取優(yōu)化措施。例如,可以檢查表索引的使用情況,識別可以優(yōu)化的查詢等。
2. 新表的設計
MySQL數據庫字典可以幫助我們更好地了解數據庫的結構,包括表、列、索引和約束等。在設計新表時,我們可以參考現有數據庫的結構,以確保表的一致性和可擴展性。
3. 數據庫備份和恢復
在備份和恢復MySQL數據庫時,MySQL數據庫字典可以發(fā)揮重要作用。通過查看字典,我們可以了解數據庫中的表、列和存儲引擎等信息,以確保備份文件的正確性和完整性。
4. 表維護
使用MySQL數據庫字典還可以輕松地管理和維護數據庫中的數據表。我們可以編輯表結構,添加或刪除列或索引等,以及執(zhí)行其他管理任務。
結論
MySQL數據庫字典是管理和維護MySQL數據庫的關鍵工具之一。通過創(chuàng)建MySQL數據庫字典,可以更好地了解數據庫的結構和性能,以及更輕松地管理和維護數據庫。在使用MySQL數據庫字典時,需要注意保護數據庫的安全性和完整性,避免誤刪除、修改數據庫結構和數據。
相關問題拓展閱讀:
- 本機運行的MySQL 數據庫 如何安全的備份/還原
本機運行的MySQL 數據庫 如何安全的備份/還原
要想簡單點的就去下一個Navicat for MySQL,這是MySql界面化的軟件,更好下載一個中文版的,裝上軟件之后瞎罩御,那里有很詳細的向導設置磨巖,你肯定可以學悶睜會。
一般是即時備份。做主從?;蛘呤敲刻煸隽總浞?。
本文是在linux下,mysql 4.1.14版本下測試的,經過適當修改可能適合mysql 4.0,5.0及其其他版本.
本文適合于沒有啟動復制功能的mysql,如果啟動了復制,可能不需要采取這種備份策略或者需要修改相關參數.
每個人的備份策略都可能不同,所以請根據實際情況修改,做到舉一反三,不要照搬照抄,可能會造成不必要的損失.
希望你明白這個腳本要干什么工作!
腳本描述
每7天備份一次所有數據,每天備份禪賀團binlog,也就是增量備份.
(如果數據少,每天備份一次完整數據即可,可能沒必要做增量備份)
作者對shell腳本不太熟悉,所以很多地方寫的很笨
開啟 bin log
在mysql 4.1版本中,默認只有錯誤日志,沒有其他日志.可以通過修改配置打開bin log.方法很多,其中一個是在/etc/my.cnf中的mysqld部分加入:
log-bin
這個日志的主要作用是增量備份或者復制(可能還有其他用途).
如果想增量備份,必須打開這個日志.
對于數據庫操作頻繁的mysql,這個日志會變得很大,而且可能會有多個.
在數據庫中flush-logs,或者使用mysqladmin,mysqldump調用flush-logs后并且使用參數delete-master-logs,這些日志文件會消失,并產生新的日志文件(開始是空的).
所以如果從來不備份,開啟日志可能沒有必要.
完整備份的同時可以調用flush-logs,增量備份之前flush-logs,以便備份最新的數據.
完整備份腳本
如果數據庫數據比較多,我們一般是幾天或者一周備份一次數據,以免拍芹影響應用運行,如果數據量比較小,那么一天備份一次也無所謂了.
#!/bin/sh
# mysql data backup script
# by scud
#
#
# use mysqldump –help,get more detail.
#
BakDir=/backup/mysql
LogFile=/backup/mysql/mysqlbak.log
DATE=`date +%Y%m%d`
echo ” ” >> $LogFile
echo ” ” >> $LogFile
echo “-” >> $LogFile
echo $(date +”%y-%m-%d %H:%M:%S”) >> $LogFile
echo “” >> $LogFile
cd $BakDir
DumpFile=$DATE.sql
GZDumpFile=$DATE.sql.tgz
mysqldump –quick –all-databases –flush-logs
–delete-master-logs –lock-all-tables
> $DumpFile
echo “Dump Done” >> $LogFile
tar czvf $GZDumpFile $DumpFile >> $LogFile 2>&1
echo “Backup Success!” >> $LogFile
rm -f $DumpFile
#delete previous daily backup files:采用增量備份的文件,如果完整備份后,則刪除增量備份的文件.
cd $BakDir/daily
rm -f *
cd $BakDir
echo “Backup Done!”
echo “please Check $BakDir Directory!”
echo “copy it to your local disk or ftp to somewhere !!!”
ls -al $BakDir
上面的腳本把mysql備份到本地的/backup/mysql目錄,增量備份的文件放在/backup/mysql/daily目錄賀橘下.
注意:上面的腳本并沒有把備份后的文件傳送到其他遠程計算機,也沒有刪除幾天前的備份文件:需要用戶增加相關腳本,或者手動操作.
增量備份
增量備份的數據量比較小,但是要在完整備份的基礎上操作,用戶可以在時間和成本上權衡,選擇最有利于自己的方式.
增量備份使用bin log,腳本如下:
#!/bin/sh
#
# mysql binlog backup script
#
/usr/bin/mysqladmin flush-logs
DATADIR=/var/lib/mysql
BAKDIR=/backup/mysql/daily
###如果你做了特殊設置,請修改此處或者修改應用此變量的行:缺省取機器名,mysql缺省也是取機器名
HOSTNAME=`uname -n`
cd $DATADIR
FILELIST=`cat $HOSTNAME-bin.index`
##計算行數,也就是文件數
COUNTER=0
for file in $FILELIST
do
COUNTER=`expr $COUNTER + 1 `
done
NextNum=0
for file in $FILELIST
do
base=`basename $file`
NextNum=`expr $NextNum + 1`
if
then
echo “skip lastest”
else
dest=$BAKDIR/$base
if(test -e $dest)
then
echo “skip exist $base”
else
echo “copying $base”
cp $base $BAKDIR
fi
fi
done
echo “backup mysql binlog ok”
增量備份腳本是備份前flush-logs,mysql會自動把內存中的日志放到文件里,然后生成一個新的日志文件,所以我們只需要備份前面的幾個即可,也就是不備份最后一個.
因為從上次備份到本次備份也可能會有多個日志文件生成,所以要檢測文件,如果已經備份過,就不用備份了.
注:同樣,用戶也需要自己遠程傳送,不過不需要刪除了,完整備份后程序會自動生成.
訪問設置
腳本寫完了,為了能讓腳本運行,還需要設置對應的用戶名和密碼,mysqladmin和mysqldump都是需要用戶名和密碼的,當然可以寫在腳本中,但是修改起來不太方便,假設我們用系統的root用戶來運行此腳本,那么我們需要在/root(也就是root用戶的home目錄)創(chuàng)建一個.my.cnf文件,內容如下
password =password
user= root
user=root
password=password
注:設置本文件只有root可讀.(chmod 600 .my.cnf )
此文件說明程序使用mysql的root用戶備份數據,密碼是對應的設置.這樣就不需要在腳本里寫用戶名和密碼了.
自動運行
為了讓備份程序自動運行,我們需要把它加入crontab.
有2種方法,一種是把腳本根據自己的選擇放入到/etc/cron.daily,/etc/cron.weekly這么目錄里.
一種是使用crontab -e放入到root用戶的計劃任務里,例如完整備份每周日凌晨3點運行,日常備份每周一-周六凌晨3點運行.
簡單的話,找到數據庫文件,直接復制備份,具置看你的mysql配置
數據備份是數據容災碰卜的最后一道防線,即便有著兩地三中心的架構,備份扒猜也依然重要。如果備份出問題,備份時影響了交易業(yè)務,備份數據無法恢復,這些也是企業(yè)難以承受的。所以選擇合適的備份工具尤為重要。
每個企業(yè)級數據庫都會有配套的備份工具,MEB(MySQL Enterprise Backup)就是MySQL企業(yè)版中非常重要的工具之一,是為企業(yè)級客戶提供的數據備份方案。
Xtrabackup一直作為MEB 開源版?zhèn)涮ザ嬖?,從MySQL 8.0開始情況可能會變得有所不同。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB備份/恢復體驗會更好,目前xtrabackup還不支持這些特性。
MySQL 企業(yè)版還有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理備份,為了保證備份時InnoDB引擎表與其他引擎數據文件、及binlog日志的一致性會上全局讀鎖,再拷貝非InnoDB文件,這期間MySQL會變成只讀,數據無法寫入。表數量越多,可能加上時間越長,如果使用的xtrabackup 不小心沒加rsync參數,逐個拷貝frm文件,鎖定時間會更長,對業(yè)務影響較大。
我曾遇到過部署在虛擬機的實例有12023多張表,當時使用的xtrabackup,備份腳本中沒加rsync參數,結果鎖了十幾分鐘,而MEB就沒有這樣的問題。
MySQL 8.0支持輕量級備份鎖 LOCK INSTANCE FOR BACKUP,數據字典也重構了由InnoDB存儲。若不創(chuàng)建非InnoDB表,MEB默認使用備份鎖獲取binlog日志一致性位置,并阻止DDL操作,但不影響DML操作。
只有InnoDB表,僅上備份鎖
請點擊輸入圖片描述
若有非InnoDB表,上全局鎖
請點擊輸入圖片描述
特性2:Redo Log Archiving
MEB能做到在線熱備,備份時不影響數據庫讀寫,這是利用了InnoDB事務日志,在備份期間持續(xù)監(jiān)視redo log的變化,讀取增量變化,寫入到ibbackup_logfile,也就不需要上鎖來保障備份一致性。(對非InnoDB的文件需要上讀鎖拷貝)
如笑此穗果備份期間數據庫寫入負載特別大,而寫入ibbackup_logfile速度較慢,redo log size也不大,很可能會出現ibbackup_logfile的寫入速度跟不上redo log記錄生成速度,redo log 空間不夠時需要覆寫日志文件,那么來不及寫入ibbackup_logfile的記錄會丟失,導致備份失敗。
MEB 4.1對此做了優(yōu)化,將redo log處理線程拆分成多線程分工合作,提高處理redo log的效率,降低了redo log覆寫造成備份失敗的概率,但redo log新增速度和ibbackup_logfile寫入速度懸殊太大,問題依然會發(fā)生。
MySQL 8.0.17支持了redo log archiving 徹底解決了此問題,備份前設置innodb_redo_log_archive_dirs,指定redo log歸檔目錄。MEB備份時自動開啟日志歸檔,當checkpoint時會將舊記錄歸檔到此目錄,后續(xù)從歸檔文件中讀取redo日志記錄,避免了覆寫可能導致的redo記錄丟失。
請點擊輸入圖片描述
注意:innodb_redo_log_archive_dirs 不能在數據目錄下,目錄權限要求是700
特性3:Page Tracking
Page Tracking 是為優(yōu)化增量備份效率,減少不必要的數據頁掃描。
增量備份當前有3種掃描模式:
page-track:利用LSN精確跟蹤上次備份之后被修改頁面,僅復制這些頁面,效率最快。
optimistic:掃描上次備份之后被修改的InnoDB 數據文件中,找出并拷貝修改的頁面。依賴系統時間,使用存在限制。
full-scan:掃描所有InnoDB數據文件,找出并拷貝自上次備份之后修改的頁面,效率最慢
1、利用page-track增量備份,需先安裝備份組件
mysql> INSTALL COMPONENT “
2、在全備前開啟page-track
SELECT mysqlbackup_page_track_set(true);
3、全備之后,做增量備份時指定若滿足page tracking條件,默認會使用page-track模式,否則會使用full-scan模式,也可以指定–incremental=page-track。
mysqlbackup –incremental-backup-dir=backup_incr –trace=3 –incremental=page-track –incremental-base=history:last_full_backup backup
incremental-base有3種選擇
last_backup:基于前一次備份做增備,前一次備份可能是增備,也可能是全備。這種方式全備之間可能會有多個增備,每次增量可能比較小,但恢復時需要逐個合并。
last_full_backup:基于前一次全備做增備。這種方式增備會越往后體積可能越大,但恢復時只需要合并最后一次增量備份。
dir:基于前一次的備份目錄,前一次備份可能是增備,也可能是全備。
測試對比full-scan 和page-track ,在變更頁小于總體50%的情況下 ,備份效率至少能有1倍的速度提升。
page-track 模式 磁盤讀寫均衡,說明讀寫的都是修改頁面。
請點擊輸入圖片描述
full-scan模式 磁盤讀寫差別很大,說明讀了很多未修改的頁面。
請點擊輸入圖片描述
應該所有的賀悄數據庫操作軟件都有備份功能的吧?
難道你沒用任何工具?
關于數據庫字典 mysql的介紹到此就結束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關注本站。
香港服務器選創(chuàng)新互聯,2H2G首月10元開通。
創(chuàng)新互聯(www.cdcxhl.com)互聯網服務提供商,擁有超過10年的服務器租用、服務器托管、云服務器、虛擬主機、網站系統開發(fā)經驗。專業(yè)提供云主機、虛擬主機、域名注冊、VPS主機、云服務器、香港云服務器、免備案服務器等。
本文標題:MySQL數據庫字典的創(chuàng)建和使用方法(數據庫字典mysql)
轉載來于:http://www.5511xx.com/article/dpcohce.html


咨詢
建站咨詢
