On 12/14/2009 10:00 PM, John Jorgensen wrote:
>>>>>> "bruno" == Bruno Friedmann <[email protected]> writes:
> 
>     bruno> ok I've try and only get this on the two proposed
> 
>     bruno> strings /usr/sbin/bacula-dir | grep batch
>     bruno> _Z27db_write_batch_file_recordsP3JCR
>     bruno> _Z23db_open_batch_connexionP3JCRP4B_DB
> 
> I think that the string that Eric suggested searching for might
> have changed from one release of bacula to another.  
> 
> So in case you're as far behind the times as our site (we're
> still running Bacula 2.4.3) ...
> 
> While I'm pretty sure our old server is doing batch inserts,
> grep'ing for "batch" produces only:
> 
>   558 backup $strings /usr/local/bacula/sbin/bacula-dir | grep -i batch
>   Cannot select %s in batch mode.
> 
> Searching for "temporary" hits though:
> 
>  559 backup $strings /usr/local/bacula/sbin/bacula-dir | grep -i temporary
>  CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER NOT NULL, PurgedFiles 
> SMALLINT, FileSetId INTEGER, JobFiles INTEGER, JobStatus char(1))
>  CREATE TEMPORARY TABLE temp (JobId INTEGER NOT NULL,JobTDate BIGINT,ClientId 
> INTEGER,Level CHAR,JobFiles INTEGER,JobBytes BIGINT,StartTime TEXT,VolumeName 
> TEXT,StartFile INTEGER,VolSessionId INTEGER,VolSessionTime INTEGER)
>  CREATE TEMPORARY TABLE temp1 (JobId INTEGER NOT NULL,JobTDate BIGINT)
>  560 backup $
> 
> As does looking for the message that I see in bconsole while the
> directory is unbatching the attributes:
> 
>   560 backup $strings /usr/local/bacula/sbin/bacula-dir | grep -i inserting
>   Inserting first %s res: %s index=%d
>   Inserting %s res: %s index=%d pass=%d
>   Dir inserting Attributes
> 

Thanks John on a 3.0.3 build the temporary search give more instructions
strings /usr/sbin/bacula-dir | grep -i temporary
CREATE TEMPORARY TABLE cpy_tmp AS SELECT MIN(JobId) AS JobId FROM Job WHERE 
Type='%c' AND ( PriorJobId IN (%s) OR  PriorJobId IN
( SELECT PriorJobId FROM Job WHERE JobId IN (%s)  AND Type='B' ) ) GROUP BY 
PriorJobId

and in libbacsql.so

strings libbacsql.so.1.0.0 | grep -i temporary
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER UNSIGNED NOT NULL, 
PurgedFiles TINYINT, FileSetId INTEGER UNSIGNED, JobFiles
INTEGER UNSIGNED, JobStatus BINARY(1))
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER NOT NULL, PurgedFiles 
SMALLINT, FileSetId INTEGER, JobFiles INTEGER,
JobStatus char(1))
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER UNSIGNED NOT NULL, 
PurgedFiles TINYINT, FileSetId INTEGER UNSIGNED, JobFiles
INTEGER UNSIGNED, JobStatus CHAR)
CREATE TEMPORARY TABLE temp (JobId INTEGER UNSIGNED NOT NULL,JobTDate BIGINT 
UNSIGNED,ClientId INTEGER UNSIGNED,Level
CHAR,JobFiles INTEGER UNSIGNED,JobBytes BIGINT UNSIGNED,StartTime 
TEXT,VolumeName TEXT,StartFile INTEGER UNSIGNED,VolSessionId
INTEGER UNSIGNED,VolSessionTime INTEGER UNSIGNED)
CREATE TEMPORARY TABLE temp (JobId INTEGER NOT NULL,JobTDate BIGINT,ClientId 
INTEGER,Level CHAR,JobFiles INTEGER,JobBytes
BIGINT,StartTime TEXT,VolumeName TEXT,StartFile INTEGER,VolSessionId 
INTEGER,VolSessionTime INTEGER)
CREATE TEMPORARY TABLE temp1 (JobId INTEGER UNSIGNED NOT NULL,JobTDate BIGINT 
UNSIGNED)
CREATE TEMPORARY TABLE temp1 (JobId INTEGER NOT NULL,JobTDate BIGINT)

So in this case I can deduct that there's batch-insert enable ..

BUT when I check against a package newly build with --disable-batch-inssert
confirmed by the result of config

Configuration on Wed Dec 16 06:33:02 CET 2009:

   Host:                    i686-pc-linux-gnu -- suse 11.2
   Bacula version:          Bacula 3.0.3 (18 October 2009)
   Source code location:    .
   Install binaries:        /usr/sbin
   Install libraries:       /usr/lib
   Install config files:    /etc/bacula
   Scripts directory:       /usr/lib/bacula
   Archive directory:       /tmp
   Working directory:       /var/lib/bacula
   PID directory:           /var/run
   Subsys directory:        /var/lock/subsys
   Man directory:           /usr/share/man
   Data directory:          /usr/share
   Plugin directory:        /usr/lib/bacula
   C Compiler:              gcc Linux)
   C++ Compiler:            /usr/bin/g++ Linux)
   Compiler flags:           -O2 -g -msse -mmmx -march=i586 -mtune=i686 
