GreenPlumデータバックアップとリカバリ


GreenPlumデータバックアップとリカバリ
gp_dumpはGPパラレルバックアップのバックアップツールでgp_を実行していますdumpの場合、masterはすべてのsegmentノードとバックアップを開始し(standbyノードとsegmentノードのmirrorインスタンスはバックアップに参加しません)、データファイルはそれぞれのノードサーバに配置され、消費時間とデータ量が最も大きく、消費時間が最も長いノードに関係します.
よく使われるgp_dumpパラメータは次のとおりです.
-h                     GPmaster 
-p                     GPmaster 
-U                      
-t/--table              , 
-n/--schema             schema 
--gp-d                  
--gp-r                  report 
--gp-k                  

より多くのコマンドgp_dump--helpが表示されます.
gp_とdump対応のデータ復旧操作、使用するコマンドはgp_restore. よく使われるgp_restoreパラメータは次のとおりです.
-h                     GPmaster 
-p                     GPmaster 
-U                      
-d/--dbname             
--gp-d                  
--gp-r                 report 
--gp-k                  
--status               

より多くのコマンドgp_restore--helpが表示されます.
一般的なバックアップとリカバリ方法は、テーブル、データベース、schemaのバックアップとリカバリです.
表のバックアップとリカバリ
表のバックアップ
1.バックアップパスの作成
mkdir -p /opt/gpbackup/
chown gpadmin:gpadmin /opt/gpbackup/

2.gpadminユーザーの下で実行
gp_dump test_db --table=test_table --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/

backup reportを読み、バックアップのタイムスタンプを記録してデータ復旧時に使用する必要があります.データベース名test_db、テーブル名test_table.
3.手動バックアップpg_hba.confファイルは、次のように実行されます.
cd $MASTER_DATA_DIRECTORY
cp pg_hba.conf /opt/gpbackup/

テーブルのリカバリ
注意:回復する時、GPのsegmentはバックアップする時と一致しなければならない
1.テーブルがリカバリされる前に、データをインポートするクラスタにデータベースtest_が存在することを確認します.db、テーブルtest_は存在しませんtable、そうしないとエラーが発生します.2.テーブルのリカバリ、コマンドの実行:
gp_restore -d test_db --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/ --gp-k= 

3.手動リカバリバックアップのpg_hba.confファイル
データベースのバックアップとリカバリ
テーブルのバックアップとリカバリに似ていますが、バックアップ時にパラメータ-tableが少なくなりました.データベースがリカバリされる前にtest_という名前の新しいdb(バックアップされたデータベース名と同じ)のデータベース.
schemaバックアップとリカバリ
手順は、表のバックアップとリカバリと同じです.バックアップとリカバリコマンドのみを以下に示します.
バックアップ:
gp_dump test_db -n test_schema --gp-d=/opt/gpbackup/ --gp-r=/opt/gpbackup/

test_schemaはtest_dbのモードリカバリ:リカバリ前に逆数データのクラスタにtest_という名前がないことを確認します.schemaのschemaは、ある場合は削除します.リカバリコマンド:
gp_restore -d test_db --gp-d=/opt/gpbackup/ --status=/opt/gpbackup/ --gp-r=/opt/gpbackup/ --gp-k= 

注意statusパラメータを追加します.
参照先:http://blog.itpub.net/29989552/viewspace-2127566/
------------------------------------------------------------------------------------------------------------------------------------------------
以下の内容を転載します.http://mamicode.com/info-detail-2306588.html

バックアップ


パラレルバックアップ(gp_dump)
GPはMasterとすべてのアクティブなSegmentインスタンスを同時にバックアップし,バックアップにかかる時間はシステム内のインスタンスの数とは無関係である.すべてのDDLファイルとGPに関するデータ辞書表をMasterホスト上にバックアップし、各Segmentはそれぞれのデータをバックアップする.すべてのバックアップ・ファイルは、一意の14桁のタイムスタンプで識別される完全なバックアップ・セットを構成します.gp_dumpの使用は上記を参照することができる.gp_dumpコマンドは、データディレクトリに次のバックアップファイルを生成します.
Masterホスト上
gp_catalog_1__     --  
gp_cdatabase_1__   --   SQL  
gp_dump_1__        --   schema SQL  
gp_dump_1___post_data  --   Table SQL  

Segmentホスト上
gp_dump_0_ _           --  
gp_dump_status_0_ _    --  

