| I consider proper SharePoint storage (SQL, databases, and disks) management to be among the most important and bang-for-buck producing work one can do on SharePoint. That’s why it always shocks me to see storage managed so poorly in many environments. Here’s just a few issues I see. - Databases and the disks they sit on near or at capacity
- Improper site collection load balancing across databases
- No database maintenance
- No backups or no idea how they run, who does them, or where they go
- SQL and storage black holes – That is the folks who run SharePoint have no idea who runs SQL, their SAN, or how they do it as if the whole thing sat in a black hole
- Virtualization storm clouds – Worse than above. Virtualization folks run everything, servers, SQL, storage in one big “Cloud” often on one server. I liken these to storm clouds cause either a shit storm is raging or about to
- Improperly designed, horribly inadequate storage
Come watch this free webcast where you can learn how to identify and resolve storage issues, and prevent them in the first place. We’ll talk about database and disk design, maintenance, backups, troubleshooting, and blobs too! Don’t miss this action packed hour of demos and insight. To register, go to http://seriouslabzoptimizesharepointstorage.eventbrite.com/ |
| There are many examples on the web of how to display tweets in SharePoint. Thanks to Twitter’s open API, adoption of REST, XML, JSON, ATOM, and RSS it’s quite easy to monitor tweets from your favorite tweeps and channels. However, many twitter tasks require authentication. Obviously, any post to twitter will require authentication, but many get requests such as getting user info, followers, etc all require authentication. Each method and authentication requirements can be found here: http://apiwiki.twitter.com/Twitter-API-Documentation Something to note is that twitter has supported Basic Authentication since inception, but that support dies on August 16th, 2010. Twitter has moved to oAuth as it’s standard for authentication and working with oAuth can be tricky for the uninitiated. Fortunately, twitter has been spending some of that recent funding on improving the developer experience and authentication can be made in few lines of Javascript. Before you get started with any code however, you should know that gone are the days of “stealth” twitter integration. If you want to play with twitter you need to register your application (website) for access. Registering will enable you to use Twitter’s oAuth among other things. To register your application, go to http://dev.twitter.com/apps/new and complete the form. You will receive an application key. Make note of this. Now that you have registered your application you can now start coding. Fortunately, all the hard work is done. To authenticate via twitter, first reference twitter’s @anywhere script in your master page header like so: <!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>Anywhere Sample</title>
<script src="http://platform.twitter.com/anywhere.js?id=YOUR_API_KEY&v=1" type="text/javascript"></script>
</head>
<body>
...
</body>
</html>
Make sure to replace the query parameter reference “id” in the url with the application key twitter gave you when you registered your application. Lastly, simply call the @anywhere connect function like so in a content editor web part:
<span id="login"></span>
<script type="text/javascript">
twttr.anywhere(function (T) {
T("#login").connectButton({ size: "large" });
});
</script>
That’s it! Your done. Your web part will render a very nice looking twitter button. When the button is clicked, a dialog box will open to prompt your user to login to twitter if not already. Next, the user will be asked to authorize your application (website) to connect to twitter on your behalf. Twitter provides a lot of great examples on how to use @anywhere at http://dev.twitter.com/anywhere/begin
Enjoy!
|
| Let’s face it. SharePoint 2010 hasn’t had much runtime. With the exception of Microsoft and a handful of aggressive TAP partners very few shops have had a chance to deploy SharePoint 2010, let alone truly understand, tune, and optimize it. For you folks planning your own SharePoint 2010 deployments it means you will have stumble upon the hard lessons like everyone else. It’s for this reason many shops will postpone their deployments until enough lessons learned (and ahem, bug fixes) are available. For those of us who will not or cannot wait, we are forced to take some risks with our deployment. We will have to roll out SharePoint based on good ole fashioned “Kentucky windage” and pray. That said, we already know a lot about SharePoint 2010 simply due to our experience in 2007. Many 2007 capabilities are still present in 2010 and give us the same command and control over the system. Caching and IIS optimizations in 2007 still apply in 2010. SQL optimizations are as relevant as they ever were. If you’re coming to TechEd, Shannon Bray and I are leading a breakout on “Fine Tuning Your Microsoft SharePoint Server 2010 Environment.” In this session we plan to breakdown the new landscape of SharePoint 2010 and discuss what’s changed, what stays the same, and the “best opportunities” (not best practices mind you) for optimization. You’ll learn about performance optimization and capacity planning in SharePoint Server 2010. You’ll learn how to monitor and identify problems with performance and capacity in SharePoint and SQL. Finally, you may win a netbook. As a promotional opportunity for my new company, SeriousLabz, I’m giving a way a brand new netbook to one lucky session attendee. You must be present to win so spend an hour with us, see some exciting never seen before demos, and take home some practical lessons that you can really use. |
| I just thought I would try out Microsoft’s Business Continuity Management (BCM) module on Microsoft’s TechNet Virtual Lab and immediately I’m met with this: Objectives After completing the exercises you will be able to:
 - Configure and use the versioning features in Microsoft® SharePoint® Server 2010.
