Mysql备份_MySQL
1.冷备
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外位置的一种说法。对于备份数据库信息而言,冷备份是最快和最安全的方法。
只能提供到“某个时间点”的恢复;不能按表和用户恢复;工作是需要关闭数据库;恢复对版本有很高要求
备份速度取决于存储引擎类型
cp
1.找到数据目录存放位置
#mysql -uroot -pmypasswd
mysql> show variables like ‘%datadir%’;
2.把内存中的数据都刷新到磁盘中,同时锁定数据表,以保证拷贝过程中不会有新的数据写入
#mysql -uroot -pmypasswd
mysql> FLUSH TABLES WITH READ LOCK;
mysql> FLUSH LOGS;
3.关闭mysql服务器
#service mysqld stop
4.备份
#tar -zcvf mysql.tar.gz /var/lib/mysql
#cp mysql.tar.gz mysql_bck
注意,对于 Innodb 类型表来说,还需要备份其日志文件,即 ib_logfile* 文件。因为当 Innodb 表损坏时,就可以依靠这些日志文件来恢复。
2.热备
热备份是在数据库运行的情况下,备份数据库操作的sql语句。
mysqldump
mysqldump 是采用SQL级别的备份机制(逻辑备份),它将数据表导成 SQL 脚本文件,在不同的 MySQL 版本之间升级时相对比较合适,这也是最常用的备份方法
Mysqldump命令的工作原理很简单,它先查出需要备份的表的结构,再在文本文件中生成一个CREATE语句。然后,将表中的所有记录转换为一条INSTERT语句。这些CREATE语句和INSTERT语句都是还原时使用的。还原数据时就可以使用其中的CREATE语句来创建表。使用其中的INSERT语句来还原数据。它可以实现整个服务器备份,也可以实现单个或部分数据库、单个或部分表、表中的某些行、存储过程、存储函数、触发器的备份;并且能自动记录备份时刻的二进制日志文件及相应的位置。对于InnoDB存储引擎来讲支持基于单事务模式实现热备,对于MyISAM则最多支持温备。
MySQL数据库压缩备份
#mysqldump -hhostname -uusername -pmypasswd db_name | gzip > backupfile.sql.gz
仅备份数据库结构
#mysqldump –no-data –databases db_name1 db_name2 > backupfile.sql
备份服务器上所有数据库
#mysqldump –all-databases > allbackupfile.sql
还原需要先手动创建一个数据库 db_name
还原MySQL数据库的命令
#mysql -hhostname -uusername -pmypasswd db_name
还原压缩的MySQL数据库
#gunzip
二进制(binlog)
二进制日志包含了所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句。
启用binlog。
#vim /etc/my.cnf
1 2 3 |
|
#service mysqld restart
1.滚动日志复制文件<br>
终止对当前 binlog 的写入
#mysql -uroot -pmypasswd<br> mysql> FLUSH LOGS;
复制导出二进制文件
cp mysql-bin.000001 /mysql_bck/mysql-bin.000001
2.mysqlbinlog导出二进制日志文件内容
# mysqlbinlog mysql-bin.000001 > binlog_date +%F.sql
3.恢复
#mysqlbinlog /mysql_bck/binlog.000001 | mysql -uroot -pmypasswd db_name
ps:如果是备份复制系统中的从服务器,还应该备份 master.info 和 relay-log.info 文件。
mysqldump全备 + binlog增备
#mysqldump -uroot -pmypasswd –lock-all-tables –master-data=2 –events<br> –routines–all-databases > /mysql_bck/database_date +%F.sql<br> tips:–lock-all-tables表示为所有表施加读锁;–master-data=2表示在备份文件中记录当前二进制日志的位置;–events表示备份数据的同时备份时间调度器代码;–routines表示备份数据的同时备份存储过程和存储函数;–all-databases表示备份所有库。<br> # mysqlbinlog –start-position= –stop-position= mysql-bin.000001 > /mysql_bck/binlog_date +%F_%H.sql
http://www.bitsCN.com/article/74613.htm<br>
http://www.bitsCN.com/article/22727.htm
mysqlhotcopy
mysqlhotcopy 是一个 PERL 程序,最初由Tim Bunce编写。它使用 LOCK TABLES、FLUSH TABLES 和 cp 或 scp 来快速备份数据库。它是备份数据库或单个表的最快的途径,但它只能运行在数据库文件(包括数据表定义文件、数据文件、索引文件)所在的机器上。mysqlhotcopy 只能用于备份 MyISAM,并且只能运行在 类Unix 和 NetWare 系统上。
安装
#yum -y install perl perl-DBI<br> #wget http://file.111cn.net/upload/2013/12/DBD-mysql-3.0002.tar.gz<br> #tar zxvf DBD-mysql-3.0002.tar.gz<br> #cd DBD-mysql-3.0002<br> #perl Makefile.PL –mysql_config=/usr/local/mysql/bin/mysql_config<br> #make<br> #make install
备份
#mysqlhotcopy -uroot -pmypasswd db_name /mysql_bck

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
