{"id":1243,"date":"2015-11-26T23:20:37","date_gmt":"2015-11-26T21:20:37","guid":{"rendered":"http:\/\/www.ludovicocaldara.net\/dba\/?p=1243"},"modified":"2020-08-18T16:29:00","modified_gmt":"2020-08-18T14:29:00","slug":"oracle-database-on-acfs-a-perfect-marriage","status":"publish","type":"post","link":"https:\/\/www.ludovicocaldara.net\/dba\/oracle-database-on-acfs-a-perfect-marriage\/","title":{"rendered":"Oracle Database on ACFS: a perfect marriage?"},"content":{"rendered":"<p>Update: <a href=\"http:\/\/www.tech15.ukoug.org\/default.asp?p=12861&amp;dlgact=shwprs&amp;prs_prsid=11371&amp;day_dayid=95\">I will give this presentation at UKOUG Tech15, Wed 9 December at 14:30.<\/a><\/p>\n<p>This presentation has had a very poor score in selections for conferences (no OOW, no DOAG) but people liked it very much at Paris Oracle Meetup.\u00a0 The Database on ACFS is mainstream now, thanks to the new ODA releases. Having some knowledge about why and how you should run\u00a0(not) Databases on ACFS is definitely worth a read.<\/p>\n<p><strong>Slides<\/strong><\/p>\n<p><iframe loading=\"lazy\" width=\"595\" height=\"485\" style=\"border: 1px solid #CCC; border-width: 1px; margin-bottom: 5px; max-width: 100%;\" src=\"\/\/www.slideshare.net\/slideshow\/embed_code\/key\/lD6ziurjzGU1I6\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" allowfullscreen=\"allowfullscreen\"> <\/iframe><\/p>\n<p><strong>Demo 1 recording<\/strong><\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/jyHgpw2ZI5E\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><strong>Demo 2 recording<\/strong><\/p>\n<p><iframe loading=\"lazy\" width=\"560\" height=\"315\" src=\"https:\/\/www.youtube.com\/embed\/PImCxTAb4cc\" frameborder=\"0\" allowfullscreen><\/iframe><\/p>\n<p><strong>Demo script (DB ACFS clone from Standby Database)<\/strong><\/p>\n<pre class=\"lang:sh decode:true \">#!\/bin\/bash\r\n####################\r\n# create the clone #\r\n####################\r\n\r\nset -x\r\n\r\nNUM=`echo $$ | cut -c 1-4`\r\nexport NEWNAME=${1:-SN$NUM}\r\n\r\ncat &lt;&lt;EOF \r\n################################################\r\n################################################\r\n##\r\n## CLONING DATABASE USING NEW SID: $NEWNAME\r\n##\r\n################################################\r\n################################################\r\n\r\nEOF\r\n\r\nexport ORACLE_SID=ACFSDB_1\r\n\r\ndgmgrl &lt;&lt;EOF\r\nconnect sys\/racattack\r\nedit database ACFSDB set state=\"APPLY-OFF\";\r\nexit\r\nEOF\r\n\r\nacfsutil snap create -w $NEWNAME \/u02\r\n\r\ndgmgrl &lt;&lt;EOF\r\nconnect sys\/racattack\r\nedit database ACFSDB set state=\"APPLY-ON\";\r\nexit\r\nEOF\r\n\r\ncd \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\r\n\r\nsqlplus \/ as sysdba &lt;&lt;EOF\r\nalter database backup controlfile to trace as '\/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control.trc' reuse resetlogs;\r\ncreate pfile='\/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora' from spfile;\r\nexit\r\nEOF\r\n\r\nsed -i -e \"s\/u02\\\/ACFSDB\\\/\/u02\\\/.ACFS\\\/snaps\\\/$NEWNAME\\\/ACFSDB\\\/\/g\" \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control.trc\r\nsed -i -e \"s\/CREATE CONTROLFILE.*$\/CREATE CONTROLFILE REUSE SET DATABASE \\\"$NEWNAME\\\" RESETLOGS FORCE LOGGING NOARCHIVELOG\/\" \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control.trc\r\nrm \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/ACFSDB\/fast_recovery_area\/ACFSDB\/controlfile\/*\r\nrm \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/ACFSDB\/controlfile\/*\r\nsed -i '\/^ACFS.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\n\r\nsed -i -e \"s\/u02\\\/ACFSDB\\\/\/u02\\\/.ACFS\\\/snaps\\\/$NEWNAME\\\/ACFSDB\\\/\/g\" \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\n\r\nsed -i '\/^\\*\\.db_name.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.db_unique_name.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.dispatchers.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.audit_file_dest.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.fal_server.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.log_archive_config.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.log_archive_dest_1.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.memory_target.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.service_names.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\nsed -i '\/^\\*\\.cluster_database.*$\/d' \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora\r\n\r\n\r\n#find \/u02\/.ACFS\/snaps\/SNAP1\/ACFSDB\/ACFSDB\/fast_recovery_area\/ACFSDB\/archivelog\/ -type f -exec mv {} \/u02\/.ACFS\/snaps\/SNAP1\/ACFSDB\/archivelog\/ \\;\r\n\r\nmkdir -p $ORACLE_BASE\/admin\/$NEWNAME\/adump\r\n\r\ncat  &gt;&gt;\/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora &lt;&lt;EOF\r\n*.audit_file_dest='$ORACLE_BASE\/admin\/$NEWNAME\/adump'\r\n*.db_name='$NEWNAME'\r\n*.db_unique_name='$NEWNAME'\r\n*.dispatchers='(PROTOCOL=TCP) (SERVICE=${NEWNAME}XDB)'\r\n*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST'\r\n*.sga_target=1900M\r\n$NEWNAME.instance_number=1\r\n$NEWNAME.undo_tablespace=UNDOTBS1\r\n*.service_names='$NEWNAME'\r\n*.cluster_database=false\r\nEOF\r\n\r\nexport ORACLE_SID=$NEWNAME\r\n\r\nhead -n $((`grep -n ^RECOVER \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control.trc | awk -F: '{print $1}'`-2)) \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control.trc &gt; \/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control1.trc\r\n\r\n \r\nsqlplus \/ as sysdba &lt;&lt;EOF\r\ncreate spfile from pfile='\/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/init$NEWNAME.ora';\r\n@\/u02\/.ACFS\/snaps\/$NEWNAME\/ACFSDB\/control1.trc\r\n--recover automatic database using backup controlfile until cancel;\r\n--CANCEL\r\nalter database open resetlogs;\r\nalter tablespace temp add tempfile size 50M ;\r\nEOF\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Comments are, as always, very appreciated \ud83d\ude42<\/p>\n<p>&#8212;<\/p>\n<p>Ludo<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Update: I will give this presentation at UKOUG Tech15, Wed 9 December at 14:30. This presentation has had a very poor score in selections for conferences (no OOW, no DOAG) but people liked it very much at Paris Oracle Meetup.\u00a0 &hellip; <a href=\"https:\/\/www.ludovicocaldara.net\/dba\/oracle-database-on-acfs-a-perfect-marriage\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[327,326,3,52,330,132],"tags":[254,40,290,75,286,255],"class_list":["post-1243","post","type-post","status-publish","format-standard","hentry","category-oracle-maa","category-oracle","category-oracledb","category-12c","category-oracle-inst-upg","category-triblog","tag-acfs","tag-asm","tag-db12c","tag-oracle-database-12c","tag-perf","tag-snapshots"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/1243","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/comments?post=1243"}],"version-history":[{"count":7,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/1243\/revisions"}],"predecessor-version":[{"id":1256,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/posts\/1243\/revisions\/1256"}],"wp:attachment":[{"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/media?parent=1243"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/categories?post=1243"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ludovicocaldara.net\/dba\/wp-json\/wp\/v2\/tags?post=1243"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}