BackupNative - backup and restore solution - DotNetNuke Module

document version 2008.10.27

www.evotiva.com

 

BackupNative DotNetNuke Module

Summary

Features

Installation

How does it works

Requirements

FAQ

Configuration (Settings)

Database Backup Options

Portal Contents Backup Options

General Options

FTP Options

Scheduler Options

Performing Backups

Database

Portal Files

Performing Restores

Restoring from the Backup History

Manual Restores

History

Future releases

Licensing

Copyrights

Terms of use

Disclaimer / Limitation of Liability

 

Summary

BackupNative (formely BackupLite) FREE edition allows you to perform a native database backup. If the database and web servers are the same box, also allows you to compress and download it (compressed or not).
BackupNative  PRO edition allows you to perform a full site backup: the database (native backup) plus all files and folders on the site (including \portals, \bin, \desktopmodules, web.config file, etc.). With proper rights also allows you to restore database backups.
The backup can be scheduled, among other options (see details).

 

Note: You may also be interested in the BackupScript module (backup / restore any local or remote database, script your database structure and more).


BackupNative-Main


BackupNative-backupProgress
BackupNative-BackupHistory

 

Features


FREE edition


PRO edition - Additional features

Installation

Select the package to be installed (read "How_to_install.txt" inside the download package).

Uninstall legacy versions (any "BackupLite" not "BackupNative" module)  if already present on the system.

Install the module as any regular standard DNN module.

Since 3.0.0 version, this module is NOT be automatically added to the "Host" menu. You can create and add more instances on any page (like any regular DNN module).

Same as (BackupScript module), it is recommended that you add it to an existent "host" page, like "SQL" or "File Manager", etc. You can add it to the same page that BackupScript.

 

Upgrading the module

It's recommended review and save the module's setting after performing an upgrade.

 

Security Tips

 

    Q: since the module is listed on the Module list (at Control Panel on the top), so everybody that have Edit access can add this module right ? How to protect that Admin or Host is the only role that can use Backup module ?

    A: Once configured you can browse to Host / SQL and execute:
         update DesktopModules set isadmin=1
    where friendlyname='Evotiva.BackupNative'
        After that, the module will 'disappear' from the Control Panel on the Top. The side effect is that you will also loose its "Settings" menu item.

 

 

How does it works

This module can backup your entire database "at once" (native SQL Server backup).

PRO version also can build a ZIP file containing the selected portal files/folders, among other options.

 

Requirements

The module was tested on older DNN versions like DNN 3.0.13, 3.1.x, 4.0.2, 4.0.3. and also work fine on any DNN version up to the most current ones.

Note: BackupScript 3.1.x (and above) does not run in DNN3.

 

It supports SQL Server 2000 and SQL Server 2005.

 

Like DNN itself, the module requires write permissions over the file system.

 

Some options are not available for remote backups (database in different box than the web server). e.g. you cannot compress or manage that kind of database backups.

 

You need backup rights over the database (ask your ISP to know if you have this rights assigned). 

Normally the database user configured on the web.config of DNN (on the query string) is 'db_owner' of it's database, and this is enough. But if this is not the case, the 'db_backupoperator' is all what is needed to perform a database backup command.

 

If you want to restore database backups from the module (valid for local databases) note that the database user also need to be a member of the sysadmin or dbcreator fixed server roles. This is NOT a common practice on any ISP.

 

