diff --git a/catalogue/OracleCatalogue.cpp b/catalogue/OracleCatalogue.cpp
index 4236da9b2fd15c5d83db54dbdcefad78dd0880e5..fced1b8604c8df34173f53a6b26763e495dde93d 100644
--- a/catalogue/OracleCatalogue.cpp
+++ b/catalogue/OracleCatalogue.cpp
@@ -801,7 +801,7 @@ void OracleCatalogue::deleteArchiveFile(const std::string &diskInstanceName, con
         tapeFile.fSeq = selectRset.columnUint64("FSEQ");
         tapeFile.blockId = selectRset.columnUint64("BLOCK_ID");
         tapeFile.fileSize = selectRset.columnUint64("LOGICAL_SIZE_IN_BYTES");
-        tapeFile.copyNb = selectRset.columnUint64("COPY_NB");
+        tapeFile.copyNb = selectRset.columnUint8("COPY_NB");
         tapeFile.creationTime = selectRset.columnUint64("TAPE_FILE_CREATION_TIME");
         tapeFile.checksumBlob = archiveFile->checksumBlob; // Duplicated for convenience
         if (!selectRset.columnIsNull("SSBY_VID")) {
diff --git a/catalogue/TapeFileWritten.hpp b/catalogue/TapeFileWritten.hpp
index c4402280660134aac77cf0eb5428d82cf2bb60e5..95482263ce01a40dff24ea8e95317def20344de1 100644
--- a/catalogue/TapeFileWritten.hpp
+++ b/catalogue/TapeFileWritten.hpp
@@ -102,7 +102,7 @@ struct TapeFileWritten: public TapeItemWritten {
   /**
    * The copy number of the tape file.
    */
-  uint32_t copyNb;
+  uint8_t copyNb;
 
 }; // struct TapeFileWritten
 
diff --git a/common/dataStructures/ArchiveFile.cpp b/common/dataStructures/ArchiveFile.cpp
index 46b16ee4775250e593f3ee87e28e3fa7bed3df98..f3693dd4fc3a7b47df99269a8f4e84319270293d 100644
--- a/common/dataStructures/ArchiveFile.cpp
+++ b/common/dataStructures/ArchiveFile.cpp
@@ -60,7 +60,7 @@ bool ArchiveFile::operator!=(const ArchiveFile &rhs) const {
 //------------------------------------------------------------------------------
 // ArchiveFile::TapeFilesList::at()
 //------------------------------------------------------------------------------
-TapeFile& ArchiveFile::TapeFilesList::at(uint32_t copyNb) {
+TapeFile& ArchiveFile::TapeFilesList::at(uint8_t copyNb) {
   auto ret = std::find_if(begin(), end(), [=](TapeFile& tf){ return tf.isActiveCopyNb(copyNb);});
   if (ret == end()) throw cta::exception::Exception("In ArchiveFile::TapeFilesList::at(): not found.");
   return *ret;
@@ -69,7 +69,7 @@ TapeFile& ArchiveFile::TapeFilesList::at(uint32_t copyNb) {
 //------------------------------------------------------------------------------
 // ArchiveFile::TapeFilesList::at() const
 //------------------------------------------------------------------------------
-const TapeFile& ArchiveFile::TapeFilesList::at(uint32_t copyNb) const {
+const TapeFile& ArchiveFile::TapeFilesList::at(uint8_t copyNb) const {
   auto ret = std::find_if(cbegin(), cend(), [=](const TapeFile& tf){ return tf.isActiveCopyNb(copyNb);});
   if (ret == end()) throw cta::exception::Exception("In ArchiveFile::TapeFilesList::at(): not found.");
   return *ret;
@@ -78,14 +78,14 @@ const TapeFile& ArchiveFile::TapeFilesList::at(uint32_t copyNb) const {
 //------------------------------------------------------------------------------
 // ArchiveFile::TapeFilesList::find() 
 //------------------------------------------------------------------------------
-ArchiveFile::TapeFilesList::iterator ArchiveFile::TapeFilesList::find(uint32_t copyNb) {
+ArchiveFile::TapeFilesList::iterator ArchiveFile::TapeFilesList::find(uint8_t copyNb) {
   return std::find_if(begin(), end(), [=](TapeFile& tf){ return tf.isActiveCopyNb(copyNb);});
 }
 
 //------------------------------------------------------------------------------
 // ArchiveFile::TapeFilesList::find() const
 //------------------------------------------------------------------------------
-ArchiveFile::TapeFilesList::const_iterator ArchiveFile::TapeFilesList::find(uint32_t copyNb) const {
+ArchiveFile::TapeFilesList::const_iterator ArchiveFile::TapeFilesList::find(uint8_t copyNb) const {
   return std::find_if(cbegin(), cend(), [=](const TapeFile& tf){ return tf.isActiveCopyNb(copyNb);});
 }
 
diff --git a/common/dataStructures/ArchiveFile.hpp b/common/dataStructures/ArchiveFile.hpp
index 76e56c274a41ff38228ab73bda71ce1f91e4eb1c..f5e7f974455941ce0971905c843ebc1fc0ee29a5 100644
--- a/common/dataStructures/ArchiveFile.hpp
+++ b/common/dataStructures/ArchiveFile.hpp
@@ -64,10 +64,10 @@ struct ArchiveFile {
   class TapeFilesList: public std::list<TapeFile> {
   public:
     using std::list<TapeFile>::list;
-    TapeFile & at(uint32_t copyNb);
-    const TapeFile & at(uint32_t copyNb) const;
-    TapeFilesList::iterator find(uint32_t copyNb);
-    TapeFilesList::const_iterator find(uint32_t copyNb) const;
+    TapeFile & at(uint8_t copyNb);
+    const TapeFile & at(uint8_t copyNb) const;
+    TapeFilesList::iterator find(uint8_t copyNb);
+    TapeFilesList::const_iterator find(uint8_t copyNb) const;
   };
   TapeFilesList tapeFiles;
   time_t creationTime;
diff --git a/common/dataStructures/ArchiveRoute.hpp b/common/dataStructures/ArchiveRoute.hpp
index 454af64f406b8a962537e1f46596de3a05c10052..8a7a7be68d59a9b15c233d9dcf1592a0f6432b09 100644
--- a/common/dataStructures/ArchiveRoute.hpp
+++ b/common/dataStructures/ArchiveRoute.hpp
@@ -55,7 +55,7 @@ struct ArchiveRoute {
   /**
    * The cipy number of the tape file.
    */
-  uint32_t copyNb;
+  uint8_t copyNb;
 
   std::string tapePoolName;
   EntryLog creationLog;
diff --git a/common/dataStructures/TapeFile.cpp b/common/dataStructures/TapeFile.cpp
index e548b974bd2786c88914c4a50bbdfcf3e5ba3d77..d651b70ffd4663770214f76cb75674f4eca0e746 100644
--- a/common/dataStructures/TapeFile.cpp
+++ b/common/dataStructures/TapeFile.cpp
@@ -56,7 +56,7 @@ bool TapeFile::operator!=(const TapeFile &rhs) const {
 //------------------------------------------------------------------------------
 // TapeFile::isActiveCopyNb
 //------------------------------------------------------------------------------
-bool TapeFile::isActiveCopyNb(uint32_t cnb) const {
+bool TapeFile::isActiveCopyNb(uint8_t cnb) const {
   return (cnb == copyNb) && supersededByVid.empty();
 }
 
diff --git a/common/dataStructures/TapeFile.hpp b/common/dataStructures/TapeFile.hpp
index e679aeff717b2563e2f0b7de0d27a7a60cdf4e46..30eb78e72f2a8078cfc227ccb2d6fd29e73d98dc 100644
--- a/common/dataStructures/TapeFile.hpp
+++ b/common/dataStructures/TapeFile.hpp
@@ -64,7 +64,7 @@ struct TapeFile {
    * The copy number of the file. Copy numbers start from 1. Copy number 0 
    * is an invalid copy number. 
    */
-  uint32_t copyNb;
+  uint8_t copyNb;
   /**
    * The time the file recorded in the catalogue. 
    */
@@ -88,7 +88,7 @@ struct TapeFile {
   /**
    * Returns true if this tape file is both an active (not superseded) tape file and matches the copy number.
    */
-  bool isActiveCopyNb(uint32_t copyNb) const;
+  bool isActiveCopyNb(uint8_t copyNb) const;
 
 }; // struct TapeFile