亚洲高清vr播放在线观看,欧美亚洲精品免费,欧美日韩天堂在线视频,午夜福利小视频

      學(xué)習(xí)啦——學(xué)設(shè)計(jì)>網(wǎng)頁設(shè)計(jì)>網(wǎng)站建設(shè)>網(wǎng)站服務(wù)器管理>

      MySQL有哪些是重要復(fù)制_MySQL主復(fù)制有哪些

      時間: 宇民40 分享

        MySQL的數(shù)據(jù)庫的高可用性的架構(gòu)大概有以下幾種:集群,讀寫分離,主備。而后面兩種都是通過復(fù)制來實(shí)現(xiàn)的。下面由學(xué)習(xí)啦小編為大家整理的,希望大家喜歡!

        MySQL主復(fù)制

        為什么使用主從復(fù)制?

        1、主服務(wù)器/從服務(wù)器設(shè)置增加了健壯性。主服務(wù)器出現(xiàn)問題時,你可以切換到從服務(wù)器作為備份。

        2、通過在主服務(wù)器和從服務(wù)器之間切分處理客戶查詢的負(fù)荷,可以得到更好的客戶響應(yīng)時間。但是不要同時在主從服務(wù)器上進(jìn)行更新,這樣可能引起沖突。

        3、使用復(fù)制的另一個好處是可以使用一個從服務(wù)器執(zhí)行備份,而不會干擾主服務(wù)器。在備份過程中主服務(wù)器可以繼續(xù)處理更新。

        MySQL使用3個線程來執(zhí)行復(fù)制功能(其中1個在主服務(wù)器上,另兩個在從服務(wù)器上。當(dāng)發(fā)出START SLAVE時,從服務(wù)器創(chuàng)建一個I/O線程,以連接主服務(wù)器并讓主服務(wù)器發(fā)送二進(jìn)制日志。主服務(wù)器創(chuàng)建一個線程將二進(jìn)制日志中的內(nèi)容發(fā)送到從服務(wù)器。從服務(wù)器I/O線程讀取主服務(wù)器Binlog Dump線程發(fā)送的內(nèi)容并將該數(shù)據(jù)拷貝到從服務(wù)器數(shù)據(jù)目錄中的本地文件中,即中繼日志。第3個線程是SQL線程,從服務(wù)器使用此線程讀取中繼日志并執(zhí)行日志中包含的更新。SHOW PROCESSLIST語句可以查詢在主服務(wù)器上和從服務(wù)器上發(fā)生的關(guān)于復(fù)制的信息。

        默認(rèn)中繼日志使用host_name-relay-bin.nnnnnn形式的文件名,其中host_name是從服務(wù)器主機(jī)名,nnnnnn是序列號。用連續(xù)序列號來創(chuàng)建連續(xù)中繼日志文件,從000001開始。從服務(wù)器跟蹤中繼日志索引文件來識別目前正使用的中繼日志。默認(rèn)中繼日志索引文件名為host_name-relay-bin.index。在默認(rèn)情況,這些文件在從服務(wù)器的數(shù)據(jù)目錄中被創(chuàng)建。中繼日志與二進(jìn)制日志的格式相同,并且可以用mysqlbinlog讀取。當(dāng)SQL線程執(zhí)行完中繼日志中的所有事件后,中繼日志將會被自動刪除。

        從服務(wù)器在數(shù)據(jù)目錄中另外創(chuàng)建兩個狀態(tài)文件--master.info和relay-log.info。狀態(tài)文件保存在硬盤上,從服務(wù)器關(guān)閉時不會丟失。下次從服務(wù)器啟動時,讀取這些文件以確定它已經(jīng)從主服務(wù)器讀取了多少二進(jìn)制日志,以及處理自己的中繼日志的程度。

        設(shè)置主從復(fù)制:

        1、確保在主服務(wù)器和從服務(wù)器上安裝的MySQL版本相同,并且最好是MySQL的最新穩(wěn)定版本。

        2、在主服務(wù)器上為復(fù)制設(shè)置一個連接賬戶。該賬戶必須授予REPLICATION SLAVE權(quán)限。如果賬戶僅用于復(fù)制(推薦這樣做),則不需要再授予任何其它權(quán)限。

        mysql> GRANT REPLICATION SLAVE ON *.*

        -> TO 'replication'@'%.yourdomain.com' IDENTIFIED BY 'slavepass';

        3、執(zhí)行FLUSH TABLES WITH READ LOCK語句清空所有表和塊寫入語句:

        mysql> FLUSH TABLES WITH READ LOCK;

        保持mysql客戶端程序不要退出。開啟另一個終端對主服務(wù)器數(shù)據(jù)目錄做快照。

        shell> cd /usr/local/mysql/

        shell> tar -cvf /tmp/mysql-snapshot.tar ./data

        如果從服務(wù)器的用戶賬戶與主服務(wù)器的不同,你可能不想復(fù)制mysql數(shù)據(jù)庫。在這種情況下,應(yīng)從歸檔中排除該數(shù)據(jù)庫。你也不需要在歸檔中包括任何日志文件或者master.info或relay-log.info文件。

        當(dāng)FLUSH TABLES WITH READ LOCK所置讀鎖定有效時(即mysql客戶端程序不退出),讀取主服務(wù)器上當(dāng)前的二進(jìn)制日志名和偏移量值:

        mysql > SHOW MASTER STATUS;

        +---------------+----------+--------------+------------------+

        | File | Position | Binlog_Do_DB | Binlog_Ignore_DB |

        +---------------+----------+--------------+------------------+

        | mysql-bin.003 | 73 | test | manual,mysql |

        +---------------+----------+--------------+------------------+

        File列顯示日志名,而Position顯示偏移量。在該例子中,二進(jìn)制日志值為mysql-bin.003,偏移量為73。記錄該值。以后設(shè)置從服務(wù)器時需要使用這些值。它們表示復(fù)制坐標(biāo),從服務(wù)器應(yīng)從該點(diǎn)開始從主服務(wù)器上進(jìn)行新的更新。

        如果主服務(wù)器運(yùn)行時沒有啟用--logs-bin,SHOW MASTER STATUS顯示的日志名和位置值為空。在這種情況下,當(dāng)以后指定從服務(wù)器的日志文件和位置時需要使用的值為空字符串('')和4.

        取得快照并記錄日志名和偏移量后,回到前一中端重新啟用寫活動:

        mysql> UNLOCK TABLES;

        4、確保主服務(wù)器主機(jī)上my.cnf文件的[mysqld]部分包括一個log-bin選項(xiàng)。該部分還應(yīng)有一個server-id=Master_id選項(xiàng),其中master_id必須為1到232–1之間的一個正整數(shù)值。例如:

        [mysqld]

        log-bin

        server-id=1

        如果沒有提供那些選項(xiàng),應(yīng)添加它們并重啟服務(wù)器。

        5、停止從服務(wù)器上的mysqld服務(wù)并在其my.cnf文件中添加下面的行:

        [mysqld]

        server-id=2

        slave_id值同Master_id值一樣,必須為1到232–1之間的一個正整數(shù)值。并且,從服務(wù)器的ID必須與主服務(wù)器的ID不相同。

        6、將數(shù)據(jù)備據(jù)目錄中。確保對這些文件和目錄的權(quán)限正確。服務(wù)器 MySQL運(yùn)行的用戶必須能夠讀寫文件,如同在主服務(wù)器上一樣。

        Shell> chown -R mysql:mysql /usr/local/mysql/data

        7、啟動從服務(wù)器。在從服務(wù)器上執(zhí)行下面的語句,用你的系統(tǒng)的實(shí)際值替換選項(xiàng)值:

        mysql> CHANGE MASTER TO

        -> MASTER_HOST='master_host_name',

        -> MASTER_USER='replication_user_name',

        -> MASTER_PASSWORD='replication_password',

        -> MASTER_LOG_FILE='recorded_log_file_name',

        -> MASTER_LOG_POS=recorded_log_position;

        8、啟動從服務(wù)器線程:

        mysql> START SLAVE;

        執(zhí)行這些程序后,從服務(wù)器應(yīng)連接主服務(wù)器,并補(bǔ)充自從快照以來發(fā)生的任何更新。

        9、如果出現(xiàn)復(fù)制錯誤,從服務(wù)器的錯誤日志(HOSTNAME.err)中也會出現(xiàn)錯誤消息。

        10、從服務(wù)器復(fù)制時,會在其數(shù)據(jù)目錄中發(fā)現(xiàn)文件master.info和HOSTNAME-relay-log.info。從服務(wù)器使用這兩個文件跟蹤已經(jīng)處理了多少主服務(wù)器的二進(jìn)制日志。不要移除或編輯這些文件,除非你確切知你正在做什么并完全理解其意義。即使這樣,最好是使用CHANGE MASTER TO語句。

        MySQL使用方法

        1、 isnull();函數(shù)

        在SQL Server 中經(jīng)常會遇到一些字段為空值,這里可以使用isnull()這個函數(shù)來做判斷;eg:

        select isnull(Table_column,'Test') as column from Table

        這個語句意思就是:從Table表中取字段Table_column,如果該字段值為空,則用“Test”字符來代替;

        2、SQL Server 2008工具使用;

        新建立一個數(shù)據(jù)庫表時,當(dāng)建立好了,但又要修改,有時候DB會阻止對表結(jié)構(gòu)的修改,需要設(shè)置如下:

        SQLServer----"tool"----"option"----"Designers"----"prevent saving changes that require table recreating" 去掉這個“阻止修改”選項(xiàng);

        3、nvarchar(Max)

        SQL Server 中Max是最大值,其定義是4000,nvarchar(Max) 其實(shí)就是nvarchar(4000);

        4、select * from table

        在數(shù)據(jù)庫中,一般小數(shù)據(jù)量的select * from table 不會發(fā)覺有什么慢,但是一旦到了大數(shù)據(jù)量的數(shù)據(jù)庫中,這種查詢是最慢的最耗時間的!數(shù)據(jù)庫的開銷會很大!

        所以不要輕易的在大數(shù)據(jù)表上執(zhí)行不帶條件的select cout(*) from table,不僅耗時大,而且會把這個數(shù)據(jù)庫表上S鎖,在cout(*)期間,任何有關(guān)和該表的insert update delete都會被阻止!!!

        5、getdate()

        getdate()函數(shù)用于獲得當(dāng)前系統(tǒng)的系統(tǒng)時間這個精確到了毫秒:eg:"2013-12-12 12:23:33:321"

        6、newid()

        這個不用多說了,做主鍵ID時最常用了,此函數(shù)可以生成一個唯一的guid,32位長,這個強(qiáng)度大,而且由數(shù)據(jù)庫系統(tǒng)生成,具有唯一性!

        Mysql大小寫講解

        一、1 CREATE TABLE NAME(name VARCHAR(10));

        對這個表,缺省情況下,下面兩個查詢的結(jié)果是一樣的:

        代碼如下:

        SELECT * FROM TABLE NAME WHERE name='clip';

        SELECT * FROM TABLE NAME WHERE name='Clip';

        MySql默認(rèn)查詢是不區(qū)分大小寫的,如果需要區(qū)分他,必須在建表的時候,Binary標(biāo)示敏感的屬性.

        代碼如下:

        CREATE TABLE NAME(

        name VARCHAR(10) BINARY

        );

        2 在SQL語句中實(shí)現(xiàn) SELECT * FROM TABLE NAME WHERE BINARY name='Clip';

        3 設(shè)置字符集:

        utf8_general_ci --不區(qū)分大小寫

        utf8_bin--區(qū)分大小寫

        二、 MySQL在windows下是不區(qū)分大小寫的

        將script文件導(dǎo)入MySQL后表名也會自動轉(zhuǎn)化為小寫,結(jié)果再 想要將數(shù)據(jù)庫導(dǎo)出放到linux服務(wù)器中使用時就出錯了。因?yàn)樵趌inux下表名區(qū)分大小寫而找不到表,查了很多都是說在linux下更改MySQL的設(shè)置使其也不區(qū)分大小寫,但是有沒有辦法反過來讓windows 下大小寫敏感呢。其實(shí)方法是一樣的,相應(yīng)的更改windows中MySQL的設(shè)置就行了。

        具體操作:

        在MySQL的配置文件my.ini中增加一行:

        lower_case_table_names = 0

        其中 0:區(qū)分大小寫,1:不區(qū)分大小寫

        MySQL在Linux下數(shù)據(jù)庫名、表名、列名、別名大小寫規(guī)則是這樣的:

        1、數(shù)據(jù)庫名與表名是嚴(yán)格區(qū)分大小寫的;

        2、表的別名是嚴(yán)格區(qū)分大小寫的;

        3、列名與列的別名在所有的情況下均是忽略大小寫的;

        4、變量名也是嚴(yán)格區(qū)分大小寫的;

        MySQL在Windows下都不區(qū)分大小寫

      MySQL有哪些是重要復(fù)制_MySQL主復(fù)制有哪些

      MySQL的數(shù)據(jù)庫的高可用性的架構(gòu)大概有以下幾種:集群,讀寫分離,主備。而后面兩種都是通過復(fù)制來實(shí)現(xiàn)的。下面由學(xué)習(xí)啦小編為大家整理的,希望大家喜歡! MySQL主復(fù)制 為什么使用主從復(fù)制? 1、主服務(wù)器/從服務(wù)器設(shè)置增加了健壯性。主服務(wù)器出現(xiàn)問題時,你可以
      推薦度:
      點(diǎn)擊下載文檔文檔為doc格式

      精選文章

      • MySQL常用的教程方法_MySQL初級教程有哪些方法
        MySQL常用的教程方法_MySQL初級教程有哪些方法

        MySQL是一個關(guān)系型數(shù)據(jù)庫管理系統(tǒng),MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)之一。下面由學(xué)習(xí)啦小編為大家整理的MySQL初級教程,希望大家喜歡! MySQL初級教

      • 網(wǎng)站服務(wù)器租用價格
        網(wǎng)站服務(wù)器租用價格

        影響網(wǎng)站服務(wù)器租用價格的因素很多,如服務(wù)器線路,服務(wù)器機(jī)房,服務(wù)商的服務(wù)水平等等很多因素。那你知道網(wǎng)站服務(wù)器的租用價格一般是多少嗎?以下

      • 愛情唯美傷感高清圖片有哪些
        愛情唯美傷感高清圖片有哪些

        唯美是人們審美需求的產(chǎn)物,是工筆畫固有的審美特征,隨著社會的發(fā)展和演變而不斷豐富和充實(shí),在審美傳統(tǒng)的延續(xù)和發(fā)展中有著不可替代位置。下面是學(xué)習(xí)

      • 室內(nèi)綠化裝飾設(shè)計(jì)方案圖有哪些
        室內(nèi)綠化裝飾設(shè)計(jì)方案圖有哪些

        綠化設(shè)計(jì)理念是一種維護(hù)生態(tài)文明的設(shè)計(jì)觀,是在室內(nèi)設(shè)計(jì)中重視并貫穿綠色生態(tài)理念,創(chuàng)造一種無污染,有利于人體健康的生態(tài)環(huán)境。下面是學(xué)習(xí)啦小編

      26865