O procedimento SYSCS_UTIL.SYSCS_BACKUP_DATABASE recebe como argumento uma cadeia de caracteres representando o local onde será armazenada a cópia de segurança do banco de dados. Normalmente é fornecido o caminho completo para o diretório de cópia de segurança (os caminhos relativos são interpretados como sendo relativos ao diretório corrente, e não ao diretório derby.system.home).
Por exemplo, para especificar o local de cópia de segurança
O procedimento SYSCS_UTIL.SYSCS_BACKUP_DATABASE() coloca o banco de
dados em um estado no qual este pode ser copiado com segurança, depois copia
o diretório de banco de dados original por completo (incluindo os arquivos de
dados, arquivos de log de transação em linha e os arquivos jar)
para o diretório de cópia de segurança especificado.
Os arquivos que não estão dentro do diretório de banco de dados original
(por exemplo,
O exemplo a seguir mostra como fazer a cópia de segurança de um banco de dados em um diretório cujo nome reflete a data corrente:
Para um banco de dados cuja cópia de segurança foi realizada em 2005-06-01, os comandos anteriores copiariam o banco de dados corrente para o diretório com o mesmo nome em c:\minhascopias\2005-06-01.
As transações não efetivadas não aparecem na cópia de segurança do banco de dados.
O procedimento SYSCS_UTIL.SYSCS_BACKUP_DATABASE emitirá uma mensagem de erro se existirem operações não registradas (unlogged) na mesma transação do procedimento de cópia de segurança.
Caso exista no sistema, quando a cópia de segurança iniciar, operações não registradas em andamento em outras transações, este procedimento ficará bloqueado até que estas transações completem, antes de realizar a cópia de segurança.
O Derby converte, automaticamente, as operações não registradas para o modo registrado, quando estas são iniciadas quando a cópia de segurança está em andamento (exceto as operações que fazem manutenção de arquivos jar de aplicativos no banco de dados). Os procedimentos que instalam, substituem e removem arquivos jar no banco de dados são bloqueados quando a cópia de segurança está em andamento.
Se não for desejado que a cópia de segurança fique bloqueada até que as operações não registradas em outras transações completem, deve ser utilizado o procedimento SYSCS_UTIL.SYSCS_BACKUP_DATABASE_NOWAIT. Esse procedimento emite um erro logo no início da cópia de segurança caso existam transações em andamento com operações não registradas, em vez de aguardar estas transações completarem.