轻松备份mysql 数据库_MySQL

Jun 01, 2016 pm 01:50 PM
データベーステーブル 管理者

bitsCN.com

  在数据库表丢失或损坏的情况下,备份你的数据库是很重要的。如果发生系统崩溃,你肯定想能够将你的表尽可能丢失最少的数据恢复到崩溃发生时的状态。有时,正是MySQL管理员造成破坏。管理员已经知道表已破坏,用诸如vi或Emacs等编辑器试图直接编辑它们,这对表绝对不是件好事!


  备份数据库两个主要方法是用mysqldump程序或直接拷贝数据库文件(如用cp、cpio或tar等)。 每种方法都有其优缺点: mysqldump与MySQL服务器协同操作。直接拷贝方法在服务器外部进行,并且你必须采取措施保证没有客户正在修改你将拷贝的表。如果你想用文件系统备份来备份数据库,也会发生同样的问题:如果数据库表在文件系统备份过程中被修改,进入备份的表文件主语不一致的状态,而对以后的恢复表将失去意义。


  文件系统备份与直接拷贝文件的区别是对后者你完全控制了备份过程,这样你能采取措施确保服务器让表不受干扰。mysqldump比直接拷贝要慢些。 mysqldump生成能够移植到其它机器的文本文件,甚至那些有不同硬件结构的机器上。


  直接拷贝文件不能移植到其它机器上,除非你正在拷贝的表使用MyISAM存储格式。ISAM表只能在相似的硬件结构的机器上拷贝。在MySQL 3.23中引入的MyISAM表存储格式解决了该问题,因为该格式是机器无关的,所以直接拷贝文件可以移植到具有不同硬件结构的机器上。只要满足两个条件:另一台机器必须也运行MySQL 3.23或以后版本,而且文件必须以MyISAM格式表示,而不是ISAM格式。


  不管你使用哪种备份方法,如果你需要恢复数据库,有几个原则应该遵守,以确保最好的结果:

定期实施备份。建立一个计划并严格遵守。


  让服务器执行更新日志。当你在崩溃后需要恢复数据时,更新日志将帮助你。在你用备份文件恢复数据到备份时的状态后,你可以通过运行更新日志中的查询再次运用备份后面的修改,这将数据库中的表恢复到崩溃发生时的状态。以文件系统备份的术语讲,数据库备份文件代表完全倾倒(full dump),而更新日志代表渐进倾倒(incremental dump)。


  使用一种统一的和易理解的备份文件命名机制。

象backup1、buckup2等不是特别有意义。当实施你的恢复时,你将浪费时间找出文件里是什么东西。你可能发觉用数据库名和日期构成备份文件名会很有用。例如:

%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02

%mysqldump menagerie >/usr/archives/mysql/menagerie.1999-10-02

你可能想在生成备份后压缩它们。备份一般都很大!你也需要让你的备份文件有过期期限以避免它们填满你的磁盘,就象你让你的日志文件过期那样。用文件系统备份备份你的备份文件。

如果遇上了一个彻底崩溃,不仅清除了你的数据目录,也清除了包含你的数据库备份的磁盘驱动器,你将真正遇上了麻烦。也要备份你的更新日志。将你的备份文件放在不同于用于你的数据库的文件系统上。这将降低由于生成备份而填满包含数据目录的文件系统的可能性。

用于创建备份的技术同样对拷贝数据库到另一台机器有用。最常见地,一个数据库被转移到了运行在另一台主机上的服务器,但是你也可以将数据转移到同一台主机上的另一个服务器。

1.使用mysqldump备份和拷贝数据库

当你使用mysqldumo程序产生数据库备份文件时,缺省地,文件内容包含创建正在倾倒的表的CREATE语句和包含表中行数据的INSERT语句。换句话说,mysqldump产生的输出可在以后用作mysql的输入来重建数据库。你可以将整个数据库倾倒进一个单独的文本文件中,如下:

%mysqldump samp_db >/usr/archives/mysql/samp_db.1999-10-02

输出文件的开头看起来象这样:

# MySQL Dump 6.0#
# Host: localhost Database: samp_db
#---------------------------------------
# Server version 3.23.2-alpha-log
## Table structure for table 'absence'#
CREATE TABLE absence( student_id int(10)
unsigned DEFAULT '0' NOT NULL, date date DEFAULT '0000-00-00' NOT NULL, PRIMARY KEY (student_id,date));
## Dumping data for table 'absence'#
INSERT INTO absence VALUES (3,'1999-09-03');
INSERT INTO absence VALUES (5,'1999-09-03');
INSERT INTO absence VALUES (10,'1999-09-08');
......

