More Hosting Provider Fallout…

I posted a rant about my hosting provider about 10 days ago. As I mentioned in the post, I quickly got the site up and running again. Pretty soon after that I was at the UKOUG conference and Cary Millsap‘s training course, so I never really got time to look at things again…

On Thursday evening I took a proper look at the site and OMG, what a mess. Here are some of the issues I’ve been firefighting since Thursday…

  • Some images had been lost during the move. I managed to recovery them from a filesystem backup.
  • The version of PHP had changed and the error_log was full of warnings. If seems some of my PHP was not ideal, but it had never presented a problem before. Most of the things were little and fixed quickly once I had found them. In my defense, some of the code was many years old. 🙂
  • Some of the PHP configuration settings had changed, making my back-end code react differently.

The last issue was the big one. Many moons ago I wrote my own custom CMS using PHP and mySQL to manage the site. Most of the site is flat files, but the content of the database is the single point of truth for me. Once I make a change, the flat page(s) are regenerated to reflect the change. The problem was my CMS was screwed. It’s fixed now, but a significant number of pages in the database contain some logical corruption. This doesn’t affect what people see on the site, it just means the database is no longer the single point of truth.

I’ve written some tools to help me fix the data in the database, but I’m not willing to let them roam free. I’m using them to work through the pages one at a time. It’s very labor intensive, but it’s the safest option.

Two bonuses of this whole fiasco are:

  • I’ve got to revamp some of the terrible HTML I used back in the day.
  • I noticed how many of my images are being hot-linked by people. All their requests for the missing images showed up as errors in my error log. This is what alerted me to the missing images in the first place. So not only are these people stealing my content, but they are too lazy to actually copy the images and are using my bandwidth to serve their articles. I’ve put a stop to that. See preventing hot-linking. I’ve allowed Google and to continue hot-linking for obvious reasons.

I was speaking to someone in Bulgaria about the site and mentioned that every year it gets bigger and the time I spend maintaining it, rather than writing new content, increases. This just goes to prove it.

So it looks like the next few days are going to be very busy and very boring. 🙁



Cary Millsap : Mastering Oracle Trace Data…

I was ribbing Cary about missing his unconference session (due to migraine and alarm malfunction). Lenz Grimmer and I both tweeted him to see where he was and in return we received this message in reply.

Very generous indeed. Unfortunately Lenz was flying home so he couldn’t make it. I had a conversation with Cary about it saying I wanted to come, but felt weird about accepting a freebie, so I thanked him for the offer and left it at that.

As the day progressed I kept mentally revisiting my decision. I think it must be my working class genes expressing the , “I do not need charity”, phenotype. Stupid I know, but that’s how I’m made. In the end I decided if I wanted to go, but didn’t feel comfortable with the freebie, then the solution was to pay for the course. So that’s what I did.

So Thursday morning, after a very long 3 days at UKOUG, I found myself in a classroom being taught the wonders of Oracle trace files by Cary. 🙂

It’s a really enjoyable course. Cary’s presentation style is relaxed and natural, which really gets you into the swing of what you are doing. I’ve seen him present a number of times over the years and his style works really well in conferences and the classroom.

I’ve been using Oracle for many years and in that time I’ve lost count of the times I’ve captured SQL trace and run it through TKPROF. So what was there for me in this course? As it turns out, quite a lot. It gave me a better understanding of what trace files really contain and what can/can’t be trusted in the raw files and the TKPROF output. It also showed how the Method R tools can be used to dig deeper into the trace files than is possible with TKPROF alone. There is some very cool stuff there.

The course includes:

  • The “Mastering Oracle Trace Data” book. This means you don’t have to keep scribbling notes and it is much more comprehensive than just a printout of the slides.
  • A limited license for MR Tools and MR Trace. I’ve used the MR Trace SQL*Developer plugin before, but MR Tools is new to me.
  • A t-shirt. Everyone knows I’m a sucker for a t-shirt. 🙂

