mysql備份兩個實例,資料庫實例備份

本文目錄一覽:

mysql 數據備份

使用直接拷貝的方法備份時,尤其要注意表沒有被使用,應該對錶進行讀鎖定或停止MySQL服務。備份一個表,需要三個文件:

對於MyISAM表:

tbl_name.frm 表的描述文件

tbl_name.MYD 表的數據文件

tbl_name.MYI 表的索引文件

對於ISAM表:

tbl_name.frm 表的描述文件

tbl_name.ISD 表的數據文件

tbl_name.ISM 表的索引文件

對於MyISAM表,你可以從運行在不同硬體系統的伺服器之間複製文件,例如,SUN伺服器和INTEL PC機之間。

當 然,這只是備份一個數據表,在很多情況下我們需要備份完整的資料庫,這個時候同樣可以直接複製資料庫文件夾即可完成備份;若想再省點兒事,把整個資料庫目 錄「data」複製也可以,但是在還原數據時要注意,只能一個一個地還原資料庫,因為該目錄下有mysql運行時的配置文件,若正在運行的mysql配置 信息遭到還原破壞,整個mysql服務就會無法啟動。

SELECT INTO OUTFILE和MYSQLDUMP備份數據:

MySQLdump工具可以把整個資料庫裝載到一個單獨的文本文件中。這個文件包含所有重建資料庫和表的SQL命令。這個命令取得所有的模式 (Schema)並且將其轉換成DDL語法(CREATE語句,即資料庫定義語句),還取得所有的數據,並且為這些數據創建INSERT語句。所有的東西 都被包含到了一個文本文件中。這個文本文件可以用一個簡單的批處理和一個合適SQL語句導回到MySQL中。這個工具令人難以置信地簡單而快速。

有3種方式來調用mysqldump

選擇一個資料庫或一個數據表備份到一個文件:

/bin mysqldump [options] db_name [tables] filename.txt

選擇多個資料庫備份到一個文件:

/bin mysqldump [options] –database DB1 [DB2 DB3…] filename.txt

所有資料庫備份到一個文件:

/bin mysqldump [options] –all–database filename.txt

Option選擇:

–help,-?

顯示幫助消息並退出。

–add-drop-table

這個選項將會在每一個表的前面加上DROP TABLE IF EXISTS語句,這樣可以保證導回MySQL資料庫的時候不會出錯,因為每次導回的時候,都會首先檢查表是否存在,存在就刪除

–add-locks

這個選項會在INSERT語句中捆上一個LOCK TABLE和UNLOCK TABLE語句。這就防止在這些記錄被再次導入資料庫時其他用戶對錶進行的操作

-c or –complete_insert

這個選項使得MySQLdump命令給每一個產生INSERT語句加上列(field)的名字。當把數據導出導另外一個資料庫時這個選項很有用。

–delayed-insert 在INSERT命令中加入DELAY選項

-F or –flush-logs 使用這個選項,在執行導出之前將會刷新MySQL伺服器的log.

-f or –force 使用這個選項,即使有錯誤發生,仍然繼續導出

–full 這個選項把附加信息也加到CREATE TABLE的語句中

-l or –lock-tables 使用這個選項,導出表的時候伺服器將會給表加鎖。

-t or –no-create- info

這個選項使的MySQLdump命令不創建CREATE TABLE語句,這個選項在您只需要數據而不需要DDL(資料庫定義語句)時很方便。

-d or –no-data 這個選項使的MySQLdump命令不創建INSERT語句。

在您只需要DDL語句時,可以使用這個選項。

–opt 此選項將打開所有會提高文件導出速度和創造一個可以更快導入的文件的選項。

-q or –quick 這個選項使得MySQL不會把整個導出的內容讀入內存再執行導出,而是在讀到的時候就寫入導文件中。

-T path or –tab = path

這 個選項將會將資料庫中每一個表創建兩個文件,一個文件包含DDL語句或者表創建語句,另一個文件包含數據。DDL文件被命名為 table_name.sql,數據文件被命名為table_name.txt。該參數的path為存放目錄,而且該目錄必須已經存在。 如:/binmysqldump –uroot –p –tab=d:\\ mydata

-w “WHERE Clause” or –where = “Where clause ” 篩選將要放到導出文件的數據。

下面來看幾組mysqldump命令案例:

將資料庫mydata的內容備份到mydata.txt文件中:

/binMySQLdump –uroot -p mydata d:\\mydata.txt