- Configure and use the SharePoint Server 2010 Recycle Bins.
- Use Microsoft Windows PowerShell cmdlets to perform backup and restore operations in the SharePoint 2010 Management Shell.
This is great except I’m from the old school who thinks BCM is all about planning for something other than Joe Dumbass deleting a document. BCM is all about disaster. I mean real disaster. It’s pretty easy to tell Joe Dumbass to recreate a document, but try telling an entire organization that they lost everything they ever worked on in their entire corporate lives. Big difference. That said, I’m unaware of any online or remote learning opportunities for BCM or disaster recovery that I would approve of. If you want true BCM training you need to hire someone who knows something about this. Perhaps someone who planned this for Microsoft and other large scale organizations. ;-) Anyways, there needs to be a place where the long tail of SharePoint education can be served. A place where someone can pay for the privilege of learning about true BCM in SharePoint outside of the lucrative “lets make SharePoint do something it wasn’t designed to do” cursory glances at important architecture topics such as BCM. In the meantime, hire a consultant. |
| I’m surprised by the number of Microsoft people who have rallied against the iPad’s lack of support for Adobe’s Flash technology. This just confirms we are all secretly Microsoft fanboys who took sides years ago. Just so we’re all clear, I’ve hated flash since a very long time ago. Chances are if your site uses flash I immediately clicked away. I don’t care how much money you spent and how cool it is. I’m not going to sit around, download Adobe’s shitty flash plug-in, subject myself to their spyware and nagware, wait for the POS [Piece of Shit] to render, and be underwhelmed by your user experience. I have better things to do with my time. That is all. |
| I’m not going to extol any of the virtues of SharePoint 2010 except one. Anyone who maintained a blog in SharePoint 2007 knew all too well that spam comments were out of control. While 2010 has done exactly nothing to prevent spam 2010 has made is so much easier to delete these things. You can mass click these things and delete them. This never worked in 2007 with lists. Now if I can figure out how to turn on comments again will be all set. 
|
| I am sick of tired of hearing “social”. Social has gotten so popular that it’s now replaced “mm’Kay” as Mr Mackey’s go to phrase in between his ramblings. I think what people really mean when they say “social” is that it’s innate. An experience that makes sense to humans because humans interact in certain learned and innate ways that up until this point computers could not mimic. Look up social on wikipedia. I think the reason we are talking about social now is that computer systems have only just began to evolve to the point where we can expect them to act as another “organism” in our world in which we interact. Why am I writing this? I’m writing this diatribe to prevent you from murdering the next person you hear say social. The next time someone says “social” in earshot don’t pull out the 12ga. Just remind yourself that social is shorthand for a humanesque experience. That is all. |
| Last minute change. Looks like I’m speaking at SPSDC. I have two soapbox sessions that will rock. The DC folks still haven’t scheduled these yet, but I’ll let you know when they do. As always, check your schedule handout at the event for the latest info. Session 1: Operations Excellence in SharePoint 2010 Focus: Administration/Architect Level: 200 A lot has been made about the new feature/functionality in SharePoint 2010, but nobody is really talking about what is required to make those new features hum. In this interactive session, we’ll explore deployment and management scenarios that require minimum resources and minimum effort and discuss new out of the box and third party tools that make SharePoint 2010 manageable. Session 2: Availability Solutions in SharePoint Focus: Administration/Architect Level: 300 SharePoint is fast becoming a mission critical application for organizations, but many still don’t have adequate availability and recovery solutions in place. Come learn how to meet or exceed 3 nines availability using the latest technology and learnings from folks who made the mistakes. This session will discuss common sense availability and recovery options that will leave you smiling even after the bad things happen. |
| I just posted two new scripts for monitoring your databases to the TechNet Script Repository. Script 1 will enumerate every database on every instance of SQL in your SharePoint 2010 farm and return important properties such as the name, SQL instance, ID, State, Mirroring State, Witness Name, Log Reuse Info, etc. If your SQL and PowerShell is good enough, you can easily extend the script to return any property you care about. Script 2 is similar to Script 1, but goes a step further to get information about each data, filestream, and log file in each database on the farm. You can use this to determine filename, size, drive path, location, autogrowth settings, etc. Both scripts can be used to return a boatload of information to be used to determine best practice compliance. For example, I can confirm that my filename matches my database name so that I don’t accidently blow my files away. I can ensure that data files are on my data drives and my log files are on my log drives and that no files are on my OS partition. I can confirm that my log files have been truncated recently and that my data files are below 200GB’s. I can confirm that all my databases are on the proper SQL instance so that I can do maintenance on my mirror instance. I can confirm that each database is mirrored and that every database has a witness server so that automatic failover occurs when needed. You get the point. Both scripts assume the issuer has rights to query SharePoint and the SQL Master database and perform simple ADO.Net queries to return the information. Use these scripts to stay on top of your SQL configuration and SQL will take care of you. |
| Update: This script is now posted on the TechNet Script Repository. This repository should prove an invaluable resource in the near future. http://gallery.technet.microsoft.com/ScriptCenter/en-us/4494e092-8de1-4c68-ae7b-362964b88d00 There’s a little article on TechNet that walks you through many of the configuration considerations for database mirroring on SharePoint 2010. It shows a diagram where not only is each content DB mirrored but also the configuration and Central Administration DB’s as well. In fact, I think that is a near exact replica of a diagram I created for MSFT. Anyways, there’s a little note at the bottom of the article that particularly troubling for me: The article then goes on to provide sample powershell to set the failover database, however, it assumes you know the name of each database and want to type that name plus the corresponding powershell for every database in your farm. Considering that a fully configured SharePoint 2010 Server Farm will have a minimum of 18 databases before content, the prospect of manually typing each command is ridiculous and defies the very point of powershell. Instead, I built a script for my demos that will set the failover partner on every database in the farm and all you have to do is run the script and enter the name of the mirror SQL instance. It goes something like this: ##################################################################
#
# Set the failover partner instance on every database in the farm
#
####### Instructions
# Run this script in the SharePoint Management Shell
# When Prompted, enter the name of the SQL instance that will act
# as the mirror partner for each database
#
####### Known Issues
# Script will fail if mirror SQL instance is offline or otherwise
# unavailable.
#
##################################################################
Param([string]$FailoverInstance = $(Read-Host "Enter the Mirror (Partner) SQL Instance(like server\instance)"))
get-spserviceinstance -all | foreach-object {
if ($_.typeName -eq "Microsoft SharePoint Foundation Database") {
foreach ($Database in $_.Databases){
write-host "Updating FailoverPartner on" $Database.Name "to" $FailoverInstance
$Database.AddFailoverServiceInstance($FailoverInstance)
$Database.Update()
write-host "Successfully Updated Failover Partner on" $Database.Name "to" $FailoverInstance
}
}
}
Now this script makes a few assumptions that you should be aware of:
1. It assumes a one to one mirroring relationship. That is, it expects that all your databases reside on a single principal SQL instance and that you will be mirroring those databases to just one other SQL instance.
2. It assumes that you have rights to make these changes
3. It assumes that the mirror SQL instance is available. The script will fail if not.
4. It assumes that you have or will configure mirroring on the backend before a failover is required. |
|
|
|
|
| 8/24/2010 4:00 AM | | Best Practices Conference | | 10/20/2010 12:00 AM | | Speaking at SPTechCon Teaching all day workshop on Wednesday with Laura Docherty on SharePoint for new administrators. Essentially, anyone who doesn't have experience with SharePoint who would like to learn the basics of server and site administration should attend this full... |
|
|
|
|
|
Sun, 01 Aug 2010 00:06:28
Sun, 01 Aug 2010 00:01:03
Sun, 01 Aug 2010 00:00:19
Sat, 31 Jul 2010 23:57:45
Sat, 31 Jul 2010 23:55:39
Sat, 31 Jul 2010 23:53:02
Sat, 31 Jul 2010 23:51:12
Sat, 31 Jul 2010 23:49:22
Sat, 31 Jul 2010 23:48:07
Sat, 31 Jul 2010 23:48:07
Sat, 31 Jul 2010 23:44:14
Sat, 31 Jul 2010 23:30:24
Sat, 31 Jul 2010 23:30:07
Sat, 31 Jul 2010 23:28:27
Sat, 31 Jul 2010 23:24:56
|
|
|
|