fix removeUsage for backups (#11522)

diff --git a/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java b/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
index e5b46b0..3f852b0 100644
--- a/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
+++ b/engine/schema/src/main/java/com/cloud/usage/dao/UsageBackupDaoImpl.java
@@ -68,7 +68,7 @@
                     pstmt.setString(1, DateUtil.getDateDisplayString(TimeZone.getTimeZone("GMT"), eventDate));
                     pstmt.setLong(2, accountId);
                     pstmt.setLong(3, vmId);
-                    pstmt.setLong(3, backupOfferingId);
+                    pstmt.setLong(4, backupOfferingId);
                     pstmt.executeUpdate();
                 }
             } catch (SQLException e) {
diff --git a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
index bb3e3f2..aff838a 100644
--- a/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
+++ b/server/src/main/java/org/apache/cloudstack/backup/BackupManagerImpl.java
@@ -1927,7 +1927,11 @@
             for (final VirtualMachine vm : vms) {
 
                 Map<Long, Pair<Long, Long>> backupOfferingToSizeMap = new HashMap<>();
-                for (final Backup backup: backupDao.listByVmId(null, vm.getId())) {
+                List<Backup> backups = backupDao.listByVmId(null, vm.getId());
+                if (backups.isEmpty() && vm.getBackupOfferingId() != null) {
+                    backupOfferingToSizeMap.put(vm.getBackupOfferingId(), new Pair<>(0L, 0L));
+                }
+                for (final Backup backup: backups) {
                     Long backupSize = 0L;
                     Long backupProtectedSize = 0L;
                     if (Objects.nonNull(backup.getSize())) {