將mydata資料庫中的users表的內容備份到d:\\users.txt:

/binMySQLdump –uroot -p mydata users d:\\users.txt

將mydata資料庫中的users表username值為「feihu」的數據備份到d:\\users.txt:

/binMySQLdump –uroot -p –where=」username=』feihu』」 mydata users d:\\users.txt;

將mydata資料庫以及內部表的創建結構(DDL)備份到d:\\users.txt:

/binMySQLdump –uroot –p -d mydata d:\\mydata.txt

將mydata和mydata2資料庫同時備份到d:\\users.txt:

/bin MySQLdump –uroot –p -d mydata mydata2 d:\\mydata.txt

將所有數據備份到一個資料庫,命令怎麼寫呢???

schema: 模式The set of statements, expressed in data definition language, that completely describe the structure of a data base.(一組以數據定義語言來表達的語句集,該語句集完整地描述了資料庫的結構。)

當需要將還原備份數據時,使用如下語句:

/binmysql –uroot –p mydata d:\\mydata.txt;

注意使用「」符號,導入數據。還可以使用source命令執行文件中的腳本來還原數據,如:

Mysqlsource d:\mydata.txt;

LOAD DATA INFILE和MYSQLIMPORT恢複數據

關於load data infile語句的使用已經在別一節講述過了,詳細請參考「使用LOAD DATA和INSERT語句導入Mysql數據」。如果你僅僅恢複數據, mysqlimport完全是與LOAD DATA 語句對應的,讀者可以任意選擇一個去實現。

MySQLimport位於MySQL/bin目錄中,是MySQL的一個載入(或者說導入)數據的一個非常有效的工具。這是一個命令行工具。有兩個參數 以及大量的選項可供選擇。這個工具把一個文本文件(textfile)導入到你指定的資料庫和表中。比方說我們要從文件users.txt中把數據導入到 資料庫mydata中的表users中:

/binmysqlimport –uroot –p mydata d:\users.txt

注意:這裡users.txt是我們要導入數據的文本文件,而mydata是我們要操作的資料庫,資料庫中的表名是users,這裡文本文件的數據格式必須與users表中的記錄格式一致,否則MySQLimport命令將會出錯。

其中表的名字是導入文件的第一個句號(.)前面文件字元串,另外一個例子:MySQLimport mydata users.2009.10.txt;那麼我們將把文件中的內容導入到資料庫mydata 中的users表中。

上面的例子中,都只用到兩個參數,並沒有用到更多的選項,下面介紹MySQLimport的選項

-d or –delete 新數據導入數據表中之前刪除數據數據表中的所有信息

-f or –force 不管是否遇到錯誤,MySQLimport將強制繼續插入數據

-i or –ignore MySQLimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略。

-l or -lock-tables 數據被插入之前鎖住表,這樣就防止了,你在更新資料庫時,用戶的查詢和更新受到影響。

-r or -replace 這個選項與-i選項的作用相反;此選項將替代表中有相同唯一關鍵字的記錄。

–fields-enclosed-by= char 指定文本文件中數據的記錄時以什麼括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字元括起的。

–fields-terminated-by=char 指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符(Tab)

–lines-terminated-by=str 此選項指定文本文件中行與行之間數據的分隔字元串或者字元。 默認的情況下MySQLimport以newline為行分隔符。您可以選擇用一個字元串來替代一個單個的字元:一個新行或者一個回車。

MySQLimport命令常用的選項還有-v 顯示版本(version),-p 提示輸入密碼(password)等。

如果,我們要導入一個文件(Orders.txt)中行的記錄格式是這樣的:

“1”, “ORD89876”, “1 Dozen Roses”, “19991226”

我們的任務是要把這個文件裡面的數據導入到資料庫mydata中的表格Orders中,我們使用這個命令:

/BinMySQLimport -uroot–prl –fields-enclosed-by=” –fields-terminated-by=, mydata Orders.txt

比如我們要插入一些數據,使用包含下面文本的文件(文件名為New_Data.sql,當然我們也可以取名為New_Data.txt及任何其他的合法名字,並不一定要以後綴sql結尾):

USE mydata; INSERT INTO Orders (Orders_ID, username) VALUES(1, “Block”); INSERT INTO Orders (Orders_ID, username) VALUES(2, “Newton”); INSERT INTO Orders (Orders_ID, username) VALUES(3, “Simmons”);

