Discussion:
[ADMIN] Can't recover data from a .tar.gz file which was backed up using COPY BINARY command
(too old to reply)
Khangelani Gama
2012-03-01 07:51:57 UTC
Permalink
Someone in our company wrote a script that backs up data from a certain
table, that person left the company and no one is able to figure it out.
Part of this script has something like, look at the COPY BINARY command
just below:



EXPORTFILE=${EXPORTFILE}.${AUD_UP_TO}_${MAX_AUDIT}

*$PSQL -c "COPY BINARY dailybackup TO '$EF_PATH/$EXPORTFILE';"*



if [ $? -eq 0 ]; then

cd $EF_PATH

tar cvzf ${EXPORTFILE}.tar.gz ${EXPORTFILE}

if [ $? -ne 0 ]; then

echo -e "Error while compressing tar file : " >
/tmp/backup.trickle.state

echo `date` >> /tmp/backup.trickle.state



fi



echo "Backup to backup disk successful"



echo "Update trickle checkpoint"



${ANT} run -Dclass=ucs.instore.ejb.system.SetTrickleCheckpoint
-Darg1=${MAX_AUDIT}







I tried to untar the file which went through fine, but now inside the file
there is funny characters, see below:



PGBCOPY

ÿ^M

^@^D^C^B^A^@^@^@^@^@^@^@^@^R^@^D^@~UIS^@ÿÿ
^@^@^@1~1~1^D^@^É^@^@^D^@^@^@^@^@ÿÿ^K^@^@^@day_endÿÿ^K^@^@^@central^H^@wIôðå϶Aÿÿ¶^B^@^@<?xml
version="1.0" encoding="UTF-8"?>^M





I am aware of the following format, but can’t figure out how many
characters should I specify and this backup system doesn’t use pg_dump
command?





COPY [ BINARY ] table_name [ WITH OIDS ]

FROM { 'filename' | STDIN }

[ [USING] DELIMITERS 'delimiter' ]

[ WITH NULL AS 'null string' ]







Thanks in advanced





CONFIDENTIALITY NOTICE
The contents of and attachments to this e-mail are intended for the addressee only, and may contain the confidential information of Argility (Proprietary) Limited and/or its subsidiaries. Any review, use or dissemination thereof by anyone other than the intended addressee is prohibited.
If you are not the intended addressee please notify the writer immediately and destroy the e-mail. Argility (Proprietary) Limited and its subsidiaries distance themselves from and accept no liability for unauthorised use of their e-mail facilities or e-mails sent other than strictly for business purposes.
Matheus de Oliveira
2012-03-01 09:56:05 UTC
Permalink
Have you tried the above?

COPY BINARY dailybackup FROM <uncompressed file>

If so, what happened?

--
Matheus de Oliveira

Bacharelado em Ciências de Computação
Laboratório de Computação de Alto Desempenho -
LCAD<http://www.lcad.icmc.usp.br/>
Instituto de Ciências Matemáticas e de Computação -
ICMC<http://www.icmc.usp.br/>
Universidade de São Paulo - USP <http://www.sc.usp.br/>
Post by Khangelani Gama
Someone in our company wrote a script that backs up data from a certain
table, that person left the company and no one is able to figure it out.
Part of this script has something like, look at the COPY BINARY command
EXPORTFILE=${EXPORTFILE}.${AUD_UP_TO}_${MAX_AUDIT}
*$PSQL -c "COPY BINARY dailybackup TO '$EF_PATH/$EXPORTFILE';"*
if [ $? -eq 0 ]; then
cd $EF_PATH
tar cvzf ${EXPORTFILE}.tar.gz ${EXPORTFILE}
if [ $? -ne 0 ]; then
echo -e "Error while compressing tar file : " >
/tmp/backup.trickle.state
echo `date` >> /tmp/backup.trickle.state
fi
echo "Backup to backup disk successful"
echo "Update trickle checkpoint"
${ANT} run -Dclass=ucs.instore.ejb.system.SetTrickleCheckpoint
-Darg1=${MAX_AUDIT}
I tried to untar the file which went through fine, but now inside the file
PGBCOPY
ÿ^M
version="1.0" encoding="UTF-8"?>^M
I am aware of the following format, but can’t figure out how many
characters should I specify and this backup system doesn’t use pg_dump
command?
COPY [ BINARY ] table_name [ WITH OIDS ]
FROM { 'filename' | STDIN }
[ [USING] DELIMITERS 'delimiter' ]
[ WITH NULL AS 'null string' ]
Thanks in advanced
CONFIDENTIALITY NOTICE
The contents of and attachments to this e-mail are intended for the addressee only, and may contain the confidential information of Argility (Proprietary) Limited and/or its subsidiaries. Any review, use or dissemination thereof by anyone other than the intended addressee is prohibited.
If you are not the intended addressee please notify the writer immediately and destroy the e-mail. Argility (Proprietary) Limited and its subsidiaries distance themselves from and accept no liability for unauthorised use of their e-mail facilities or e-mails sent other than strictly for business purposes.
Khangelani Gama
2012-03-01 10:16:54 UTC
Permalink
Hi Matheus



