$ tar xvf virtuoso-universal-server-6.1.tar x install.sh x universal-server.taz $ sh install.sh - Extracting Virtuoso Universal Server v6.1 - Creating default environment settings - Creating default database settings Configuring: database Creating directory $VIRTUOSO_HOME/database/backup Installing new virtuoso.ini in $VIRTUOSO_HOME/database Installing new php.ini in $VIRTUOSO_HOME/database Creating symlink to $VIRTUOSO_HOME/bin/virtuoso-iodbc-t - Registering ODBC drivers - Registering .NET provider for Mono - Installing VAD packages in database (this can take some time) - Checking where license should be stored - Starting OpenLink License Manager - Checking for initial Virtuoso license - Starting Virtuoso server instance - Finalizing installation This concludes the first part of the installation. - Attempting to start browser Please start a browser manually and open the following URL to finalize the installation process: http://cname:8890/install/ Installation completed $
$ . ./virtuoso-environment.sh $ virtuoso-stop.sh Shutting down Virtuoso instance in [database] $
rm -rf database
-cluster-size Number of nodes in cluster -cluster-node Node number in a cluster -cluster-port Base portnumer for cluster -cluster-ipc-port Base portnumer for cluster IPC -cluster_size Size of the cluster -virtuoso_home Virtuoso home path
$ virtuoso-mkcluster.sh Configuring cluster node: 1/4 Creating directory $VIRTUOSO_HOME/cluster_01 Creating directory $VIRTUOSO_HOME/cluster_01/backup Creating directory $VIRTUOSO_HOME/cluster_01/logs Installing new virtuoso.ini in $VIRTUOSO_HOME/cluster_01 Installing new php.ini in $VIRTUOSO_HOME/cluster_01 Creating symlink to $VIRTUOSO_HOME/bin/virtuoso-iodbc-t Configuring cluster node: 2/4 Creating directory $VIRTUOSO_HOME/cluster_02 Creating directory $VIRTUOSO_HOME/cluster_02/backup Installing new virtuoso.ini in $VIRTUOSO_HOME/cluster_02 Removing unneeded sections from virtuoso.ini Creating symlink to $VIRTUOSO_HOME/bin/virtuoso-iodbc-t Configuring cluster node: 3/4 Creating directory $VIRTUOSO_HOME/cluster_03 Creating directory $VIRTUOSO_HOME/cluster_03/backup Installing new virtuoso.ini in $VIRTUOSO_HOME/cluster_03 Removing unneeded sections from virtuoso.ini Creating symlink to $VIRTUOSO_HOME/bin/virtuoso-iodbc-t Configuring cluster node: 4/4 Creating directory $VIRTUOSO_HOME/cluster_04 Creating directory $VIRTUOSO_HOME/cluster_04/backup Installing new virtuoso.ini in $VIRTUOSO_HOME/cluster_04 Removing unneeded sections from virtuoso.ini Creating symlink to $VIRTUOSO_HOME/bin/virtuoso-iodbc-t $
$ more cluster_01/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host1 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname:22201 Host2 = hostname:22202 Host3 = hostname:22203 Host4 = hostname:22204 MaxHosts = 5 $ more cluster_02/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host2 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname:22201 Host2 = hostname:22202 Host3 = hostname:22203 Host4 = hostname:22204 MaxHosts = 5 $ more cluster_03/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host3 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname:22201 Host2 = hostname:22202 Host3 = hostname:22203 Host4 = hostname:22204 MaxHosts = 5 $ more cluster_04/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host4 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname:22201 Host2 = hostname:22202 Host3 = hostname:22203 Host4 = hostname:22204 MaxHosts = 5 $
$ virtuoso-start.sh Starting Virtuoso instance in [cluster_01] Starting Virtuoso instance in [cluster_02] Starting Virtuoso instance in [cluster_03] Starting Virtuoso instance in [cluster_04] $
$ isql 12201 Connected to OpenLink Virtuoso Driver: 06.01.3127 OpenLink Virtuoso ODBC Driver OpenLink Interactive SQL (Virtuoso), version 0.9849b. Type HELP; for help and EXIT; to exit. SQL> status ('cluster'); REPORT VARCHAR _______________________________________________________________________________ Cluster 4 nodes, 4 s. 1 m/s 0 KB/s 0% cpu 0% read 0% clw threads 1r 0w 0i buffers 2981 0 d 0 w 0 pfs 1 Rows. -- 7 msec. SQL> cl_ping(1,500, 1000); Done. -- 7 msec. SQL> cl_ping(2,500, 1000); Done. -- 52 msec. SQL> cl_ping(3,500, 1000); Done. -- 60 msec. SQL> cl_ping(4,500, 1000); Done. -- 51 msec. SQL>
Machine 1 (hostname1) $ more cluster_01/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host1 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname1:22201 Host2 = hostname1:22202 Host3 = hostname2:22203 Host4 = hostname2:22204 MaxHosts = 5 $ more cluster_02/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host2 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname1:22201 Host2 = hostname1:22202 Host3 = hostname2:22203 Host4 = hostname2:22204 MaxHosts = 5 $ Machine 2 (hostname2) $ more cluster_03/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host3 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname1:22201 Host2 = hostname1:22202 Host3 = hostname2:22203 Host4 = hostname2:22204 MaxHosts = 5 $ more cluster_04/cluster.ini [Cluster] Threads = 20 Master = Host1 ThisHost = Host4 ReqBatchSize = 10000 BatchesPerRPC = 4 BatchBufferBytes = 20000 LocalOnly = 2 MaxKeepAlivesMissed = 1000 Host1 = hostname1:22201 Host2 = hostname1:22202 Host3 = hostname2:22203 Host4 = hostname2:22204 MaxHosts = 5 $
Machine 1 (hostname1) $ virtuoso-start.sh Starting Virtuoso instance in [cluster_01] Starting Virtuoso instance in [cluster_02] $ Machine 2 (hostname2) $ virtuoso-start.sh Starting Virtuoso instance in [cluster_03] Starting Virtuoso instance in [cluster_04] $
$ virtuoso-stop.sh Stopping Virtuoso instance in [cluster_01] Stopping Virtuoso instance in [cluster_02] Stopping Virtuoso instance in [cluster_03] Stopping Virtuoso instance in [cluster_04] $
Backup
There are 2 ways to backup Virtuoso Cluster DB:
For example, for every cluster in its backup folder execute:
backup_online ('dbp', 10000000, 0, 'backup');
cl_exec ('backup_online (''dbp'', 10000000, 0, vector (''backup''))');
Restore from Backup
After backup is done for every node in its backup folder, in order to restore, execute from the ..\bin folder the virtuoso-restore.sh:
# . ./virtuoso-restore.sh all dbp
where the second parameter is the restore prefix.
viruoso-start.sh
or
# /etc/init.d/virtuoso start Starting OpenLink Virtuoso: [ OK ]
isql 12201
SQL> status('cluster'); REPORT VARCHAR _______________________________________________________________________________ Cluster 4 nodes, 293 s. 0 m/s 0 KB/s 0% cpu 0% read 0% clw threads 1r 0w 0i buffers 1781 0 d 0 w 0 pfs 1 Rows. -- 4 msec.
If an operation seems to hang, see the output of:
status ()
Check for the presence of the following conditions:
raw_exit ();
over an SQL connection to the process in question.
txn_killall (1);
Do this at a node that has local threads waiting. This is seen in the Lock Status paragraph of status ('') when connected to the node in question.
cl_exec ('backup ''/dev/null''');
If this returns, the databases are OK. If one is found to be corrupt the corresponding server exits.
Previous
Creating a .Net RIA Services Application That Will Update Virtuoso Data |
Chapter Contents |
Next
Contents of Quick Start & Tours |