Berkeley DB Installation and Build Guide
           
          
          
         
        
       
      
        
          Table of Contents
        
        
          - 
            
              Preface
            
          
- 
            
              - 
                
                  Conventions Used in this Book
                
              
- 
                
                  For More Information
                
              
- 
                
                  - 
                    
                      Contact Us
                    
                  
 
 
- 
            
              1. Introduction
            
          
- 
            
              - 
                
                  Installation Overview
                
              
- 
                
                  Supported Platforms
                
              
 
- 
            
              2. 
		System Installation Notes
        
            
          
- 
            
              - 
                
                  File utility /etc/magic information
                
              
- 
                
                  - 
                    
                      Magic information
                    
                  
- 
                    
                      Big-endian magic information
                    
                  
- 
                    
                      Little-endian magic information
                    
                  
 
- 
                
                  Building with multiple versions of Berkeley DB
                
              
 
- 
            
              3. 
		Debugging Applications
        
            
          
- 
            
              - 
                
                  Introduction to debugging
                
              
- 
                
                  Compile-time configuration
                
              
- 
                
                  Run-time error information
                
              
- 
                
                  Reviewing Berkeley DB log files
                
              
- 
                
                  - 
                    
                      Augmenting the Log for Debugging
                    
                  
- 
                    
                      Extracting Committed Transactions and Transaction Status
                    
                  
- 
                    
                      Extracting Transaction Histories
                    
                  
- 
                    
                      Extracting File Histories
                    
                  
- 
                    
                      Extracting Page Histories
                    
                  
- 
                    
                      Other log processing tools
                    
                  
 
 
- 
            
              4. Building Berkeley DB for Android
            
          
- 
            
              - 
                
                  Building the Drop-In Replacement for Android
                
              
- 
                
                  - 
                    
                      Migrating from SQLite to Berkeley DB
                    
                  
 
- 
                
                  Building the Android JDBC Driver
                
              
- 
                
                  Android Configuration Options
                
              
 
- 
            
              5. 
		Building Berkeley DB for Windows
        
            
          
- 
            
              - 
                
                  Building Berkeley DB for 32 bit Windows
                
              
- 
                
                  - 
                    
                      Visual C++ .NET 2010
                    
                  
- 
                    
                      Visual C++ .NET 2008
                    
                  
- 
                    
                      Visual C++ .NET 2005
                    
                  
- 
                    
                      Build results
                    
                  
 
- 
                
                  Building Berkeley DB for 64-bit Windows
                
              
- 
                
                  - 
                    
                      x64 build with Visual Studio 2005 or newer
                    
                  
 
- 
                
                  Building Berkeley DB with Cygwin
                
              
- 
                
                  Building the C++ API
                
              
- 
                
                  Building the C++ STL API
                
              
- 
                
                  Building the Java API
                
              
- 
                
                  Building the C# API
                
              
- 
                
                  Building the SQL API
                
              
- 
                
                  - 
                    
                      Binary Compatibility With SQLite
                    
                  
- 
                    
                      Setting Preprocessor Flags
   
                    
                  
- 
                    
                      Enabling Extensions
                    
                  
- 
                    
                      Disabling Log Checksums
                    
                  
- 
                    
                      Building the JDBC Driver
                    
                  
- 
                    
                      Using the JDBC Driver
                    
                  
- 
                    
                      Building the ODBC Driver
                    
                  
- 
                    
                       Using the ADO.NET Driver
    
                    
                  
 
- 
                
                  Building the Tcl API
                
              
- 
                
                  Distributing DLLs
                
              
- 
                
                  Additional build options
                
              
- 
                
                  Building a small memory footprint library
                
              
- 
                
                  Running the test suite under Windows
                
              
- 
                
                  - 
                    
                      Building the software needed by the tests
                    
                  
- 
                    
                      Running the test suite under Windows
                    
                  
- 
                    
                      Building the software needed by the SQL tests
                    
                  
 
