1
|
to test the import:
|
2
|
# -> "to set up the VM"
|
3
|
# restore the "booted" snapshot under "+pg_restore"
|
4
|
# start the VM
|
5
|
ssh -t 128.111.220.240
|
6
|
# update system time so wait times can be calculated correctly:
|
7
|
sudo service ntp stop; sudo ntpdate -s time.nist.gov; sudo service ntp start
|
8
|
* to test a different revision:
|
9
|
# {
|
10
|
# pick [rev] from r12025 (2014-2-2, last success)..r13002 (2014-3-30, 1st failure)
|
11
|
svn revert --depth infinity .
|
12
|
svn up --force -r [rev] # runtime: 1 min ("0m50.945s")
|
13
|
# fix concurrent regressions (which occurred during the revision range):
|
14
|
for patch in r12689 r12760 r12865 r12872 r12994; do
|
15
|
svn di -c "$patch"|patch --force --fuzz=3 -p 0
|
16
|
done
|
17
|
# use `patch` instead of `svn merge` because `svn merge` sometimes inexplicably
|
18
|
# doens't apply patches
|
19
|
# --fuzz: allow patching even when surrounding lines have changed
|
20
|
# if any of the commands below are broken, try a different revision
|
21
|
yes|make mk_db rm_initial_public schemas/reinstall # mk_db: install new extensions
|
22
|
yes|make inputs/.TNRS/reinstall
|
23
|
yes|make schemas/public/reinstall # sanity check before running the import
|
24
|
# }
|
25
|
$0 # nested shell
|
26
|
export version=test_import
|
27
|
declare -ax inputs; inputs=(inputs/ARIZ/)
|
28
|
. bin/import_all # runtime: 50 min ("0:45:07.105389"+"4:05.03")
|
29
|
# at "This will delete the test_import schema", type y and press ENTER
|
30
|
# determine if the revision works:
|
31
|
# {
|
32
|
# wait 8-10 min
|
33
|
# wait until pg_stat_activity shows an in# query
|
34
|
# see if pg_stat_activity shows the buggy query
|
35
|
# (https://projects.nceas.ucsb.edu/nceas/issues/902) -> the revision is broken,
|
36
|
# or an in# query after in#6 -> the revision is OK
|
37
|
# }
|
38
|
# stop the import:
|
39
|
# {
|
40
|
kill % # cancel after_import()
|
41
|
. bin/stop_imports
|
42
|
sudo pkill -f 'postgres: bien vegbien'
|
43
|
# }
|
44
|
|
45
|
to set up the VM:
|
46
|
ln -s /Volumes/vegbiendev/vegbiendev.vdi ~/VirtualBox\ VMs/vegbiendev/vegbiendev.vdi
|
47
|
screen
|
48
|
# press ENTER
|
49
|
l=1 overwrite=1 inplace=1 src=/Volumes/vegbiendev/vegbiendev.vdi dest=~/VirtualBox\ VMs/vegbiendev/vegbiendev.file.vdi put # runtime: 5 h ("4:43:16")
|
50
|
# move vegbiendev.vdi to the internal hard drive
|
51
|
# press Ctrl-D
|
52
|
(cd ~/VirtualBox\ VMs/vegbiendev/; mv vegbiendev.file.vdi vegbiendev.vdi)
|
53
|
# open VirtualBox
|
54
|
# select the vegbiendev VM
|
55
|
# restore the "+bootloader+VirtualBox Guest Additions+eth1" snapshot
|
56
|
# open Settings > System tab
|
57
|
# in the Motherboard subtab, set Base Memory to 2048 MB
|
58
|
# in the Processor subtab, set Processor(s) to 1
|
59
|
# boot the VM
|
60
|
# when asked whether to skip mounting, press S
|
61
|
ssh -t 128.111.220.240
|
62
|
rm inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql
|
63
|
sed --in-place -r 's/^(shared_buffers = )\S+/\11000MB/' schemas/postgresql.conf
|
64
|
# = <1 GB; decrease to match VM's allocated memory (2 GB)
|
65
|
sudo mkdir -p /var/lib/postgresql/9.3/main/
|
66
|
sudo chown postgres:postgres /var/lib/postgresql/9.3/main/
|
67
|
sudo -E -u postgres /usr/lib/postgresql/9.3/bin/initdb -D /var/lib/postgresql/9.3/main/
|
68
|
sudo ln -sf /etc/postgresql/9.3/main/*.conf /var/lib/postgresql/9.3/main/
|
69
|
make postgres_reload
|
70
|
# at "Modifying postgresql.conf and pg_hba.conf", type y and press ENTER
|
71
|
# at "kernel.shmmax ... Press ENTER to continue", press ENTER
|
72
|
# at "restart PostgreSQL manually ... Press ENTER to continue":
|
73
|
# open a new window
|
74
|
ssh -t 128.111.220.240
|
75
|
# run what it says
|
76
|
# press Ctrl-D
|
77
|
# return to the previous window
|
78
|
# press ENTER
|
79
|
* to use a database backup:
|
80
|
# {
|
81
|
make mk_db rm_initial_public # do things that are not part of the backup
|
82
|
screen
|
83
|
# press ENTER
|
84
|
l=1 src='frenzy.nceas.ucsb.edu:~/bien/' dest=. put backups/vegbien.r12025.backup # runtime: 25 min ("0:25:24")
|
85
|
# press Ctrl-D
|
86
|
sudo chgrp postgres backups/vegbien.r12025.backup
|
87
|
sudo halt
|
88
|
# at "System halted", close the VM and *uncheck* Restore current snapshot
|
89
|
# create a VM snapshot named "+initdb+database backup file"
|
90
|
# boot the VM
|
91
|
# when asked whether to skip mounting, press S
|
92
|
ssh -t 128.111.220.240
|
93
|
screen
|
94
|
# press ENTER
|
95
|
time for schema in temp util py_util geoscrub herbaria IRMNG IUCN NCBI newWorld TNRS ARIZ; do
|
96
|
bin/psql_verbose_vegbien <<<"CREATE SCHEMA \"$schema\";"
|
97
|
"time" sudo -E -u postgres pg_restore --exit-on-error --verbose --dbname=vegbien --schema="$schema" backups/vegbien.r12025.backup
|
98
|
# need to run as DB superuser to restore py_util
|
99
|
done # runtime: 15 min ("11:44:05" - ~11:30)
|
100
|
# must use for loop because pg_restore doesn't support multiple --schema
|
101
|
# options (it just uses the last one)
|
102
|
# (http://postgresql.1045698.n5.nabble.com/pg-restore-should-accept-multiple-t-switches-td2399138.html)
|
103
|
# press Ctrl-D
|
104
|
sudo halt
|
105
|
# at "System halted", close the VM and *uncheck* Restore current snapshot
|
106
|
# create a VM snapshot named "+pg_restore"
|
107
|
# boot the VM
|
108
|
# when asked whether to skip mounting, press S
|
109
|
# create a VM snapshot named "booted"
|
110
|
# close the VM and *check* Restore current snapshot
|
111
|
# }
|
112
|
* to use a clean database:
|
113
|
# {
|
114
|
(cd inputs/; for dir in IRMNG IUCN newWorld; do mv "$dir" ."$dir"; done)
|
115
|
(cd inputs/; for dir in */; do dir="${dir%/}"; case "$dir" in analytical_db|ARIZ) : ;; *) mv "$dir" .archive/"$dir";; esac; done)
|
116
|
make misc-Linux db inputs/install schemas/public/reinstall # runtime: 15 min ("15:11:16".."15:26:28") @starscream.vegbiendev
|
117
|
# at "This will delete the current public schema of your VegBIEN DB", type y and press ENTER
|
118
|
# }
|
119
|
|
120
|
to install system updates:
|
121
|
# boot the VM
|
122
|
# when asked whether to skip mounting, press S
|
123
|
sudo apt-get update
|
124
|
sudo apt-get dist-upgrade # runtime: 12 min ("14:20:15".."14:31:50") @starscream.vegbiendev
|
125
|
sudo reboot # some system updates require system restart
|
126
|
# when asked whether to skip mounting, press S
|
127
|
sudo halt
|
128
|
# at "System halted", close the VM and *uncheck* Restore current snapshot
|
129
|
# create a VM snapshot named "+system updates"
|
130
|
# boot the VM
|
131
|
# when asked whether to skip mounting, press S
|
132
|
# create a VM snapshot named "booted"
|
133
|
|
134
|
to enable VM to access VirtualBox shared folders:
|
135
|
(currently doesn't work, likely because of a bug in VirtualBox Guest Additions when installed on something other than a clean Linux install)
|
136
|
sudo sed --in-place -r 's/^vboxsf:.*:$/&aaronmk/' /etc/group
|
137
|
# press Ctrl-D
|
138
|
ssh -t 128.111.220.240
|
139
|
|
140
|
to retrieve the original contents of the backup from the VM:
|
141
|
# open VirtualBox
|
142
|
# select the vegbiendev VM
|
143
|
# restore the "+LiveCD+ssh+root pw+mount" snapshot
|
144
|
# **IMPORTANT**: can't use inplace=1 optimization because this messes up the
|
145
|
# shared hardlinks used by ~/Documents/BIEN/vegbiendev/
|
146
|
# --link-dest: relative to dest, not currdir, so need abs path
|
147
|
l=1 overwrite=1 src=root@128.111.220.198:/mnt/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev/ --exclude=/home/bien/svn/ --exclude=/home/aaronmk/Dropbox/
|
148
|
# --exclude=/home/aaronmk/Dropbox/: this is not used by the BIEN scripts
|
149
|
sudo mkdir ~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/home/bien/svn/
|
150
|
# --exclude of specific files: these have compressed versions
|
151
|
l=1 overwrite=1 src=root@128.111.220.198:/mnt/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev/home/aaronmk/bien/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql --exclude='/inputs/FIA/_archive/2011-10-17/Organism/*_Extract.csv' --exclude='*.CSV' --exclude='*.gz' --exclude='*.log.sql' --exclude='*.zip' home/bien/svn/
|
152
|
l=1 overwrite=1 src=root@128.111.220.198:/mnt/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev/home/aaronmk/bien/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql --include='/inputs/FIA/_archive/2011-10-17/Organism/*_Extract.csv' --include='*.CSV' --include='*.gz' --include='*.log.sql' --include='*.zip' --include='*/' --exclude='**' --no-perms home/bien/svn/
|
153
|
# --no-perms: enable --link-dest to work in spite of perms changes (the
|
154
|
# perms on these files are not important to the BIEN scripts)
|
155
|
# generate list of all the files whose permissions were changed since the
|
156
|
# backup, but which are extracted with their changed permissions instead of
|
157
|
# their original ones in the backup:
|
158
|
l= overwrite=1 src=root@128.111.220.198:/mnt/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev/home/aaronmk/bien/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql home/bien/svn/ >~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.perms_changed.txt
|
159
|
|
160
|
to retrieve the contents of the VM, with the VirtualBox changes added:
|
161
|
# open VirtualBox
|
162
|
# select the vegbiendev VM
|
163
|
# restore the "(+VirtualBox changes)+root pw" snapshot
|
164
|
# boot the VM
|
165
|
# **IMPORTANT**: can't use inplace=1 optimization because this messes up the
|
166
|
# shared hardlinks used by ~/Documents/BIEN/vegbiendev/
|
167
|
# --link-dest: relative to dest, not currdir, so need abs path
|
168
|
l=1 overwrite=1 src=root@128.111.220.240:/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.VirtualBox/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/ --exclude=/home/bien/svn/ --exclude=/home/aaronmk/Dropbox/
|
169
|
# --exclude=/home/aaronmk/Dropbox/: this is not used by the BIEN scripts
|
170
|
sudo mkdir ~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.VirtualBox/home/bien/svn/
|
171
|
# --exclude of specific files: these have compressed versions
|
172
|
l=1 overwrite=1 src=root@128.111.220.240:/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.VirtualBox/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/home/bien/svn/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql --exclude='/inputs/FIA/_archive/2011-10-17/Organism/*_Extract.csv' --exclude='*.CSV' --exclude='*.gz' --exclude='*.log.sql' --exclude='*.zip' home/bien/svn/
|
173
|
l=1 overwrite=1 src=root@128.111.220.240:/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.VirtualBox/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/home/bien/svn/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql --include='/inputs/FIA/_archive/2011-10-17/Organism/*_Extract.csv' --include='*.CSV' --include='*.gz' --include='*.log.sql' --include='*.zip' --include='*/' --exclude='**' --no-perms home/bien/svn/
|
174
|
# --no-perms: enable --link-dest to work in spite of perms changes (the
|
175
|
# perms on these files are not important to the BIEN scripts)
|
176
|
l= overwrite=1 src=root@128.111.220.240:/ dest=~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.VirtualBox/ sudo -E put --link-dest="$HOME"/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT/home/bien/svn/ --no-owner --no-group --exclude=/backups/.vegbien.r10848.backup.aYCFxI --exclude='/backups/vegbien.*.backup' --exclude=/inputs/GBIF/_archive/Specimen/GBIF.txt --exclude=/inputs/GBIF/_MySQL/GBIFPortalDB-2013-02-20.data.sql --exclude=/inputs/GBIF/raw_occurrence_record_plants/_archive/table.2013-5-13.tsv --exclude=/inputs/GBIF/raw_occurrence_record_plants/table.tsv --exclude=/inputs/VegBank/_archive/2012-8-30/vegbank.sql home/bien/svn/|diff /dev/stdin ~/Documents/BIEN/vegbiendev.2014-2-2_1-07-32PT.perms_changed.txt
|
177
|
# ensure there are no file changes
|
178
|
|
179
|
to configure the VM to support VirtualBox:
|
180
|
# open VirtualBox
|
181
|
# select the vegbiendev VM
|
182
|
# restore the "restore of 2014-02-02 01:07:32 backup (DO NOT DELETE)" snapshot
|
183
|
# boot the VM from ~/software/ubuntu-12.04.4-desktop-amd64.iso
|
184
|
# install a bootloader
|
185
|
# shut down the VM
|
186
|
# eject the CD image
|
187
|
# boot the VM
|
188
|
# when asked whether to skip mounting, press S
|
189
|
# install VirtualBox Guest Additions
|
190
|
# set up the network connection:
|
191
|
# {
|
192
|
ssh -t aaronmk@128.111.220.240
|
193
|
sudo nano /etc/network/interfaces
|
194
|
# remove the entry for eth0 (which doesn't work under VirtualBox)
|
195
|
# add the following entry:
|
196
|
---
|
197
|
auto eth1
|
198
|
iface eth1 inet dhcp
|
199
|
---
|
200
|
# }
|