A. 實時歷史資料庫的實時資料庫結構
一個實時資料庫系統的優劣,主要體現在它提供的功能是否齊備,系統性能是否優越,能否完成有效的數據存取,各種數據操作、查詢處理、存取方法、完整性檢查,保證相關的事務管理,事務的概念、調度與並發控制、執行管理及存取控制,安全性檢驗。
以下是力控的系統結構圖系統組成:由採集站DA、數據伺服器、 WEB伺服器、客戶端組成,同時和關系資料庫進行有效的數據交換,DCS的數據經過DA進行採集,由DA SERVER送到數據伺服器,數據伺服器再有效的送給其它客戶端。
pSpace實時資料庫伺服器主要由以下幾部分構成:
pSpace Server:
負責整個pSpaceTM應用系統的實時數據處理、歷史數據存儲、統計數據處理、數據服務請求、事件觸發器管理、調度管理、資源管理、系統配置等。
pSpace Data Service:
為第三方廠家的軟體訪問pSpaceTM Server時提供數據服務功能,包括:OPC Server、DDE Server、ODBC Router、Base API介面等
pSpace COM SDK:
COM SDK為用戶開發基於pSpaceTM Server的應用程序提供基於COM對象的編程介面。
pSpace Visual ActiveX:
是一組開放的控制項,如:數據控制項、文本控制項、棒圖控制項、趨勢控制項等,控制項可以直接訪問實時資料庫和關系資料庫的數據。
pSpace DA Server數據採集器:
pSpaceTM DA server是數據採集站的設備通訊管理服務程序,用於系統和DCS、PLC等數據源之間的數據交換,具有自動網路通信負荷平衡功能和斷線數據緩沖功能。
pSpace的Web伺服器
使用IIS作為Web管理伺服器,用圖形客戶端生成Web網頁;
使用pSpace Visual ActiveX自行創建Web伺服器和Web網頁;
使用pSpace Webserver,用圖形客戶端生成Web網頁;
pSpace 客戶端
監控組態軟體:力控Forcecontrol系列;
Microsoft Excel:採用標准EXCEL載入宏方式通過網路訪問資料庫;
「瘦」客戶端:Microsoft Internet Explorer 5.0或以上版本的瀏覽器;
Visual ActiveX:pSpace可視化控制項工具包是為建立客戶端連接而提供的客戶端產品;它包括一組ActiveX控制項,如:數據控制項、文本控制項、棒圖控制項、趨勢控制項等;
二次開發工具及訪問介面
標准訪問介面供客戶端程序調用或第三方軟體訪問使用,因此介面的完整性、開放性決定實時資料庫二次開發的性能的優劣,pSpace訪問介面及開發工具主要包括以下幾種:
1)DBI API
DBI是一套實時資料庫訪問介面,給用戶提供底層編程介面,通過它可以與客戶端連接,對資料庫進行數據讀寫,滿足繼線重連功能,可以獲取資料庫結構信息,動態控制變化數據集,DBI介面採用了快速數據訪問機制,數據訪問吞吐量可達到11萬次/秒,可以適合過程模擬、優化控制、專家診斷等多種行業應用。
2)COM SDK
SDK是為用戶開發基於pSpaceTM Server的應用程序提供基於COM對象的編程介面,用COM SDK編寫的一個實例可以同時連接多個Server,也可以用COM SDK同時建立多個實例,提供面向對象的類庫供用戶開發應用程序,用戶使用該工具編程可以提高開發效率,該工具可以在VC++,VB,VBScript,.net等開發環境下使用。
3)OLE DB Provider
應用程序提供pSpace Server資料庫的ADO訪問介面。
4)DAI SDK
pSpace的數據源採集介面的開放工具,DAI採集介面軟體都可以單獨運行在一台網路結點機,並可在遠程對其進行配置與監控,具備以下功能:
DAI 可以直接利用原有的力控組態軟體的驅動程序;
DAI 具備斷線緩存功能;另外DAInterface還要增加幾個介面;
DAI 支持XML、CSV文件介面,可採集離線數據源。
實時資料庫性能指標:
從實時資料庫運行環境來看,實時資料庫系統的除了自身的軟體性能外,還取決於所使用的操作系統、硬體環境等。
單台伺服器容量可達12,0000點以上;
歷史資料庫支持unix linux windows等64位操作系統;
完整的事件記錄系統,所有操作員的動作均被檢查並記錄,可作為跟蹤依據;
功能強大的壓縮演算法:按高壓縮格式保存數據,採用死區和變化率壓縮,壓縮比為1:30;
支持優化旋轉門演算法對歷史數據進行壓縮;
專用的磁碟存貯演算法來保證對長年形成的海量歷史數據的快速查詢;
支持的浮點型、布爾型、字元串型、等常見數據類型及「任意」類型;
資料庫吞吐量支持每秒寫入/查詢20,000個數據點;
支持歷史資料庫在線備份,多伺服器並發處理;
支持資料庫冗餘;
IO數據採集斷線重連:通訊故障能夠自動恢復,I/O時間同步;自動補償 PC 時鍾偏差。
構建企業信息門戶
力控pSpace可以為企業在創建基於Internet/Intranet的網路信息門戶時提供完整的軟體解決方案,同時支持PDA掌上終端訪問力控的WEB伺服器。
對pSpaceTM Server的數據進行Web管理有以下幾種方式:
使用IIS作為Web管理伺服器,將通用流程畫面轉換為Web網頁,整個系統與WIN系統無縫集成,基於WEB組態的工具控制項包通過相應的檢索便可以進行查詢,能夠直接生成WEB頁面;
使用組態軟體創建Web伺服器和Web網頁然後發布;
用戶使用pSpaceTM Visual ActiveX自行創建Web伺服器和Web網頁;
用戶可以使用自己熟悉的網站開發工具如:FrontPage、Dreamweaver、ASP等創建主頁,設立網站,並在網頁中嵌入pSpace Visual ActiveX中的控制項建立pSpaceTM Server的數據顯示。
特點如下:
Web頁面與過程畫面的高度同步
pSpace Web Server實現了伺服器端與客戶端畫面的高度同步, 在瀏覽器上可以同時瀏覽多個過程畫面, 看到的圖形界面與通用組態軟體生成的過程畫面效果完全相同,數據採用變化傳輸的方式,具有更快的運行與數據更新速度。
企業級Web伺服器
pSpace Web Server專為構建企業級Web伺服器而設計,具備高容量的數據吞吐能力和良好的健壯性,力控Web Server支持多達500的客戶端的同時訪問。
完善的安全機制
pSpace Web Server提供完善的安全管理機制。只有授權的用戶才能修改過程參數。使用pSpace Web Server時,管理員盡可安心,不必擔心非法或未授權的修改。
客戶端
力控實時歷史資料庫管理系統提供了基本的客戶端組態工具,開放的介面可以高級應用中的資產管理、設備診斷等管理客戶端的開發,每個客戶端應用軟體都可以與pSpace Server運行在同一台計算機上,也可以分布式地運行在其它網路結點機上。
1)管理工具Admin
pSpace系統配置工具。包括:在線配置資料庫點、採集介面、監控伺服器和採集器狀態,啟、停遠程服務等。
2)Forcecontrol組態軟體
完成生產調度系統的實時監控,曲線分析、生產報表、報警、事件等。
3)Excel Add-In:Excel載入宏,完成功能包括:
查詢原始數據;
查詢當前數據;
利用索引點查詢過濾數據;
查詢數據的采樣值;
查詢統計值(最小值、最大值、平均值、標准方差、累計值、計數值);
顯示、導入、導出標簽;
導入、導出數據;
顯示、導入、導出消息;
顯示採集介面;
4)pBatch
批量生產工藝數據的檢索和表示,可跟蹤與批量生產相關的各種信息。
5)Alarm Server
報警伺服器。
6)SNMP Agent:
網路管理工具,可以在線診斷網路設備。
上層應用工具
報表工具:
可以在力控®的萬能報表工具中獲取實時資料庫的各種過程數據,完成數據的查詢與計算;建立易用、靈活、強大的報表系統。
設備運行診斷工具:
生產設備運行診斷工具可以方便地了解運行設備故障事件發生的時間、地點、狀態和原因,從而降低設備維護成本。
趨勢組記錄工具:
提供了非常豐富的趨勢記錄功能,實時趨勢和歷史趨勢記錄允許趨勢曲線多層重疊,可以通過顏色區分好數據和壞數據,可以顯示數據的采樣周期、數值精度和曲線變化情況。
圖形分析工具:
包括直方圖、餅圖、面積圖等十種圖形分析工具,非常方便數據的顯示與比較。圖形具有透明性,從而更加容易地觀察到數據之間的差別。
趨勢曲線放大鏡:
利用趨勢曲線的放大鏡工具,可以放大任何時間的實時和歷史曲線,非常方便地分析時間序列的數據。通過趨勢曲線的滾動按鈕,可以前後滾動查看趨勢曲線的變化情況。
成本核算工具:
內嵌成本核算模板工具,包括核算體系(生產基本單位核算、財務核算及其報表)、預算和考核體系、信息實時查詢(收率、消耗、能耗等)、成本統計報表。
質量分析工具:
提供質量分析模板工具,將生產過程的實時數據和質量點的采樣數據進行比較,在線進行評估,以便生產管理人員及時掌握各個產品的質量數據。長期保存質檢數據,便於質量分析。
安全性及用戶管理
網路安全
在進行項目設計時,在數據採集站可進行雙網卡配置以保證生產網和管理網的物理隔離,DA SERVER採集站軟體設計中可以保證數據單項傳輸,防止管理網的干擾生產網。
用戶管理
實時資料庫提供了完備的安全保護機制,以保證生產過程的安全可靠,用戶管理具備多個級別,並可根據級別限制對重要工藝參數的修改,以有效避免生產過程中的誤操作。
實時資料庫提供了安全區的概念,同級別,不同安全區的數據不可以互相操作,保證了數據的分布式的管理。
提供基於遠程的用戶管理,增加更多的用戶級別及安全區,管理所有用戶的遠程登陸信息。
加密管理:
支持工程加密,用戶可以通過加密鎖自己定義工程密碼,沒有此加密鎖任何非法用戶無法侵入,保護了自己的工程結構;
操作事件:
可以詳細的記錄操作事件和系統事件,方便事故追憶;
開機自動運行設置、有效的屏蔽系統鍵盤,可以防止非法用戶入侵;
數據採集器DA SERVER
DA SERVER 是Server 與各種數據源之間的介面,DA SERVER具有自動網路通信負荷平衡功能和斷線數據緩沖功能,DA SERVER可以和Server運行在同一伺服器內,也可以運行在不同的前端機上,通過TCP/IP與Server通信。
DA SERVER主要有以下幾種:
DA SERVER:專用的數據採集伺服器,通過它中心伺服器可以採集各種DCS、PLC、FCS等I/O設備的數據,DA SERVER可以集成HMI/SCADA組態軟體的數據採集介面,對於已經安裝運行了組態軟體的SCADA工作站,通過該數據採集器可以很方便地將SCADA數據採集到Server中。
MOPC:通過該數據採集器,Server可以採集其他各種第三方的OPC Server的數據。
性能
支持通過RS232、RS422、RS485、電台、電話輪巡撥號、乙太網、移動GPRS、CDMA、GSM網路等方式和設備進行通訊;
開發環境下具備在線診斷設備通訊功能,可以動態的打開、關閉設備,通訊故障後具備自動恢復功能;
支持控制設備和控制網路冗餘,控制設備進行切換時,通訊會自動切換;
支持多種協議的設備掛在一條通訊鏈路上與DA SERVER進行通訊,方便電台等遠程通訊;
支持與設備採取主從、主主、從主等多種交互機制來進行通訊,比如對MODBUS標准協議設備,支持主與從2種方式與設備通訊;
可以採集帶時間戳的數據,毫秒級數據採集速率,實現歷史數據向實時資料庫的回插功能,可以採集記錄儀、錄波器數據,支持SOE,完成事件監視。
支持的設備種類
支持主流的DCS、PLC、DDC、現場匯流排、智能儀表等1000多種廠家設備的通訊;也可以按照用戶提出的通信協議和硬體介面,在較短時間內開發新的驅動程序。
無所不在的移動通訊
所有設備的驅動程序支持通過移動GPRS、CDMA網路與控制設備進行通訊,DA SERVER節點與其遠程DA SERVER節點也可以進行移動通訊;
DA SERVER移動數據伺服器與遠程設備的通訊為並發處理、完全透明的解決方案,消除了一般軟體採用虛擬串口方式造成數據傳輸不穩定的隱患,有效的流量控制機制保證了遠程應用中節省通訊費用;
支持設備主動通過GPRS上傳數據的方式進行數據傳輸。
典型企業信息化應用
勝利油田油氣集輸公司是勝利油田從事油氣集輸的專業化生產企業,主要擔負勝利油田原油外輸、天然氣生產集輸及輕烴生產任務。管理著9個氣田,187口氣井,24座集配氣站,總長240公里的天然氣輸氣管道和220公里的輸油管道,8座大中型輸油站庫,2座壓氣站和3套輕烴回收裝置。所轄13個三級單位,具有點多、線長、面廣、易燃易爆、高溫高壓的特點。
該系統對油田的原油庫和壓氣站等身產裝置進行網路信息處理。該信息系統集成了多種設備,信息集成使用了OPC、DDE、ODBC、PROFIBUS、MODBUS、RS485等多種網路採集方式進行數據處理,是一個典型的分布式採集,集中管理的大型網路信息化系統。
勝利油田原油庫控制系統主要選用了SIEMENS 控制系統,在壓氣站中, 50萬崗位使用Honeywell的S9000型號的DCS控制系統;SW64崗位是美國庫伯公司的RR控制器;二次增壓崗位使用日本Omron的控制器;離心機崗位是橫河CS1000型號的DCS控制系統;配氣崗位是美國SIXNET公司的ST-GT-1210控制器;熱煤爐崗位控制系統是三菱的PLC;配電崗位設有許繼的配電保護及監控系統。
pSpace在應用中有效的集成了以上系統,從監測和考核原材料及水、電、氣、風的用量入手,減少能耗物耗,對優化生產過程,提高生產運行效率起到了關鍵的作用。
典型先進控制方案
pSpace支持與國外的各種資料庫進行數據交互,比如INFOPLUS、PI、PHD等,通過pSpace SERVER可以在國內外的各種平台上進行上層應用、專家診斷、先進控制等,下面是一個電廠設備診斷的應用,pSpace SERVER通過各種介面將現有SIS系統、小神探系統、新增的斷路器和各種輔機監測系統集成為一個整體,其中,狀態檢修系統需要的絕大部分實時數據都取自SIS系統的PI實時資料庫,因此,PI資料庫和力控實時資料庫之間的介面是整個系統集成的關鍵,介面Gateway的性能將直接決定整個狀態檢修系統的性能。
B. 什麼是MySql資料庫
MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。
MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
MySQL是一種開放源代碼的關系型資料庫管理系統(RDBMS),MySQL資料庫系統使用最常用的資料庫管理語言--結構化查詢語言(SQL)進行資料庫管理。
由於MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。大多數人都認為在不需要事務化處理的情況下,MySQL是管理內容最好的選擇。
MySQL這個名字,起源不是很明確。一個比較有影響的說法是,基本指南和大量的庫和工具帶有前綴「my」已經有10年以上,而且不管怎樣,MySQL AB創始人之一的Monty Widenius的女兒也叫My。這兩個到底是哪一個給出了MySQL這個名字至今依然是個迷,包括開發者在內也不知道。
MySQL的海豚標志的名字叫「sakila」,它是由MySQL AB的創始人從用戶在「海豚命名」的競賽中建議的大量的名字表中選出的。獲勝的名字是由來自非洲史瓦濟蘭的開源軟體開發者Ambrose Twebaze提供。根據Ambrose所說,Sakila來自一種叫SiSwati的史瓦濟蘭方言,也是在Ambrose的家鄉烏干達附近的坦尚尼亞的Arusha的一個小鎮的名字。
MySQL,雖然功能未必很強大,但因為它的開源、廣泛傳播,導致很多人都了解到這個資料庫。它的歷史也富有傳奇性。
MySQL的歷史最早可以追溯到1979年,那時Oracle也才小打小鬧,微軟的SQL Server影子都沒有。有一個人叫Monty Widenius, 為一個叫TcX的小公司打工,並用BASIC設計了一個報表工具,可以在4M主頻和16KB內存的計算機上運行。過了不久,又將此工具,使用C語言重寫,移植到Unix平台,當時,它只是一個很底層的面向報表的存儲引擎。這個工具叫做Unireg。
可是,這個小公司資源有限,Monty天賦極高,面對資源有限的不利條件,他反而更能發揮潛能,總是力圖寫出最高效的代碼。並因此養成了習慣。與Monty同在一起的還有一些別的同事,很少有人能堅持把那些代碼持續寫到20年後,而Monty卻做到了。
1990年,TcX的customer 中開始有人要求要為它的API提供SQL支持,當時,有人想到了直接使用商用資料庫算了,但是Monty覺得商用資料庫的速度難令人滿意。於是,他直接藉助於mSQL的代碼,將它集成到自己的存儲引擎中。但不巧的是,效果並不太好。於是, Monty雄心大起,決心自己重寫一個SQL支持。
1996年,MySQL 1.0發布,只面向一小撥人,相當於內部發布。到了96年10月,MySQL 3.11.1發布了,呵呵,沒有2.x版本。最開始,只提供了Solaris下的二進製版本。一個月後,Linux版本出現了。
緊接下來的兩年裡,MySQL依次移植到各個平台下。它發布時,採用的許可策略,有些與眾不同:允許免費商用,但是不能將MySQL與自己的產品綁定在一起發布。如果想一起發布,就必須使用特殊許可,意味著要花銀子。當然,商業支持也是需要花銀子的。其它的,隨用戶怎麼用都可以。這種特殊許可為MySQL帶來了一些收入,從而為它的持續發展打下了良好的基礎。(細想想,PostgreSQL曾經有幾年限入低谷,可能與它的完全免費,不受任何限制有關系)。
MySQL3.22應該是一個標志性的版本,提供了基本的SQL支持。
MySQL關系型資料庫於1998年1月發行第一個版本。它使用系統核心提供的多線程機制提供完全的多線程運行模式,提供了面向C、C++、Eiffel、Java、Perl、php、Python以及Tcl等編程語言的編程介面(APIs),支持多種欄位類型並且提供了完整的操作符支持查詢中的SELECT和WHERE操作。
MySQL是開放源代碼的,因此任何人都可以在General Public License的許可下下載並根據個性化的需要對其進行修改。MySQL因為其速度、可靠性和適應性而備受關注。
1999-2000年,有一家公司在瑞典成立了,叫MySQL AB (AB是瑞典語「股份公司」的意思)。 雇了幾個人,與Sleepycat合作,開發出了 Berkeley DB引擎, 因為BDB支持事務處理,所以,MySQL從此開始支持事務處理了。
2000年4月,MySQL對舊的存儲引擎進行了整理,命名為MyISAM。同時,2001年,Heikiki Tuuri向MySQL提出建議,希望能集成他們的存儲引擎InnoDB,這個引擎同樣支持事務處理,還支持行級鎖。
如今,遺憾的是,BDB和InnoDB好像都被Oracle收購了,為了消滅競爭對手,哪怕是開源的,都是不擇手段。
MySQL與InnoDB的正式結合版本是4.0。
到了MySQL5.0,2003年12月,開始有View,存儲過程之類的東東,當然,其間, bug也挺多。
在2008年1月16號 MySQL被Sun公司收購。
最近,MySQL的創始人Monty Widenius已經向Sun提交了辭呈。head都要走了。
據說,被Sun收購的公司多薄命,不知道MySQL今後前途如何,希望一路走好。相信MySQL的生命力還是很長久的。
時至今日 mysql 和 php 的結合絕對是完美.很多大型的網站也用到mysql資料庫.mysql的發展前景是非常光明的!
1:使用SHOW語句找出在伺服器上當前存在什麼資料庫:
mysql> SHOW DATABASES;
2:2、創建一個資料庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:選擇你所創建的資料庫
mysql> USE MYSQLDATA; (按回車鍵出現Database changed 時說明操作成功!)
4:查看現在的資料庫中存在什麼表
mysql> SHOW TABLES;
5:創建一個資料庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:顯示表的結構:
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values (」hyq」,」M」);
8:用文本方式將數據裝入資料庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE 「D:/mysql.txt」 INTO TABLE MYTABLE;
9:導入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:刪除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中數據
mysql>update MYTABLE set sex=」f」 where name=』hyq』;
全局管理許可權對應解釋:
FILE: 在MySQL伺服器上讀寫文件。
PROCESS: 顯示或殺死屬於其它用戶的服務線程。
RELOAD: 重載訪問控製表,刷新日誌等。
SHUTDOWN: 關閉MySQL服務。
資料庫/數據表/數據列許可權:
ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。
CREATE: 建立新的資料庫或數據表。
DELETE: 刪除表的記錄。
DROP: 刪除數據表或資料庫。
INDEX: 建立或刪除索引。
INSERT: 增加表的記錄。
SELECT: 顯示/搜索表的記錄。
UPDATE: 修改表中已存在的記錄。
特別的許可權:
ALL: 允許做任何事(和root一樣)。
USAGE: 只允許登錄–其它什麼也不允許做。
MySQL資料庫的導入,有兩種方法:
1) 先導出資料庫SQL腳本,再導入;
2) 直接拷貝資料庫目錄和文件。
在不同操作系統或MySQL版本情況下,直接拷貝文件的方法可能會有不兼容的情況發生。
所以一般推薦用SQL腳本形式導入。下面分別介紹兩種方法。
2. 方法一 SQL腳本形式
操作步驟如下:
2.1. 導出SQL腳本
在原資料庫伺服器上,可以用phpMyAdmin工具,或者mysqlmp命令行,導出SQL腳本。
2.1.1 用phpMyAdmin工具
導出選項中,選擇導出「結構」和「數據」,不要添加「DROP DATABASE」和「DROP TABLE」選項。
選中「另存為文件」選項,如果數據比較多,可以選中「gzipped」選項。
將導出的SQL文件保存下來。
2.1.2 用mysqlmp命令行
命令格式
mysqlmp -u 用戶名 -p 資料庫名 > 資料庫名.sql
範例:
mysqlmp -u root -p abc > abc.sql
(導出資料庫abc到abc.sql文件)
提示輸入密碼時,輸入該資料庫用戶名的密碼。
2.2. 創建空的資料庫
通過主控界面/控制面板,創建一個資料庫。假設資料庫名為abc,資料庫全權用戶為abc_f。
2.3. 將SQL腳本導入執行
同樣是兩種方法,一種用phpMyAdmin(mysql資料庫管理)工具,或者mysql命令行。
2.3.1 用phpMyAdmin工具
從控制面板,選擇創建的空資料庫,點「管理」,進入管理工具頁面。
在"SQL"菜單中,瀏覽選擇剛才導出的SQL文件,點擊「執行」以上載並執行。
注意:phpMyAdmin對上載的文件大小有限制,php本身對上載文件大小也有限制,如果原始sql文件
比較大,可以先用gzip對它進行壓縮,對於sql文件這樣的文本文件,可獲得1:5或更高的壓縮率。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件。
提示輸入密碼時,輸入該資料庫用戶名的密碼。
3 直接拷貝
如果資料庫比較大,可以考慮用直接拷貝的方法,但不同版本和操作系統之間可能不兼容,要慎用。
3.1 准備原始文件
用tar打包為一個文件
3.2 創建空資料庫
3.3 解壓
在臨時目錄中解壓,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷貝
將解壓後的資料庫文件拷貝到相關目錄
cd mydb/
cp * /var/lib/mysql/mydb/
對於FreeBSD:
cp * /var/db/mysql/mydb/
3.5 許可權設置
將拷貝過去的文件的屬主改為mysql:mysql,許可權改為660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
1.導表結構
使用MySQL生成create腳本的方法。找到生成要導出的腳本,按MySQL的語法修改一下到MySQL資料庫中創建該表的列結構什麼的。
2.導表數據
在MSSQL端使用bcp導出文本文件:
bcp 「Select * FROM dbname.dbo.tablename;」 queryout tablename.txt -c -Slocalhostdb2005 -Usa
其中」"中是要導出的sql語句,-c指定使用 進行欄位分隔,使用 進行記錄分隔,-S指定資料庫伺服器及實例,-U指定用戶名,-P指定密碼.
在MySQL端使用mysqlimport 導入文本文件到相應表中
mysqlimport -uroot -p databasename /home/test/tablename.txt
其中-u指定用戶名,-p指定密碼,databasename指定資料庫名稱,表名與文件名相同
MySQL備份恢復數據的一般步驟
備份一個資料庫的例子:
1、備份前讀鎖定涉及的表
mysql>LOCK TABLES tbl1 READ,tbl1 READ,…
如果,你在mysqlmp實用程序中使用--lock-tables選項則不必使用如上SQL語句。
2、導出資料庫中表的結構和數據
shell>mysqlmp --opt db_name>db_name.sql
3、啟用新的更新日誌
shell>mysqladmin flush-logs
這樣可以記錄你備份後的數據改變為恢復數據准備。
4、解除表的讀鎖
mysql>UNLOCK TABLES;
為了加速上述過程,你可以這樣做:
shell> mysqlmp --lock-tables --opt db_name>db_name.sql; mysqladmin flush-logs
但是這樣可能會有點小問題。上命令在啟用新的更新日誌前就恢復表的讀鎖,
在更新繁忙的站點,可能有備份後的更新數據沒有記錄在新的日誌中。
現在恢復上面備份的資料庫
1、對涉及的表使用寫鎖
mysql>LOCK TABLES tbl1 WRITE,tbl1 WRITE,…
2、恢復備份的數據
shell>mysql db_name < db_name.sql
3、恢復更新日誌的內容
shell>mysql --one-database db_name < hostname.nnn
假設需要使用的日誌名字為hostname.nnn
4、啟用新的更新日誌
shell>mysqladmin flush-logs
5、解除表的寫鎖
mysql>UNLOCK TABLES;
希望上面的例子能給你啟發,因為備份數據的手法多種多樣,你所使用的和上面所述可能大不一樣,但是對於備份和恢復中,表的鎖定、啟用新的更新日誌的時機應該是類似的,仔細考慮這個問題。
選擇InnoDB作為存儲引擎
大型產品的資料庫對於可靠性和並發性的要求較高,InnoDB作為默認的MySQL存儲引擎,相對於MyISAM來說是個更佳的選擇。
優化資料庫結構
組織資料庫的schema、表和欄位以降低I/O的開銷,將相關項保存在一起,並提前規劃,以便隨著數據量的增長,性能可以保持較高的水平。
設計數據表應盡量使其佔用的空間最小化,表的主鍵應盡可能短。·對於InnoDB表,主鍵所在的列在每個輔助索引條目中都是可復制的,因此如果有很多輔助索引,那麼一個短的主鍵可以節省大量空間。
僅創建你需要改進查詢性能的索引。索引有助於檢索,但是會增加插入和更新操作的執行時間。
InnoDB的ChangeBuffering特性
InnoDB提供了changebuffering的配置,可減少維護輔助索引所需的磁碟I/O。大規模的資料庫可能會遇到大量的表操作和大量的I/O,以保證輔助索引保持最新。當相關頁面不在緩沖池裡面時,InnoDB的changebuffer將會更改緩存到輔助索引條目,從而避免因不能立即從磁碟讀取頁面而導致耗時的I/O操作。當頁面被載入到緩沖池時,緩沖的更改將被合並,更新的頁面之後會刷新到磁碟。這樣做可提高性能,適用於MySQL5.5及更高版本。
InnoDB頁面壓縮
InnoDB支持對表進行頁面級的壓縮。當寫入數據頁的時候,會有特定的壓縮演算法對其進行壓縮。壓縮後的數據會寫入磁碟,其打孔機制會釋放頁面末尾的空塊。如果壓縮失敗,數據會按原樣寫入。表和索引都會被壓縮,因為索引通常是資料庫總大小中佔比很大的一部分,壓縮可以顯著節約內存,I/O或處理時間,這樣就達到了提高性能和伸縮性的目的。它還可以減少內存和磁碟之間傳輸的數據量。MySQL5.1及更高版本支持該功能。
注意,頁面壓縮並不能支持共享表空間中的表。共享表空間包括系統表空間、臨時表空間和常規表空間。
使用批量數據導入
在主鍵上使用已排序的數據源進行批量數據的導入可加快數據插入的過程。否則,可能需要在其他行之間插入行以維護排序,這會導致磁碟I/O變高,進而影響性能,增加頁的拆分。關閉自動提交的模式也是有好處的,因為它會為每個插入執行日誌刷新到磁碟。在批量插入期間臨時轉移唯一鍵和外鍵檢查也可顯著降低磁碟I/O。對於新建的表,最好的做法是在批量導入後創建外鍵/唯一鍵約束。
一旦你的數據達到穩定的大小,或者增長的表增加了幾十或幾百兆位元組,就應該考慮使用OPTIMIZETABLE語句重新組織表並壓縮浪費的空間。對重新組織後的表進行全表掃描所需要的I/O會更少。
優化InnoDB磁碟I/O
增加InnoDB緩沖池大小可以讓查詢從緩沖池訪問而不是通過磁碟I/O訪問。通過調整系統變數innodb_flush_method來調整清除緩沖的指標使其達到最佳水平。
MySQL的內存分配
在為MySQL分配足夠的內存之前,請考慮不同領域對MySQL的內存需求。要考慮的關鍵領域是:並發連接——對於大量並發連接,排序和臨時表將需要大量內存。在撰寫本文時,對於處理3000+並發連接的資料庫,16GB到32GB的RAM是足夠的。
內存碎片可以消耗大約10%或更多的內存。像innodb_buffer_pool_size、key_buffer_size、query_cache_size等緩存和緩沖區要消耗大約80%的已分配內存。
日常維護
定期檢查慢的查詢日誌並優化查詢機制以有效使用緩存來減少磁碟I/O。優化它們,以掃描最少的行數,而不是進行全表掃描。
其他可以幫助DBA檢查和分析性能的日誌包括:錯誤日誌、常規查詢日誌、二進制日誌、DDL日誌(元數據日誌)。
定期刷新緩存和緩沖區以降低碎片化。使用OPTIMIZETABLE語句重新組織表並壓縮任何可能被浪費的空間。