Обсуждение: asynchronous psql command options?

Поиск
Список
Период
Сортировка

asynchronous psql command options?

От
Christopher Smith
Дата:

recently, my dsl provider went out of business, currently, I am using dial-up and I need to build indexes of a very large database table.  this take a few hours...

i used psql via ssh on dial-up and closed the ssh client. I logged in again and it showed that the postmater process was still running.. I thought that the index building process would continue 'til completion.

however, this morning no indexes were built.  Is it possible to send commands via psql asynchronous.  Does anyone know why the index building process stopped?

please advise,

thanks



Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now

Re: asynchronous psql command options?

От
"Bjoern Metzdorf"
Дата:
> i used psql via ssh on dial-up and closed the ssh client. I logged in
again and it showed that the postmater process was still running.. I thought
that the index building process would continue 'til completion.

try

( echo '´CREATE INDEX blablabla' | psql database >> log.txt ) &

on your (bash) shell. You should be able to log out safely then and have the
output in log.txt.

Regards,
Bjoern


Re: asynchronous psql command options?

От
Tom Lane
Дата:
Christopher Smith <christopherl_smith@yahoo.com> writes:
> i used psql via ssh on dial-up and closed the ssh client. I logged in
> again and it showed that the postmater process was still running.. I
> thought that the index building process would continue 'til
> completion.

> however, this morning no indexes were built.  Is it possible to send
> commands via psql asynchronous.  Does anyone know why the index
> building process stopped?

It worked for me in a quick test here: issue CREATE INDEX command,
"kill -9" the psql client from another window, wait for indexing to
finish.

I wonder whether you had started a transaction block, viz
    begin;
    create index ...;
    <<kill client>>
Without a commit to match the begin, the index would be discarded.

Another likely prospect is that the CREATE INDEX command actually failed
(ran out of disk space, for example).  Did you look in the postmaster
log to see if any error message was recorded?

            regards, tom lane

Re: asynchronous psql command options?

От
Christopher Smith
Дата:

Filesystem            Size  Used Avail Use% Mounted on
/dev/sdb1              17G  2.0G   13G  13% /var/lib/pgsql/data
/dev/sdd1              17G   11G  5.2G  68% /datadir

correct disk space ran out.  However, just one more question... on my test server the indexes are ~8G.   I moved the data to be indexed (sym linkd ) to the datadir (as shown above). I thought that the indexes would be in my /var/lib/pgsql/data directory.

How can I get the indexes on a disk with necessary space. Please help!

 Tom Lane <tgl@sss.pgh.pa.us> wrote:

Christopher Smith writes:
> i used psql via ssh on dial-up and closed the ssh client. I logged in
> again and it showed that the postmater process was still running.. I
> thought that the index building process would continue 'til
> completion.

> however, this morning no indexes were built. Is it possible to send
> commands via psql asynchronous. Does anyone know why the index
> building process stopped?

It worked for me in a quick test here: issue CREATE INDEX command,
"kill -9" the psql client from another window, wait for indexing to
finish.

I wonder whether you had started a transaction block, viz
begin;
create index ...;
<>
Without a commit to match the begin, the index would be discarded.

Another likely prospect is that the CREATE INDEX command actuall y failed
(ran out of disk space, for example). Did you look in the postmaster
log to see if any error message was recorded?

regards, tom lane



Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now

Re: asynchronous psql command options?

От
Christopher Smith
Дата:

disk space ran out.  Is it possible to predict the filename to be used for indexes and hence create a link to another open disk.

I think that the filename used are oids?

please advise

 Tom Lane <tgl@sss.pgh.pa.us> wrote:

Christopher Smith writes:
> i used psql via ssh on dial-up and closed the ssh client. I logged in
> again and it showed that the postmater process was still running.. I
> thought that the index building process would continue 'til
> completion.

> however, this morning no indexes were built. Is it possible to send
> commands via psql asynchronous. Does anyone know why the index
> building process stopped?

It worked for me in a quick test here: issue CREATE INDEX command,
"kill -9" the psql client from another window, wait for indexing to
finish.

I wonder whether you had started a transaction block, viz
begin;
create index ...;
<>
Without a commit to match the begin, the index would be discarded.

Another likely prospect is that the CREATE INDEX command actuall y failed
(ran out of disk space, for example). Did you look in the postmaster
log to see if any error message was recorded?

regards, tom lane



Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now

Re: asynchronous psql command options?

От
Sean Chittenden
Дата:
> recently, my dsl provider went out of business, currently, I am
> using dial-up and I need to build indexes of a very large database
> table.  this take a few hours...
>
> i used psql via ssh on dial-up and closed the ssh client. I logged
> in again and it showed that the postmater process was still
> running.. I thought that the index building process would continue
> 'til completion.
>
> however, this morning no indexes were built.  Is it possible to send
> commands via psql asynchronous.  Does anyone know why the index
> building process stopped?

If you use screen(1) and detach from it, then reattach to it at a
later date, there may be some diagnostic output sent to the screen.

# Start work
ssh....
screen -d -R -S psql
psql...
Ctrl-a d
exit

# Come back a few hours later:
ssh....
screen -d -R -S psql
[check to see if there's any output]
exit  # the screen session
exit  # exit ssh


--
Sean Chittenden

Re: asynchronous psql command options?

От
Tom Lane
Дата:
Christopher Smith <christopherl_smith@yahoo.com> writes:
> disk space ran out.  Is it possible to predict the filename to be used
> for indexes and hence create a link to another open disk.

No, but you might get some joy by adjusting the pgsql_tmp subdirectory
of your database to symlink to a temp directory on another disk.  The
peak disk usage during a CREATE INDEX is going to have about as much
temp space as finished-index space ...

            regards, tom lane