One of the really cool features of the new SEQUENCES which were introduced in SQL Server 2012 is that you can specify the size of the cache used for each sequence. However Microsoft is recommending that when creating sequences you should always specify the cache size of the sequence. This is because Microsoft has stated that they can and may change the default cache size at their whim between builds of SQL Server 2012 and in the future.
Because of this you should always specify the size of the cache so that you get consistent results from deployment to deployment, especially if you work for a software distributor (ISV, Consulting company, etc.).
Like all databases the VMware vCenter database needs to have the disks configured properly for best possible performance. Don’t get me wrong, if you’ve got a very small vCenter database that’s only a couple of gigs in size then the disk size isn’t all that big of a deal. However if you have a larger vCenter database with dozens of hosts and hundreds or thousands of guests you’ll want to spend a little time setting up your disk systems for the vCenter database correctly.
For a proper disk configuration you’ll want at least three different LUNs or local RAID arrays (I’ll assume you are SAN attached here, so if you are using local disk just replace LUN with RAID array). These three LUNs should be RAID 1 (or RAID 10, 0+1, whatever your storage provider calls this). One of these LUNs will host the Main Data File (the files that have a file extension of mdf). Another one of these LUNs will host the transaction log file (the files that have a file extension of ldf). The last LUN will be for the files for the tempdb database.
Now these three LUNs shouldn’t be sitting on the same physical disks (if you are using a 3PAR, IBM XIV, etc. that is shared everything you can probably ignore this part). You especially don’t want the data file and transaction log file on the same LUN. The reason for this is that both of these LUNs will be written to at the same time so having these on the same physical disks will cause contention at the disk level. You don’t want the tempdb on the same disks as either of these other LUNs either. Now if I had to pick one of these LUNs that I would put the tempdb LUN on the same physical disks with I could have it share spindles with the vCenter databases transaction log file. My reason for this is because most of the time that tempdb database will be used by the vCenter database it’ll be reading data from the main vCenter databases and putting it into the tempdb database for processing. So there should be less contention if the tempdb shares spindles with the transaction log file. If possible keep all three LUNs on separate sets of spindles.
When sizing the LUNs don’t forget that the vCenter database will be keeping at least a years worth of data, so make sure that you give the system plenty of room. At least 20 or 30 Gigs would be a good starting point. VMware should have some sizing estimates that you can use on their website. The bigger your VMware environment is the more disk space you’ll need.
When it comes to moving the vCenter databases to the new LUNs (assuming that you aren’t starting with a new vCenter database here) you’ll want to shutdown the vCenter services, then right click on the vCenter databases in SQL Server Management Studio and select all tasks, then detach. Then move the databases to the correct location. Then in SQL Server management studio right click on databases and select All Tasks then Attach database. Locate the database in the new location in the popup window and attach the database. Once the databases have been attached to the SQL Server instance you can restart the vCenter services to get vCenter up and running again. This whole process should only take an hour or so depending on how large your vCenter databases are.
Don’t forget about the update manager database and cache folder. You’ll probably want to put the update manager database on the same LUNs as the other vCenter databases, which is fine. The cache how ever should go on another LUN as it’ll take a lot of space, and we don’t want all that space causing space problems for the vCenter database files. Also you’ll probably want to use fast storage for the vCenter database as the data within that database is always changing and slower SATA storage for the update manager’s cache files as they are static are almost never written to or read from so you don’t want to waste expensive storage on storing gigs of update files.
Hopefully this information helps you build a more tuned VMware vCenter server. If you have questions feel free to contact me, we can probably get them resolved pretty quickly.
My Storage and Virtualization Class, which is available on demand, has started but you can still sign up for this great class and watch all the videos and get all the training to get you up to speed on Enterprise Class Storage and Virtualization so that you can get the best possible performance from your systems at work, and have an intelligent conversation with your storage and virtualization admins.
The course cost is $169 for full SSWUG.ORG members and $199 for non-members. The cost of the DVD with purchase of the course is an additional $199. The DVD costs $399 if you do not purchase a course seat. Course downloads, office hours and the ability to email questions to the instructor are included with course purchase only.
Class attendees will have access to me via a live chat daily (once I get back from Europe next week), through out the month of the class, to get all their questions answered.
This week I spoke at two great events. The first was SQL Zaterdag (SQL Saturday in Dutch) and the second was SQL Server Days. These were both great events that I am so happy to have been a part of. For those that attended SQL Zaterdag you’ll find my slides for those sessions on this other blog post. Below you’ll find the slides for the sessions I did at SQL Server Days.
I hope that everyone enjoyed these two events as much as I did. I look forward to seeing all my crazy new European friends at the SQL PASS summit or the next time I make it out to Europe.
Microsoft and Quick Start have teamed up to present a SQL Server 2008 MCM training class, which is being delivered online so you can view the classes from anywhere without the expense of flights, hotels, etc. There are 14 classes, two hours each which will be delivered on Tuesday and Thursday afternoons running from November 29th, 2011 through January 19, 2012.
Week 1 – November 29 and December 1, 2011 Recoverability and integrity
Week 2 –December 6 and 8, 2011 Manageability
Week 3 –December 13 and 15, 2011 Security
Week 4 –December 20 and 22, 2011 Performance
Week 5 – January 3 and 5, 2012 Availability
Week 6 – January 10 and 12, 2012 Developer support
Week 7 – January 17 and 19, 2012 Scalability
The presenters for these sessions are all top notch presenters. I will be delivering the Manageability and Security sessions and other presenters like Robert Davis (SQL Server MCM and MCM Project Manager) will be delivering the other sessions.
You can read the details of the various sessions on the QuickStart site which is setup for this very special set of classes. The cost for his great set of classes is only $2495 which includes access to tons of lab material. If you don’t want access to the lab material then you can register for the classes only you can sign up for just $1500. Personally I would recommend getting the classes and the labs to get the most benefit from the classes.
Hopefully I’ll see you December 6th.
I had a great time at SQL Zaterdag over in Amsterdam over the weekend. It was great seeing everyone make making some great new friends. It’s just amazing what the SQL Server community can do.
For those that requested copies of my slide decks you can download them here.
So as a followup to My SQL Server 2012 licensing blog post I wanted to follow up on what exactly is a core license good for.
When working in the physical world it’s pretty easy to figure out. However many cores there are on the physical chip is how many cores you need licenses for. If you’ve got one of the new 12 core Intel CPUs with Hyper Threading enabled you need 12 core licenses for that CPU.
When we get into the world of VMs that is where things get a little more iffy. We are no longer concerned about physical cores on the socket but now we are licensing based on the number of vCPUs which have been presented to the guest OS. If you have the same 12 core CPU that I just talked about, but you assign all 24 logical processors as vCPUs to the guest you have to license for 24 cores for that VM. For those of your doing the math, yes this means that you have to double license the cores when working in a VM.
While I’m sure that this isn’t the best news that you’ve ever heard, don’t forget that if you are running really large VMs like this you have a few options to help yourself out. First of all don’t forget that to run a 24 core SQL Server you have to be running Enterprise Edition (Standard edition only supports 16 cores in SQL Server 2012), so if you already have an Enterprise Agreement and Software Assurance you can probably license at the host level instead of at the guest level and save yourself some licensing money.
If you plan on running larger VMs running SQL Server you may also want to look at disabling Hyper Threading. You will probably be running the physical CPUs hot anyway and Hyper Threading may just get in your way anyway. This also reduces the number of cores that you can assign to the VM, which reduces your license costs for that VM.
Last week on Wednesday night I had the privilege of presenting a session to the Buena Park .NET User Group. The session that I gave was “Indexing for the .NET Developer”. The abstract for the session is:
“In this session we will be looking at the best and worse practices for indexing tables within your SQL Server 2008 databases. We will also be looking into the new indexing features that are available in SQL Server 2008 (and SQL Server 2005) and how you the .NET developer can make the best use of them to get your code running its best.”
If you would like to download the slide deck that I presented from you can download it here.
I hope that you enjoyed the presentation. I look forward to seeing you at my next presentation.
So you may have heard earlier today about the license changes that are coming out for SQL Server 2012. I know that the official announcement can be a little hard to get through and the changes can be a little confusing at first (or even second or third) glance. The SQL Server licensing team was kind enough to spend some time sitting down with me to try and work through how the license changes will be effecting customers. Please note that any prices that I quote in here are list (retail) prices and are shown in US dollars. If you have an Enterprise Agreement with Microsoft you will probably be paying less.
First lets start with the edition lists. SQL Server is reducing the number of editions from 6 down to 4 (I’m excluding all the different appliances here). Those editions will be Express, Standard, BI, and Enterprise Edition. The express edition will still be a free edition with limited functionality. I wouldn’t expect the features that are available in the express edition to change. As for the features which will be available, the specific features which will be in each edition haven’t yet been announced. Look for this sort of feature matrix to be available sometime between now and when SQL Server 2012 goes GA in 2012. Until that feature matrix is released any specific feature to edition information that you here is just a rumor.
The web edition will still exist even though I didn’t list it above. The reason that I didn’t list it above is because the web edition will no longer be available for purchase via enterprise license agreements or retail channels. The only way that you will be able to get the web edition of SQL Server 2012 will be through a hosting provider like Amazon EC2, RackSpace, Dream Host, Genesis Hosting Solutions, etc. These hosting providers will be able to provide you with the web edition of SQL Server 2012 through their hosting provider license.
The workgroup edition is no more. I don’t have any specific information about how the upgrades will work for customers who have purchased the workgroup edition under their enterprise agreements. If you are one of the few customers who has purchased SQL Server Workgroup edition under your enterprise agreement you’ll want to contact your sales rep or Microsoft Partner on what options are available to you when it comes time to upgrade that server to SQL Server 2012.
The standard edition is still around and kicking. Standard edition will be available in both a Server+CAL license model or a CPU Core license model. The costs for a server license or a CPU Core license remain the same as they were under SQL Server 2008 R2 (I’ll explain the core licenses later on). However if you are using the Server+CAL license model the CALs are going up in price by 27% from $164 (US) to $208.28 (US).
There are some things to note about Standard Edition which are changing from prior editions. First there is a hard limit of 16 cores for Standard Edition. This is hard set and is a license limitation so SQL Server will only use the first 16 cores in the server if there are more than 16 cores in the server.
A big change to the Standard Edition high availability story that has been announced is that Database Mirroring in Standard Edition remains but has been marked as deprecated. This means that it is support available, and supported but will be removed from the product in a future release, typically 2-3 major releases from now.
As for the support for other features in the standard edition of SQL Server 2012 not a lot of the details have been made available yet. For the complete support matrix you’ll have to wait until we get closer to the release of the product.
The features that I do know will NOT be available in the standard edition are:
- Data Quality Services
- Master Data Services
- Power View
- PowerPivot for SharePoint Services
- Semantic Model
- Advanced Auditing
- Transparent Data Encryption
- Column Store Index
- Data Compression
- Table/Index Partitioning
- Always On
There is a new edition between the Standard Edition and the Enterprise Edition called the BI Edition. The BI Edition will include all the features of the Standard edition plus some extras. The licensing for the BI edition will only be available in a Server+CAL model. There is no CPU core license available for the BI Edition. If you need a CPU license for the BI Edition you’ll need to look to the Enterprise Edition (as it includes all the BI edition features). Now the BI Edition doesn’t include only the BI stack. It includes the database engine as well with a slightly higher cap on the number of cores that are supported. While the standard edition supports 16 cores for the database engine, the BI edition supports up to 20 cores for the database engine. All of the BI services (SSAS, SSIS, SSRS) will support up to the OS maximum number of cores.
The BI edition will include the following features:
- Data Quality Services
- Master Data Services
- Power View
- Power Pivot for SharePoint Services
- Semantic Model
- Advanced Analytics
The BI Edition will not include the following features:
- Advanced Auditing
- Transparent Data Encryption
- Column Store Index
- Data Compression
- Table/Index Partitioning
- Always On
The BI Edition is listed as having “Basic” High Availability. I have gotten no answer on what “Basic” High Availability is.
The cost for the BI Edition server license will be the same as the SQL Server 2008 R2 Enterprise Edition server license which is $8,592.
If you need an internet facing SSAS cube you can not use a BI Edition license, you will then need to look at purchasing an Enterprise Edition license for that server.
The Enterprise Edition is still around and is the big daddy of the SQL Server stack again as the Data Center Edition of the product is being removed. This means that the Enterprise Edition will hold all the new features that are being introduced. When it comes to licensing Enterprise Edition there is no longer a Server+CAL model available for new purchases. You will only be able to purchase CPU Core licenses. If you are upgrading an existing server that has Server+CAL using your Software Assurance or Enterprise Agreement you can continue to use the Server+CAL license model for as long as you continue to pay for Software Assurance. If you terminate your Software Assurance license you’ll then need to purchase the correct number of CPU Core licenses for that server (again I’ll be talking about the CPU Core licenses further down).
The Enterprise Edition of SQL Server 2012 will include all the features of the BI Edition as well as the Standard Edition.
The Datacenter Edition of SQL Server is going away. All users of the data center edition will be switching into the Enterprise Edition of SQL Server 2012. There will be some special benefits when you do this change out as you switch your CPU licenses of SQL Server 2008 R2 to CPU Core licenses of SQL Server 2012 which I’ll cover below.
CPU Core Licenses
By now you’ve probably noticed that I’ve mentioned CPU Core licenses and not CPU licenses. That’s right, Microsoft has decided to follow the unholy beast (aka. Oracle) into CPU core licensing hell. It’s actually not that bad, and for most of your servers the costs should stay the same.
The CPU Core licenses (available only for Standard and Enterprise edition) are sold in two core “packs” (I don’t know the actual term for them yet, so I’ve decided to call them “packs”). If you have quad core CPUs you need two of these packs per socket. These license packs will cost half of what a SQL Server 2008 R2 CPU license cost. The catch here is that you have to purchase at least 4 cores per CPU. The reason that Microsoft decided not to just sell the licenses in 4 core “packs” is because the people with 6 core CPUs would then be screwed having to buy more licenses than they actually needed.
If you have two sockets with 2 cores each, you need 4 license “packs” (8 core licenses)
If you have two sockets with 4 cores each, you need 4 license “packs” (8 core licenses)
If you have two sockets with 6 cores each, you need 6 license “packs” (12 core licenses)
If you have two sockets with 8 cores each, you need 8 license “packs” (16 core licenses)
SQL Server in a VM
When you are running SQL Server within a virtual machine if you are using CPU Core licenses then you will need to license at least 4 cores for the VM. If you have more than 4 vCPUs on the VM you’ll need to have a CPU Core license for each vCPU that you have assigned to the VM.
Host Based Licensing
SQL Server 2012 will still include host based licensing as on option for those customers who have Software Assurance and an Enterprise Agreement. The host based licensing works just like it did before, you purchase enough Enterprise Edition CPU Core licenses for the host and you can run as many virtual machines running SQL Server as you would like to.
Upgrading using your Software Assurance Rights
This is probably the section that you were looking forward to (or dreading) the most.
When you upgrade from SQL Server 2008 R2 (or below) to SQL Server 2012 using your Software Assurance rights you can continue to use your existing license model until the end of your Software Assurance cycle. This means that if you have CPU licenses under SQL Server 2008 R2 you can continue to use those CPU licenses under SQL Server 2012 until your Software Assurance expires. Once it expires you will need to true up on the number of CPU Cores. When this true up happens each CPU license that you had before will count towards a minimum of 4 CPU Cores (if you have Data Center Edition CPU licenses of SQL Server 2008 R2 you will be credited a minimum of 8 CPU Cores for each CPU license). If you have a large server that needs upgrading talk to you Microsoft Account Manager or Microsoft Partner about the core credit that you’ll get for your legacy CPU licenses. You’ll notice the magical word “minimum” shown here. This is because the Microsoft Account Managers and Microsoft Partners have the ability to give you more credit that these minimums.
If you have a SQL Server today with two sockets and you upgrade it to SQL Server 2012, then you need to add two more sockets to the server you can still do that. Contact your Microsoft Account Manager (if you have a Software Assurance or an Enterprise Agreement then you have a Microsoft Account Manager, your boss probably knows how to contact them) or Microsoft Partner and they will be able to see you CPU licenses for existing servers only. The SKU won’t be published, but it will be available internally for them to get to you.
Server Licenses and Upgrading
If you have a Standard Edition server that uses Server+CAL licensing that you are upgrading to SQL Server 2012 do keep in mind that hard limit of 16 cores for Standard Edition.
If you have an Enterprise Edition server that uses Server+CAL licensing that you are upgrading to SQL Server 2012 don’t freak out. There is an upgrade path for you even though there is no more Server+CAL license available for SQL Server 2012, provided that you have Software Assurance for the SQL Server license. If you do then you can upgrade that server continuing to use the Server+CAL model (don’t forget that your CALs need upgrading as well if they don’t have Software Assurance) until your Software Assurance expires at which point you would need to downgrade to the BI edition or the Standard Edition; or upgrade to the CPU Core license model to remain on Enterprise Edition (look at the features you need before making this decision). Now the catch here is that using the SQL Server 2012 Enterprise Edition with a Server+CAL license option (that you’ve upgraded into as you can not purchase this new) is ONLY available for servers that have 20 cores or less. If you have a SQL Server with more than 20 cores running Enterprise Edition using a Server+CAL license model you’ll need to talk to your Microsoft Account Manager or Microsoft Partner to see what options are available to you.
Costs For Buying New
For Standard Edition when using the Server+CALs license the cost will remain the same as SQL Server 2008 R2 ($898). When using the CPU Core license model if you have 4 cores or less per CPU socket the cost will remain the same as a CPU license for SQL Server 2008 R2 ($7,171 US). If you have more cores than 4 per socket the costs will go up depending on the number of cores that you have. For every two cores in the server you’ll need a CPU Core “pack” which will cost $3,585.50.
For the BI Edition your only option is Server+CALs. The SQL Server 2012 BI Edition server license will be the same as the SQL Server 2008 R2 Enterprise server license cost ($8,592).
For the Enterprise Edition your only option is the CPU Core license model. For a server with 4 cores or less per CPU the cost will remain the same as a CPU license for SQL Server 2008 R2 ($27,495). If you have more cores than 4 per socket the costs will go up depending on the number of cores that you have. For every two cores in the server you’ll need a CPU Core “pack” which will cost $13,747.50.
If you have an Enterprise Agreement check with your Microsoft Account Manager or Microsoft Partner for actual pricing information. Customers with an Enterprise Agreement should be paying less than these numbers show. Of course Software Assurance will made the numbers go up but that includes its own set of benefits.
I hope that this answers your questions about the SQL Server 2012 licensing model that will be coming out. If I didn’t please post your questions here or on Twitter and I’ll either answer them or get them to someone who can answer them if I can’t and get the answer published either in the Q&A here or as a new blog post.
Now you may think from this rather long post that I like everything that I’ve talked about here, which isn’t the case. This blog post is to simply explain what is coming in as clear a way as possible given that the presentations on this topic that I’ve seen to date have left me with a lot more questions than answers. After all I did spend the better part of a day on the phone with two people at Microsoft to get all of this explained in such a way that I understood it. As not everyone out there will get that chance I put together this blog post to explain what I learned. Personally I don’t think that killing off the Workgroup edition was not a good idea. Lots of people were using it, including everyone running SBS 2008 R2 (or what ever it is called).
I’m not a big fan of the core based licensing model that we have coming out with SQL Server 2012, but I do understand why Microsoft is going to this model. I think we were pretty lucky to have gotten away with CPU based licenses for as long as we did. Personally I really think that moving away from a Server+CAL license model for Enterprise Edition is a bad plan given that thinks like the Utility Control Point require Enterprise Edition (I’m assuming this will still require EE). If you want to manage a large company with UCP that requires a pretty beefy Enterprise Edition server which is dedicated to UCP, yet this server now will cost A LOT compared to just buying an Enterprise Edition Server+CAL license for your UCP server.
I think that a lot more information is going to be needed before any real decision can be made on how much I like or don’t like these changes. When the full feature to edition matrix is released that will be a big deciding factor in how well some of these changes will go over.
Obviously the knee jerk reaction of SQL Server 2012 is going to cost me more money so the chance sucks is an easy one to take, hell that’s where I started from (you should have seen the first emails I sent to Microsoft). But when you look at some of the variables that they have put into getting people upgraded, specifically the ability to convert a CPU license to at least 4 core licenses (or at least 8 if coming from Data Center edition) gives some flexibility. This is when it is going to be very important to have a good working relationship with your Microsoft Account Manager or Microsoft Partner as the ability to upgrade for as little as possible will be sitting squarely in their hands. I would reach out to this person now, get to know them. Bake them some cookies, send them a bottle of booze, what ever it takes to get on their good side.
VMware’s vCenter system uses SQL Server as it’s default database platform. One thing that needs to be looked into for a lot of VMware installations is the backup setup for the vCenter databases. Often I find the vCenter databases configured in SIMPLE recovery. Now this doesn’t mean that the database is simple to recover in the event of a failure. What this actually means is that there is no point in time recovery of the vCenter databases. Now this might be OK for smaller systems as there probably aren’t a whole lot of changes being made to the vCenter farm other than performance data. As long as you are OK with loosing a days worth of performance data then keeping the vCenter databases in SIMPLE recovery might be OK.
However for larger farms lots of changes are probably being made to the configuration of the farm on a daily bases. Because of this you won’t want to run the database in SIMPLE recovery. Instead you’ll want to run the database in the FULL recovery mode. This enables the ability to do point in time recovery of the database once you start doing database transaction log backups. This means that when (note that I didn’t say “if”) the hard drives on the vCenter server fail and cause the database to be lost
of become corrupt you’ll only loose a few minutes of data at the most.
To ensure that you don’t loose a lot of data from the vCenter database you will need to begin doing transaction log backups. This will do a couple of things. First it’ll make it so that you can restore the database successfully. Second it’ll make sure that the hard drive on your vCenter server doesn’t fill up with one giant transaction log file. If you don’t have a DBA in your shop, and you’ve got a SQL Server with a license that you paid for (something other than the SQL Express that VMware installs if needed) you can setup the SQL Server Maintenance Plans to handle the backups using SQL Server Management Studio. You can always bring in a SQL Server consultant to setup backups and make sure that everything is setup correctly and working if you don’t have a SQL Server DBA handy. If you’ve got a DBA handy in your shop you’ll probably want to have them setup SQL Server backups as per your normal company policies so that the databases are backed up, and those backups tested to ensure that they are functional.
Personally I like to set the recovery mode for the vCenter databases to FULL when working at clients, but it’s totally up to you, as long as you understand what the risks are with each of the options available to you. (Yes I know that I didn’t cover the BULK_LOGGED recovery model, for the purposes of VMware’s vCenter databases the BULK_LOGGED recovery model and the FULL recovery model are the same.)
Hopefully I have helped demystified the SQL Server backup concepts for you a little bit.