You can use the +U flag when copying out the data.
sql +U fails if there are any sessions in the database:
E_US0014 Database not available at this time.
o The database may be marked inoperable. This can occur if CREATEDB
failed.
o An exclusive database lock may be held by another session.
o The database may be open by an exclusive (/SOLE) DBMS server.
The system ref manual says....
+U|-U Enables/disables user updating of the system catalogs and secondary
indexes. This flag takes an exclusive lock on the database. To update system
catalogs you must have the "update system tables" privilege obtained through
accessdb.
+Y|-Y Same as "+/-U" flag, except an exclusive lock on the database.
I'm not sure what the Y flag does. I couldnt get it to work.
Unloaddb uses the +U flag but I think the unload.bat needs a +U to be
complete.
You can add it in manually.
c:\temp>unloaddb ing_demo
..
C:\temp>type unload.bat
sql -s -f4F79.38 -f8F79.38 -u$ingres ing_demo < C:\temp\copy.out
C:\temp>type reload.bat
sql -s -f4F79.38 -f8F79.38 -u$ingres +U ing_demo < C:\temp\copy.in
Problem with unloaddb -c is that some system tables are not transportable
across platforms because of control characters. (I havent tested that for
R3). I found copydb -c gave me problems on some tables which stored bitmaps
etc.
Still +U should give you what you need. Now, how to kick out those pesky
users....
Paul
-----Original Message-----
From: Emiliano [mailto:emile@iris-advies.nl]
Sent: Wednesday, 22 June 2005 11:53 PM
To: info-ingres@cariboulake.com
Subject: [Info-ingres] Re: Safe online transportable backups
On 2005-06-22, Rainman <nospam@nowhere.com> wrote:
> Would the xml import/export of R3 be of use? It looks like a possible
> option for other migrations?
It's an interesting option, but the manual doesn't state anything
whatsoever about locking, and the exported metadata is incomplete --
no rules, no SPs, no constraints... I'm hoping that a modified
copy.out will do the job. I've taken out the autocommit and the
readlock = nolock, did an 'select * from <table>' for all tables, then
the usual copy statements, then an explicit commit. I've sent it to CA
for evaluation, I'll let you know.

Signature
Emiliano
_______________________________________________
Info-ingres mailing list
Info-ingres@cariboulake.com
http://mailman.cariboulake.com/mailman/listinfo.py/info-ingres
Emiliano - 22 Jun 2005 16:51 GMT
> You can use the +U flag when copying out the data.
> sql +U fails if there are any sessions in the database:
...
> Still +U should give you what you need. Now, how to kick out those pesky
> users....
And therein lies the problem; since we're using connection pooling, even
if the users (and daemons) do log out, there may still be connections
lingering in the pool. These do time out, but new connections may start
before that happens.
I'm going to muck about with the modified copy.out script, and I'm also
looking into using ingres replication and just backing up the replica.
This transportable backup thingy is going to be harder than I initially
thought.
Emile