- 
                
                  Windows notes
                
              
- 
                
                  Windows FAQ
                
              
 
- 
            
              6. 
		Building Berkeley DB for Windows Mobile
        
            
          
- 
            
              - 
                
                  Building for Windows Mobile
                
              
- 
                
                  - 
                    
                      Building Berkeley DB for Windows Mobile
                    
                  
- 
                    
                      Changing Build Configuration Type
                    
                  
- 
                    
                      Building Berkeley DB for different target platforms
                    
                  
 
- 
                
                  Windows Mobile notes
                
              
- 
                
                  Windows Mobile FAQ
                
              
 
- 
            
              7. 
		Building Berkeley DB for UNIX/POSIX
        
            
          
- 
            
              - 
                
                  Building for UNIX/POSIX
                
              
- 
                
                  - 
                    
                      Building the Berkeley DB SQL Interface
                    
                  
 
- 
                
                  Configuring Berkeley DB
                
              
- 
                
                  Configuring the SQL Interface
                
              
- 
                
                  - 
                    
                      Changing Compile Options
                    
                  
- 
                    
                      Enabling Extensions
                    
                  
- 
                    
                      Building the JDBC Driver
                    
                  
- 
                    
                      Using the JDBC Driver
                    
                  
- 
                    
                      Building the ODBC Driver
                    
                  
- 
                    
                      Building the BFILE extension
                    
                  
 
- 
                
                  Building a small memory footprint library
                
              
- 
                
                  Changing compile or load options
                
              
- 
                
                  Cross-Compiling on Unix
                
              
- 
                
                  Installing Berkeley DB
                
              
- 
                
                  Dynamic shared libraries
                
              
- 
                
                  Running the test suite under UNIX
                
              
- 
                
                  - 
                    
                      Building SQL Test Suite on Unix
                    
                  
 
- 
                
                  Architecture independent FAQ
                
              
- 
                
                  AIX
                
              
- 
                
                  FreeBSD
                
              
- 
                
                  Apple iOS (iPhone OS)
                
              
- 
                
                  IRIX
                
              
- 
                
                  Linux
                
              
- 
                
                  Mac OS X
                
              
- 
                
                  QNX
                
              
- 
                
                  SCO
                
              
- 
                
                  Solaris
                
              
- 
                
                  SunOS
                
              
 
- 
            
              8. 
		Building Berkeley DB for VxWorks
        
            
          
- 
            
              - 
                
                  Building for VxWorks 6.x
                
              
- 
                
                  - 
                    
                      Building With Wind River Workbench using the Makefile
                    
                  
 
- 
                
                  VxWorks notes
                
              
- 
                
                  - 
                    
                      Building and Running the Demo Program
                    
                  
- 
                    
                      Building and Running the Utility Programs
                    
                  
- 
                    
                      Support for Replication Manager
                    
                  
 
- 
                
                  VxWorks FAQ
                
              
 
- 
            
              9. 
        Upgrading Berkeley DB 11.2.5.2 applications to Berkeley DB 11.2.5.3
    
            
          
- 
            
              - 
                
                  Introduction
                
              
- 
                
                  Changes to the build_windows Folder
                
              
- 
                
                  Replication Connection Status in the Java API
                
              
- 
                
                  - 
                    
                      New Function
                    
                  
- 
                    
                      New Class
                    
                  
- 
                    
                      Deprecated Function
                    
                  
 
- 
                
                  Exclusive Database Handles 
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
 
- 
                
                  Configure the Region Size of Heap Databases
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
 
- 
                
                  New Hotbackup Interface
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
- 
                    
                      Flags Accepted by DB_ENV->backup()
                    
                  
- 
                    
                      Flags Accepted by DB_ENV->dbbackup()
                    
                  
- 
                    
                      Enumerations Accepted by DB_ENV->set_backup_config()
                    
                  
 
- 
                
                  Updated JDBC Version
                
              
- 
                
                  Configure Directory to Store Metadata Files
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
 
