建行官方网站登录,衣服品牌logo大全,如何做带后台的网站,曲阜官方建设局网站抽象 我已经发布了许多有关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行终于发生了一切。 使用作为命令行参数传递给ij的动态创建的backup.sql文件的位置来调用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