文件剩下的部分有更多的INSERT和CREATE TABLE语句组成。 如果你想压缩备份,使用类似如下的命令:

%mysqldump samp_db │ gzip >/usr/archives/mysql/samp_db.1999-10-02.gz

如果你要一个庞大的数据库,输出文件也将很庞大,可能难于管理。如果你愿意,你可以在mysqldump命令行的数据库名后列出单独的表名来倾到它们的内容,这将倾倒文件分成较小、更易于管理的文件。下例显示如何将samp_db数据库的一些表倾到进分开的文件中:

%mysqldump samp_db student score event absence >grapbook.sql
%mysqldump samp_db member president >hist-league.sql

如果你生成准备用于定期刷新另一个数据库内容的备份文件,你可能想用--add-drop-table选项。这告诉服务器将DROP TABLE IF EXISTS语句写入备份文件,然后,当你取出备份文件并把它装载进第二个数据库时,如果表已经存在,你不会得到一个错误。如果你倒出一个数据库以便能把数据库转移到另一个服务器,你甚至不必创建备份文件。要保证数据库存在于另一台主机,然后用管道倾倒数据库,这样mysql能直接读取mysqldump的输出。例如:你想从主机pit-viper.snake.net拷贝数据库samp_db到boa.snake.net,可以这样很容易做到:

%mysqladmin -h boa.snake.net create samp_db
%mysqldump samp_db │ mysql -h boa.snake.net samp_db

以后,如果你想再次刷新boa.snake.net上的数据库,跳过mysqladmin命令,但要对mysqldump加上--add-drop-table以避免的得到表已存在的错误:

%mysqldump --add-drop-table samp_db │ mysql -h boa.snake.net samp_db

mysqldump其它有用的选项包括:

--flush-logs 和 --lock-tables 组合将对你的数据库检查点有帮助。

bitsCN.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Windows 11 で続行するために管理者のユーザー名とパスワードの入力を求められる問題を解決するにはどうすればよいですか? Windows 11 で続行するために管理者のユーザー名とパスワードの入力を求められる問題を解決するにはどうすればよいですか? Apr 11, 2024 am 09:10 AM

Win11 を使用している場合、管理者のユーザー名とパスワードの入力を要求される場合があるため、この記事ではその対処方法について説明します。方法 1: 1. [Windows ロゴ] をクリックし、[Shift+Restart] を押してセーフ モードに入るか、[スタート] メニューをクリックして [設定] を選択するという方法でセーフ モードに入ります。 「更新とセキュリティ」を選択し、「回復」で「今すぐ再起動する」を選択し、再起動してオプションを入力した後、 - トラブルシューティング - 詳細オプション - 起動設定 -&mdash を選択します。

Win11 管理者により、このアプリケーションの実行がブロックされています Win11 管理者により、このアプリケーションの実行がブロックされています Jan 30, 2024 pm 05:18 PM

Win11 システム管理者により、このアプリケーションの実行がブロックされています。Windows 11 オペレーティング システムを使用している場合、システム管理者によりアプリケーションの実行がブロックされているという一般的な問題が発生することがあります。仕事をしたり、エンターテイメントを楽しんだりするためにこのアプリケーションを実行する必要がある場合があるため、これは混乱しイライラする可能性があります。ただし、心配しないでください。この問題には通常、解決策があります。まず、この問題がなぜ発生するのかを理解する必要があります。 Windows 11 オペレーティング システムでは、より高度なセキュリティとプライバシー保護対策が施されており、マルウェアやウイルスの実行を防ぐために、システム管理者は特定のアプリケーションの実行権限を制限する場合があります。これは、コンピュータと個人情報のセキュリティを保護するためです。ただし、システム管理者は、

Win11で管理者権限を取得する方法まとめ Win11で管理者権限を取得する方法まとめ Mar 09, 2024 am 08:45 AM

Win11 管理者権限の取得方法のまとめ. Windows 11 オペレーティング システムでは、管理者権限は、ユーザーがシステム上でさまざまな操作を実行できるようにする非常に重要な権限の 1 つです。ソフトウェアのインストールやシステム設定の変更など、一部の操作を完了するために管理者権限の取得が必要になる場合があります。以下にWin11の管理者権限を取得する方法をまとめましたので、お役に立てれば幸いです。 1. ショートカット キーを使用する Windows 11 システムでは、ショートカット キーを使用してコマンド プロンプトをすばやく開くことができます。