It was well worth the money in my opinion.



UKOUG 2011: Days 1 – 3…

I went to lots of good presentations over the three days.

Day 1:

  • SQL Tuning – Kyle Hailey
  • Clonedb – Me (not counting myself in the “good” list, just placing myself in the timetable)
  • OakTable Talks
  • Emerging Trends in RAC – Julian Dyke
  • Upgrading your Cluster to 11gR2 – Martin Bach
  • Learning about life through business and software – Cary Millsap

Day 2:

  • NFS Tuning – Kyle Hailey
  • OakTable Talks
  • RAC Attack – Organized by Jeremy Schneider (I spent the rest of the day helping out here)

Day 3:

  • About Multiblock reads – Frits Hoogland
  • OakTable Talks
  • Simulating workloads with RAT and Simora – James Morle
  • What shape is your data? – Niall Litchfield

There were of course many other talks, but when you do as many conferences as me you tend to have seen many of them already. 🙂 Added to that, I got into interesting conversations with people and ended missing sessions because of that.

I went to the OakTable lunchtime talks each day. I think these were my favorite presentations of all. Each day was made up of five 10 minute slots. Quick, casual and no slides. Very entertaining. I hope they happen every year.

The days were incredibly long, as proved by my parking bills. The first day battered me and it was a matter of survival from that point on.

Thanks very much to everyone involved in organization of the event. That’s my first UKOUG as a presenter. Let’s hope it’s not the last.



UKOUG 2011: When sessions attack…

Just finished my session. What a nightmare…

I was surprised anyone turned up as it was a late change to the schedule and there were some great sessions going on at the same time. Check out the photo.

It was kinda OK, until I got to the demo, which I screwed up. That was really disappointing because it really was the crux of the session. I thought I saw the issue and tried to salvage it, but it failed again so I gave up and moved on. I would like to say it was an OK recovery from a disastrous demo, but that would be a lie. Flipping crap.

Quite annoyed with myself because I know why it got screwed up. When I was in Bulgaria somebody asked me a question and I messed with the demo to prove a point, but forgot to repair it afterwards. Of course, it works again now that it’s too late. 🙁

There seemed to be some real interest in the technology and I assured people that the demo screwing up was noting to do with the tech, it was totally my fault.

So not the best showing I could have put in. I think it is summed up nicely by this tweet,

“session clone db is a mess”

Nuff said!

If anyone wants to see the running demo, drop me a line on twitter (@oraclebase) and I’ll meet you and show it working. If not, check out the article here.



UKOUG 2011: Day -1

I missed the OakTable day because it was the 10th birthday party of nephew number 1, but I did make it back to Birmingham in time for the ACE dinner. Mark Rittman provided evidence of my presence here. I was already full of cake and trifle before I arrived, but the waitress didn’t seem to understand, “I’m not eating”, so I was *forced* to stuff myself again. 🙂 Many thanks for the organizers of this event.

I mentioned in a previous post Oracle RAC was not for newbies. Although the commenters seemed to agree with me, a couple of people suggested I was being a bit elitist and if you read the manuals it is all fine. I found out last night that Connor McDonald is now presenting his “Year in Purgatory” talk at UKOUG. I saw this session in Perth and I can’t recommend it enough. As well a being a great show, it highlights just how difficult managing RAC can really be. If you have, do or plan to work with RAC you should see this session, then decide if I’m wrong about the complexity of RAC. Check out the changes to the agenda…

I better get off my ass and head down to the conference. It’s been a while since I’ve driven into the city center at this time in the morning. I hope the traffic is not as bad as it used to be. 🙂

Remember, I’ve got a session at 11.05 today. Once again, check the changes to the agenda.



UKOUG: I’m now speaking on Monday…

A couple of slots opened up in the UKOUG schedule due to cancellations and a message came through the OakTable mailing list asking if anyone could fill them. Alex Gorbachev and myself stepped up to the plate.

