derby数据库的数据_Derby数据库备份
derby數據庫的數據
抽象
我已經發布了許多有關Derby的博客:
- 同一主機上的多個Derby網絡服務器
- Apache Derby數據庫用戶和權限
- 與Maven和內存中Derby數據庫的集成測試
這本不打算是一個系列。 但是多年來,我越來越多地使用Derby。 最近,我開始將Derby用作微服務體系結構的首選數據庫。 這些是個人使用的應用程序,因此Derby綽綽有余。 即使這些是個人使用的應用程序,我也需要具有受限用戶權限的 多臺服務器 ,并且最重要的是要備份。 我不想丟失我的數據! 這篇文章的目的是演示如何備份Derby數據庫。
免責聲明
這篇文章僅供參考。 在使用所提供的任何信息之前,請認真思考。 從中學到東西,但最終自己做出決定,風險自負。
要求
我使用以下主要技術完成了本文的所有工作。 您可能可以使用不同的技術或版本來做相同的事情,但不能保證。
- Apache Derby 10.14.2.0
- OpenJDK 64位服務器VM Zulu 11.1 + 23(內部版本11-ea + 22,混合模式)
下載
此博客文章沒有下載。 腳本完整顯示。
Derby系統實用程序
備份Derby數據庫確實非常簡單。 Derby具有用于執行備份的內置系統實用程序。 該實用程序是SYSCS_UTIL.SYSCS_BACKUP_DATABASE('/location/of/the/backup/') 。 調用時,Derby將鎖定數據庫并執行到您指定為SYSCS_BACKUP_DATABASE參數的文件系統位置的復制操作。 現在我們知道執行備份的系統實用程序,讓我們看一下bash腳本來自動執行備份。
備份腳本
清單1是一個bash腳本,可以輕松對其進行修改以備份任何網絡服務器上的任何Derby數據庫。
清單1 – derby-mydatabase-backup.sh
#!/bin/bash# Define a bunch of variables which will be used within this script. # The names of the variables should be self-explanatory. DERBY_HOME=/opt/db-derby-10.14.2.0-bin/ NETWORK_SERVER_HOST=localhost NETWORK_SERVER_PORT=1527 DATABASE_NAME=mydatabase DATABASE_USER=sa DATABASE_PASSWORD=abc123 JDBC_URL="jdbc:derby://$NETWORK_SERVER_HOST:$NETWORK_SERVER_PORT/$DATABASE_NAME" BACKUP_DIRECTORY="/tmp/$DATABASE_NAME-backup/$NETWORK_SERVER_PORT" BACKUP_SCRIPT="$BACKUP_DIRECTORY/backup.sql"# Remove old backup if it exists. It is not a good idea to # perform a backup on top of an existing backup. rm -rf $BACKUP_DIRECTORY mkdir -p $BACKUP_DIRECTORY cd $BACKUP_DIRECTORY# Use the `echo` command to dynamically create an SQL file. # This SQL file will be used by Derby `ij` to connect to # the database and perform the backup. echo "connect '$JDBC_URL' user '$DATABASE_USER' password '$DATABASE_PASSWORD';" >> $BACKUP_SCRIPT echo "CALL SYSCS_UTIL.SYSCS_BACKUP_DATABASE('$BACKUP_DIRECTORY');" >> $BACKUP_SCRIPT echo "exit;" >> $BACKUP_SCRIPT# Run the Derby `ij` application, passing it the SQL file # that was just dynamically created. `ij` will read the # SQL file, executing its commands. This will then # cause `ij` to connect to the database and call the # system utility to perform the backup. $DERBY_HOME/bin/ij $BACKUP_SCRIPT讓我們更詳細地看一下這個腳本。
第5-15行設置了腳本中使用的許多變量。 一些變量用于設置其他變量的值。 這里沒有什么太復雜的。 變量的名稱不言自明。
第17-19行是文件系統維護。 在現有備份之上執行備份不是一個好主意。 因此,這些行將刪除現有備份(如果存在),并創建一個新的空備份目錄。
然后,第24–26行負責創建backup.sql腳本文件。 該腳本文件包含執行備份SQL命令。 第24行是connect命令,因此Derby ij可以連接到要備份的數據庫。 第25行是調用SYSCS_BACKUP_DATABASE系統實用程序的SYSCS_BACKUP_DATABASE 。 備份目錄的位置作為參數傳遞給實用程序。 執行此SQL命令后,Derby將鎖定數據庫并執行備份。 第26行是退出ij的exit命令。
最后,第33行就是一切發生的地方。 使用動態創建的backup.sql文件的位置作為命令行參數傳遞給ij來調用Derby ij命令。 當bash執行第33行時,如果一切順利,則將備份Derby數據庫。
注意如果使用Java安全策略運行Derby網絡服務器,則此腳本可能會遇到一些問題。 Java SecurityManager可能會阻止與數據庫或SecurityManager的網絡連接,而我在寫入備份目錄時遇到權限問題。
摘要
備份Derby數據庫非常容易。 只需調用SYSCS_UTIL.SYSCS_BACKUP_DATABASE('/location/of/the/backup/') 。
參考資料
備份數據庫。 (2013年1月24日)。 db.apache.org。 從https://db.apache.org/derby/docs/10.0/manuals/admin/hubprnt43.html檢索。
翻譯自: https://www.javacodegeeks.com/2018/11/derby-database-backup.html
derby數據庫的數據
總結
以上是生活随笔為你收集整理的derby数据库的数据_Derby数据库备份的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 163企业邮箱怎么设置(163企业邮箱怎
- 下一篇: 企业邮箱怎么设置outlook(企业邮箱