- 
                
                  Changes in the SQL API Build
                
              
- 
                
                  New Berkeley DB SQL API PRAGMAs
                
              
- 
                
                  - 
                    
                      New PRAGMAs
                    
                  
 
- 
                
                  Replication for Existing Databases in the SQL API
                
              
- 
                
                  - 
                    
                      PRAGMAs With Permanent Effects
                    
                  
- 
                    
                      PRAGMAs That Can Now Operate on Existing Databases
                    
                  
 
- 
                
                  Berkeley DB X/Open Compliant XA Resource Manager and Transaction Snapshots 
                
              
- 
                
                  Berkeley DB Library Version 11.2.5.3 Change Log
                
              
- 
                
                  - 
                    
                      Changes between 11.2.5.3.21 and 11.2.5.3.28
                    
                  
- 
                    
                      Changes between 11.2.5.3.15 and 11.2.5.3.21
                    
                  
- 
                    
                      Database or Log File On-Disk Format Changes
                    
                  
- 
                    
                      New Features
                    
                  
- 
                    
                      Database Environment Changes
                    
                  
- 
                    
                      Access Method Changes
                    
                  
- 
                    
                      SQL API Changes
                    
                  
- 
                    
                      Java-specific API changes
                    
                  
- 
                    
                      Replication Changes
                    
                  
- 
                    
                      Locking Subsystem Changes
                    
                  
- 
                    
                      Logging Subsystem Changes
                    
                  
- 
                    
                      Memory Pool Subsystem Changes
                    
                  
- 
                    
                      Mutex Subsystem Changes
                    
                  
- 
                    
                      Transaction Subsystem Changes
                    
                  
- 
                    
                      Utility Changes
                    
                  
- 
                    
                      Configuration, Documentation, Sample Apps, Portability and Build Changes
                    
                  
- 
                    
                      Known Bugs
                    
                  
 
 
- 
            
              10. 
        Upgrading Berkeley DB 11.2.5.1 applications to Berkeley DB 11.2.5.2
    
            
          
- 
            
              - 
                
                  Introduction
                
              
- 
                
                  SQLite Interface Upgrade
                
              
- 
                
                  32bit/64bit Compatibility on Windows
                
              
- 
                
                  Read Only flag for DBT
                
              
- 
                
                  - 
                    
                      New Flag
                    
                  
 
- 
                
                  Dynamic Environment Configuration 
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
- 
                    
                      Deprecated Functions
                    
                  
 
- 
                
                  Exclusive Transactions in the SQL Layer
                
              
- 
                
                  Group Membership in Repmgr
                
              
- 
                
                  - 
                    
                      Upgrading
                    
                  
- 
                    
                      New Functions
                    
                  
- 
                    
                      Modified Functions
                    
                  
- 
                    
                      New Events
                    
                  
- 
                    
                      Removed Functions
                    
                  
- 
                    
                      New Parameters
                    
                  
- 
                    
                      New Structure
                    
                  
 
- 
                
                  Heap Access Method
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
- 
                    
                      Modified Functions
                    
                  
- 
                    
                      New Definition
                    
                  
 
- 
                
                  Enabling Transaction Snapshots in the SQL Layer
                
              
- 
                
                  - 
                    
                      New Pragmas
                    
                  
 
- 
                
                  2SITE_STRICT Enabled by Default in Replication
                
              
- 
                
                  Enabling Replication in the SQL Layer 
                
              
- 
                
                  - 
                    
                      New Pragmas
                    
                  
 
- 
                
                  Repmgr Message Channels 
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
 
- 
                
                  Sequence Support in the SQL Layer
                
              
- 
                
                  - 
                    
                      New Functions
                    
                  
 
- 
                
                  Berkeley DB X/Open Compliant XA Resource Manager 
                
              
- 
                
                  - 
                    
                      Constraints
                    
                  
- 
                    
                      New Flag
                    
                  