-funroll-loops -mfpmath=sse -fmessage-length=0
-fno-strict-aliasing -pipe -fstack-protector -Wall -D_FORTIFY_SOURCE=0 
-fno-strict-aliasing -fno-exceptions -fno-rtti

   Linker flags:             -I/usr/lib -L/usr/lib/termcap

   Libraries:               -lpthread -ldl

   Statically Linked Tools: no

   Statically Linked FD:    no

   Statically Linked SD:    no

   Statically Linked DIR:   no

   Statically Linked CONS:  no

   Database type:           MySQL

   Database port:

   Database lib:            -L/usr/lib -lmysqlclient_r -lz

   Database name:           bacula

   Database user:           bacula


   Job Output Email:        r...@localhost
   Traceback Email:         r...@localhost
   SMTP Host Address:       localhost

   Director Port:           9101
   File daemon Port:        9102
   Storage daemon Port:     9103

   Director User:           bacula
   Director Group:          bacula
   Storage Daemon User:     bacula
   Storage DaemonGroup:     disk
   File Daemon User:        root
   File Daemon Group:       bacula

   SQL binaries Directory   /usr/bin

   Large file support:      yes
   Bacula conio support:    yes -ltermcap
   readline support:        no
   TCP Wrappers support:    yes -lwrap
   TLS support:             yes
   Encryption support:      yes
   ZLIB support:            yes
   enable-smartalloc:       yes
   enable-lockmgr:          no
   bat support:             no
   enable-gnome:            no
   enable-bwx-console:      no
   enable-tray-monitor:     no
   client-only:             no
   build-dird:              yes
   build-stored:            yes
   ACL support:             yes
   XATTR support:           yes
   Python support:          yes -lpthread -ldl -lutil -lm -lpython2.6 -lutil 
-lrt
   Batch insert enabled:    no


I'm getting the same string inside bacula-dir and libbacsql.so ?

CREATE TEMPORARY TABLE cpy_tmp AS SELECT MIN(JobId) AS JobId FROM Job WHERE 
Type='%c' AND ( PriorJobId IN (%s) OR  PriorJobId IN
( SELECT PriorJobId FROM Job WHERE JobId IN (%s)  AND Type='B' ) ) GROUP BY 
PriorJobId

strings libbacsql.so.1.0.0 | grep -i temporary
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER UNSIGNED NOT NULL, 
PurgedFiles TINYINT, FileSetId INTEGER UNSIGNED, JobFiles
INTEGER UNSIGNED, JobStatus BINARY(1))
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER NOT NULL, PurgedFiles 
SMALLINT, FileSetId INTEGER, JobFiles INTEGER,
JobStatus char(1))
CREATE TEMPORARY TABLE DelCandidates (JobId INTEGER UNSIGNED NOT NULL, 
PurgedFiles TINYINT, FileSetId INTEGER UNSIGNED, JobFiles
INTEGER UNSIGNED, JobStatus CHAR)
CREATE TEMPORARY TABLE temp (JobId INTEGER UNSIGNED NOT NULL,JobTDate BIGINT 
UNSIGNED,ClientId INTEGER UNSIGNED,Level
CHAR,JobFiles INTEGER UNSIGNED,JobBytes BIGINT UNSIGNED,StartTime 
TEXT,VolumeName TEXT,StartFile INTEGER UNSIGNED,VolSessionId
INTEGER UNSIGNED,VolSessionTime INTEGER UNSIGNED)
CREATE TEMPORARY TABLE temp (JobId INTEGER NOT NULL,JobTDate BIGINT,ClientId 
INTEGER,Level CHAR,JobFiles INTEGER,JobBytes
BIGINT,StartTime TEXT,VolumeName TEXT,StartFile INTEGER,VolSessionId 
INTEGER,VolSessionTime INTEGER)
CREATE TEMPORARY TABLE temp1 (JobId INTEGER UNSIGNED NOT NULL,JobTDate BIGINT 
UNSIGNED)
CREATE TEMPORARY TABLE temp1 (JobId INTEGER NOT NULL,JobTDate BIGINT)


So there's two solutions, the strings are always present, or there's somewhere 
a default in sources or build ....

Eric can you recheck about the string on a 3.0.3 pure git trunk ?

What make me in doubt is that bacula-dir/libbacsql with ou without batch 
enabled have the same md5sum ?
 b9156e6cb7902024c790add0291216bc  bacula-dir (without bi)
 b9156e6cb7902024c790add0291216bc  /usr/sbin/bacula-dir
 f01fe8fb42648dae586762b44987bfe1  libbacsql.so.1.0.0 (without bi)
 f01fe8fb42648dae586762b44987bfe1  /usr/lib/libbacsql.so.1.0.0

What are the result for you ?


-- 

     Bruno Friedmann

------------------------------------------------------------------------------
This SF.Net email is sponsored by the Verizon Developer Community
Take advantage of Verizon's best-in-class app development support
A streamlined, 14 day to market process makes app distribution fast and easy
Join now and get one step closer to millions of Verizon customers
http://p.sf.net/sfu/verizon-dev2dev 
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to