I get the following error when trying your command:



ERROR: COPY BINARY: file signature not recognized







*From:* Matheus de Oliveira [mailto:***@gmail.com]
*Sent:* Thursday, March 01, 2012 11:56 AM
*To:* Khangelani Gama
*Cc:* pgsql-***@postgresql.org
*Subject:* Re: [ADMIN] Can't recover data from a .tar.gz file which was
backed up using COPY BINARY command



Have you tried the above?

COPY BINARY dailybackup FROM <uncompressed file>

If so, what happened?

--
Matheus de Oliveira

Bacharelado em Ciências de Computação
Laboratório de Computação de Alto Desempenho -
LCAD<http://www.lcad.icmc.usp.br/>
Instituto de Ciências Matemáticas e de Computação -
ICMC<http://www.icmc.usp.br/>
Universidade de São Paulo - USP <http://www.sc.usp.br/>



On Thu, Mar 1, 2012 at 4:51 AM, Khangelani Gama <***@argility.com> wrote:

Someone in our company wrote a script that backs up data from a certain
table, that person left the company and no one is able to figure it out.
Part of this script has something like, look at the COPY BINARY command
just below:



EXPORTFILE=${EXPORTFILE}.${AUD_UP_TO}_${MAX_AUDIT}

*$PSQL -c "COPY BINARY dailybackup TO '$EF_PATH/$EXPORTFILE';"*



if [ $? -eq 0 ]; then

cd $EF_PATH

tar cvzf ${EXPORTFILE}.tar.gz ${EXPORTFILE}

if [ $? -ne 0 ]; then

echo -e "Error while compressing tar file : " >
/tmp/backup.trickle.state

echo `date` >> /tmp/backup.trickle.state



fi



echo "Backup to backup disk successful"



echo "Update trickle checkpoint"



${ANT} run -Dclass=ucs.instore.ejb.system.SetTrickleCheckpoint
-Darg1=${MAX_AUDIT}







I tried to untar the file which went through fine, but now inside the file
there is funny characters, see below:



PGBCOPY

ÿ^M

^@^D^C^B^A^@^@^@^@^@^@^@^@^R^@^D^@~UIS^@ÿÿ
^@^@^@1~1~1^D^@^É^@^@^D^@^@^@^@^@ÿÿ^K^@^@^@day_endÿÿ^K^@^@^@central^H^@wIôðå϶Aÿÿ¶^B^@^@<?xml
version="1.0" encoding="UTF-8"?>^M





I am aware of the following format, but can’t figure out how many
characters should I specify and this backup system doesn’t use pg_dump
command?





COPY [ BINARY ] table_name [ WITH OIDS ]

FROM { 'filename' | STDIN }

[ [USING] DELIMITERS 'delimiter' ]

[ WITH NULL AS 'null string' ]







Thanks in advanced







CONFIDENTIALITY NOTICE

The contents of and attachments to this e-mail are intended for the
addressee only, and may contain the confidential information of
Argility (Proprietary) Limited and/or its subsidiaries. Any review,
use or dissemination thereof by anyone other than the intended
addressee is prohibited.

If you are not the intended addressee please notify the writer
immediately and destroy the e-mail. Argility (Proprietary) Limited and
its subsidiaries distance themselves from and accept no liability for
unauthorised use of their e-mail facilities or e-mails sent other than
strictly for business purposes.





CONFIDENTIALITY NOTICE
The contents of and attachments to this e-mail are intended for the addressee only, and may contain the confidential information of Argility (Proprietary) Limited and/or its subsidiaries. Any review, use or dissemination thereof by anyone other than the intended addressee is prohibited.
If you are not the intended addressee please notify the writer immediately and destroy the e-mail. Argility (Proprietary) Limited and its subsidiaries distance themselves from and accept no liability for unauthorised use of their e-mail facilities or e-mails sent other than strictly for business purposes.
Loading...