注意上面的這些句子的語法都必須是正確的,並且每個句子以分號結束。上面的USE命令選擇資料庫,INSERT命令插入數據。

然後運行下面的命令:

/binmysql –uroot –p mydata d:\New_Data.txt;

接著按提示輸入密碼,如果上面的文件中的語句沒有錯誤,那麼這些數據就被導入到了資料庫中。

mysql備份方式有哪些

資料庫最直接的備份方法就是使用自帶的mysqldump命令進行備份。

1、 mysqldump命令備份數據

在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:

#MySQLdump常用

mysqldump -u root -p –databases 資料庫1 資料庫2 xxx.sql

2、 mysqldump常用操作實例

2.1備份全部資料庫的數據和結構

mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql

2.2備份全部資料庫的結構(加 -d 參數)

mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql

2.3 備份全部資料庫的數據(加 -t 參數)

mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql

2.4 備份單個資料庫的數據和結構(,資料庫名mydb)

mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql

2.5 備份單個資料庫的結構

mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql

2.6 備份單個資料庫的數據

mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql2

2.7 備份多個表的數據和結構(數據,結構的單獨備份方法與上同)

mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql

2.8 一次備份多個資料庫

mysqldump -uroot -p123456 –databases db1 db2 /data/mysqlDump/mydb.sql

mysql備份問題,mysql版本5.7.2

1. mysqldump: 最早,也是最成熟的邏輯備份工具,是 MySQL 原生的用來備份整個資料庫實例、單個資料庫、單張表的邏輯備份工具, 上手簡單,學習成本幾乎為 0。備份簡單,恢復也簡單。

比如導出單個資料庫 ytt: mysqldump ytt /tmp/ytt.sql;

恢復也非常簡單:mysql /tmp/ytt.sql

缺點是備份速度慢。在整個備份過程中,是單線程運行;備份出來的數據集要恢復的話同樣也是單線程運行,恢復速度也慢。除非對同一時刻的所有表單獨備份出來,自己寫額外腳本進行多線程恢復。

2. mysqlpump:MySQL 5.7 GA 後推出的 mysqldump工具的增強版。可以對同一個數據集多個線程並發備份,備份速度很快。

其他缺點和 mysqldump 一樣。

3. MySQL Shell UTIL 對象附帶的備份工具:隨 MySQL 8.0.21 最新版本捆綁發布,自帶多線程備份以及多線程恢復功能, 可以直接替代 mysqldump/mysqlpump。

dump_instance/dumpInstance 用來多線程備份 MySQL 整個單機實例

dump_schemas/dumpSchemas 用來多線程備份 MySQL 單個資料庫

load_dump/loadDump 用來多線程恢復之前兩個工具導出的數據集文件