- 
                    
                      Modified Function
                    
                  
 
- 
                
                  Hot Backup Changes 
                
              
- 
                
                  Berkeley DB Library Version 11.2.5.2 Change Log
                
              
- 
                
                  - 
                    
                      Database or Log File On-Disk Format Changes
                    
                  
- 
                    
                      New Features
                    
                  
- 
                    
                      Database Environment Changes
                    
                  
- 
                    
                      Concurrent Data Store Changes
                    
                  
- 
                    
                      Access Method Changes
                    
                  
- 
                    
                      SQL API Changes
                    
                  
- 
                    
                      C API Changes
                    
                  
- 
                    
                      Tcl-specific API Changes
                    
                  
- 
                    
                      C#-specific API Changes
                    
                  
- 
                    
                      Replication Changes
                    
                  
- 
                    
                      Locking Subsystem Changes
                    
                  
- 
                    
                      Logging Subsystem Changes
                    
                  
- 
                    
                      Memory Pool Subsystem Changes
                    
                  
- 
                    
                      Mutex Subsystem Changes
                    
                  
- 
                    
                      Transaction Subsystem Changes
                    
                  
- 
                    
                      Test Suite Changes
                    
                  
- 
                    
                      Utility Changes
                    
                  
- 
                    
                      Configuration, Documentation, Sample Apps, Portability and Build Changes
                    
                  
- 
                    
                      Example Changes
                    
                  
- 
                    
                      Miscellaneous Bug Fixes
                    
                  
- 
                    
                      Deprecated Features
                    
                  
- 
                    
                      Known Bugs
                    
                  
 
 
- 
            
              11. 
        Upgrading Berkeley DB 11.2.5.0 applications to Berkeley DB 11.2.5.1
    
            
          
- 
            
              - 
                
                  Introduction
                
              
- 
                
                  DPL Applications must be recompiled
                
              
- 
                
                  Source Tree Rearranged
                
              
- 
                
                  SQLite Interface Upgrade
                
              
- 
                
                  Mod_db4 Support Discontinued
                
              
- 
                
                  Berkeley DB Library Version 11.2.5.1 Change Log
                
              
- 
                
                  - 
                    
                      Database or Log File On-Disk Format Changes
                    
                  
- 
                    
                      New Features
                    
                  
- 
                    
                      Database Environment Changes
                    
                  
- 
                    
                      Concurrent Data Store Changes
                    
                  
- 
                    
                      Access Method Changes
                    
                  
- 
                    
                      API Changes
                    
                  
- 
                    
                      SQL-Specific API Changes
                    
                  
- 
                    
                      Tcl-Specific API Changes
                    
                  
- 
                    
                      Java-Specific API Changes
                    
                  
- 
                    
                      C#-Specific API Changes
                    
                  
- 
                    
                      Direct Persistence Layer (DPL), Bindings and Collections API
                    
                  
- 
                    
                      Replication Changes
                    
                  
- 
                    
                      Locking Subsystem Changes
                    
                  
- 
                    
                      Logging Subsystem Changes
                    
                  
- 
                    
                      Memory Pool Subsystem Changes
                    
                  
- 
                    
                      Mutex Subsystem Changes
                    
                  
- 
                    
                      Transaction Subsystem Changes
                    
                  
- 
                    
                      Test Suite Changes
                    
                  
- 
                    
                      Utility Changes
                    
                  
- 
                    
                      Configuration, Documentation, Sample Apps, Portability, and Build Changes
                    
                  
- 
                    
                      Example Changes
                    
                  
- 
                    
                      Miscellaneous Bug Fixes
                    
                  
- 
                    
                      Deprecated Features
                    
                  
- 
                    
                      Known Bugs
                    
                  
 
 
- 
            
              12. 
        Upgrading Berkeley DB 4.8 applications to Berkeley DB 11.2.5.0
    
            
          
- 
            
              - 
                
                  Introduction
                
              
- 
                
                  db_sql Renamed to db_sql_codegen
                
              
