{"id":11,"date":"2014-08-24T09:28:57","date_gmt":"2014-08-24T09:28:57","guid":{"rendered":"http:\/\/oradistrict.com\/?p=11"},"modified":"2014-10-28T08:30:32","modified_gmt":"2014-10-28T08:30:32","slug":"test","status":"publish","type":"post","link":"https:\/\/oradistrict.com\/?p=11","title":{"rendered":"Oracle Database 12c Installation"},"content":{"rendered":"<h1>Oracle Database 12c &#8211; install on Virtual Box with Oracle Linux 6.5 (64 bit)<\/h1>\n<p>This article is a father of all others you can find on this page. I&#8217;m going to start with this basic tutorial for those, who are not ready to start their own virtual machine from scratch or feel unsure, how to do it. From the other side, advanced users can refer to this tutorial as a starting point in other articles. This way there is a chance to get almost the same environment if you would like to test commands for yourself.<\/p>\n<h2>Introduction<\/h2>\n<p>Starting point for this article is presented in a table below.<\/p>\n<table class=\"table table-hover table-striped\">\n<tr>\n<th>Attribute<\/th>\n<th>Value<\/th>\n<\/tr>\n<tr>\n<td>Install media<\/td>\n<td>\n    Virtual Box 4.3 &#8211; Virtualization software<br \/>\n\t(VirtualBox-4.3.10-93012-Win.exe<br \/>\n\twith Oracle_VM_VirtualBox_Extension_Pack-4.3.10-93012.vbox-extpack)<br \/>\n\tYou can use latest version you can find on Oracle site<\/p>\n<hr>\n<p>\tOracle Linux 6.5 (64 bit for x86)<br \/>\n\tV41362-01.iso<\/p>\n<hr>\n<p>\tOracle Database 12.1.0.2.0 (64 bit for Linux 6.5)<br \/>\n\tp17694377_121020_Linux-x86-64_1of8.zip<br \/>\n\tp17694377_121020_Linux-x86-64_2of8.zip<br \/>\n\tp17694377_121020_Linux-x86-64_3of8.zip<br \/>\n\tp17694377_121020_Linux-x86-64_4of8.zip<br \/>\t\n\t<\/td>\n<\/tr>\n<tr>\n<td>Virtual Box Settings<\/td>\n<td>\n\tGeneral: Linux \/ Oracle (64 bit)<br \/>\n\tSystem: Base Memory 10GB, Chipset ICH9, Enable I\/O Apic, Hardware Clock in UTC Time, 2 CPU 100%, Acceleration VT-x\/AMD-V + Nested Paging<br \/>\n\tDisplay: Video Memory 32MB<br \/>\n\tStorage: Controller SATA with 5 disks, each datafile allocated dynamically<\/p>\n<ul>\n<li>sda &#8211; 32 GB for root filesystem<\/li>\n<li>sdb &#8211; 40 GB for Oracle Homes<\/li>\n<li>sdc &#8211; 40 GB for Oracle Database files<\/li>\n<li>sdd &#8211; 64 GB for FRA<\/li>\n<li>sde &#8211; 64 GB for ASM<\/li>\n<\/ul>\n<p>\tNetwork: Host-only Adapter Intel PRO\/1000 and Cable Connected<br \/>\n\tShared directories: Add directory with your Oracle install media to list, leave default checkers.\n\t<\/td>\n<\/table>\n<h2>Operating system installation<\/h2>\n<p>Follow those steps to install Oracle Linux 6.5 in Minimal configuration.<\/p>\n<p class=\"lead\">Booting from DVD and starting configuration<\/p>\n<p>On each screen you can see options which I usually choose for fresh install.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_34_38.PNG\" alt=\"Image\" \/><\/p>\n<p>Boot screen, take first option.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_35_38.PNG\" alt=\"Image\" \/><\/p>\n<p>Skip media test.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_36_00.PNG\" alt=\"Image\" \/><\/p>\n<p>Starting screen.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_36_09.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose your language.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_36_25.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose keyboard set.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_36_37.PNG\" alt=\"Image\" \/><\/p>\n<p>Take first option. If you need to use second option it&#8217;s not too late to find other tutorial.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_36_50.PNG\" alt=\"Image\" \/><\/p>\n<p>It&#8217;s fresh installation &#8211; we discard any data that reside on disks (I assume, that disks are empty anyway).<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_37_07.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose your host name &#8211; for me it&#8217;s odone from Oracle Database ONE &#8211; with time you use acronyms for everything just like Oracle does. Leave network configuration as it is.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_37_45.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose your time zone.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_38_00.PNG\" alt=\"Image\" \/><\/p>\n<p>Input root password. Don&#8217;t forget to memorize it or just put in a plain text file close to your Virtual Machine directory. This way you won&#8217;t loose it by accident.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_38_09.PNG\" alt=\"Image\" \/><\/p>\n<p>As usually for all my Virtual Machines &#8211; password is not so complicated &#8211; this way I can use it across all my test Virtual Machines.<\/p>\n<h3>Storage setup<\/h3>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_38_22.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose Custom Layout &#8211; we&#8217;ll create really basic configuration for disks.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_19_56.PNG\" alt=\"Image\" \/><\/p>\n<p>We&#8217;ve got 5 disks available. In this wizard we&#8217;ll create root disk only for operating system.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_20_29.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose standard partition.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_20_58.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose mount point \/boot, ext4 filesystem and check sda disk. Size of 512 MB should be sufficient even for upgrades. Force to be a primary partition.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_22_17.PNG\" alt=\"Image\" \/><\/p>\n<p>Create another partition &#8211; select Free space on sda disk and hit Create button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_22_30.PNG\" alt=\"Image\" \/><\/p>\n<p>You&#8217;ll see Create Storage window again. Choose LVM Physical Volume.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_23_17.PNG\" alt=\"Image\" \/><\/p>\n<p>To use LVM you need to create physical device first and than slice it with logical volumes. Choose Fill to maximum allowable size to use all free space on sda that left after creating \/boot partition. Force to be a primary partition.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_23_49.PNG\" alt=\"Image\" \/><\/p>\n<p>sda disk is now sliced into two partitions &#8211; \/boot and physical volume for LVM. Select sda2 partitiona and hit Create button again.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_23_57.PNG\" alt=\"Image\" \/><\/p>\n<p>You can see that radio button for LVM Volume Group is enabled (end the only one available in this situation). Hit create button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_24_48.PNG\" alt=\"Image\" \/><\/p>\n<p>Now we have new window specially for LVM management. Change Volume Group Name to vg_root and leave default value of 4 MB for Physical Extend size &#8211; this option is responsible for your logical volumes allocation. Smaller chunks are right for smaller volume groups, bigger chunks for big files and bigger partitions on LVM. Hit add button to add logical volume on vg_root volume group.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_26_30.PNG\" alt=\"Image\" \/><\/p>\n<p>Create swap partition (your page space\/virtual memory area on your hard drive). Name it lv_swap and use swap file system. Size depends on your RAM size which you&#8217;ve configured for virtual machine. For me 12 GB is the maximum value I could ever use so I&#8217;m using this value. Refer to Oracle documentation for swap size and always add 32 MB to value from documentation to meet Oracle Installer requirements. Remember, if you add physical RAM to your host (laptop or desktop server) you can add new disk, set it as physical volume and add to vg_root &#8211; then extend swap space. On-Line! This is one of the main reason to use LVM in production environment. Refer to LVM documentation to familiar yourself with a bigger picture of this utility.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_26_40.PNG\" alt=\"Image\" \/><\/p>\n<p>Add another logical volume.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_26_54.PNG\" alt=\"Image\" \/><\/p>\n<p>This will be your root file system &#8211; here all system binaries, logs and other files will go. For production environment it&#8217;s wise to separate some of the directories. For example \/var\/ directory can use your whole space and prevent you from using vi editor (no space on disk for edited copy as an example). As this is our test environment &#8211; we&#8217;ll go for only one big chunk of system space.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_31_04.PNG\" alt=\"Image\" \/><\/p>\n<p>Two is the number which you prefer to do not complicate this situation too much. Hit OK button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_31_14.PNG\" alt=\"Image\" \/><\/p>\n<p>Right now leave other disks intact. We&#8217;ll deal with them later from command line. Hit next.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_32_41.PNG\" alt=\"Image\" \/><\/p>\n<p>Format warnings &#8211; off course we would like to format those disks. Hit Format button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_14_32_49.PNG\" alt=\"Image\" \/><\/p>\n<p>Yes, you are sure, that you want to destroy all of the data on those disks. Hit button with Write changes to disk.<\/p>\n<p class=\"lead\">Customizing your Minimal installation.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_53_28.PNG\" alt=\"Image\" \/><\/p>\n<p>Our boot loader defines how we start our operating system. As a default we&#8217;re going to use grub and let it reside on \/boot partition of sda disk. Hit next.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_54_07.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose Minimal installation, leave selected Oracle Linux Server and UEK3 kernel repositories. Choose to Customize now selection. Hit next button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_54_22.PNG\" alt=\"Image\" \/><\/p>\n<p>Customization through disregarding &#8211; hit next button.<\/p>\n<p class=\"lead\">Finishing<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_54_33.PNG\" alt=\"Image\" \/><\/p>\n<p>Installation is going to start in a matter of seconds.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_54_41.PNG\" alt=\"Image\" \/><\/p>\n<p>If you did everything similar to above steps you should see a total number of packages close to 257. This is a minimal installation of Oracle Linux 6.5.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_58_05.PNG\" alt=\"Image\" \/><\/p>\n<p>Congratulations &#8211; you did the first, easier part. Reboot to see the black and cold void of your Linux command line.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_23_22_59_15.PNG\" alt=\"Image\" \/><\/p>\n<p>If you memorized or saved in a plain file your root password then you can login and celebrate your first victory.<\/p>\n<h2>Operating system configuration<\/h2>\n<p>Using command line we need to adjust some of the operating system configuration files. Install required by Oracle Database software packages and prepare for database creation.<\/p>\n<p><h3>Network configuration<\/h3>\n<p>For network I always use static configuration. I don&#8217;t need to connect anywhere beside other Virtual Machines. This is why in configuration I use Host-only network adapter. To let VM talk with host and other Virtual Machines.<\/p>\n<p><p>You can set it up other way if you know, what are you doing. My set up is old one set up by someone, who knows much more than me about network. As long as it works I&#8217;m going to use it as a base configuration<\/p>\n<p>In a file: \/etc\/sysconfig\/network-scripts\/ifcfg-eth0 put those lines with one exception highlighted below (*HWADDR is your own network card mac address which probably is different than presented one &#8211; you can find it in your Virtual Machine configuration in Virtual Box under Network tab).<\/p>\n<p><pre class=\"brush: plain; highlight: [2]; title: ; notranslate\" title=\"\">\r\nDEVICE=&quot;eth0&quot;\r\nHWADDR=&quot;08:00:27:6E:78:7F&quot;\r\nNM_CONTROLLED=&quot;no&quot;\r\nONBOOT=&quot;yes&quot;\r\nIPADDR=192.168.56.12\r\nNETMASK=255.255.255.0\r\nTYPE=Ethernet\r\nGATEWAY=192.168.56.1\r\nDNS1=192.168.56.1\r\nIPV6INIT=&quot;no&quot;\r\nUSERCTL=&quot;no&quot;\r\n<\/pre>\n<\/p>\n<p>For IPADDR you can choose other IP but change only last number betwen 1 and 128 &#8211; this way configuration wont mess up.<\/p>\n<p>Edit next file: \/etc\/resolv.conf<\/p>\n<p><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nnameserver 192.168.254.1\r\nnameserver 192.168.56.1\r\n<\/pre>\n<p><p>If you&#8217;re not going to use DNS then you can change ssh deamon to do not search for it. This will prevent your putty session from hang after inputting your user name and awaiting for password prompt.<\/p>\n<p>Edit file: \/etc\/ssh\/sshd_config &#8211; find UseDNS entry, uncomment it and change value to no. You can yank this line and leave the default value commented in the file. Here is what you should have in your file:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n#UseDNS yes\r\nUseDNS no\r\n<\/pre>\n<p>Now it&#8217;s time for a test. Run those commands from root account:<\/p>\n<p><pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nservice network restart\r\nservice sshd restart\r\n<\/pre>\n<\/p>\n<p>You should see similar output (presented below) with couple OK confirmations for each part of network service restart procedure.<\/p>\n<p><pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nShutting down interface eth0:                              [  OK  ]\r\nShutting down loopback interface:                          [  OK  ]\r\nBringing up loopback interface:                            [  OK  ]\r\nBringing up interface eth0:  Determining if ip address 192.168.56.12 is already in use for device eth0...\r\n                                                           [  OK  ]\r\nStopping sshd:                                             [  OK  ]\r\nStarting sshd:                                             [  OK  ]\r\n<\/pre>\n<\/p>\n<p>If you enter one more command: ifconfig you should see in one of lines value with your IP address, like: inet addr:192.168.56.12. This way you know, that all is done properly. If not &#8211; check, if all files have been modified correctly. If this wont help you than you should refer to Oracle Linux documentation for more details about network configuration files.<\/p>\n<p class=\"lead\">Add entry in \/etc\/hosts with your host name<\/p>\n<p>Edit your local hosts file to bound IP with your machine name. Insert this line below existing lines with localhost configuration.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/hosts\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n192.168.56.12   odone\r\n<\/pre>\n<h3>Putty connection<\/h3>\n<p>Now you can use putty to connect to this host. It&#8217;s move convenient to use putty &#8211; you can copy and paste commands through it. You can use Virtual Box bidirectional clipboard but for this you need to have Guest Additions Installed first. This is one of very last steps you&#8217;ll take in this tutorial.<\/p>\n<p>Ok, putty configuration. Get putty from <a href=\"http:\/\/www.chiark.greenend.org.uk\/~sgtatham\/putty\/download.html\">this site.<\/a> For most people version &#8220;For Windows on Intel x86&#8221; in exe format is accurate. You can go for installer too which install much more than ssh client.<\/p>\n<p>Here you can see main putty configuration page<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_12_45_17.PNG\" alt=\"Image\" \/><\/p>\n<p>You don&#8217;t need here nothing more than an address which you&#8217;ve configured in ifcfg-eth0 file and a name for your connection. Click save after setting those two informations. Then leave selected this entry in a list and set other tabs with the same configuration you see on screens below.<br \/>\n<img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_12_45_33.PNG\" alt=\"Image\" \/><\/p>\n<p>Window tab &#8211; set Lines of scrollback to keep last listings history. Very usefull. Size of window is only for start &#8211; you can always adjust it like other windows in your operating system.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_12_45_49.PNG\" alt=\"Image\" \/><\/p>\n<p>Appearance window give you all the details about output &#8211; remember to use monotype character set like Lucida Console or Courier New. Check ClearType or other options to smooth your output.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_12_46_01.PNG\" alt=\"Image\" \/><\/p>\n<p>Here you need to enable X-11 forwarding. Our operating system haven&#8217;t got any X Window server installed and we leave it this way. We will use Xming windows server in your Windows machine.<\/p>\n<p>When you set all options click Save on first tab which you&#8217;ve seen on first image. Then you can use this configuration for new connections to this machine. Give it a try and connect to your Virtual Machine. You should see similar prompt like in your Virtual Machine window but here you can copy&#038;paste bidirectionally. And you can set your font and other cool features.<\/p>\n<h3>Xming &#8211; your X window server<\/h3>\n<p>Xming X Server for Windows is the easiest way to get remote windows from you Linux directly on your host. You can find install media <a href=\"http:\/\/sourceforge.net\/projects\/xming\/files\/Xming\">by clicking here<\/a> and in addition get fonts pack <a href=\"http:\/\/sourceforge.net\/projects\/xming\/files\/Xming-fonts\/\">from here.<\/a>\n<\/p>\n<p>Just install in default directory Xming and then start Xming-fonts &#8211; take all fonts and install in Xming software directory (this is the default).<\/p>\n<p>After installation find XLaunch shortcut in your start menu and hit it. On short series of images below you can see how to configure it. Pay attention to all checkers.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_21_04_07.PNG\" alt=\"Image\" \/><\/p>\n<p>Starting screen. Here you can choose Xming behaviour &#8211; we&#8217;ll use multiple windows and our display should be set to zero. In short: leave all options with default values.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_21_04_14.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose if you like to start any program from your remote machine &#8211; we will send screen remotly from our Linux to host. Leave all options with default values.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_21_04_25.PNG\" alt=\"Image\" \/><\/p>\n<p>Check No Access Control checker and hit next.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_21_04_36.PNG\" alt=\"Image\" \/><\/p>\n<p>Almost finished &#8211; you can save this configuration and then use this saved file as a configuration file. Just hit it and you&#8217;ll get started Xming with your configuration. Hit Finish button to end this wizard.<\/p>\n<p>After program ends you can find on your system tray little Icon with X character. This means that server is working. You need start it each time you end it deliberately by rmb click and choose from menu exit or after your host restart.<\/p>\n<h3>Local repository with install media<\/h3>\n<p>As stated before, I&#8217;m using my Virtual Machines locally only. This means, there is no need to connect to internet and download anything from network. If I need to deliver anything to my Linux then I share directory and use it inside Virtual Machine as a local directory.<\/p>\n<p>Use your favourite Linux text editor and create new file for your local repository.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/yum.repos.d\/local-6.5-x64.repo\r\n<\/pre>\n<p>Put these lines in the file.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n[local-6.5-x64]\r\nname=Local Linux 6.5 x64\r\nbaseurl=file:\/\/\/iso-oel-x64-6.5\r\ngpgkey=file:\/\/\/etc\/pki\/rpm-gpg\/RPM-GPG-KEY\r\ngpgcheck=1\r\nenabled=1\r\n<\/pre>\n<p>This means, that we will use local-6.5-x64 as our local repository with a given name Local Linux 6.5 x64. Base url is for local directory with copied install media (whole DVD, not only packages) and we will use gpg key. Last two flags means that we would like to use a gpg key and this whole entry is enabled too. If we want to disable repository just change enabled from 1 to 0 and yum will skip searching this location for packages.<\/p>\n<p>Update default repositories &#8211; we don&#8217;t need them any more. Change enabled flag from any value to zero (even if it&#8217;s set to some $variable value &#8211; just copy\/paste this line by yanking, comment original one and leave new one with enabled=0). Here is a file with default repositories:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/yum.repos.d\/public-yum-ol6.repo\r\n<\/pre>\n<p>Sample entry for UEK with changes with comment in line 6 and new line 7 with zeroed flag.<\/p>\n<pre class=\"brush: plain; highlight: [6,7]; title: ; notranslate\" title=\"\">\r\n[public_ol6_UEK_latest]\r\nname=Latest Unbreakable Enterprise Kernel for Oracle Linux $releasever ($basearch)\r\nbaseurl=http:\/\/public-yum.oracle.com\/repo\/OracleLinux\/OL6\/UEK\/latest\/$basearch\/\r\ngpgkey=http:\/\/public-yum.oracle.com\/RPM-GPG-KEY-oracle-ol6\r\ngpgcheck=1\r\n#enabled=$uek\r\nenabled=0\r\n<\/pre>\n<p>Insert DVD to your virtual drive and mount it in Linux. To do this use Virtual Machine menus, find Storage settings tab and your virtual drive. Then mount image by selecting it just like for the installation you&#8217;ve just made. Look on an image below if you cannot find this option.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_26_21_51_11.PNG\" alt=\"Image\" \/><\/p>\n<p>Almost there &#8211; mount your DVD in media directory from root account with a command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmount \/dev\/dvd \/media\r\n<\/pre>\n<p>If you received error close to &#8220;mount: \/dev\/sr0 already mounted or \/media busy&#8221; try to execute the mount command again.<br \/>Create new directory in your \/ (root) directory and copy all files.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmkdir \/iso-oel-x64-6.5\r\ncp -pr \/media\/* \/iso-oel-x64-6.5\r\n<\/pre>\n<p>Refresh yum repositories.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nyum clean all\r\n<\/pre>\n<p>And you&#8217;re ready to use your local repository. No need to use network to install anything. No way to confuse editions and mess up your repository. Hermetic installation from just one DVD. This is all you need for a simple test environment.<\/p>\n<p class=\"lead\">Install required packages<\/p>\n<p>Change your working directory to directory with your packages. We need to be inside this directory to install UEK devel package.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncd \/iso-oel-x64-6.5\/Packages\r\n<\/pre>\n<p>Just copy&#038;paste this command to your putty session:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nyum install openssh-clients kernel-uek-devel* compat-libcap1 compat-libstdc++-33.x86_64 compat-libstdc++-33.i686 gcc-c++ xorg-x11-apps xorg-x11-xauth xorg-x11-utils libaio-devel libaio libXtst sysstat nfs-utils ksh oracleasm-support zip unzip man\r\n<\/pre>\n<p>This should be one line command. In summary I&#8217;ve seen 60 packages to install &#8211; if you have any yum issues then check, if all public repositories are disabled and retry command. Remember to go to Packages directory in your local repository first.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nTransaction Summary\r\n===========================================================================================\r\nInstall      60 Package(s)\r\n\r\nTotal size: 49 M\r\nTotal download size: 17 M\r\nInstalled size: 84 M\r\n<\/pre>\n<p>When using yum for the first time to install anything he can ask you to accept local gpg key. Answer yes for this question and then again yes for question about install plan.<\/p>\n<h3>Create disks and filesystems<\/h3>\n<p>For disks sdb, sdc and add we&#8217;ll use LVM. sde disk need to be prepared with standard fdisk tool.<\/p>\n<p>Create all physical volumes for later use by volume manager.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\npvcreate \/dev\/sdb \/dev\/sdc \/dev\/sdd\r\n<\/pre>\n<p>Create volume groups<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvgcreate vg_orahome \/dev\/sdb --physicalextentsize 8m\r\nvgcreate vg_oradata \/dev\/sdc --physicalextentsize 8m\r\nvgcreate vg_fra \/dev\/sdd --physicalextentsize 8m\r\n<\/pre>\n<p>Check available space for new partition.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvgdisplay --units m vg_orahome | grep Size\r\nvgdisplay --units m vg_oradata | grep Size\r\nvgdisplay --units m vg_fra | grep Size\r\n<\/pre>\n<p>Create logical volume with full size of each disk.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nlvcreate -L 40952m -n lv_orahome vg_orahome\r\nlvcreate -L 40952m -n lv_oradata vg_oradata\r\nlvcreate -L 65528m -n lv_fra vg_fra\r\n<\/pre>\n<p>Check logical volumes.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nlvdisplay \/dev\/vg_orahome\/lv_orahome --units m\r\nlvdisplay \/dev\/vg_oradata\/lv_oradata --units m\r\nlvdisplay \/dev\/vg_fra\/lv_fra --units m\r\n<\/pre>\n<p>Create filesystems.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmkfs.ext4 \/dev\/vg_orahome\/lv_orahome\r\nmkfs.ext4 \/dev\/vg_oradata\/lv_oradata\r\nmkfs.ext4 \/dev\/vg_fra\/lv_fra\r\n<\/pre>\n<p>Check if you can mount it, if yes, add entry to your fstab configuration file.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmkdir \/u01\r\nmkdir \/u02\r\nmkdir \/u03\r\nmount \/dev\/vg_orahome\/lv_orahome \/u01\r\nmount \/dev\/vg_oradata\/lv_oradata \/u02\r\nmount \/dev\/vg_fra\/lv_fra \/u03\r\ndf -h \/u01 \/u02 \/u03\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nFilesystem                         Size  Used Avail Use% Mounted on\r\n\/dev\/mapper\/vg_orahome-lv_orahome   40G   18G   20G  48% \/u01\r\n\/dev\/mapper\/vg_oradata-lv_oradata   40G  3.5G   34G  10% \/u02\r\n\/dev\/mapper\/vg_fra-lv_fra           63G  317M   60G   1% \/u03\r\n<\/pre>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/fstab\r\n<\/pre>\n<p>Add similar lines.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/dev\/mapper\/vg_orahome-lv_orahome       \/u01    ext4    defaults        0       0\r\n\/dev\/mapper\/vg_oradata-lv_oradata       \/u02    ext4    defaults        0       0\r\n\/dev\/mapper\/vg_fra-lv_fra       \/u03    ext4    defaults        0       0\r\n<\/pre>\n<p>Check fstab entry by unmounting and then mounting back your disks. There is no information what and where we would like to mount &#8211; those informations are read from fstab file.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\numount \/u01\r\numount \/u02\r\numount \/u03\r\nmount \/u01\r\nmount \/u02\r\nmount \/u03\r\n<\/pre>\n<p>LVM gives you many interesting features, for instance, an ability to extend filesystem on-line with new physical volume. Check Linux documentation for more in depth knowledge about it.<\/p>\n<p>Now we prepare a whole disk partition for ASM.<\/p>\n<p>Start fdisk &#8211; legacy tool for managing disk partitions. For ASM it&#8217;s safer to use fdisk instead logical volumes on LVM.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nfdisk \/dev\/sde\r\n<\/pre>\n<p>Choose p to show current partition table on this disk. Then create new partition with n, partition number 1, then enter to select maximum, default value, use w to write changes on disk and quit from fdisk. If there is no option used (*visible one) I&#8217;ve only hit enter for default values (First and Last cylinder).<\/p>\n<pre class=\"brush: plain; highlight: [5,16,20,21,22,24,27]; title: ; notranslate\" title=\"\">\r\nWARNING: DOS-compatible mode is deprecated. It's strongly recommended to\r\n         switch off the mode (command 'c') and change display units to\r\n         sectors (command 'u').\r\n\r\nCommand (m for help): p\r\n\r\nDisk \/dev\/sde: 68.7 GB, 68719476736 bytes\r\n255 heads, 63 sectors\/track, 8354 cylinders\r\nUnits = cylinders of 16065 * 512 = 8225280 bytes\r\nSector size (logical\/physical): 512 bytes \/ 512 bytes\r\nI\/O size (minimum\/optimal): 512 bytes \/ 512 bytes\r\nDisk identifier: 0xedeff186\r\n\r\n   Device Boot      Start         End      Blocks   Id  System\r\n\r\nCommand (m for help): n\r\nCommand action\r\n   e   extended\r\n   p   primary partition (1-4)\r\np\r\nPartition number (1-4): 1\r\nFirst cylinder (1-8354, default 1):\r\nUsing default value 1\r\nLast cylinder, +cylinders or +size{K,M,G} (1-8354, default 8354):\r\nUsing default value 8354\r\n\r\nCommand (m for help): w\r\nThe partition table has been altered!\r\n\r\nCalling ioctl() to re-read partition table.\r\nSyncing disks.\r\n<\/pre>\n<p>And that&#8217;s all for now for partition for ASM. We will continue work with it later, after Oracle Grid Infrastructure install.<\/p>\n<h3>Groups and users<\/h3>\n<p>We will use separated users and roles in our installation. This way we can go further with it and later create dedicated users for each of three new operating system privileges.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ngroupadd -g 1000 oinstall\r\ngroupadd -g 1010 dba\r\ngroupadd -g 1011 oper\r\ngroupadd -g 1012 backupdba\r\ngroupadd -g 1013 dgdba\r\ngroupadd -g 1014 kmdba\r\ngroupadd -g 1020 asmdba\r\ngroupadd -g 1021 asmadmin\r\ngroupadd -g 1022 asmoper\r\nuseradd -u 1100 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba oracle\r\nuseradd -u 1101 -g oinstall -G asmadmin,asmdba,asmoper,dba grid\r\n<\/pre>\n<p class=\"lead\">User limits<\/p>\n<p>According to documentation you should change shell limits for your user. To do this edit appropriate file. Put those lines in a limits.conf file just between two comments.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/security\/limits.conf\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n#@student        -       maxlogins       4\r\n\r\noracle          soft    nofile          1024\r\noracle          hard    nofile          65536\r\noracle          soft    nproc           2047\r\noracle          hard    nproc           16384\r\noracle          soft    stack           10240\r\noracle          hard    stack           32768\r\n\r\ngrid    soft    nofile          1024\r\ngrid    hard    nofile          65536\r\ngrid    soft    nproc           2047\r\ngrid    hard    nproc           16384\r\ngrid    soft    stack           10240\r\ngrid    hard    stack           32768\r\n\r\n# End of file\r\n<\/pre>\n<p>For operating system parameters we will just use fix-up script. It&#8217;s much more convinient to use it instead checking all the parameters and set it manually in system configuration file.<\/p>\n<h3>Install virtual box guest additions<\/h3>\n<p>\nRemove install media with eject in virtual box settings. Then insert virtual box guest additions CD, copy files and install them.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\numount \/media\r\nmkdir \/vboxadd\r\n<\/pre>\n<p>Now it&#8217;s a good time to remove currently inserted CD from virtutal drive and insert guest additions CD from your Virtual Machine menu. Take a look on two images below.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_29_06_53_50.PNG\" alt=\"Image\" \/><br \/>\n<img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_29_06_53_57.PNG\" alt=\"Image\" \/><\/p>\n<p>Finish activities with those commands. If you&#8217;ll get error with first command try to execute it again.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nmount \/dev\/dvd \/media\r\ncp -pr \/media\/* \/vboxadd\r\ncd \/vboxadd\r\nsh VBoxLinuxAdditions.run\r\n<\/pre>\n<p>For almost all positions in Guest Additions compilation you should see green [  OK  ] in your output. For Window System drivers there won&#8217;t be any X.Org or XFree86 libraries &#8211; this part will be skipped &#8211; it&#8217;s perfectly normal.<\/p>\n<h3>Configure oracleasm<\/h3>\n<p>For ASM configuration use IDs of user and group, not their names.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/usr\/sbin\/oracleasm configure -i\r\n<\/pre>\n<p>In each line answer with correct user and group ID. Configure to start ASM library after restart.<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nDefault user to own the driver interface []: 1101\r\nDefault group to own the driver interface []: 1021\r\nStart Oracle ASM library driver on boot (y\/n) [n]: y\r\nScan for Oracle ASM disks on boot (y\/n) [y]: y\r\n<\/pre>\n<p>Create ASM disk \/dev\/sde1 to be available as a candidate for Oracle ASM library. When we&#8217;ve created partition on sde disk then in \/dev\/ a new entry point have been created &#8211; \/dev\/sde1. We will use it now.\n<\/p>\n<p>Restart oracleasm module before beginning and then create disk.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/usr\/sbin\/oracleasm exit\r\n\/usr\/sbin\/oracleasm init\r\n\/usr\/sbin\/oracleasm createdisk ASM_DG_EXT \/dev\/sde1\r\n<\/pre>\n<p>Check list of your available disks for ASM instance.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\noracleasm listdisks\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nASM_DG_EXT\r\n<\/pre>\n<h3>Directories and users adjustment<\/h3>\n<p>Modify oracle and grid users to gain access to shared folders and change directories ownership and set passwords for oracle and grid users.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nusermod -u 1100 -g oinstall -G dba,oper,asmdba,backupdba,dgdba,kmdba,vboxsf oracle\r\nusermod -u 1101 -g oinstall -G asmadmin,asmdba,asmoper,dba,vboxsf grid\r\nmkdir -p \/u01\/app\/grid\r\nchown -R oracle:oinstall \/u01\r\nchown -R grid:oinstall \/u01\/app\/grid\r\nmkdir \/u01\/app\/stage\r\nchown oracle:oinstall \/u01\/app\/stage\r\nchmod 775 \/u01\/app\/stage\r\nchmod 776 \/u01\/app\r\nchown oracle:oinstall \/u02\r\nchown oracle:oinstall \/u03\r\npasswd oracle\r\npasswd grid\r\n<\/pre>\n<p class=\"lead\">SELinux and Firewall<\/p>\n<p>As this will be only test environment and my personal Virtual Machine there is no need to fight with SELinux and Firewall during any database activities. I&#8217;m disabling both services as a rule in such situations.<\/p>\n<p>Remove rhgb flags from \/etc\/grub.conf file to disable red hat graphical boot &#8211; this is my personal choose, you can leave it as it is<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/grub.conf\r\n<\/pre>\n<p>To disable SELinux edit \/etc\/selinux\/config file and change one line which starts with SELINUX= with this one.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/selinux\/config\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nSELINUX=disabled\r\n<\/pre>\n<p>Check current state of iptables service responsible for network rules (or just Firewall).<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nchkconfig --list iptables\r\nchkconfig iptables off\r\nchkconfig --list iptables\r\n<\/pre>\n<p>Now it&#8217;s a good moment to restart your Virtual Machine. <\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nshutdown -r now\r\n<\/pre>\n<p>After restart you should have similar result for used memory.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nfree\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n             total       used       free     shared    buffers     cached\r\nMem:      10240044     167952   10072092          0       7892      42368\r\n-\/+ buffers\/cache:     117692   10122352\r\nSwap:     12582908          0   12582908\r\n<\/pre>\n<p class=\"lead\">Before you start Grid Infrastructure installation<\/p>\n<p>If your host is low on memory then probably your virtual machine won&#8217;t get any more than 2GB of memory for installation. It&#8217;s below Oracle&#8217;s recommendations mainly because shared memory. You need to have at least 1.5GB designated for shared segments. Check, what is your current value. From root account session:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ndf -h \/dev\/shm\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nFilesystem      Size  Used Avail Use% Mounted on\r\ntmpfs           4.9G  3.0G  2.0G  61% \/dev\/shm\r\n<\/pre>\n<p>As a default Linux system assign half of your physical memory for shared segments. For Oracle Database I usually use value of 70-80% of the physical memory. This way I can start the Database with higher value for MEMORY_MAX_TARGET and then dynamically use MEMORY_TARGET to adjust memory to expected value when using Automatic Memory Management.<\/p>\n<p>If your physical memory is 2GB then adjust \/etc\/fstab entry to assign more to \/dev\/shm device, for example 1536m. You can find more information about it in Oracle Linux documentation.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nvi \/etc\/fstab\r\n<\/pre>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ntmpfs                   \/dev\/shm                tmpfs   defaults        0 0\r\n<\/pre>\n<p>This line can be adjust with size attribute. For example, I can set my virtual machine shared memory to 7168M (7GB).<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ntmpfs                   \/dev\/shm                tmpfs   defaults,size=7168m        0 0\r\n<\/pre>\n<\/p>\n<h2>Oracle Grid Infrastructure installation<\/h2>\n<p>If your Xming server is not yet started than this is the right moment. Start new putty window and login as grid user to your Virtual Machine.<\/p>\n<p>My shared directory is called oracle. Inside it I&#8217;ve got database directory various install media. We&#8217;re going to use stage directory which we&#8217;ve created earlier as a buffer for decompressed installation software.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncd \/media\/sf_oracle\/database\/linux_x64_12.1.0.2.0\/\r\nunzip p17694377_121020_Linux-x86-64_3of8.zip -d \/u01\/app\/stage\/\r\nunzip p17694377_121020_Linux-x86-64_4of8.zip -d \/u01\/app\/stage\/\r\ncd \/u01\/app\/stage\/grid\/\r\n<\/pre>\n<p>If you did everything as shown above then it&#8217;s time to start installer and follow the white rabbit. Or the screens below. Choose wisely.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n.\/runInstaller\r\n<\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_47_53.PNG\" alt=\"Image\" \/><\/p>\n<p>We&#8217;re going to install and configure ASM instance in one step from OUI.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_48_04.PNG\" alt=\"Image\" \/><\/p>\n<p>English is sufficient for most installations.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_49_09.PNG\" alt=\"Image\" \/><\/p>\n<p>Create ASM disk group &#8211; for this click on Change Discovery Path and put in a field value \/dev\/oracleasm\/disks\/* &#8211; this is the place where disks created with oracleasm support package will put links to real devices.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_50_16.PNG\" alt=\"Image\" \/><\/p>\n<p>Change your disk group name to designate that this is external redundancy disk group. Change redundancy to external as we don&#8217;t need to have here normal or high data protection. In list you should see our disk ASM_DG_EXT &#8211; select checkbox next to the path and hit next.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_50_30.PNG\" alt=\"Image\" \/><\/p>\n<p>Specify administrative password.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_50_39.PNG\" alt=\"Image\" \/><\/p>\n<p>If your password is easy to remember then Oracle always let you know, that it&#8217;s too simple password. If you value your security &#8211; remember to change this password to better one.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_50_47.PNG\" alt=\"Image\" \/><\/p>\n<p>We do not need to register with Cloud Control. Maybe some other time (I&#8217;m planning another article with CC install too but I don&#8217;t know when it&#8217;ll happen).<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_51_08.PNG\" alt=\"Image\" \/><\/p>\n<p>We are good to select roles as selected on screen. We&#8217;ve created those groups earlier and assign asmadmin and asmdba to oracleasm package.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_51_22.PNG\" alt=\"Image\" \/><\/p>\n<p>Oracle Home for grid infrstructure &#8211; just input \/u01\/app\/grid and \/u01\/app\/grid\/product\/12.1.0\/grid should be choosen automatically.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_51_37.PNG\" alt=\"Image\" \/><\/p>\n<p>As this is first installation of Oracle Software on this machine we need to choose directory for Oracle Inventory. As a default oinstall group will be choosen for inventory administrative group. \/u01\/app\/oraInventory is one directory up from your Oracle Home for Grid Infrastructure and it&#8217;s good to leave it as it is.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_51_47.PNG\" alt=\"Image\" \/><\/p>\n<p>We could use new option for installer &#8211; put root password to use it in last step &#8211; this time we won&#8217;t use this feature.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_52_03.PNG\" alt=\"Image\" \/><\/p>\n<p>All checks should be green beside kernel parameters. Click on Fix &#038; Check Again. You should see next window pop-up in front.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_52_14.PNG\" alt=\"Image\" \/><\/p>\n<p>Execute pointed script to adjust kernel parameters. Just input in your root session in other putty window:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/tmp\/CVU_12.1.0.2.0_grid\/runfixup.sh\r\n<\/pre>\n<p>In window you should see some comments from script and then hit OK. Focus will return to main screen of OUI and all checks should be green right now. Oracle will proceed to next screen and won&#8217;t bother you anymore about prerequisites.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_53_51.PNG\" alt=\"Image\" \/><\/p>\n<p>Summary screen &#8211; just hit Install and watch the hypnotizing progress bar.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_00_54_29.PNG\" alt=\"Image\" \/><\/p>\n<p>8% and still counting&#8230;<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_03_05.PNG\" alt=\"Image\" \/><\/p>\n<p>After copying files and linking libraries in \/lib directory Oracle will start silently couple more activities like setting up listener in your Oracle Home for Grid Infrastructure.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_15_01_10.PNG\" alt=\"Image\" \/><\/p>\n<p>One of the steps will force you to use your root session to execute two scripts, one for Oracle Inventory directory and second for Oracle scripts which will be available for all users in \/usr\/local\/bin directory and registration of cluster services.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/u01\/app\/oraInventory\/orainstRoot.sh\r\n\/u01\/app\/grid\/product\/12.1.0\/grid\/root.sh\r\n<\/pre>\n<p>After second script you should see an information: &#8220;Successfully configured Oracle Restart for a standalone server&#8221;.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_06_03.PNG\" alt=\"Image\" \/><\/p>\n<p>And that&#8217;s it. OUI finished his work. Click OK in script page and installer page.<\/p>\n<p>As a result you can leave installer and use oraenv script, change your environment and check processes started by grid user.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n. oraenv\r\n<\/pre>\n<pre class=\"brush: plain; highlight: [1]; title: ; notranslate\" title=\"\">\r\nORACLE_SID = [grid] ? +ASM\r\nThe Oracle base has been set to \/u01\/app\/grid\r\n<\/pre>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nps -ef | grep grid\r\n<\/pre>\n<p>\nAfter this command you should see a list similar to this one:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ngrid      1428     1  2 21:05 ?        00:00:05 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/ohasd.bin reboot\r\ngrid      1534     1  1 21:05 ?        00:00:03 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/oraagent.bin\r\ngrid      1549     1  1 21:05 ?        00:00:03 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/evmd.bin\r\ngrid      1553     1  0 21:05 ?        00:00:00 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/tnslsnr LISTENER -no_crs_notify -inherit\r\nroot      1569  1305  0 21:05 ?        00:00:00 sshd: grid [priv]\r\ngrid      1572  1549  1 21:05 ?        00:00:03 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/evmlogger.bin -o \/u01\/app\/grid\/product\/12.1.0\/grid\/log\/[HOSTNAME]\/evmd\/evmlogger.info l \/u01\/app\/grid\/product\/12.1.0\/grid\/log\/[HOSTNAME]\/evmd\/evmlogger.log\r\ngrid      1579  1569  0 21:06 ?        00:00:00 sshd: grid@pts\/0\r\ngrid      1580  1579  0 21:06 pts\/0    00:00:00 -bash\r\ngrid      1631     1  0 21:07 ?        00:00:00 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/cssdagent\r\ngrid      1657     1  1 21:07 ?        00:00:01 \/u01\/app\/grid\/product\/12.1.0\/grid\/bin\/ocssd.bin\r\ngrid      1792     1  0 21:08 ?        00:00:00 asm_pmon_+ASM\r\ngrid      1794     1  0 21:08 ?        00:00:00 asm_psp0_+ASM\r\ngrid      1796     1  9 21:08 ?        00:00:04 asm_vktm_+ASM\r\ngrid      1800     1  0 21:08 ?        00:00:00 asm_gen0_+ASM\r\ngrid      1802     1  0 21:08 ?        00:00:00 asm_mman_+ASM\r\ngrid      1806     1  0 21:08 ?        00:00:00 asm_diag_+ASM\r\ngrid      1808     1  0 21:08 ?        00:00:00 asm_dia0_+ASM\r\ngrid      1810     1  0 21:08 ?        00:00:00 asm_dbw0_+ASM\r\ngrid      1812     1  0 21:08 ?        00:00:00 asm_lgwr_+ASM\r\ngrid      1814     1  0 21:08 ?        00:00:00 asm_ckpt_+ASM\r\ngrid      1816     1  0 21:08 ?        00:00:00 asm_smon_+ASM\r\ngrid      1818     1  0 21:08 ?        00:00:00 asm_lreg_+ASM\r\ngrid      1820     1  0 21:08 ?        00:00:00 asm_pxmn_+ASM\r\ngrid      1822     1  0 21:08 ?        00:00:00 asm_rbal_+ASM\r\ngrid      1824     1  0 21:08 ?        00:00:00 asm_gmon_+ASM\r\ngrid      1826     1  0 21:08 ?        00:00:00 asm_mmon_+ASM\r\ngrid      1828     1  0 21:08 ?        00:00:00 asm_mmnl_+ASM\r\ngrid      1866     1  0 21:08 ?        00:00:00 oracle+ASM (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))\r\ngrid      1976  1580  0 21:09 pts\/0    00:00:00 ps -ef\r\ngrid      1977  1580  0 21:09 pts\/0    00:00:00 grep grid\r\n<\/pre>\n<p>With Oracle Grid Infrastructure you&#8217;ve got Oracle Restart &#8211; this way you can leave restart duty in this tool hands &#8211; when we create database it will be registered automatically within Oracle Restart. If you choose to do not use dbca to create database and do it manually then you need to remember to use srvctl to register database if you want to use Oracle Restart for a restart purposes after normal OS shutdown.<\/p>\n<h2>Database Software installation<\/h2>\n<p>I&#8217;m going to start OUI to install Oracle Database Software and then, separately, dbca to create database.<\/p>\n<p>Start oracle user session, unpack media and start installation.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\ncd \/media\/sf_oracle\/database\/linux_x64_12.1.0.2.0\/\r\nunzip p17694377_121020_Linux-x86-64_1of8.zip -d \/u01\/app\/stage\/\r\nunzip p17694377_121020_Linux-x86-64_2of8.zip -d \/u01\/app\/stage\/\r\ncd \/u01\/app\/stage\/database\/\r\n.\/runInstaller\r\n<\/pre>\n<p>Below are the screens from installation.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_13_18.PNG\" alt=\"Image\" \/><\/p>\n<p>First page were you can deliver your email and register in My Oracle Support. We can skip this step.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_13_28.PNG\" alt=\"Image\" \/><\/p>\n<p>Oracle is very concerned about our security. We can hit Yes and go ahead with installation.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_13_39.PNG\" alt=\"Image\" \/><\/p>\n<p>Choose to install software only &#8211; we will finish this installation with dbca tool anyway.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_13_44.PNG\" alt=\"Image\" \/><\/p>\n<p>Single instance database installation is right choice for first and test installations.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_13_50.PNG\" alt=\"Image\" \/><\/p>\n<p>As usually &#8211; English should be sufficient in most cases.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_14_07.PNG\" alt=\"Image\" \/><\/p>\n<p>We can choose from: Enterprise Edition and Enterprise Edition. Choose carefully.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_14_22.PNG\" alt=\"Image\" \/><\/p>\n<p>Our Oracle Home for database software &#8211; we can use \/u01\/app\/oracle directory as prepared earlier for base and subdirectory \/product\/12.1.0\/dbhome_1 as an Oracle Home.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_14_39.PNG\" alt=\"Image\" \/><\/p>\n<p>Here we have one of the new things &#8211; three new operating system privileges &#8211; for backup and recovery, data guard administration and encryption key management. We will use it later so it&#8217;s good to have this configured.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_15_04.PNG\" alt=\"Image\" \/><\/p>\n<p>Prerequisite checks are fulfilled after Grid Infrastructure installation and we did everything Oracle ask us to do &#8211; as a result we didn&#8217;t have to do anything more. Here we have summary screen and we can hit install button to start the installation.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_15_14.PNG\" alt=\"Image\" \/><\/p>\n<p>Standard progress bar &#8211; 0% and counting&#8230; for more \ud83d\ude42<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_15_01_20.PNG\" alt=\"Image\" \/><\/p>\n<p>During the installation you will be asked to execute root script. User your root account to execute it:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\/u01\/app\/oracle\/product\/12.1.0\/dbhome_1\/root.sh\r\n<\/pre>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_19_40.PNG\" alt=\"Image\" \/><\/p>\n<p>All is done. We can proceed with Database Configuration Assistant (dbca) tool.<\/p>\n<h2>Create container database in dbca<\/h2>\n<p>When you&#8217;ll return to your oracle account putty session then you can set Oracle Home and PATH variable to be able to start dbca tool. Put those commands in your prompt and start dbca.<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nexport ORACLE_BASE=\/u01\/app\/oracle\r\nexport ORACLE_HOME=\/u01\/app\/oracle\/product\/12.1.0\/dbhome_1\r\nexport PATH=$ORACLE_HOME\/bin:$PATH\r\ndbca\r\n<\/pre>\n<p>After this command you should see dbca tool. Proceed with next steps presented on images below.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_22_41.PNG\" alt=\"Image\" \/><\/p>\n<p>Starting screen &#8211; choose create database radio button and hit next button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_22_49.PNG\" alt=\"Image\" \/><\/p>\n<p>Change option to Advanced Mode.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_22_56.PNG\" alt=\"Image\" \/><\/p>\n<p>We would like to change our database &#8211; database files included in two templates decrease database creation time but you don&#8217;t have much influence on database parameters. We would like to customize couple things.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_23_08.PNG\" alt=\"Image\" \/><\/p>\n<p>Set database name as short as possible &#8211; try to do not exceed 8 characters. For me tcdb is good enough. Change radio button to create empty container database.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_23_16.PNG\" alt=\"Image\" \/><\/p>\n<p>Configure Database Express for nice graphs about simple database metrics like&#8230; hm&#8230; you&#8217;ll see &#8211; this version of Enterprise Manager is really basic and by basic I mean: you can do almost nothing in it.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_23_27.PNG\" alt=\"Image\" \/><\/p>\n<p>Set passwords.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_23_34.PNG\" alt=\"Image\" \/><\/p>\n<p>Again, agree, that this is really easy to guess password and face the truth by pressing Yes button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_23_43.PNG\" alt=\"Image\" \/><\/p>\n<p>We will use grid listener. There is no need to multiply testing entities.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_32_12.PNG\" alt=\"Image\" \/><\/p>\n<p>We wont use ASM instance yet &#8211; you can test it later by, for example, migrating your database to ASM with really nicely written procedure in Oracle Documentation &#8211; choose manual option &#8211; it works better than Cloud Control version.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_27_59.PNG\" alt=\"Image\" \/><\/p>\n<p>Under archive log parameters leave the defaults &#8211; this way your database will save archivelogs in fra space.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_28_19.PNG\" alt=\"Image\" \/><\/p>\n<p>Those are variables which you can use in paths &#8211; this way it&#8217;s easier to create own template for future reuse.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_29_45.PNG\" alt=\"Image\" \/><\/p>\n<p>There is no direct explanation why we need to install all options for container database &#8211; looks like this is a security option to do not plug PDB or convert non-CDB database with option which aren&#8217;t available in a system library. We need all options for all possible database options scenarios.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_03.PNG\" alt=\"Image\" \/><\/p>\n<p>We don&#8217;t need any of those options.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_27.PNG\" alt=\"Image\" \/><\/p>\n<p>Fast walk over database parameters. For Memory size do not use less than ~1280M &#8211; it&#8217;s a really good idea to have this value on adequately high level to let Oracle create dictionary in peace. Check to use Automatic Memory Management.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_33.PNG\" alt=\"Image\" \/><\/p>\n<p>Block size and processes as a defaults.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_42.PNG\" alt=\"Image\" \/><\/p>\n<p>Change character sets to al32utf8 and national to al16utf16.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_46.PNG\" alt=\"Image\" \/><\/p>\n<p>Dedicated server will be great for us. We can configure shared servers later. Hit next button.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_30_59.PNG\" alt=\"Image\" \/><\/p>\n<p>Create database &#8211; this is the only one checker needed here. You can generate scripts for later use of manual database creation. Under Customize storage locations you can find much more than just locations  there is a whole new menu for redo log groups and database files parametrization. Right now we don&#8217;t need to adjust anything and leave all as defaults.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_2014_10_05_15_01_30.PNG\" alt=\"Image\" \/><\/p>\n<p>New menu which is hidden under Customize storage button &#8211; just to show you, that we can use GUI to set those options too &#8211; for this installation we don&#8217;t need to adjust anything here. Leave this window using Close button and continue with database creation procedure.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_33_18.PNG\" alt=\"Image\" \/><\/p>\n<p>Summary screen &#8211; html formatted report with details about your database. Hit finish button to start database creation.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_01_33_28.PNG\" alt=\"Image\" \/><\/p>\n<p>On my host this process took more than 2 hours. When I was installing for the first time version 12.1.0.1.0 it took 4,5 hours. After patchset 12.1.0.1.2 I could manually create container database (Oracle forgot about one script which was documented but not present in a script directory&#8230;) and it took around 4 hours. It looks like we&#8217;ve got some progress.<\/p>\n<p><img decoding=\"async\" src=\"http:\/\/oradistrict.com\/img\/2014_08_24_orainst_12c\/shot_14_08_24_08_41_45.PNG\" alt=\"Image\" \/><\/p>\n<p>Last screen with information about our database name, EM Database Express default port and spfile location. Hit Close button to leave dbca. You can check database processes with ps command and grep by oracle.<\/p>\n<p>Best Regards<br \/>Patrycjusz<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oracle Database 12c &#8211; install on Virtual Box with Oracle Linux 6.5 (64 bit) This article is a father of all others you can find on this page. I&#8217;m going to start with this basic tutorial for those, who are not ready to start their own virtual machine from scratch or feel unsure, how to&hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/posts\/11"}],"collection":[{"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/oradistrict.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=11"}],"version-history":[{"count":58,"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/posts\/11\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/oradistrict.com\/index.php?rest_route=\/wp\/v2\/posts\/11\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/oradistrict.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=11"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/oradistrict.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=11"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/oradistrict.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=11"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}