Breath a little life into your Small Business Server

This one seems like an obvious one, but I will post it anyways. Chances are that you have deployed and/or maintain Windows 2003 Small Business Server. Many small businesses purchased SBS during “the good times” of 2003-2008.

Due to the licensing restrictions imposed on the product by Microsoft, these servers are always one boxed. That is to say that they have too many servers and services on the same hardware. Most of these systems are reaching their end of life and are running slower than ever.

These 32bit boxes are usually maxed on RAM (4GB) and are starving for more. Lately I have been auditing the list of installed applications and removing as needed. The memory hog is usually some SQL server running even though it isn’t in use. Take into account Backup Exec, WSUS, SBS Monitoring, and Sharepoint and you begin to see where all that RAM is going. Almost all of my clients have been moved over to a managed services platform which handles Windows Updates and system monitoring. That takes out two standard SQL databases/instances right off the bat.

So the long story short is this: Reevaluate the needs of your aging servers and get more from them by removing obsolete tools.


Microsoft SQL: A few helpful queries

Let me start by saying that I am not a DBA, nor would I ever pretend to be one. But with that said, all of us at some time or another will need to assist someone with SQL. If you have ever landed a client with a SQL server based application, you have probably been put in a situation where you have had to learn right then and there. That is pretty standard when you are playing the part of the out-sourced know-it-all. Hopefully a few of these will help you along the way.

*Note*: Use common sense when working with anyone’s data, especially databases. I always backup before running any queries that may compromise the data in anyway.

1. Consistency checking. You may be receiving various Backup Exec errors indicating that a consistency check has failed in database x or maybe you just want to check just to be sure. Select the database that you want and then click on New Query. On the right hand side/pane, enter in DBCC CHECKDB and click Execute.
This will run a consistency check on your database and report any problems that may be found.

2. Allocations errors. After reading through the results of your DBCC CHECKDB query, you may find allocations errors. You can try nullifying those nasty little bastards with another easy

3. Table errors. Once again you may run into these and you have a few options. Start by creating a new query containing: DBCC CHECKTABLE ('theNameofYourTableHere', REPAIR_FAST);. From there you can run a full repair by executing another query containing: DBCC CHECKTABLE ('billheaders', REPAIR_REBUILD);. It is worth noting that these two queries/commands do not harm data, that is to say, they do not allow or consider data loss to be acceptable.

4. A sledge hammer to crack a nut. Sometimes when all hope is lost, and you are CERTAIN that you have a backup of the database (damaged or not) that you are working on, you can try a repair with data loss. Im not sure about the exact rules of when you should and should not use this query, but I am fairly certain that the SQL God’s of ole’ role over in their graves everytime you execute this query. Anyways, here is it: DBCC checkdb ('yourDatabaseNameHere', repair_allow_data_loss);

5. Exclusive lock. Some of these queries require that you have SQL in Single User Mode. I spent longer that I wanted searching for a way to do this. Most of my Google searches turned up solutions for starting the entire SQL server or instances in single user mode. But I didn’t want to do that. In fact, I could not do that to the production SQL server while it was in use. Use this query to put a single database into single user mode: alter database yourDatabaseNameHere set SINGLE_USER. Once you are done with your checks and queries in single user mode, you need to get the DB back up so everyone can access it. Use this query to send the DB back into multi user mode: alter database yourDatabaseNameHere set MULTI_USER

6. SQL version. You may want to determine the version and update level of your SQL installation. Run the following query to find out: SELECT @@VERSION

I am certain that there are hundreds of other useful queries, but these are the ones that I found myself using the most. Hopefully they will help you out as well.


MySQL – Poor Man’s Database

MySQL is a relational database management system that runs on a wide variety of platforms including MS Windows. There is an estimated install base of over 11 million. Practical operation is the same as other SQL server applications, whereas multi-user sessions can simultaneously access stored data.
Previously owned as a subsidiary of Sun Microsystems, as of April 20th, 2009, Oracle has announced intentions to purchase Sun. Oracle Buys Sun
One of the most popular uses of MySQL is for web applications and is used by many high transaction websites such Facebook. MySQL is fully OBDC compliant as well.
MySQL has consistantly be shown to be very fast performing and highly reliable, both critical to use in a production business environment.
Currently MySQl is available in two license formats: Community Server and Enterprise Subscription.
For the minimal annual fee of $599/server/year Enterprise offers a consistent monthly and quarterly release schedule. Compare to other sql server apps and you will quickly appreciate the value.
Community Server is available for download at no charge and has sporadic updates.