序文
仕事でデータベースの移行作業に遭遇しましたが、従来のナビゲート データ接続ツールを使用するとデータ損失などの一連の問題が発生する可能性があるため、個人的な状況に合わせて mysql および pgsql コマンドを使用して移行を実行しています。使用前に調整してください。
1. mysql はどのようにバックアップを行うのですか?
1.1、データベースをバックアップする
mysqldump -u用户名 -p密码 数据库名 > 导出的文件名
例如:
mysqldump -hhostname -uroot -ppwd dataname >dataname.sql
1.2、すべてのデータベースをバックアップする
mysqldump -h *.*.*.* -p -u username -p password --all-databases > /data/backup/mysql_db.sql
1.3、テーブルをバックアップする
例えば:
mysqldump -hhostname -uroot -ppwd dataname specific_tabname1 specific_tabname2> dataname_specific_tabname.sql
1.4、複数のデータベースをバックアップする
mysqldump -hhostname -uusername -ppwd --databases dbname1 dbname2 dbname3 > multibackupfile.sql
1.5. データベース構造のエクスポート
mysqldump -hhostname -uroot -ppwd -–add-drop-table --no-data dataname > dataname_nodata.sql
--no-data: データなし
--add-drop-table 各 create ステートメントの前に、drop table コマンドを追加します。
1.6. バックアップの圧縮
2. バックアップの圧縮
形式: mysqldump -h ホスト IP -P ポート -u ユーザー名 -p パスワード --database データベース名 | gzip > ファイル名
. 圧縮
mysqldump -h *.*.*.* -p -u username -p password --database mysql | gzip > /data/backup/mysql.sql.gz
2、mysql バックアップの復元
2.1. MySQL データベースを復元するコマンド
#database はデータベース名です
mysql -h 。。。-u ユーザー名 -p パスワード データベース < バックアップファイル.sql
2.2. 圧縮された MySQL データベースを復元する
データベースはデータベース名です
gunzip < backupfile.sql.gz | mysql -u username -p password database
2.3. データベースを新しいサーバーに転送する
データベースはデータベース名です
mysqldump -u username -p password database | mysql –host=*.*.*.* -C database
2.4. データベースのインポート
source コマンドは一般的に使用されます。特定のデータベースに入るには use を使用します。mysql>source d:\test.sql です。次のパラメータはスクリプト ファイルです。
3. pgsqlのバックアップ方法
Linuxシステムでのバックアップ(ここでは単一のデータベースを別のサーバーに移行する作業を紹介します)
-h データベースの IP アドレスに接続します
-p データベース ポート
-U データベース ユーザー
-c 再作成する前にデータベース オブジェクトをクリアします
-d データベースを指定します
-f ローカル ファイル パスへのバックアップを指定します
pg_dump -h 120.55.163.126 -p 5432 -U postgres -c -d homestead_pengze_prod -f
/ws/db-bak/homestead_pengze_prod.bak
提示:window安装的话进入pgsql的bin目录使用cmd目录执行命令
移行:
バックアップ ファイルを宛先サーバー ディレクトリ (/ws など) にコピーし、別のサーバーに同じ名前のデータベースを作成し、docker を使用して宛先サーバーに pgsql をインストールし、最初にバックアップ スクリプトをコンテナーにコピーします
。
docker cp homestead_pengze_prod.bak postgresql:/
コンテナに入り、次のバックアップ復元スクリプトを実行します。
docker exec -it postgresql /bin/sh
4、pgsql復元バックアップ
復元スクリプト:
-d データベースを復元する
-f バックアップ ファイル
psql -h 127.0.0.1 -p 5432 -U postgres -d homestead_pengze_prod -f
homestead_pengze_prod.bak