- 
                
                  DB_REP_CONF_NOAUTOINIT Replaced
                
              
- 
                
                  Support for Multiple Client-to-Client Peers
                
              
- 
                
                  Cryptography Support
                
              
- 
                
                  DB_NOSYNC Flag to Flush Files
                
              
- 
                
                  Dropped Support
                
              
- 
                
                  Changing Stack Size
                
              
- 
                
                  Berkeley DB 11g Release 2 Change Log
                
              
- 
                
                  - 
                    
                      Changes between 11.2.5.0.26  and 11.2.5.0.32
                    
                  
- 
                    
                      Changes between 11.2.5.0.21  and 11.2.5.0.26
                    
                  
- 
                    
                      Changes between 4.8 and 11.2.5.0.21
                    
                  
- 
                    
                      Known Bugs
                    
                  
 
 
- 
            
              13. Upgrading Berkeley DB 4.7 applications to Berkeley DB 4.8
            
          
- 
            
              - 
                
                  Introduction
                
              
- 
                
                  Registering DPL Secondary Keys
                
              
- 
                
                  Minor Change in Behavior of DB_MPOOLFILE->get
                
              
- 
                
                  Dropped Support for fcntl System Calls
                
              
- 
                
                  Upgrade Requirements
                
              
- 
                
                  Berkeley DB 4.8.28 Change Log
                
              
- 
                
                  - 
                    
                      
Changes between 4.8.26 and 4.8.28:
                    
                  
- 
                    
                      
Known bugs in 4.8 
                    
                  
- 
                    
                      
Changes between 4.8.24 and 4.8.26:
                    
                  
- 
                    
                      
Changes between 4.8.21 and 4.8.24:
                    
                  
- 
                    
                      
Changes between 4.7 and 4.8.21:
                    
                  
- 
                    
                      
Database or Log File On-Disk Format Changes:
                    
                  
- 
                    
                      
New Features:
                    
                  
- 
                    
                      
Database Environment Changes:
                    
                  
- 
                    
                      
Concurrent Data Store Changes:
                    
                  
- 
                    
                      
General Access Method Changes:
                    
                  
- 
                    
                      
Btree Access Method Changes:
                    
                  
- 
                    
                      
Hash Access Method Changes:
                    
                  
- 
                    
                      
Queue Access Method Changes:
                    
                  
- 
                    
                      
Recno Access Method Changes:
                    
                  
- 
                    
                      
C-specific API Changes:
                    
                  
- 
                    
                      
C++-specific API Changes:
                    
                  
- 
                    
                      
Java-specific API Changes:
                    
                  
- 
                    
                      
 Direct Persistence Layer (DPL), Bindings and Collections API:
                    
                  
- 
                    
                      
 Tcl-specific API Changes:
                    
                  
- 
                    
                      
RPC-specific Client/Server Changes:
                    
                  
- 
                    
                      
Replication Changes:
                    
                  
- 
                    
                      
XA Resource Manager Changes:
                    
                  
- 
                    
                      
Locking Subsystem Changes:
                    
                  
- 
                    
                      
Logging Subsystem Changes:
                    
                  
- 
                    
                      
Memory Pool Subsystem Changes:
                    
                  
- 
                    
                      
Mutex Subsystem Changes:
                    
                  
- 
                    
                      
Test Suite Changes
                    
                  
- 
                    
                      
Transaction Subsystem Changes:
                    
                  
- 
                    
                      
Utility Changes:
                    
                  
- 
                    
                      
Configuration, Documentation, Sample Application, Portability and Build Changes:
                    
                  
 
 
- 
            
              14. 
		Test Suite
        
            
          
- 
            
              - 
                
                  Running the test suite
                
              
- 
                
                  - 
                    
                      Running SQL Test Suite on Unix
                    
                  
- 
                    
                      Running SQL Test Suite on Windows
                    
                  
 
- 
                
                  Test suite FAQ