If your database is "remote" (the database and web server aren't the same machine), you should ask your ISP for a valid full path (on the database server box) where the backup file will be created. Then you should ask them too for a way to access that file "from outside" other way it will be useless. You should configure that full path folder at the module settings. ("backup folder").

 

If your database is "remote" and your ISP doesn't allows you to perform and get the your database backup files you should try the BackupScript module.

 

FAQ

Q: What do you mean with "remote" database?

A: Your database is "remote" when it isn't physically located on the same machine (box) that the web server.

 

Q: What if my database is "remote"?

A: You should ask your ISP for a valid full path (on the database server box) where the backup file will be created. Then you should ask them too for a way to access that file "from outside" other way it will be useless. You should configure that full path folder at the module settings. ("backup folder"). You may try the BackupScript module.

 

Q: Can this make a backup from a database where the database is in another server ?

A: See previous question. 

 

Q: If SQL is on a different Server than the Web Server, is there any way to access the file? From reading your description the backup file is only available if SQL is on the same server. Can you clarify this?

A: See previous question. 

 

Q: How can I restore a backup made with your module?

A: With proper rights this module can restore the database for you (local database). Current version doesn't automates the restore of the portal files. You can always manually restore a backup. More info on  Performing Restores section.

 

Q: Can your software perform a restore on a different machine ?

A: See previous question. 

 

Q: Can I backup a particular portal (instead of all of them)?

A: This module performs a native database backup, cannot backup an individual portal. This feature is on the "wish list" of the BackupScript module.

 

Q:  I'm looking for a backup tool that will allow me to backup per child portal on my server. So that if one home page owner on one portal deletes all of their modules I can restore just that portal instead of having to restore the database for everyone. Will your tool allow restoring for selective portals only?

A: See previous question. 

 

Q: since the module is listed on the Module list (at Control Panel on the top), so everybody that have Edit access can add this module right ? How to protect that Admin or Host is the only role that can use Backup module ?

A: Once configured you can browse to Host / SQL and execute:
         update DesktopModules set isadmin=1
     where friendlyname='Evotiva.BackupNative'
     After that, the module will 'disappear' from the Control Panel on the Top. The side effect is that you will also loose its "Settings" menu item.

 

Q:  I cannot find any Configuration Options page to modify any setting.

A: This issue is related to how each DNN version handles the "Modules" and "Tabs".
     That's why since version 3.0, the the module doesn't add itself to the "Host" menu.
     To fix this problem you can browse to Host / SQL and execute this query:
      UPDATE DesktopModules SET isadmin=0
       WHERE friendlyname='Evotiva.BackupNative' 

 

Configuration (Settings)


The module can import/export its setting (implements the standard DNN IPortable interface, from its actions menu) .
Note: You must edit and save the module settings the first time before using this feature.

 

Licensing information

Module Information

Information about your environment: module, DNN and  .Net version.

Current Domain

Your web site domain (read only). An "email" link is provided. You can use it to pre-write an email to be sent for requesting a FULL license.

License Status

Your current license status and information.

License key

Place to paste the provided license information.

 

How to get registered:

- Email us your full domain ( "Current Domain" show your full domain name and a link which helps you to prepare the email) and main purchase information (invoice#, your name, email, etc)

- We’ll email you the license string.

- Paste the license string on this textbox

- Save your setting and re-enter the Settings page to activate the previously disabled options.

 

Database Backup Options

Backup Database Check it to enable the database backup.
Backup folder name Backup folder name (will be created if necessary). Can be relative to the web site's root. e.g.: backup or portals/_default/backup. Or you can specify an arbitrary absolute folder (it should have the necessary access permissions). e.g. c:\myfolder\mybackups.

 IMPORTANT: When the database is 'remote' (database in different box than the web server) you must specify an absolute folder nay and it is assumed existent (cannot be automatically created). e.g. c:\databasefolder\backups
Database Backup file name Name of the file to be generated by the database backup operation. e.g.: mydatabase.bkp
Initialize Store Checked means a backup "WITH INIT" (SQLSever). That is, overwrite an existent backup file with the new one (other way the new backup is appended to the existent one).
Continue after error backup description at http://msdn2.microsoft.com/en-us/library/ms179314.aspx.
No recovery restore Enables the "NORECOVERY" option at restore time (http://msdn2.microsoft.com/en-us/library/ms179314.aspx ).
Create database Zip File Check it if you want the backup file compressed for you (after performing the backup operation)
Delete backup after compressing it Check it if you want the backup file deleted for you (after performing the compress operation)
Auxiliary Database Auxiliary database to connect when restoring. e.g. tempdb, master, pubs, AdventureWorks, etc.
WARNING: should never be the same that the one to be restored!!
The module needs to connect somewhere to the server from where it can trigger the restore process of the target database (I cannot connect the the database which will be restored).

Portal Contents Backup Options

Create Portals Content Zip File Check it to enable the portal contents backup.
Create the Zip File with the portal contents (files and folders of all the portals at the Host). That is, files and folders under /Portals.
Backup folder name Backup folder name (will be created if necessary). Can be relative to the web site's root. e.g.: backup or portals/_default/backup. Or you can specify an arbitrary absolute folder (it should have the necessary access permissions). e.g. c:\myfolder\mybackups. This setting is enabled only when the database is remote (otherwise the configured database backup folder is used).
Portal contents backup file name (without extension): Name of the zip file to generate with the portal contents (files and folders of the host's portals). e.g. myfiles

Note: if the same initial part of the file name is used for the database backup and the portal backup (i.e.mysite.sql.zip and mysite.zip) then the restore can not correctly identify the files as being either database or portal
Include web.config file Checked, includes the web.config file within the portal contents Zip file
Include 'Host' folder Checked, includes the 'Host' folder (/Portals/_default) within the Data Zip file
Include \bin folder Include \bin folder within the Data Zip file
Include Modules folder Include \DesktopModules folder within the portal contents Zip file
Include Other folders Include all other folders and files (\controls, \images, \App_GlobalResources, etc.)  within the portal contents Zip file
Exclude Foldes List Optional comma separated list of relative folders to exclude from the backup (e.g.: \Portals\0\SpecialFolder,\App_Data)
External Folders List

Comma separated list of absolute folders to include in the backup (e.g.: C:\mysecurefolder\myDMXfiles,E:\otherimportanfolder).

Within the backup zip file, all will be under \_XTRNL folder.
Note: these folders
When restoring to a different domain, you will have to update the PortalAlias table to reflect the change. backup zip files (e.g. myfiles.zip and/or mydatabase.sql.zip) should have the necessary access permissions.

General Options

Compression Level Compression level (for the compressed ZIP file creation). 0 - store only to 9 - means best compression, 6 - default

Zip64 format

Configures the use of the newer Zip64 format for the generated Zip file. Note: may not be legible by some legacy tools, buit-in WinXP compression included.

Zip password

Password for the resulting Zip files (leave blank for no password).

Append date/time Checked, appends the current date/time to the backup file name
Backup file Max Count Configures how many backup files do you want to keep. The older ones are purged as necessary. (1 = minimum)
WARNING: always valid for Portal Contents Backups but only valid for local databases backups.
Page Refresh Rate Page Refresh Rate (in seconds).

Process Priority

Priority for the backup/restore process thread

Download Method Alternate implementations for the download links.

Impersonate backup thread

Turn it on only if you get security error messages when performing the backup. May be necessary e.g. when on your web config file this option is turned on: <identity impersonate="true"/>

FTP Options

FTP transfer enabled

Enable to transfer the backup file(s) via FTP to the configured FTP server.

Notes:

- An existing file will be overwritten.

- Old files will not be purged.

FTP Server

FTP server name or IP address (e.g. ftp.myothersite.com)

FTP User

User (credentials) for the FTP server

FTP Password

Password (credentials) for the FTP server

Use Passive mode

Use passive mode data connection (otherwise will use active mode). Note that active and passive refer to the operation of the FTP server, not the client.

FTP transfer enabled

FTP transfer enabled?

Remote folder

Where to upload the files on the remote folder (e.g. backupfiles/mysitebackup). Note: you can leave this setting empty to upload to the default folder.

Scheduler Options

Notify Scheduled Backup to Email account to notify scheduled backups executions. Live blank to ignore (no notification).
Include download links in email? Checked means that direct download links will be present in the notification email.
Note: those links are built based on the "Host URL" setting ("Host Settings" page).
Example: "5" and select "Minutes" to run task every 5 minutes. Leave blank to disable timer for this task.
Example: "5" and select "Minutes" to retry the task every 5 minutes after a failure. Leave blank to disable retry-timer for this task.
Example: Select "10" to keep the ten most recent schedule history rows.

 

 

TIP: With proper rights (permissions) and knowledge (network topology) of the Web + DataBase servers you can set up this folder to something like  \\mywebservershare\mysiteroot\backup or \\mywebservername\c$\mysiteroot\backup. This way, your remote database backup will ends in your local web site database backup folder.

 

 

Performing Backups

Just configure your desired setting for the module and click on the "Perform Backup" button.

Please note that the process can take some time to complete.

Database

Depending on your setting will be created and compressed the following files:

e.g. if your configured "Backup file name" is "mydatabase.sql", a "mydatabase.sql.zip" file will be generated containing the native sql server backup file.

Portal Files

Depending on your setting will be created and compressed the following files:

e.g. if your configured "Portal contents backup file name" is "myfiles", a "myfiles.zip" file will be generated containing all the actual configured to be backed up files & folders under the web root. 

 

Performing Restores

 

Please note that the actual steps to do will depend on the kind of access to the server you may have: if you have direct access to the server in which the installation was running (meaning physical, Terminal Server, Radmin, or the like) it will be much easier than in a remote hosting scenario, in which again it will depend on the tools made available to you by your hosting provider: e.g. console app., ftp, etc.

 

If you are performing the restore on a different domain/server/box remember:

 

If you are restoring a crashed site, check the reason of the accident, since there might be hanging processes on the server that prevent files to be overwritten, a database to be restored, etc.

 

Restoring the portal files

Just unzip all the "myfiles.zip" file under the web root.

You may need to change setting on your web.config file (e.g. the "connection string") if you are restoring to a different database server.

Check the DNN documentation, as the process and requirements are almost the same.

 

Please note that "myfiles.zip" may contain all of your files or just a few ones depending on your configured backup settings.

 

Restoring the database

 

Restoring from the Backup History

 

Note: see Requirements section to check the permissions needed to perform this operation.

The backup file should be uncompressed.

Open the "Backup History" dialog and if necessary click on the appropriate image button to launch the uncompression of the database backup file.

Click on the image button  associated the the uncompressed backup file to launch the database restore operation.

When finished, close your browser window and open a new one.

 

 

Manual Restores

Unzip the database backup file generated with the BackupNative PRO and perform an SQL database restore.

 

Remember that a database cannot be in use to be restored.
Also you have to deal with the restrictions that your ISP imposed to your SQL account..
With the necessary permissions you could kill all current connections (asp.net may keep some opened although nobody seems to be accessing your site) and then perform a restore but unless you are your own ISP, chances that you can perform this type of operations are very low.


To perform a local restore, you can use the Enterprise Manager (the graphical way).
The manual way involves the use of Query Analyzer (if you have SQL Sever) or any tool that allows you to perform t-sql commands against the SQL server.


Note: the backup file to be restored should be on the same box than the SQLServer. (i.e you cannot restore a file from \\myshare\folder\mybackup.bkp)

 

Manual steps (the most generic I could think):

 

-- First you should find the LogicalName and PhysicalName of the original database
RESTORE FILELISTONLY
FROM DISK = 'c:\mysite.bkp'
GO

 

-- Then you can perform the restore operation (if nobody is using it)
-- You should replace 'c:\mysite.bkp', 'logical_data',
-- 'C:\myfolder\mysubfolder\mydatabase_Data.MDF', etc. with the real ones

restore database mydatabase
FROM DISK = 'c:\mysite.bkp'
WITH
   MOVE 'logical_data' 
     TO 'C:\myfolder\mysubfolder\mydatabase_Data.MDF',
   MOVE 'logical_log' 
     TO 'C:\myfolder\mysubfolder\mydatabase_Data.LDF'
GO

 

Note: to know who is locking a database you can use "sp_who" and to kill the desired processes you can issue "kill" commands.
 

History

 

1.0.0 June 02, 2005
- initial release for DNN 3.0
1.0.1 - setup script updated for DNN 3.1
1.0.2 June 16, 2005
- supports database and web servers in different boxes
- always provides a download link to the last compressed backup (showing it's date/time)
1.0.2b September 01, 2005
- setup script updated for DNN 3.1.1
2.0.0 September 29, 2005
- maximized request timeout protection
- visual enhancements
- automatic detection of remote databases
- always provides a download link to the last backup (compressed or not)
- new method to activate the downloads (more "download managers friendly")
- PRO edition released.
2.0.2 October 07, 2005
- rewritten database backup functionality. Now not using Microsoft.ApplicationBlocks.Data.dll  (Working with the Data Access Application Block, you cannot specify an sql command timeout)
- added backup options for \bin, \desktopmodules and all the others folders on the site
- if a scheduled backup fails, now the detailed error is directly included on the notification email
- now all tasks (database backup, files & folders backup, purge old backups, compressing, etc.) occurs on a new independent thread of execution. Every 2 seconds the page is automatically refreshed until the whole process is completed. The current status percentage of completion is shown at real time.
2.0.4 October 25, 2005
- configurable page refresh rate (used to be 2 hardcoded seconds).
- Backup File Max count setting: 0 means keep it all.
- avoids some possible problems o some "remote database server" environments.
- other minor enhancements.
2.1.0 May 12, 2006
- module renamed as "BackupNative"
- native DNN4 build also included on the download package
- implemented database restore from the "Backup History"
- implemented uncompress file operation from the "Backup History"
- some internal changes, improved download manager
3.0.0 July 26, 2006
- removed 'Host' (DNN Backup) automatically menu installation
- fixed delete not working from Backup History (on some DNN 4.x version)
- added selectable download methods for the backup zip files
- added configurable auxiliary database to connect when performing a database restore operation
- BackupNative and BackupScript can be on the same page (tab)
3.0.1 September 14, 2006
- internal changes/ improvements
- Portal Contents Backup: now includes empty folders
- Portal Contents Backup: now can be configured a comma separated list of folders to exclude
3.0.2 October 4, 2006
- Portal Contents Backup: fixed issue when no folder is configured to be excluded
3.1.0 October 21,2008
- remote backup folders support
- lot of settings added

Future releases

Here is a limited list of features considered for upcoming releases:

 

 

 

Licensing

Copyrights

Copyright © 2006 – www.evotiva.com – All rights reserved.

Terms of use

 

PRO edition: You must purchase one copy per each DotNetNuke installation assigned single WEB domain name unless you get the enterprise license that give you the rights for unlimited number of WEB domains.

 

FREE edition: It's free (no limitations of use). Advanced features of the PRO version are nightly recommended.

 

Disclaimer / Limitation of Liability

Buyer acknowledges that the software may not be free from defects and may not satisfy all of buyer's needs.

 

This software is provided "as is" and any expressed or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the regents or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.