Enabling archiving
You can enable archiving on versioned or nonversioned data by right-clicking the dataset in the Catalog tree and clicking Enable Archiving.
To enable archiving on multiple datasets at once, you can use the Enable archiving geoprocessing tool.
The geodatabase manages archiving on your dataset differently, depending on whether the dataset is versioned or not.
Enabling archiving on nonversioned data
When you enable archiving on nonversioned data, the geodatabase creates additional date attributes in the base table for that dataset. These date attributes are columns in the base table named gdb_from_date and gdb_to_date which are used to record the timestamp for the effective lifespan of the archived row. As edits are made to the dataset, these attributes are updated to maintain an historical record over time.
Enabling archiving on versioned data
Enabling archiving on versioned data is similar to registering a dataset as versioned. For each dataset for which archiving is enabled, a new archive class is created. When enabling archiving, all attributes and all rows in the DEFAULT version of the dataset or object class are copied to the archive class. The time it takes to complete the creation of the archive class depends on the size of the dataset being enabled. The archive class has the same schema as the original dataset with additional date attributes gdb_from_date and gdb_to_date to record the timestamp for the effective lifespan of the archived row and a gdb_archive_oid attribute to uniquely identify each row.
Representing the archive class as an independent feature class, as opposed to managing the historical rows in the delta table for the versioned table, means that the existence and size of the archive does not impact the efficiency of the database. Datasets can be unregistered as versioned without affecting or deleting the archive class. If a dataset is unregistered as versioned, the archive class becomes an object or feature class.
Once the dataset has had archiving enabled, all changes saved or posted to the DEFAULT version are additionally preserved in the archive class. You do not have the ability to append historical data to the archive class. Manually changing the archive class can lead to a corruption of your geodatabase archiving process.
Tips on enabling archiving:
- If a versioned dataset is registered with moving edits to base, archiving cannot be enabled. It must be unregistered and registered as versioned without the option to move edits to base.
- You cannot enable versioning on a dataset that already has archiving enabled on it. You must disable archiving, register the dataset as versioned, then re-enable archiving.
- You can only enable archiving on datasets or classes for which you are the owner.
- Enabling archiving does not traverse relationship classes. If a relationship class resides outside a feature dataset container, then you must explicitly enable archiving on the class.
- Indexes on the origin class will also be created on the archive class during the enable archive phase.
- You can view the time and date when archiving was enabled by opening the properties dialog box of a feature class or table. Right-click the object and choose properties. In the general tab under Versioning is a description of when the object was enabled for archiving.
- The default naming convention for the archive class is the name of the object class followed by an underscore and an H. For example, for an object class named Roads, the related archive class will be Roads_H.
- Archive classes are filtered by the geodatabase and are not visible in ArcCatalog and, therefore, not visible in the catalog tree. They may be added to ArcMap for viewing and analysis by using the Add Historical Archive command on the Geodatabase History toolbar.
- For optimal performance when working with the archive class, database statistics should be updated periodically based on the volume of change occurring to the archive class.
- It is possible to specify the name of the archive table as well as the from and to date attributes. For developers interested in supplying their own naming conventions for the archive table, please refer to the IArchiveregistrationinfo interface within the Software Developer Kit.
- When enabling archiving, the origin source's keyword with the prefix _ARCHIVE is searched. If such a keyword is not present, the keyword and parameter values of the data source are used.
- When you enable archiving on a nonversioned dataset, ArcGIS creates a view on the dataset that has the name <dataset name>_evw. For example, if you enable archiving on a nonversioned feature class named streets, ArcGIS creates a view on that feature class named streets_evw. If you already have a view named streets_evw, ArcGIS will drop that view. Therefore, you should rename your existing view before you enable archiving on the streets dataset.