github.com/greenplum-db/gpbackup@v0.0.0-20240517212602-89daab1885b3/ci/scripts/icw-migr-backup.bash (about) 1 #!/bin/bash 2 set -ex 3 4 mkdir /tmp/untarred 5 tar -xzf gppkgs/gpbackup-gppkgs.tar.gz -C /tmp/untarred 6 if [[ -d gp-pkg ]] ; then 7 mkdir /tmp/gppkgv2 8 tar -xzf gp-pkg/gppkg* -C /tmp/gppkgv2 9 fi 10 11 if [[ ! -f bin_gpdb/bin_gpdb.tar.gz ]] ; then 12 mv bin_gpdb/*.tar.gz bin_gpdb/bin_gpdb.tar.gz 13 fi 14 source gpdb_src/concourse/scripts/common.bash 15 time install_gpdb 16 time ./gpdb_src/concourse/scripts/setup_gpadmin_user.bash 17 time make_cluster 18 19 # unxz the dump to a findable location 20 xz -dc icw_dump/dump.sql.xz > /tmp/dump.sql 21 22 cat <<SCRIPT > /tmp/backup_icw.bash 23 #!/bin/bash 24 25 set -ex 26 27 # use "temp build dir" of parent shell 28 export GOPATH=\${HOME}/go 29 export PATH=/usr/local/go/bin:\$PATH:\${GOPATH}/bin:/opt/rh/devtoolset-7/root/usr/bin/ 30 mkdir -p \${GOPATH}/bin \${GOPATH}/src/github.com/greenplum-db 31 cp -R $(pwd)/gpbackup \${GOPATH}/src/github.com/greenplum-db/ 32 33 # Install dependencies before sourcing greenplum path. Using the GPDB curl is causing issues. 34 pushd \${GOPATH}/src/github.com/greenplum-db/gpbackup 35 make depend 36 popd 37 38 source /usr/local/greenplum-db-devel/greenplum_path.sh 39 source $(pwd)/gpdb_src/gpAux/gpdemo/gpdemo-env.sh 40 41 mkdir -p "\${GPHOME}/postgresql" 42 43 # Install gpbackup gppkg 44 out=\$(psql postgres -c "select version();") 45 GPDB_VERSION=\$(echo \$out | sed -n 's/.*Greenplum Database \([0-9]\).*/\1/p') 46 47 if [[ -f /tmp/gppkgv2/gppkg ]] ; then 48 /tmp/gppkgv2/gppkg install -a /tmp/untarred/gpbackup*gp\${GPDB_VERSION}*${OS}*.gppkg 49 else 50 gppkg -i /tmp/untarred/gpbackup*gp\${GPDB_VERSION}*${OS}*.gppkg 51 fi 52 53 # run the ICW dump into the cluster 54 createdb regression 55 PGOPTIONS='--client-min-messages=warning' psql -d regression -q -f /tmp/dump.sql 56 57 # run cleanups needed for migration backup, and tar cleaned backup into a tempdir 58 # TODO: move these into a standalone script to abstract version-specific cleanups so we can re-use 59 # this for migration testing other to/from GPDB versions 60 psql -d regression -c "DROP EXTENSION IF EXISTS plpythonu CASCADE;" 61 psql -d regression -c "DROP TABLE IF EXISTS bfv_partition.t26002_t1 CASCADE;" 62 psql -d regression -c "DROP TABLE IF EXISTS dpe_malp.malp CASCADE;" 63 psql -d regression -c "DROP TABLE IF EXISTS partition_pruning.pt_complex CASCADE;" 64 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162a CASCADE;" 65 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162b CASCADE;" 66 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162c CASCADE;" 67 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162d CASCADE;" 68 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162e CASCADE;" 69 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18162f CASCADE;" 70 psql -d regression -c "DROP TABLE IF EXISTS public.mpp18179 CASCADE;" 71 psql -d regression -c "DROP TABLE IF EXISTS public.mpp5878 CASCADE;" 72 psql -d regression -c "DROP TABLE IF EXISTS public.mpp5878a CASCADE;" 73 psql -d regression -c "DROP TABLE IF EXISTS public.equal_operator_not_in_search_path_table_multi_key CASCADE;" 74 psql -d regression -c "ALTER TABLE gpdist_legacy_opclasses.all_legacy_types drop column abstime_col;" 75 psql -d regression -c "ALTER TABLE gpdist_legacy_opclasses.all_legacy_types drop column tinterval_col;" 76 psql -d regression -c "DROP TABLE IF EXISTS public.aocs_unknown CASCADE;" 77 psql -d regression -c "DROP TABLE IF EXISTS public.test_issue_12936 CASCADE;" 78 psql -d regression -c "DROP MATERIALIZED VIEW IF EXISTS public.mv_unspecified_types;" 79 psql -d regression -c "DROP TABLE IF EXISTS public.mpp5992 CASCADE;" 80 psql -d regression -c "DROP TABLE IF EXISTS public.pt_ao_tab_rng CASCADE;" 81 psql -d regression -c "DROP TABLE IF EXISTS public.pt_co_tab_rng CASCADE;" 82 psql -d regression -c "DROP OPERATOR IF EXISTS public.=> (bigint, NONE) CASCADE;" 83 psql -d regression -c "DROP VIEW IF EXISTS mpp7164.partagain CASCADE;" 84 psql -d regression -c "DROP VIEW IF EXISTS mpp7164.partlist CASCADE;" 85 psql -d regression -c "DROP VIEW IF EXISTS mpp7164.partrank CASCADE;" 86 psql -d regression -c "DROP VIEW IF EXISTS public.redundantly_named_part;" 87 psql -d regression -c "DROP FUNCTION IF EXISTS index_constraint_naming_partition.partition_tables() CASCADE;" 88 psql -d regression -c "DROP TRIGGER IF EXISTS after_ins_stmt_trig on public.main_table;" 89 psql -d regression -c "DROP TRIGGER IF EXISTS after_upd_b_stmt_trig on public.main_table;" 90 psql -d regression -c "DROP TRIGGER IF EXISTS after_upd_stmt_trig on public.main_table;" 91 psql -d regression -c "DROP TRIGGER IF EXISTS before_ins_stmt_trig on public.main_table;" 92 psql -d regression -c "DROP TRIGGER IF EXISTS before_upd_a_stmt_trig on public.main_table;" 93 psql -d regression -c "DROP TRIGGER IF EXISTS foo_as_trigger on test_expand_table.table_with_update_trigger;" 94 psql -d regression -c "DROP TRIGGER IF EXISTS foo_bs_trigger on test_expand_table.table_with_update_trigger;" 95 96 mkdir /tmp/icw-migr-backup 97 gpbackup --dbname regression --backup-dir /tmp/icw-migr-backup --single-backup-dir 98 echo "Backup for migration testing completed" 99 100 SCRIPT 101 102 chmod +x /tmp/backup_icw.bash 103 su - gpadmin "/tmp/backup_icw.bash" 104 105 # move artifacts for Concourse put 106 tar -czf migration-backup.tar.gz -C /tmp icw-migr-backup 107 mv migration-backup.tar.gz migration-artifacts 108