{"id":17130,"date":"2022-02-21T11:57:33","date_gmt":"2022-02-21T10:57:33","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/"},"modified":"2022-05-31T16:36:32","modified_gmt":"2022-05-31T14:36:32","slug":"snapshot-solutions-with-oracle-standard-edition-se2","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/","title":{"rendered":"Snapshot solutions with Oracle Standard Edition SE2"},"content":{"rendered":"<p>Would you like to quickly provide your engineering team with a real production environment database with updated data to develop new features? Does your operational team need a copy of the production database to test a new release or a new patch? \u201cEasy\u201d would you say. \u201cLet\u2019s do a clone and duplicate the production database with RMAN!\u201d. Yes, but would you take the same direction if your production database size makes more than a few Terra Bytes? In this article, we will see what interesting added value offers the snapshot technology and compare the solutions available for Oracle Standard Edition SE2 : PDB snapshot, dbvisit snapshot and ACFS snapshot.<\/p>\n<p><!--more--><\/p>\n<h3>What is a snapshot?<\/h3>\n<p>A snapshot refers to a system\u2019s state at a specific point in time. To do so, the snapshot will need to store the previous version of a modified block. The snapshot has a list of pointers and knows the location of each block.<\/p>\n<p>There are 2 well-known snapshot methods. The copy-on-write (CoW) method, mostly used, will copy the blocks that are modified. So only modified blocks will require additional storage on the disk. In the example (see following screenshot), a snapshot is created on the source file system having initially at snapshot creation A, B and C blocks. When the B block is deleted by the source, the B block will be copied in the snapshot reserved space in order to make the information still available for the snapshot. The B source block will be deleted. The same process will happen when the source will give an update on the C block. The old version will be copied in the snapshot reserved area. For new information created by the source, refer the D block, only the source will have access to it. For each modified block there will be 3 I\/O : 1 read I\/O and 2 writes I\/O.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg\" alt=\"\" width=\"300\" height=\"116\" class=\"alignleft size-medium wp-image-54629\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<p>Another method called redirect-on-write (RoW) is also using pointers. The difference resides in the fact that for each block modification the new information is not updated in the current block but will be written in a new block and the pointer will be updated. So in case of write done by the source in the parent block, only 1 write I\/O is needed. This might give an advantage to the previous CoW method. But several drawbacks will make this method more complex. The deletion of the snapshot implies the data from the snapshot storage to be reconciled back into the source volume adding some additional fragmentation problem. Also, the method will be more complicated to be handled if having several snapshots on the source data. This is described in the next example screenshot where the B block is deleted by the source but kept available for the snapshot and all updated information or new information on the parent block will be inserted in the new blocks made available to the source only.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_2.jpg\" alt=\"\" width=\"300\" height=\"108\" class=\"alignleft size-medium wp-image-54633\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<h3>What is a snapshot database for?<\/h3>\n<p>A snapshot database will be a point-in-time copy of a database. A snapshot database can be used in READ\/ONLY mode and used to run any reporting application or other query execution, unloading the master production database. The snapshot database can also be opened in READ\/WRITE mode. This will give the opportunity to test any new application version or patch, database upgrade or patching and providing a real copy of the database to the engineering team to create further developing. This will be possible without any impact and changes made on the production database. Finally, the snapshot could also be used to easily restore data on the source.<\/p>\n<p>The snapshot database is instantaneously created and, knowing only the modified blocks are copied, will not take large amount of disk space. These two advantages, short time creation and few space requirement, make snapshot database a powerful tool. Snapshot databases are not intended to live forever. More modification on the source master database and\/or on the snapshot will be done, more disk space will be required.<\/p>\n<h3>PDB snapshot<\/h3>\n<p>Multitenant architecture provides possibilities in the Enterprise Edition but also in the Standard Edition. We will be able to create and use PDB snapshots on Standard Edition SE2 in the limit of maximum 3 PDBs for Oracle 19c, including master PDB, cloned PDB and snapshot PDB. There are mainly two instance parameters we need to pay attention to.<\/p>\n<p>The first one is the clonedb parameter. In case the database is deployed on a storage with specialized storage-based snapshot technology as SunZFS, NetApp or ACFS, the parameter needs to be set to false. The master PDB stays opened READ\/WRITE. In case the database is deployed on simple and standard file systems, which might be most of the case, the clonedb parameter should be set with the true value. The source file system still needs to support sparseness. This would be the case for ext4 or xfs file system, but not the case for ext3 or ASM. The sparse file will contain all the changes made to the blocks when data are written to the snapshot database and will maintain a pointer to the parent file for accessing the unchanged data.  Unfortunately, in this case, the source master PDB can only be opened READ\/ONLY. Leaving the PDB1 opened read write for a multitenant database using a LVM xfs file system as database storage (clonedb=true) will result in an ORA-65081 error :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,9]\">\nSQL&gt; show pdbs\n\n    CON_ID CON_NAME                      OPEN MODE  RESTRICTED\n---------- ----------------------------- ---------- ----------\n         2 PDB$SEED                      READ ONLY  NO\n         3 PDB1                          READ WRITE NO\n         4 PDB2                          READ WRITE NO\n\nSQL&gt; create pluggable database PDB1snap1 from PDB1 snapshot copy;\ncreate pluggable database PDB1snap1 from PDB1 snapshot copy\n*\nERROR at line 1:\nORA-65081: database or pluggable database is not open in read only mode\n<\/pre>\n<p><\/br> <\/p>\n<p>The other important parameter for PDB snapshot is the instance parameter clonedb_dir. This parameter came with Oracle R12.2 and will mention the directory where the bitmap file should be saved. By default, the bitmap file will be stored in  $ORACLE_HOME\/dbs. This bitmap file, also often called snapshot metadata file, will record the block pointers list.<\/p>\n<p>Starting PDB1 in read only mode will make possible the creation of a PDB1snap1:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,8,12,16,20,24]\">\nSQL&gt; show parameter clone\n\nNAME                TYPE        VALUE\n------------------- ----------- ------------------------------\nclonedb             boolean     TRUE\nclonedb_dir         string      \/u92\/app\/oracle\/oradata\/snap\n\nSQL&gt; alter pluggable database PDB1 close immediate;\n\nPluggable database altered.\n\nSQL&gt; alter pluggable database PDB1 open read only;\n\nPluggable database altered.\n\nSQL&gt; create pluggable database PDB1snap1 from PDB1 snapshot copy;\n\nPluggable database created.\n\nSQL&gt; alter pluggable database PDB1snap1 open;\n\nPluggable database altered.\n\nSQL&gt; select con_id, name, open_mode, total_size\/1024\/1024\/1024 GB from v$pdbs;\n\n    CON_ID NAME       OPEN_MODE          GB\n---------- ---------- ---------- ----------\n         2 PDB$SEED   READ ONLY  1.00292969\n         3 PDB1       READ ONLY  1.05664063\n         4 PDB2       READ WRITE 1.05664063\n         5 PDB1SNAP1  READ WRITE 1.05664063\n<\/pre>\n<p><\/br><\/p>\n<p>A bitmap file will be created :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\nSQL&gt; ! ls -ltrh \/u92\/app\/oracle\/oradata\/snap\ntotal 8.0K\n-rw-r-----. 1 oracle oinstall 2.1M Jul 12 09:03 CDB19CSE_3197379858_bitmap.dbf\n<\/pre>\n<p><\/br><\/p>\n<p>We can see that the PDB source PDB1 have a size of 1.1 GB :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,5]\">\nSQL&gt; select 'du -ha \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/' || GUID || '\/datafile\/' from dba_pdbs where pdb_name='PDB1';\n\ndu -ha \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n\nSQL&gt; !du -h \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n1.1G\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n<\/pre>\n<p><\/br><\/p>\n<p>And the snapshot PDB, PDB1snap1, will take only 2.2 MB on the disk having a parse file for each parent file :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,5,8]\">\nSQL&gt; select 'du -ha \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/' || GUID || '\/datafile\/' from dba_pdbs where pdb_name='PDB1SNAP1';\n\ndu -ha \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/\n\nSQL&gt; !du -h \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/\n2.2M\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/\n\nSQL&gt; !du -ha \/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/\n16K\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/o1_mf_users_jgqt9zf0_.dbf\n676K\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/o1_mf_undotbs1_jgqt9zf0_.dbf\n1.3M\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/o1_mf_system_jgqt9zdm_.dbf\n220K\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/o1_mf_sysaux_jgqt9zdz_.dbf\n56K\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/o1_mf_temp_jgqt9zf0_.dbf\n2.2M\t\/u02\/app\/oracle\/oradata\/cdb19cse\/CDB19CSE_SITE1\/C6E8AD2215380DB2E0537816A8C04875\/datafile\/\n<\/pre>\n<p><\/br><\/p>\n<p>Creating the PDB snapshot took 1 second in the lab for a source PDB of 1 GB. This confirms one of the real advantages of using snapshot. We can then, of course, drop the PDB snapshot :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,5]\">\nSQL&gt; alter pluggable database PDB1snap1 close;\n\nPluggable database altered.\n\nSQL&gt; drop pluggable database PDB1snap1 including datafiles;\n\nPluggable database dropped.\n<\/pre>\n<p><\/br><\/p>\n<p>And we would need to follow Oracle Doc ID 2419236.1 (Unable to Open the &#8216;Source PDB&#8217; in &#8216;READ WRITE&#8217; Mode After Dropping its &#8216;Snapshot Copy PDB&#8217;. It fails with ORA-01114, ORA-01110 and ORA-27091) to reopen the source PDB, PDB1, in READ\/WRITE mode. In case we would use a disaster recover solution as dbvisit, the PDB snapshot created on the primary database will induced a normal clone PDB to be created on the standby side.<\/p>\n<p>We can then easily understand the pros and cons of using PDB snapshot :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_3.jpg\" alt=\"\" width=\"300\" height=\"144\" class=\"alignleft size-medium wp-image-54637\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<h3>dbvisit snapshot<\/h3>\n<p>dbvisit standby is a well-known disaster recovery solution for Oracle Standard Edition. The system is composed of a primary and at least one standby database. The changes are applied from the primary on the standby databases through the archived logs, offering possibilities for manual switchover (in case of planned maintenance operation) or failover (in case of disaster). The standby database is started in MOUNT mode and available for recovery only. We could start the standby database in READ\/ONLY mode, be able to execute reporting query, but no new changes from the primary can be applied to it during that time. Here is where the new dbvisit snapshot feature, dbvisit snapshot, is going to provide much advantages. The dbvisit snapshot will be a copy of the standby database at a particular point in time, using CoW technology and based on LVM snapshots. The snapshot database can be opened READ\/ONLY or READ\/WRITE, and offers any reporting or application development possibility. Snapshot database can also be used to test a real failover without impacting the solution: testing a failover implies to back up the standby database first or to create it after wise (reinstate is not possible on a Standard Edition as flashback option is not available). This feature came with version dbvisit 9 as an additional option to pay and is now fully included in dbvisit 10 version. In case the standby database does not meet the requirement to create dbvisit snapshot or in order to offload the standby database, it is possible to use a cascaded standby database. The snapshot can be created from the console (GUI) or from command line (CLI), albeit dbvisit recommendation is to emphasize the console. <\/p>\n<p>There are a few requirements using snapshot with dbvisit:<\/p>\n<ul>\n<li>Only linux is currently supported<\/li>\n<li>Database files needs to be located on a single LVM file system<\/li>\n<li>The server needs to have enough RAM to support the snapshot SGA<\/li>\n<li>Sudo needs to be configured for oracle user to have permissions to run root commands (lvcreate, lvremove, lvs and vgs)<\/li>\n<li>Enough space in DBVISIT_BASE home directory is needed to record the snapshot metadata<\/li>\n<\/ul>\n<p>dbvisit offers 2 snapshot options: reporting replicas and test\/dev snapshots. With reporting replicas feature, the user feels having a logical database been regularly updated. New READ\/ONLY or READ\/WRITE snapshots will be automatically created, providing frequent up to date copies of the primary database. We can configure a logical container with minimum 2 and maximal 4 snapshots. This solution will be mainly used for reporting.<\/p>\n<p>In our example with a container of 2 snapshots, the standby database is updated every 10 minutes with the primary database :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_4-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_4.jpg\" alt=\"\" width=\"300\" height=\"116\" class=\"alignleft size-medium wp-image-54641\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<p>A new snapshot is created every 20 minutes on the standby database providing the latest transactions to the user. The newly created snapshot will be registered on the listener with a designed service name, in our example orasnap. All new connections using orasnap service name will go through the most recent snapshot. As we are using a container of 2 snapshots, the snap1 will be deleted as soon as the third snapshot will be created and made available. We will keep the 2 last more recent snapshots. The running connection using snap1 will be killed, giving here, 40 minutes for the query to run.<\/p>\n<p>Following screenshot gives a real example, with a creation interval of 11 minutes and an Oracle Service Name orasnap. Pay attention of the output Total Current Snapshots. It will show a total from 3 of 2 because we are using a container of 2 snapshots and snap001 is in the process to be created.<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_5.jpg\" alt=\"\" width=\"300\" height=\"263\" class=\"alignleft size-medium wp-image-54644\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<p>Once it is done, snap002 will be removed. There will be then 2 snapshots left available :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_6.jpg\" alt=\"\" width=\"300\" height=\"236\" class=\"alignleft size-medium wp-image-54646\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<p>It is important to know that during the time the snapshot database is created, the standby database needs be opened in READ\/ONLY mode, making no apply from the primary possible during that time. The other option available is to create manual snapshots. The creation of snap002 manual snapshots on cdb19cse_SITE2 standby database has taken no more than 2 minutes and 16 seconds on the same lab :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,15,20,31,44]\">\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] cdb19cse\n********* dbi services Ltd. *********\nSTATUS                 : MOUNTED\nDB_UNIQUE_NAME         : cdb19cse_SITE2\nOPEN_MODE              : MOUNTED\nLOG_MODE               : ARCHIVELOG\nDATABASE_ROLE          : PHYSICAL STANDBY\nFLASHBACK_ON           : NO\nFORCE_LOGGING          : YES\nVERSION                : 19.10.0.0.0\nCDB Enabled            : YES\nList PDB(s)    MOUNTED : PDB$SEED, PDB1, PDB2\n*************************************\n\noracle@dbv2:\/home\/oracle\/ [cdb19cse (CDB$ROOT)] snap002\n********* dbi services Ltd. *********\nSTATUS          : STOPPED\n*************************************\n\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] cat \/u01\/app\/dbvisit\/standby\/conf\/cdb19cse_snap002.json\n{\n  \"pfile\" : {\n    \"sga_target\" : \"650M\"\n  },\n  \"permission\" : \"w\",\n  \"ssize\" : \"1552M\",\n  \"retry_sec\" : 60,\n  \"activate\" : \"Y\"\n}\n\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] \/u01\/app\/dbvisit\/standby\/dbvsnap -d cdb19cse -csnap -sname snap002 -j cdb19cse_snap002.json\n=============================================================\nDbvisit Standby Database Technology (10.0.0_1_g9b8b5f20) (pid 21359)\nDbvisit Snapshot (pid 21359)\nDBVSNAP started on dbv2: Mon Jul 12 13:54:27 2021\n=============================================================\n\nSnapshot snap002 created\n\n=============================================================\nDBVSNAP ended on dbv2: Mon Jul 12 13:55:20 2021\n=============================================================\n\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] snap002\n********* dbi services Ltd. *********\nSTATUS                 : OPEN\nDB_UNIQUE_NAME         : snap002\nOPEN_MODE              : READ WRITE\nLOG_MODE               : ARCHIVELOG\nDATABASE_ROLE          : PRIMARY\nFLASHBACK_ON           : NO\nFORCE_LOGGING          : NO\nVERSION                : 19.10.0.0.0\nCDB Enabled            : YES\nList PDB(s)  READ ONLY : PDB$SEED\nList PDB(s) READ WRITE : PDB1, PDB2\n*************************************\n<\/pre>\n<p><\/br><\/p>\n<p>There are a few pros and cons using dbvisit snapshot as solution :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_7.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_7.jpg\" alt=\"\" width=\"300\" height=\"193\" class=\"alignleft size-medium wp-image-54651\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<h3>Using PDB snapshot with dbvisit snapshot<\/h3>\n<p>The idea would be to overlap both dbvisit snapshot solution with PDB snapshot. For situation where the master PDB needs to be started in READ\/ONLY Mode, and to avoid cloning the master PDB (when the environment is on production, master PDB needs to be started in READ\/WRITE mode), we could consider using a dbvisit snapshot as master READ\/ONLY. This will have the main advantage not to impact the primary production database and also use few storage on disk. All PDBs from cdb19cse_SITE1 can stay opened READ\/WRITE and we will use the PDB1 from the recent created snapshot, SNAP002, as master READ\/ONLY in order to create a PDB snapshot.<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,3,7,11,19,23,27]\">\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] sqh\n\nSQL&gt; alter pluggable database PDB1 close immediate;\n\nPluggable database altered.\n\nSQL&gt; alter pluggable database PDB1 open read only;\n\nPluggable database altered.\n\nSQL&gt; show pdbs\n\n    CON_ID CON_NAME                      OPEN MODE  RESTRICTED\n---------- ----------------------------- ---------- ----------\n         2 PDB$SEED                      READ ONLY  NO\n         3 PDB1                          READ ONLY  NO\n         4 PDB2                          READ WRITE NO\n\nSQL&gt; create pluggable database PDB1snap1 from PDB1 snapshot copy;\n\nPluggable database created.\n\nSQL&gt; alter pluggable database PDB1snap1 open;\n\nPluggable database altered.\n\nSQL&gt; show pdbs\n\n    CON_ID CON_NAME                      OPEN MODE  RESTRICTED\n---------- ----------------------------- ---------- ----------\n         2 PDB$SEED                      READ ONLY  NO\n         3 PDB1                          READ ONLY  NO\n         4 PDB2                          READ WRITE NO\n         5 PDB1SNAP1                     READ WRITE NO\n<\/pre>\n<p><\/br><\/p>\n<p>If we compare the various sizing, we can see that dbvisit snapshot is only taking a few Mbytes, 1 MB :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] du -sh \/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/SNAP002\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n1.0M\t\/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/SNAP002\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n<\/pre>\n<p><\/br><\/p>\n<p>On its side, the PDB snapshot will only take a few Kbytes, 164 KB :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] du -sh \/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/SNAP002\/C6ED67109F386285E0537916A8C0D80C\/datafile\/\n164K\t\/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/SNAP002\/C6ED67109F386285E0537916A8C0D80C\/datafile\/\n<\/pre>\n<p><\/br><\/p>\n<p>When the PDB master size is 1.1 GB :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1]\">\noracle@dbv2:\/home\/oracle\/ [snap002 (CDB$ROOT)] du -sh \/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/CDB19CSE_SITE2\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n1.1G\t\/u01\/app\/dbvisit\/standby\/snap\/cdb19cse\/snap002\/CDB19CSE_SITE2\/BD987DE079D833A4E0537816A8C0DF5D\/datafile\/\n<\/pre>\n<p><\/br><\/p>\n<p>The pros and cons of using this overlapping solution is :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_8.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_8.jpg\" alt=\"\" width=\"300\" height=\"174\" class=\"alignleft size-medium wp-image-54656\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n<h3>ACFS snapshot<\/h3>\n<p>With standard edition we can also use snapshot on ACFS File System available with Oracle Restart systems. These are online, READ\/ONLY or READ\/WRITE point in time copy of Oracle ACFS File System. This solution is using CoW technology. The snapshots are written in the .ACFS\/snaps\/ directory.<\/p>\n<p>The command to create, query and delete ACFS snapshot are quite user friendly :<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1\">\nacfsutil snap create \u2013r \u2013w \u2013p  \n\nacfsutil snap info \u2013t  \n\nacfsutil snap delete  \n<\/pre>\n<p><\/br><\/p>\n<p>On the other side creating a snapshot database with ACFS might be a more complex process implying to generate the spfile and the control file, to adapt them, to create the ACFS snapshot after putting the master database in begin backup, to recover the database with last archived logs before finally registering the new snapshot database in the grid infrastructure. The pros and cons of using ACFS snapshot is :<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_9.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_9.jpg\" alt=\"\" width=\"300\" height=\"141\" class=\"alignleft size-medium wp-image-54658\" \/><\/a><br \/>\n<\/br><br \/>\n<\/br><br \/>\n<\/br><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Would you like to quickly provide your engineering team with a real production environment database with updated data to develop new features? Does your operational team need a copy of the production database to test a new release or a new patch? \u201cEasy\u201d would you say. \u201cLet\u2019s do a clone and duplicate the production database [&hellip;]<\/p>\n","protected":false},"author":48,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[59],"tags":[372,66,633,237],"type_dbi":[],"class_list":["post-17130","post","type-post","status-publish","format-standard","hentry","category-oracle","tag-dbvisit","tag-pdb","tag-se","tag-snapshot"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Snapshot solutions with Oracle Standard Edition SE2 - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Snapshot solutions with Oracle Standard Edition SE2\" \/>\n<meta property=\"og:description\" content=\"Would you like to quickly provide your engineering team with a real production environment database with updated data to develop new features? Does your operational team need a copy of the production database to test a new release or a new patch? \u201cEasy\u201d would you say. \u201cLet\u2019s do a clone and duplicate the production database [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2022-02-21T10:57:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-31T14:36:32+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg\" \/>\n<meta name=\"author\" content=\"Marc Wagner\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Marc Wagner\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/\"},\"author\":{\"name\":\"Marc Wagner\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/225d9884b8467ead9a872823acb14628\"},\"headline\":\"Snapshot solutions with Oracle Standard Edition SE2\",\"datePublished\":\"2022-02-21T10:57:33+00:00\",\"dateModified\":\"2022-05-31T14:36:32+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/\"},\"wordCount\":2122,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/02\\\/Bild_1.jpg\",\"keywords\":[\"dbvisit\",\"PDB\",\"SE\",\"Snapshot\"],\"articleSection\":[\"Oracle\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/\",\"name\":\"Snapshot solutions with Oracle Standard Edition SE2 - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/02\\\/Bild_1.jpg\",\"datePublished\":\"2022-02-21T10:57:33+00:00\",\"dateModified\":\"2022-05-31T14:36:32+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/225d9884b8467ead9a872823acb14628\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/02\\\/Bild_1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/02\\\/Bild_1.jpg\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/snapshot-solutions-with-oracle-standard-edition-se2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Snapshot solutions with Oracle Standard Edition SE2\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/225d9884b8467ead9a872823acb14628\",\"name\":\"Marc Wagner\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g\",\"caption\":\"Marc Wagner\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/marc-wagner\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Snapshot solutions with Oracle Standard Edition SE2 - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/","og_locale":"en_US","og_type":"article","og_title":"Snapshot solutions with Oracle Standard Edition SE2","og_description":"Would you like to quickly provide your engineering team with a real production environment database with updated data to develop new features? Does your operational team need a copy of the production database to test a new release or a new patch? \u201cEasy\u201d would you say. \u201cLet\u2019s do a clone and duplicate the production database [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/","og_site_name":"dbi Blog","article_published_time":"2022-02-21T10:57:33+00:00","article_modified_time":"2022-05-31T14:36:32+00:00","og_image":[{"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg","type":"","width":"","height":""}],"author":"Marc Wagner","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Marc Wagner","Est. reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/"},"author":{"name":"Marc Wagner","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"headline":"Snapshot solutions with Oracle Standard Edition SE2","datePublished":"2022-02-21T10:57:33+00:00","dateModified":"2022-05-31T14:36:32+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/"},"wordCount":2122,"commentCount":0,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg","keywords":["dbvisit","PDB","SE","Snapshot"],"articleSection":["Oracle"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/","url":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/","name":"Snapshot solutions with Oracle Standard Edition SE2 - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg","datePublished":"2022-02-21T10:57:33+00:00","dateModified":"2022-05-31T14:36:32+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/02\/Bild_1.jpg"},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/snapshot-solutions-with-oracle-standard-edition-se2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Snapshot solutions with Oracle Standard Edition SE2"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/225d9884b8467ead9a872823acb14628","name":"Marc Wagner","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/a873cc6e7fbdbbcbdbcaf5dbded14ad9a77b2ec2c3e03b4d724ed33d35d5f328?s=96&d=mm&r=g","caption":"Marc Wagner"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/marc-wagner\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17130","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/48"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=17130"}],"version-history":[{"count":1,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17130\/revisions"}],"predecessor-version":[{"id":17131,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/17130\/revisions\/17131"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=17130"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=17130"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=17130"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=17130"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}