photo by Jose Maria Cuellar (CC 2.0)
Thanks to Leighton Nelson who pointed out that :
Oracle has a pre-installed Linux VM with 12c
Delphix as well has a pre-installed trial version
Download both of these and start them up in Virtualbox and you can start virtualizing your PDBs.
The Oracle pre-installed VM has a few eccentricities that have to be addressed before using it. There is no IP address and there is no history of the install and it’s missing a glibc library. After we address these in the instructions below you can link to the PDB and then provision that PDB back as a virtual PDB (vPDB) or provision that PDB to another 12c instance on another machine as a vPDB.
Here is a video of linking a PDB to Delphix and provisioning a vPDB
before doing the above with the Oracle pre-installed VM, follow these steps:
After importing and starting, change network to “Bridge Adaptor” and restarted services
get the ip address with “ifconfig -a” and vi /etc/hosts to add hostname “oraclevm” with the ip address. Also increase /dev/shm or otherwise will get “MEMORY_TARGET not supported on this system”
su –
service network restart
# note the IP of the machine
ifconfig -a
# add hostname “oraclevm” and current IP to hosts vi /etc/hosts hostname oraclevm echo oraclevm > /proc/sys/kernel/hostname#umount tmpfs might give errors, but seems to do the trick anwayumount tmpfs mount -t tmpfs shmfs -o size=1500m /dev/shm
mkdir /mnt/provision chmod 755 /mnt chmod 755 /mnt/provision
yum install glibc.i686
yum might get error
Existing lock /var/run/yum.pid: another copy is running as PID ….
Waited a few minutes and was able to run. Oracle VM must run some yum stuff just after starting up. After one try, the running yum process never seemed to exit, so rebooted VM and upon reboot was able to run yum
Back as Oracle unset TWO_TASK as it blocks “/ as sysdba” connections and get rid of the .bash output as it messes up scp and Delphix trying to put the toolkit onto the box
unset TWO_TASK cp .bashrc .bashrc.orig cat .bashrc.orig | grep -v cat > .bashrc
Set up Delphix c##delphix container user and delphix PDB user
sqlplus / as sysdba << EOF create user c##delphix identified by delphix; grant create session to c##delphix; alter user c##delphix set container_data=all container=current; grant select any dictionary to c##delphix; create or replace view v_x\$kccfe as select * from x\$kccfe; grant select on v_x\$kccfe to c##delphix; create synonym c##delphix.x\$kccfe for v_x\$kccfe; alter session set container=orcl; create user delphix identified by delphix; grant create session to delphix; grant select any dictionary to delphix; create or replace view v_x\$kccfe as select * from x\$kccfe; grant select on v_x\$kccfe to delphix; create synonym delphix.x\$kccfe for v_x\$kccfe; EOF
make a toolkit directory
mkdir ~/toolkit
Add the inventory directory and the inventory file with version info that Delphix uses
mkdir $ORACLE_HOME/inventory mkdir $ORACLE_HOME/inventory/ContentsXML cat << EOF > $ORACLE_HOME/inventory/ContentsXML/comps.xml <?xml version=”1.0″ standalone=”yes” ?> <PRD_LIST> <TL_LIST> <COMP NAME=”oracle.server” VER=”12.1.0.2.0″ BUILD_NUMBER=”0″ REP_VER=”0.0.0.0.0″ RELEASE=”Production”INV_LOC=”Components/oracle.server/12.1.0.2.0/1/” LANGS=”en” XML_INV_LOC=”Components21/oracle.server/12.1.0.2.0/”ACT_INST_VER=”12.1.0.2.0″ DEINST_VER=”11.2.0.0.0″ INSTALL_TIME=”2014. Sep.19 15:31:29 EDT” INST_LOC=”/home/oracle/base/oracle12102/oracle.server”> </COMP> </TL_LIST> </PRD_LIST> EOF
Put database in archive log mode
sqlplus / as sysdba << EOF shutdown immediate; startup mount; alter database archivelog; alter database open; alter system switch logfile; alter system switch logfile; EOF
Use the machine name in listener.ora and tnsnames.ora instead of IP from 0.0.0.0
LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclevm )(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) )
vi $ORACLE_HOME/network/admin/listener.ora lsnrctl stop lsnrctl start sqlplus / as sysdba << EOF alter system register; EOF
Then in Delphix UI, go to
Manage -> Environments click “+” sign add host after host is added click on the database tab (far right disk icon) on database tab for environment, click on “discover” for login/password give c##delphix / delphix (the CDB login we created) this will discover the PDBs now click on Delphix or Manage-> Databases -> My databases click “+” sign select the orcl PDB on cdb1 for login/password give delphix / delphix (the PDB login we created)
After creating the vPDB it shows up for the listener
lsnrct stat … Service “vorc_fd7” has 1 instance(s). Instance “cdb1″, status READY, has 1 handler(s) for this service…
I add an entry to $ORACLE_HOME/network/admin/tnsnames.ora
DELPHIX = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oraclevm)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = vorc_fd7) ) )
and then connect with SQL*Plus
sqlplus delphix/delphix@DELPHIX
photo by Yannis (CC 2.0)
Comments