Win10 で管理者として PowerShell を実行する方法。 Win10 で管理者として PowerShell を実行する方法。 Jul 18, 2023 pm 02:05 PM

WindowsPowerShell は、システム管理者向けに設計された Windows コマンド ライン シェルです。 Windows PowerShell には、個別にまたは組み合わせて使用​​できる対話型プロンプトとスクリプト環境が含まれています。ただし、多くの PowerShell コマンドには昇格された権限または管理者権限が必要であり、それらを実行するには PowerShell プロンプトを起動する必要があります。 Win10 で管理者として PowerShell を実行する方法。方法 1: Windows 10 の [スタート] メニューのコンテキスト メニューを使用します。 Windows 10 の [スタート] メニューを右クリックすると、コンテキスト メニューが表示され、一般的に使用される管理プログラムをすばやく起動できます。コンテキスト メニューには Windo というウィンドウが含まれています

管理者としてソフトウェアを開くにはどうすればよいですか? Win10 で管理者としてプログラムを実行する複数の方法 管理者としてソフトウェアを開くにはどうすればよいですか? Win10 で管理者としてプログラムを実行する複数の方法 Feb 29, 2024 am 11:00 AM

Win10 はどこで管理者として実行されますか? Win10 では、一部のプログラムを管理者として実行する必要がありますが、管理者としてプログラムを実行する方法がわからないユーザーもいます。この記事は、Win10 で管理者としてプログラムを実行する方法に関するチュートリアルです。 Win10では、デフォルトのアカウントは通常の管理者権限を持つアカウントとなっており、一部のソフトウェアを実行する場合、右クリックメニューから「管理者として実行」を選択することで正常に実行できますが、以下の操作はアカウントを変更せずに実行できます。デフォルトでは管理者アカウントを使用してソフトウェアを実行し、ダブルクリックするだけで実行できます。管理者として実行する必要があるプログラムを右クリックし、表示されるメニュー項目で「管理者として実行」を選択します。

管理者として cmd を実行する方法 管理者として cmd を実行する方法 Aug 28, 2023 pm 12:00 PM

cmd は、ショートカット キー、検索機能、実行ダイアログ ボックス、タスク マネージャー、およびシステム メニューを使用して、管理者として実行されます。詳細な紹介: 1. ショートカット キーを使用してスタート メニューを開き、cmd またはコマンド プロンプトを見つけ、cmd を右クリックし、[管理者として実行] を選択します; 2. 検索機能を使用してスタート メニューを開き、検索に cmd と入力します。検索結果で cmd を見つけて右クリックし、[管理者として実行] を選択します。 3. [ファイル名を指定して実行] ダイアログ ボックスなどを使用します。

Win10 Home Edition の標準ユーザーを管理者権限に変更できない Win10 Home Edition の標準ユーザーを管理者権限に変更できない Jan 16, 2024 pm 06:33 PM

多くの友人は、家庭版を使用している場合は管理者を変更できないことに気づき、非常に消極的に使用していますが、解決策も非常に簡単です。 Win10 Home Edition の標準ユーザーは管理者を変更できません。 1. まずコンピュータの電源を入れてデスクトップに入り、次に左下隅の検索バーをクリックし、検索バーに「 」と入力してプログラムを開きます。 2. メイン ウィンドウで、[ユーザー アカウント] セクションに移動し、[オプション] をクリックします。 3. 新しいウィンドウが表示されるので、ここで管理者に移行する標準ユーザーを選択してください。 4. 次に、左側のメニューのオプションをクリックしてください。 5. 新しく展開されたページでオプションをチェックし、最後に右下のボタンをクリックして操作を完了します。 6. この時点では、選択したばかりです

PHP を使用してデータベーステーブルを作成および管理する方法 PHP を使用してデータベーステーブルを作成および管理する方法 Sep 09, 2023 pm 04:48 PM

PHP を使用してデータベース テーブルを作成および管理する方法 インターネットの急速な発展に伴い、データベースはさまざまな Web サイトやアプリケーションに不可欠な部分になりました。 PHP では、MySQL などのデータベース管理システム (DBMS) を使用してデータベース テーブルを作成および管理できます。この記事では、PHP を使用してこの関数を実装する方法と、対応するコード例を説明します。データベースに接続する まず、PHP でデータベースに接続する必要があります。この機能を実現するには、mysqli 拡張機能または PHP によって提供される PDO を使用できます。

See all articles