oracle_multitenant_overview

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
oracle_multitenant_overview [2021/11/13 17:38] andonovjoracle_multitenant_overview [2021/11/13 21:51] (current) andonovj
Line 13: Line 13:
   * Application Container - Container which consist of 1 or many PDBs which host a specific application. We are able to assign versions and name to such container, furthermore we can initiate installation and upgrade modes.   * Application Container - Container which consist of 1 or many PDBs which host a specific application. We are able to assign versions and name to such container, furthermore we can initiate installation and upgrade modes.
  
-=====Creation=====+===== Using SQL =====
 Firstly, we need to create our container. From 12c, we can create a database to be either as it always has been, a normal database, OR we can create it to allow other databases as well. So it will be a container, let's see how we can do both: Firstly, we need to create our container. From 12c, we can create a database to be either as it always has been, a normal database, OR we can create it to allow other databases as well. So it will be a container, let's see how we can do both:
  
  
-==== Using SQL ===+==== Creation ===
 Actually, the creation of a normal database isn't that hard, you can just type: Actually, the creation of a normal database isn't that hard, you can just type:
  
Line 183: Line 183:
 EXIT; EXIT;
 EOF EOF
 +</Code>
  
 +===== Automation =====
 +Using the awesome power, vested to me by Vagrant and Bash, I summon the automation of:
 +
 +  * Virtual Machine
 +  * Oracle 19c database
 +  * 1 CDB
 +  * 1 PDB
 +
 +All that, twice:
 +
 +
 +<Code:bash|Automation>
 +$allow_shell = <<SCRIPT
 +sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config    
 +systemctl restart sshd.service
 +SCRIPT
 +
 +$edit_hosts_file = <<SCRIPT
 +cat > /etc/hosts <<EOF
 +127.0.0.1 localhost
 +192.168.0.l03 lpar1.example.com 
 +192.168.0.l04 lpar2.example.com 
 +EOF
 +SCRIPT
 +
 +$install_oracle_preinstall = <<SCRIPT
 +curl -o oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
 +yum -y localinstall oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
 +SCRIPT
 +
 +$install_oracle_19c = <<SCRIPT
 +cd /vagrant
 +yum -y localinstall oracle-database-ee-19c-1.0-1.x86_64.rpm
 +
 +SCRIPT
 +
 +$install_19c_db = <<SCRIPT
 +runuser -l oracle -c '/opt/oracle/product/19c/dbhome_1/bin/dbca -silent -createDatabase -responseFile  /vagrant/simple_db_cdb.rsp'
 +SCRIPT
 +
 +$install_vnc_server = <<SCRIPT
 +yum -y install vnc-server
 +yum -y install tigervnc-server
 +yum -y install xterm
 +yum -y install net-tools
 +yum -y install unzip
 +yum -y install curl
 +SCRIPT
 +
 +
 +Vagrant.configure("2") do |config|
 + (1..2).each do |i|
 +  config.vm.provision :shell, inline: "setenforce 0", run: "always"
 +  config.vm.define "lpar#{i}" do |lpar|
 +    lpar.vm.box = "centos/7"
 +    lpar.vm.hostname = "lpar#{i}.example.com"
 +    lpar.vm.synced_folder "./lpar_binaries", "/vagrant", type: "virtualbox"
 + lpar.vm.network "public_network", ip: "192.168.0.10#{2+i}"
 + lpar.vm.network "private_network", ip: "10.100.0.10#{2+i}"
 + lpar.vm.provision "shell", inline: $install_vnc_server, privileged: true
 + lpar.vm.provision "shell", inline: $allow_shell, privileged: true
 + lpar.vm.provision "shell", inline: $edit_hosts_file, privileged: true
 + lpar.vm.provision "shell", inline: $install_oracle_preinstall, privileged: true
 + lpar.vm.provision "shell", inline: $install_oracle_19c, privileged: true
 + lpar.vm.provision "shell", inline: $install_19c_db, privileged: true
 +    lpar.vm.provider :virtualbox do |v|
 +      v.customize ["modifyvm", :id, "--memory", 2560]
 +      v.customize ["modifyvm", :id, "--name", "lpar#{2+i}"]
 +   v.customize ["storageattach", :id, 
 +                "--storagectl", "IDE", 
 +                "--port", "0", "--device", "1", 
 +                "--type", "dvddrive", 
 +                "--medium", "emptydrive"   
 +     end
 +    end
 +  end
 +end
 </Code> </Code>
  
  
 +Just make sure, you have the Oracle 19c RPM in folder called: "lpar_binaries" in your Vagrant main folder and the response file below:
 +
 +<Code:bash|Response file>
 +responseFileVersion=/oracle/assistants/rspfmt_dbca_response_schema_v12.2.0
 +gdbName=orcl.example.com
 +sid=orcl
 +databaseConfigType=SI
 +policyManaged=false
 +createServerPool=false
 +force=false
 +createAsContainerDatabase=true
 +numberOfPDBs=1
 +pdbName=pdb1
 +useLocalUndoForPDBs=true
 +pdbAdminPassword=Oracle123
 +templateName=/opt/oracle/product/19c/dbhome_1/assistants/dbca/templates/General_Purpose.dbc
 +sysPassword=Oracle123
 +systemPassword= Oracle123
 +emExpressPort=0
 +runCVUChecks=FALSE
 +dvConfiguration=false
 +olsConfiguration=false
 +datafileJarLocation={ORACLE_HOME}/assistants/dbca/templates/
 +datafileDestination={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/
 +recoveryAreaDestination={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME}
 +storageType=FS
 +characterSet=AL32UTF8
 +registerWithDirService=false
 +variables=ORACLE_BASE_HOME=/opt/oracle/product/19c/dbhome_1,DB_UNIQUE_NAME=orcl,ORACLE_BASE=/opt/oracle,PDB_NAME=,DB_NAME=orcl,ORACLE_HOME=/opt/oracle/product/19c/dbhome_1,SID=orcl
 +initParams=undo_tablespace=UNDOTBS1,db_block_size=8KB,dispatchers=(PROTOCOL=TCP) (SERVICE={SID}XDB),diagnostic_dest={ORACLE_BASE},remote_login_passwordfile=EXCLUSIVE,db_create_file_dest={ORACLE_BASE}/oradata/{DB_UNIQUE_NAME}/,audit_file_dest={ORACLE_BASE}/admin/{DB_UNIQUE_NAME}/adump,processes=300,memory_target=936MB,db_recovery_file_dest_size=12732MB,open_cursors=300,db_domain=example.com,compatible=19.0.0,db_name=orcl,db_recovery_file_dest={ORACLE_BASE}/fast_recovery_area/{DB_UNIQUE_NAME},audit_trail=db
 +sampleSchema=false
 +memoryPercentage=40
 +databaseType=MULTIPURPOSE
 +automaticMemoryManagement=true
 +totalMemory=0
 +</Code>
 +
 +Of course feel free to add / remove or modify any parameter which you wish. Just bare in mind that some are mandatory :)
  • oracle_multitenant_overview.1636825135.txt.gz
  • Last modified: 2021/11/13 17:38
  • by andonovj