This means I’m now speaking about Clonedb on Monday at 11:05 in the Media Suite. See here.

The downsides to this are:

  • I’m now up against Connor McDonald who is always brilliant, so I won’t get to see his talk and he’ll soak up all the attendees.
  • I’m also up against Greg Rahn‘s session on Real-Time SQL Monitoring. I saw this at OOW and it’s well worth seeing.
  • One of my Brummie mates wants to come and watch me present, which will make me nervous as hell, especially if he is the only person in the audience.

On the positive side:

  • It will be my first presentation at the UKOUG conference. Long story… 🙂
  • My Brummie mate will actually go to see Connor, which means there will be nobody in the room, so I can blog about how awesome I was.
  • The adrenalin rush associated with presenting will help to delay the inevitable illness I get at the end of the year when all my presentations are over. Maybe I will actually make it to the end of UKOUG this year…

So if you fancy coming along to heckle me on Monday morning, you know where I am. 🙂



Fasthosts : Your technical support isn’t technical or supportive..

The first draft of this post was rather explosive, containing many expletives and could probably have landed me in jail on some trumped up charges. This is the more moderate version.

To cut a long and boring story short, I made a change to my hosting package today, which suggested it was an administrative change, rather than something physical. The fact it transferred my whole site to another server is annoying, but if I had bothered to read the 3000 pages of T&Cs it would probably have become obvious.

The website was down for a little time, but the static pages came back pretty quickly. This made me think maybe my whole site had been moved to another server. OK. Brief glitch, but no major worries. Then I noticed my forum and blog were either giving “Server Error” or “Can’t connect to database” errors. A quick check with phpMyAdmin showed the mySQL databases were all fine and unchanged. So the pages were fine and the DBs were fine, but it wasn’t working? Now I started thinking it might be a network issue between the webserver and the DB server.

This is where I called Fasthosts technical support. I’m not going to go into the whole long an painful episode, but I would just like to list a few choice points that show how bad the “technical” support can get. The support person:

  • Didn’t seem to understand the difference between a web URL and an operating system path.
  • Told me I had just reset my SSH password when I had actually set up a new FTP user for her to use.
  • Told me that SSH doesn’t allow more than one connection attempt per hour.
  • Told me I had said FTP was unavailable, when in fact I had said it was fine all the time.
  • Wanted me to give them the FTP and the database passwords to “diagnose” the issue, when I told them the connections to these services were fine. Having dealt with them before I knew that in giving them these details they would just make a connection and say, “connection works fine”.
  • Told me the scale-up was administrative and didn’t affect my services, then later said it could affect my website for 24 hours because everything was being moved to a new server. When I suggested the OS file paths might have changed, she returned to the administrative-only stance. WTF?

At this point I had decided the only thing that could be a problem was if the OS path had changed (a few config files were referenced from a secure directory using the OS path, rather than a web URL). SSH was knackered also, so I asked if they could just connect to my account with SSH and do a “pwd”. This got escalated to an engineer????

In the mean time I did a reset of my SSH password, hoping that it might get me connected again. Trouble is the reset request can take up to 15 minutes to be processed. After about 10 minutes I was able to SSH the server again and did the “pwd” myself and sure enough, the OS paths had changed. I put the new paths in a couple of files and everything was working again. I rang back and closed the ticket…

I don’t mind that they use muppets to triage calls. I mind when they say things like, “Let me explain this to you”, in a patronizing tone, then proceed to talk complete garbage because they don’t understand the technology. I also mind when you ask a specific question, like “Can you just SSH to my account and tell me the result of the ‘pwd’ command”, you are bombarded with a whole bunch of crap and the sum total is the original question isn’t even placed on the ticket.

Support is a tough job, even when you know what you are doing, so why do these companies insist on using total dumb-asses? I know the answer. No need to tell me… 🙁