# Upgrade

Before every update, check the version of installed packages. The database version is particularly important.

```
yum info vprotect-server vprotect-node mariadb-server
# Or
rpm -qa | egrep -e "vprotect|Maria"
```

If the host computer has an Internet connection, use the yum command - you'll also see the new package versions provided by the repositories.

## Server Upgrade

* Make sure you have the Storware Backup & Recovery database backup.
  * You can use this command manually to back it up on-demand on the Storware Backup & Recovery Server:`/opt/vprotect/server/scripts/backup_db.sh /path/to/backup/file.sql.gz`
* If Storware Backup & Recovery was installed on a virtual machine (not a physical one), it would be a good move to take a snapshot.
* After backing up the database, we should carefully stop the Storware Backup & Recovery service to make sure that we don't have any tasks running (a running task may cause problems updating the database).
  * View all tasks, if you see even one on the list, clear it (wait for the ongoing tasks to finish)
  * You can do this from the WebUI (it's faster)
* Now, if you don't have any tasks on the list, you can stop the service.

```
[root@vprotect ~]# systemctl disable vprotect-server --now
```

* To make sure that no scheduler has started a task before stopping the service, let's query the database.
  * If the table is not empty, start the Storware Backup & Recovery-Server service and clear the tasks again.

```
mysql -u root -p -e "Select * FROM vprotect.task;"
```

* Make sure you have MariaDB up-to-date - currently Storware Backup & Recovery by default uses version **10.11**, while **10.6** is the minimum version supported.

  * Otherwise, minor MariaDB versions should be updated with `yum update`
  * `rpm -e --nodeps "MariaDB-server-YOUR_VERSION_OF_PACKAGE"`
  * Update the MariaDB repository to the correct version `vi /etc/yum.repos.d/MariaDB.repo`
  * Install the new MariaDB-Server `yum install -y mariadb-server`
  * Update all other components of MariaDB `yum update -y mariadb`
  * Start the MariaDB engine `systemctl enable mariadb --now`
  * Run mysql\_upgrade to update the Storware Backup & Recovery Database `mysql_upgrade --user=root --password`
* If the database update is successful, now we can start with the Storware Backup & Recovery Update. Make sure you configure our new repository for Storware Backup & Recovery - new base URL:

{% hint style="info" %}
**Note:** use one of this URL's

* <https://repo.storware.eu/storware/current/el8/>
* [https://repo.storware.eu/storware/current/el9/](https://repo.storware.eu/storware/current/el7/)
  {% endhint %}

`vim /etc/yum.repos.d/vProtect.repo`

* Update the Server (it may take a while, the service is being restarted):

  ```
  yum -y update vprotect-server
  ```
* If the server service was not running before update, you may also need to execute:

  ```
  systemctl enable vprotect-server --now
  ```

## Node Upgrade

1. Update each Node:

   ```
   systemctl stop vprotect-node
   yum -y update vprotect-node
   ```
2. Run the script to configure the OS for Node:

   ```
   vprotect-node-configure
   ```
3. If the node service was not running before the update, you may also need to execute:

   ```
   systemctl enable vprotect-node --now
   ```
4. Log in to the web UI and check if the nodes are running.

{% hint style="info" %}
**Note:** You may need to refresh your browser cache after update:

Chrome use `CTRL+SHIFT+R` (Windows/Linux) / `CMD+SHIFT+R` (MacOS)
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.storware.eu/backup-and-recovery-71/administration/upgrade.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
