房地产网站建设公司,东莞企业网站哪家强,贵阳个人做网站,创意产品设计网derby数据库的数据抽象 我已经发布了许多有关Derby的博客#xff1a; 同一主机上的多个Derby网络服务器 Apache Derby数据库用户和权限 与Maven和内存中Derby数据库的集成测试 这本不打算是一个系列。 但是多年来#xff0c;我越来越多地使用Derby。 最近#xff0c;我开… 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_HOSTlocalhost
NETWORK_SERVER_PORT1527
DATABASE_NAMEmydatabase
DATABASE_USERsa
DATABASE_PASSWORDabc123
JDBC_URLjdbc: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.htmlderby数据库的数据