Tuesday, 1 April 2014

Moodle Upgrade Hangs on -->System

The last few months the college has been unable to complete Moodle updates and upgrades. The problem was that when the upgrade was kicked off the upgrade would hang at the first stage. Shown in the image below.


We use all Microsoft technologies for our system. 
  • NLB clustered Windows Server 2008 R2 (IIS 7.5)
  • PHP 5.2.13 (FastCGI) 
  • SQL 2008 Failover Cluster
  • MSSQL PHP Driver (not FreeTDS)
There was no error messages at all, and the windows would stay in exactly the same position for days if you left it. To cancel press CTRL+C.



Resolution

The problem was definitely something to do with the database and after reviewing the Moodle documentation http://docs.moodle.org/25/en/Installing_MSSQL_for_PHP, i found that there were a couple of things wrong with my DB configuration in SQL.

In the documentation i found the following section in the installation notes.

  • Use a case sensitive collation, such as Latin1_General_CS_AS.
  • ANSI NULLS Enabled = true (ALTER DATABASE xxxx SET ANSI_NULLS ON)
  • Quoted Identifiers Enabled = true (ALTER DATABASE xxxx SET QUOTED_IDENTIFIER ON)
  • (Moodle 2.x only) Row Versioning Enabled (ALTER DATABASE xxxx SET READ_COMMITTED_SNAPSHOT ON)
    • This is not settable via the DB properties. To set READ_COMMITTED_SNAPSHOT, there must be no active connections to the database except for the connection executing the ALTER command. If you are viewing the DB in the Server Management Studio, disconnect from any servers in the "Object Explorer" (right-click > Disconnect), then create a "New Query" and run the ALTER command. See http://msdn.microsoft.com/en-us/library/bb522682.aspx for details.
    • If your DB name starts with a number, you may need to put quotes around the DB name in the query.

Once i had implemented the changes i tried the upgrade again and it completed within 30 seconds.

No comments:

Post a Comment