パラレルバックアップ(gpcrondump)
gpcrondumpコマンドはgp_dumpコマンドのパッケージ.MasterとSegmentのデータディレクトリにバックアップファイルを作成するには、次の手順に従います.
Segmentデータのバックアップはgzip圧縮フォーマットを使用し、デフォルトでは/db_dumps/からバックアップされます.
/db_dumps/YYYYMMDD

CRONを使用してバックアップ操作をスケジュールし、gpcrondumpを呼び出すcrontabエントリを定義します.
たとえば、testdwデータベースを真夜中の1時にバックアップ
0 1 0 * * * gpadmin source $GPHOME/greenplum_path.sh; 
gpcrondump –x testdw –c –g –G –a –q >> gp_testdwdump.log;

データベースのバックアップmydatabase
gpcrondump -x mydatabase -c -g -G

非並列バックアップ(pg_dump)
GPは従来のPostgreSQLバックアップコマンドpg_をサポートdumpとpg_dumpall、バックアップはMasterホスト上にすべてのSegmentデータを含む大きなバックアップファイルを作成します.したがって、すべてのデータバックアップには適しておらず、一部のデータの移行やバックアップに適しています.
pg_dump testdw > testdw.sql;                        --   SQL  
pg_dump –Ft –gp-syntax testdw > testdw.tar;         --   tar  
pg_dump –Fc testdw > testdw.dump;   --  
pg_dump –t tb_cp_02 testdw > tb_cp_02_testdw.sql;   --  
pg_dump –t ‘"MixedTableName"‘ testdw > tab_testdw.sql;  --  
pg_dumpall > all.dump;              --  

リカバリ


パラレルリカバリ(gp_restore)
前文を参考にする.
パラレルリカバリ(gpdbrestore)
gpdbrestoreコマンドはgp_restoreコマンドのパッケージは、gpcrondumpを使用して生成されたバックアップファイルをバックアップしてリカバリするより柔軟なオプションを提供します.
Masterホスト上でgpdbrestoreコマンドを実行します(-バックアップファイルが存在するホスト名とパスを指定します)
gpdbrestore –R archive_host:/gpdb/backups/archive/20131231;

非並列リカバリ(pg_restore)
使用はpg_dumpまたはpg_dumpallが作成したバックアップファイルをリカバリし、非パラレルリカバリを使用して異機種システムのリカバリを実現します.
pg_の使用restoreまたはpsqlによるリカバリ
pg_restore –d testdw testdw.dump;
psql -d testdw –f tb_cp_02_testdw.sql;

リカバリ・プログラムの使用を決定する際には、次のいくつかの問題を特定する必要があります.
1.バックアップファイルはどこですか.
バックアップファイルがgp_にある場合dumpが生成した元の位置は、gp_を簡単に通過することができる.restoreコマンドリカバリ;バックアップファイルがGPクラスタを削除した場合、gpdbrestoreを使用してリカバリします.
2.システム全体をリカバリする必要がありますか、それともデータのみをリカバリする必要がありますか.
GPがまだ稼働しており、データの復元のみが必要な場合はgp_を使用します.restoreまたはgpdbrestoreコマンドを使用してリカバリします.クラスタ全体が失われた場合、またはバックアップからクラスタ全体を再構築する必要がある場合は、gpinitsystemコマンドを使用します.
3.リカバリされたシステムはバックアップ時のシステムと同じ数のInstanceを持っていますか?
同じ場合はgp_を使用しますrestoreまたはgpdbrestoreコマンドを使用してリカバリします.異なるクラスタ間で移行する場合は、非並列リカバリを使用する必要があります.
非パラレルリカバリ異機種システム
masterノードでバックアップを行い、segmentのバックアップファイルがmasterノードディレクトリにコピーされていることを確認します.マスターと各Segmentのファイルを含むすべてのバックアップファイルが備えられていることを確認し、すべてのファイルに同じタイムスタンプ識別子があることを確認します.
1.  
createdb testdw;
2.   Master  
psql -d testdw -f /data/backups/gp_dump_1_1_20131231001327;
3.   Segment  
psql –d testdw -f /data/backups/gp_dump_0_2_20131231001327;
psql –d testdw -f /data/backups/gp_dump_0_3_20131231001327;
4.   Table  , 、 、 
psql –d testdw -f /data/backups/ gp_dump_1_1_20131231001327_post_data;