詳解Mysql自動備份與恢復的幾種方法(圖文教

備份方案一: 通過 mysqldump命令,直接生成一個完整的 .sql 文件

Step 1: 創建一個批處理

(說明:root 是mysql默認用戶名, aaaaaa 是mysql密碼, bugtracker 是資料庫名)

————mySql_backup.bat————————————————————————————–

d:

cd D:/AppServ/MySQL/bin

mysqldump -uroot -paaaaaa bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sql

exit

Step 2: 創建一個計劃任務

“Start” — “Control Panel” — “Administrative Tools” — “Task Scheduler”

“Create A Basic Task” — — “Daily” (注意設置後面的 時 分 秒) — —- “Start a Program” — “Browser” (定位選擇到你剛才創建的批處理mySql_backup.bat) — — “Finish”

對應的還原方法

創建一個處理:

———-mySql_restore.bat——-

d:

cd D:/AppServ/MySQL/bin

mysql -uroot -paaaaaa bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker_back.sql

exit

雙擊它即可自動執行還原

備份方案二: 通過 xcopy 命令,直接把Mysql 的 data 目錄下的對應的資料庫全部的文件全部 copy 出來

創建批處理:

xcopy D:/AppServ/MySQL/data/bugtracker E:/DataBase/Mysql_bugtracker_backup/bugtracker/ /e /h /d /y /r /v /f /k

exit

對應的還原方法

把 E:/DataBase/Mysql_bugtracker_backup 目錄下的 bugtracker文件夾 直接 copy 到 D:/AppServ/MySQL/data 目錄下,把這個目錄的bugtracker文件夾 全部履蓋掉

備份方案三:安裝Navicat For MySql 工具,通過它的 Schedule 功能設置自動備份

Schedule — New Batch Job

在新彈出的頁面中 選擇你的 DB (eg: bugtracker ),然後在右邊面板(Available Jobs)中你會看到「Backup bugtracker」,雙擊它,它會出現在下邊面板—

對應的還原方法:

找到上述目錄下對應的最新的 .psc 文件,然後通過Navicat For Mysql 工具還原

mysql如何備份數據

1.1、 mysqldump命令備份數據

在MySQL中提供了命令行導出資料庫數據以及文件的一種方便的工具mysqldump,我們可以通過命令行直接實現資料庫內容的導出dump,首先我們簡單了解一下mysqldump命令用法:

#MySQLdump常用

mysqldump -u root -p –databases 資料庫1 資料庫2 xxx.sql

1.2、 mysqldump常用操作實例

1.備份全部資料庫的數據和結構

mysqldump -uroot -p123456 -A /data/mysqlDump/mydb.sql

2.備份全部資料庫的結構(加 -d 參數)

mysqldump -uroot -p123456 -A -d /data/mysqlDump/mydb.sql

3.備份全部資料庫的數據(加 -t 參數)

mysqldump -uroot -p123456 -A -t /data/mysqlDump/mydb.sql

4.備份單個資料庫的數據和結構(,資料庫名mydb)

mysqldump -uroot-p123456 mydb /data/mysqlDump/mydb.sql

5.備份單個資料庫的結構

mysqldump -uroot -p123456 mydb -d /data/mysqlDump/mydb.sql

6.備份單個資料庫的數據

mysqldump -uroot -p123456 mydb -t /data/mysqlDump/mydb.sql

7.備份多個表的數據和結構(數據,結構的單獨備份方法與上同)

mysqldump -uroot -p123456 mydb t1 t2 /data/mysqlDump/mydb.sql

8.一次備份多個資料庫

mysqldump -uroot -p123456 –databases db1 db2 /data/mysqlDump/mydb.sql

Linux下安裝Mysql多實例作為數據備份伺服器實現多主到一從多實例的備份

1、從MYSQL官方下載MYSQL的源碼版本【一定要是源碼版本】

2、按以下代碼鍵入LINUX命令行

複製代碼

代碼如下:

[注]

添加mysql組和用戶

#groupadd

mysql

#useradd

-g

mysql

mysql

[注]

解包到/usr/local

#

tar

-xzf

mysql-standard-4.1.9-pc-linux-gnu-i686.tar.gz

-C

/usr/local

[注]

建立軟鏈接,方便操作(此處給此連接命名為mysql001,也可為其它的名字)

#cd

/usr/local

#ln

-s

mysql-standard-5.0.15-linux-i686-glibc23

mysql001

#cd

mysql001

#scripts/mysql_install_db

#chown

-R

root

.

#chown

-R

mysql

data

#chgrp

-R

mysql

.

[注]

複製data,以供單版本多實例分配

#cp

-a

data

data_1

#cp

-a

data

data_2

[注]

添加多實例配置文件

#cd

/usr/local/mysql001/bin

#cat

my_multi.cnf

[注]

以下是my_multi.cnf的配置信息,可依此複製

[mysqld_multi]

mysqld

=

/usr/local/mysql001/bin/mysqld_safe

mysqladmin

=

/usr/local/mysql001/bin/mysqladmin

user

=

root

password

=

root

[mysqld1]

socket

=

/tmp/mysql_001.sock

port

=

3301

pid-file

=

/usr/local/mysql001/data_1/hostname.pid

datadir

=

/usr/local/mysql001/data_1

log

=

/usr/local/mysql001/data_1/hostname.log

user

=

mysql

#

slave

setting

server-id

=

2

master-host

=

192.168.1.85

master-port

=

3306

master-user

=

backup

master-password

=

123456

replicate-do-db

=

gs_database

replicate-do-db

=

gs_log

master-connect-retry=30

[mysqld2]

socket

=

/tmp/mysql_5_2.sock

port

=

3302

pid-file

=

/usr/local/mysql001/data_2/hostname.pid

datadir

=

/usr/local/mysql001/data_2

log

=

/usr/local/mysql001/data_2/hostname.log

user

=

mysql

#

slave

setting

server-id

=

3

master-host

=

192.168.1.69

master-port

=

3306

master-user

=

backup

master-password

=

123

replicate-do-db

=

gs_databaes

replicate-do-db

=

gs_log

master-connect-retry=30

CTRL+D退出。

複製代碼

代碼如下:

#vi

/etc/profile

#

添加系統環境變數。

export

MYSQL_HOME=/usr/local/mysql001/bin

export

PATH=$PATH:$MYSQL_HOME

重啟系統讓環境變數生效。

添加至開機自動啟動【此處可不添加,依個人情況決定是否需要設置開機自動啟動】

複製代碼

代碼如下:

vi

/etc/rc.local

#

添加

mysqld_multi

–defaults-extra-file=/usr/local/src/mysql_dir/bin/my_multi.cnf

start

1,2

3、其它一些技巧

#

訪問某個實例:

mysql

-u

root

-S

/tmp/mysql_5_1.sock

-p

#

設置各個實例密碼:

mysqladmin

-u

root

password

‘root’

-S

/tmp/mysql_5_1.sock

#

手動啟動各個實例:

mysqld_multi

–defaults-extra-file=/usr/local/src/mysql_dir/bin/my_multi.cnf

start

1,2

#

停止各個實例:

mysqld_multi

–defaults-extra-file=/usr/local/src/mysql_dir/bin/my_multi.cnf

stop

1,2

#

參考文章

由於第一次接觸LINUX,花了三天時間才算有所成就,發出來希望可以給大夥帶來方便

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/229200.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-10 12:08
下一篇 2024-12-10 12:08

相關推薦

  • 利用Python實現兩個鏈表合併為一個有序鏈表

    對於開發工程師來說,實現兩個鏈表合併為一個有序鏈表是必須掌握的技能之一。Python語言在鏈表處理上非常便利,本文將從多個方面詳細闡述如何利用Python實現兩個鏈表合併為一個有序…

    編程 2025-04-29
  • Python 常用資料庫有哪些?

    在Python編程中,資料庫是不可或缺的一部分。隨著互聯網應用的不斷擴大,處理海量數據已成為一種趨勢。Python有許多成熟的資料庫管理系統,接下來我們將從多個方面介紹Python…

    編程 2025-04-29
  • Python生成隨機數的應用和實例

    本文將向您介紹如何使用Python生成50個60到100之間的隨機數,並將列舉使用隨機數的幾個實際應用場景。 一、生成隨機數的代碼示例 import random # 生成50個6…

    編程 2025-04-29
  • openeuler安裝資料庫方案

    本文將介紹在openeuler操作系統中安裝資料庫的方案,並提供代碼示例。 一、安裝MariaDB 下面介紹如何在openeuler中安裝MariaDB。 1、更新軟體源 sudo…

    編程 2025-04-29
  • 資料庫第三範式會有刪除插入異常

    如果沒有正確設計資料庫,第三範式可能導致刪除和插入異常。以下是詳細解釋: 一、什麼是第三範式和範式理論? 範式理論是關係資料庫中的一個規範化過程。第三範式是範式理論中的一種常見形式…

    編程 2025-04-29
  • Python定義兩個列表的多面探索

    Python是一種強大的編程語言,開放源代碼,易於學習和使用。通過Python語言,我們可以定義各種數據類型,如列表(list)。在Python中,列表(list)在處理數據方面起…

    編程 2025-04-29
  • Python兩個線程交替列印1到100

    這篇文章的主題是關於Python多線程的應用。我們將會通過實際的代碼,學習如何使用Python兩個線程交替列印1到100。 一、創建線程 在Python中,我們可以使用Thread…

    編程 2025-04-28
  • Python中兩個冒號連用

    Python中的「兩個冒號」是指「::」,它在Python中有著很多用途,包括循環語句、切片、函數註解等。下面我們從多個方面來詳細闡述Python中兩個冒號的用法。 一、循環語句f…

    編程 2025-04-28
  • leveldb和unqlite:兩個高性能的資料庫存儲引擎

    本文將介紹兩款高性能的資料庫存儲引擎:leveldb和unqlite,並從多個方面對它們進行詳細的闡述。 一、leveldb:輕量級的鍵值存儲引擎 1、leveldb概述: lev…

    編程 2025-04-28
  • Python怎麼導入資料庫

    Python是一種高級編程語言。它具有簡單、易讀的語法和廣泛的庫,讓它成為一個靈活和強大的工具。Python的資料庫連接類型可以多種多樣,其中包括MySQL、Oracle、Post…

    編程 2025-04-28

發表回復

登錄後才能評論