In the spirit of my previous runaround post, I decided to do the same for my latest long run.
This time I ran in Brooksville, FL instead. The combination of week 7 of training plan (Disney here I come!), the kid’s school camping trip and the opportunity to run in a new place warranted this post.
Call me weird, planning the run was half the fun. Between Google Maps and Garmin Connect, I was able to plot a route around our camping site that lined up with planned run.
The only thing I did not plan was the expected humidity. According to NOAA’s site, average humidity was 69. That is a lot of water in the air. Thankfully, it was cold enough that it was not a bother. Accordingly, however, my printed route paper was completely wet 2 minutes after I took it out of pack!
One of the few frustrating experiences learning VMware Hypervisor has been loosing my server! At install time, I must have defaulted to automatically getting an IP Address from DHCP. Twice now, I’ve attempted to login thru vSphere and my server is nowhere to be found. The hosted VMs are all accessible. Its just VMware that goes M.I.A leading me to the suspicion that I did something wrong.
My usual fix is to scan my network for devices.
After figuring out which IP Address is my server at now, I proceeded to the servers configuration page on the right and selected networking from the mid-left pane.
Selecting properties from the rightmost panel brings up the networking details for the server. Here, I can see my new IP Address as well.
Selecting Management Network from the left pane and pressing the edit button brings up the network properties where I can change the IP Address.
Easy enough, I changed my settings to statically set my IP Address. Done!
One missing feature of the wonderful free version of VMware vSphere Hypervisor is the auto-magic way of cloning a VM. Nothing I could find at least on this. There are features for managing snapshots of VMs, for taking snapshots and related tasks, however, to backup/clone a VM, you have to take matters into your own hands.
Before you follow this steps, ensure the VM you’re about to clone is off.
First step, on your VMWare GUI, from Storage section, right click/browse the datastore where your VM image is stored.
On the Datastore Browser, create a new folder. This directory will shortly become your cloned VM directory.
Having created a directory for the VM (to be cloned), click on the folder of the VM you want to clone now. From the contents of this directory, select all the files, skip the logs and right-click copy. Notice screen-grab shows .ldk and .vswp files. The existence of these is because I grabbed the image from a running VM. Remember the VM to be cloned should be shutdown. These files should not be part of copy/paste steps.
Having copied all the files, go back to the newly created directory and right-click paste these previously copied items.
From all the copied files, right-click the file with the vmx extension and select ‘Add to Inventory’.
Select a name for your newly created VM
Finally, select the location of new VM. Here you can see me place all ‘Base’ VMs in their own ‘Resource Pool’. I am only doing this to group together copies I make of any VM I configure. I haven’t even looked up why I want to use a resource pool for its intended purpose.
As mentioned at the beginning of this post, there may be an official way of creating/cloning VMs in VMware vSphere Hypervisor but I do not yet know how. This, however, works like a charm, enjoy. Thanks for reading.
UPDATE – Post has been revised since posted for accuracy. Thanks Matt.
Alright. Having recently installed Oracle DB 12c, I was disoriented for four days before things started to click. No joke, this latest release of Oracle latest database server is the biggest release-to-release departure of old to new I have witnessed so far… I’ll like to think I have a long way to go.
I’ll go over the items that most baffled me and attempt to explain what these changes mean and how to catch up to Oracle 12c. By the end of this post, maybe I can convince you there quite a few niceties that come from free for all our trouble. Hope it saves you some time as well.
Disclaimer - This post made sense a week into Oracle 12c… I am certain there are better explanations around.
The usual Oracle Installer rears its head again and does (did for me) provide a streamlined, uneventful installation. I think the later portion, where it sets up / installs main database (more later) is even better than before. It allows greater freedom to go into the server, after installation, and doing this later portion again. Neat.
Above is our reference layout for Oracle 12c’s ‘arrangement’. Get ready; this is a mouthful. For an Oracle 12c DB Deployment, we have the following:
- A 12c deployment can have one or more common databases as shown by CDB1, CDB2, CDB3 in illustration.
- A 12c deployment has one common database as shown by CDB1.
- This CDB can have one or more pluggable databases. PDB2’s ‘content’ is being shown above.
- The CDB has one pluggable database seed (PDB$SEED).
- Think of this as a System-wide operational databases of the instance it is in.
- The CDB will have our Common Users such as SYS and SYSTEM we are already familiar with.
- The installer will add an entry to the server’s tnsnames.ora as well. This entry will define the SID/Service name for your CDB. This is the SID entry we commonly end up naming ORCL.
- Connecting with the CDB users will use this default SID as usual.
- The server will use the SEED schema to create our PDBs.
- PDBs can also be created by cloning another PDB. This can be done both from SQLPlus and from SQL Developer.
- PDBs can be moved from one CDB to another one as a whole.
- Moving PDBs can be done within the same server or from one server to another.
- PDBs will host our user schemas.
- In the image above, you can see some of the Oracle Sample Schemas such as HR , OR etc. You can also see some of my own schemas; eBay and Movielens.
- An additional service entry needs to be added to the server’ tnsnames.ora file in order to connect to a schema inside a PDB. This is NOT done by default. Neither the installer nor the Database Configuration Assistant Tool will do this at PDB creation time.
- A PDB can be in an open (writable) or a closed state. It needs to be open in order to connect to it.
- Similarly, you would close a PDB as follows. More on why you do this later.
- Connecting to a user schema inside our PDB will require us to use this Service Name, INSTEAD OF, the CDB’s entry.
- Common Users belong to the CDB.
- Common Users can connect to both the CDB and PDBs as seen above.
- Users SYS, SYSTEM, etc. (DB Users) exist in the CDB.
- Users OE, HR, etc (Sample Schemas) & application databases (Movielens, EZPrints) exist inside a PDB.
- Old EM has been replaced by what seems to be a much simplified version properly titled EM Database Express 12c.
- Features seemingly dropped from EM make it to Cloud Control. This is a separate product.
- Its ALL Flash! Haven’t accessed from Chromebook yet but expectations are low.
- By default, connecting to EM as SYSDBA opens GUI for CDB.
- URL has changed! My EM is not at https://localhost:5500/em
- Much like having to activate a PDB before being able to connect to it, EM GUI per PDB has to activated independently. I found all the information I needed in this great post.
- Connecting as SYS to a CDB will not lists all my databases. Now I need to connect, as SYS, to the PDB where my schemas are.
- EM has been trimmed of features I now need to either setup an EM per PDB (please see last link) or, worse still, install a separate tool (Cloud Control).
- It seems we have to keep track of more things before we can get to ‘work’. Is my PDB open? Did I add TNSNAMES Entry for new PDB? Workflows have clearly changed for us.
- Grouping user schemas in a PDB enables us to manage these as a whole.
- A PDB can be plugged/unplugged in a few steps to transfer/restore on a different CDB. This could save a lot of time if you are rebuilding a failed server. for example.
- A lot of the features (like plugging a PDB) can be done from SQLDeveloper (Version 4.x Beta). This kind of makes up for moving features out of EM.
- Instead of keeping several semi-idle instances around for development, this load can be better managed from one 12c instance and multiple PDBs.
Dave Ramsey’s mission is to get people out of debt. He hosts a popular radio show, offers classes nationwide and sticks to biblically backed lessons in every endeavor that his organization does. Classy setup all around. If you tried to boil down his ‘philosophy’ it would succinctly be ‘No Debt’. Simple enough and we all know this but clearly its not what we know but what we do that matters.
He ‘made’ me sell my custom ordered fancy sporty car back in 2006 and I have been a, sometimes reluctant, fan ever since. Upside is that my family is debt free minus the house and we can clearly see the day when we are not even encumbered by that. I’ll like to rephrase that: Not a care in the world!
Thanks Dave; if you ever setup shop in Orlando, let me know!
Anyways, just google Dave Ramsey if the above sounds appealing; he is 10x more eloquent that me. One of the events Dave goes on tour for is Entreleadership. This event’s focus is guiding the entrepreneurs among us motivating them to stand up and be good leaders at their venture.
Having seen Dave a few times, I think this is one delivers one of his strongest messages to his audience. I was fortunate enough to volunteer for his Orlando visit this time, got to sell some books and talk to people all day. I also witnessed a little bit of behind the scenes action for his organization. Happy to say that Dave’s Team is running a class act and doing the right thing at every chance. Way to go! I had a great time with the other volunteers who were all great and committed and shared Dave’s mission.
For the two that have read all the way here, I highly recommend assisting this, or any other of his events as a volunteer or audience member. As a volunteer, I got the chance to see Dave a bit but not enough to write down notes as I would’ve had I sat thru the whole thing BUT… I remembered I should have my notes from when I did assist the event.
As a note to self, and my two readers (hey there!), here is a brain-dump from November, 2010. These are notes to self so it’s a-ok if they do not make sense to you. Got it? Good.
Super exiting news today. Tableau Public’s capabilities have been increased. This free solution had been limited to 100k records per datasource and to a combined (for all your stuff) size for all your projects to 50Mb.
They have just increased datasources to 1 million records! Just as impressive, now everyone gets 1 GB of space for their projects. This is awesome news; it will sure save me lots of time spent scaling down a problem to fit Tableau. Yay!
While looking for Paul Revere, I recently learned that you can define many-to-many database relationships in Tableau. I should not have been surprised, Tableau seems to do most things well. It should wear a cape all the time.
Anyways… before I forget, here how to to define a many-to-many database relationship in Tableau.
First, lets define the domain for this exercise. Lets say we have three tables, one for person (PERSON), one for organization (ORG), and an association table defining each persons membership into an organization (ORGPERSON). Each person can belong to none, one or many organizations and, of course, an organization can have any number of members as well.
Here is how this would look in a database: