Abstract:
A refreshable PDB clone is associated with a PDB-specific logical timestamp (LT) service that continuously reflects the LT of the most recent changes that have fully committed within the PDB clone during a refresh operation. Such an LT service is used to perform queries over the changing data in the PDB clone while the PDB clone is undergoing a refresh operation. Furthermore, a PDB-specific LT service can facilitate write operations in a standby CDB, where the standby CDB is a physical standby of a source CDB. Specifically, a standby CDB is configured with a private read-write PDB that does not replicate data from the source CDB. This private PDB may accommodate a write operation required by a query over data in the standby CDB. A PDB-specific LT service provides LTs for such a private PDB where the PDB-specific LT service provides LTs to order changes made within the private PDB.
Abstract:
Techniques are provided for using a sparse file to create a hot archive of a pluggable database of a container database. In an embodiment and while a source pluggable database is in service, a source database server creates a clone of the source pluggable database. Also while the source pluggable database is in service, the source database server creates an archive of the source pluggable database that is based on the clone. Eventually, a need arises to consume the archive. A target database server (which may also be the source database server) creates a target pluggable database based on the archive.
Abstract:
Techniques herein make and use a pluggable database archive file (AF). In an embodiment, a source database server of a source container database (SCD) inserts contents into an AF from a source pluggable database (SPD). The contents include data files from the SPD, a listing of the data files, rollback scripts, and a list of patches applied to the SPD. A target database server (TDS) of a target container database (TCD) creates a target pluggable database (TPD) based on the AF. If a patch on the list of patches does not exist in the TCD, the TDS executes the rollback scripts to adjust the TPD. In an embodiment, the TDS receives a request to access a block of a particular data file. The TDS detects, based on the listing of the data files, a position of the block within the AF. The TDS retrieves the block based on the position.
Abstract:
Embodiments provide a migration instruction that effectuates the migration of a pluggable database from a source database server instance to a destination database server instance. Upon receiving the migration instruction, the migrating pluggable database is opened at the destination instance. Connections are terminated at the source instance at a rate that is determined based on statistics maintained for one or more of: the migrating pluggable database, the source instance, the destination instance, a container database, etc. Furthermore, once the migration instruction is received, a certain amount of time is provided before the source instance flushes the dirty buffers for the migrating pluggable database from the buffer cache of the source instance. The delay in flushing dirty buffers from buffer cache allows the source instance to provide data blocks, of the migrating pluggable database, directly to the destination database server instance from the cache.
Abstract:
Techniques for common users and roles, and commonly-granted privileges and roles are described. In one approach, the DBMS of a container database allows for the creation of common roles and common users that are shared across the container database. Thus, when a common role or a common user is established, the common role or common user is propagated to each database of the container database. In another approach, the DBMS of a container database allows privileges and roles to be granted commonly or locally. When a privilege or role is granted commonly, the privilege applies in each of the databases of a container database. When a privilege or role is granted locally, the privilege applies only in the database to which the grantor of the privilege or role established a connection.
Abstract:
Techniques described herein automatically check for persistently inactive instances, based on defined metrics, and auto-archive such instances to lower-cost cloud resources. An inactivity time threshold is dynamically adjustable to a longer or shorter time period based on current load running on limited/more expensive resources to more aggressively or less aggressively archive the inactive instances, thus enabling additional active instances to run on the limited/more expensive resources and supporting more total users.
Abstract:
Embodiments minimize downtime involved in moving a PDB between CDBs by allowing read-write access to the PDB through most of the moving operation, and by transparently forwarding connection requests, for the PDB, from the source CDB to the destination CDB. The files of a source PDB are copied from a source CDB to a destination CDB, during which the source PDB may be in read-write mode. The source PDB is then closed to write operations so that changes to the source PDB cease. Another round of recovery is performed on the PDB clone, which applies all changes that have been performed on the source PDB during the copy operation and the PDB clone is opened for read and write operations. Forwarding information is registered with the source location, which information is used to automatically forward connection requests, received at the source location for the moved PDB, to the destination location.
Abstract:
Techniques are described herein for cloning a database. According to some embodiments, a database server receives a request to clone a source database. In response to receiving the request, the database server retrieves a set of one or more storage credentials for a set of one or more respective storage systems on which a set of files of the source database are stored. The set of storage credentials grant permission to the database server to create snapshot copies on the set of storage systems. The database server generates, for a target database using the set of storage credentials, a snapshot copy of each respective file in the set of files of the source database. The snapshot copy of the respective file points to the same set of one or more data blocks as the respective file until at least one of the data blocks is modified.
Abstract:
Techniques are described herein for allowing a container DBMS to impose restrictions, on a per-pluggable-database basis, on operations based on the pluggable database to which the users that request the operations belong. In one embodiment, lockdown profiles can be created and mapped to pluggable databases. Lockdown profiles specify PDB-wide restrictions on operations. The restrictions may apply to all operations of a given type, may apply to specific features, may require use of specific parameter values, etc. All users that belong to a pluggable database are restricted by the restrictions specified in the lockdown profile to which their pluggable database is mapped, unless the lockdown profile has a user-specific exemption for them. Bitmaps and/or hash tables may be used to more quickly determine, at query runtime, whether a query violates any profile-specified restrictions. Execution of queries that violate any profile-specified restrictions is prevented.
Abstract:
Techniques are provided for diverting, to cloned metadata, live access to original metadata of an application container that is being concurrently upgraded. In an embodiment, a database server stores, within an application container of an application, original metadata that defines objects for use by pluggable databases of the application. The database server receives a maintenance request to adjust the original metadata. The database server creates, in response to receiving the maintenance request, a reference container that contains cloned metadata that is a copy of the original metadata. The database server receives, during or after creating the reference container, a read request to read one of the objects. The database server concurrently performs both of: executing the maintenance request upon the original metadata, and executing the read request upon the cloned metadata of the reference container.