本地与网络数据库 - 维护

时间:2010-12-15 12:13:41

标签: database maintenance

到目前为止,我一直在使用本地数据库SQLite,我的Winforms应用程序管理所有维护本身:

  • 安装并首次运行后,数据库文件由应用程序
  • 创建
  • 每次启动后,应用程序将检查数据库完整性并自动定期将数据库备份到临时目录
  • 当应用程序升级到较新版本时,应用程序本身将检查数据库版本并在再次启动后升级(即添加新列等)。
  • 该应用还可以备份数据库或从备份中恢复它
  • 简单地说,一个用户和一个数据库

现在,如果我想开始使用标准数据库服务器与更多用户而不是本地数据库,谁负责所有这些维护任务?例如,如果一个用户正在运行客户端应用程序,则另一个用户无法从其备份中还原数据库。我应该遵循一般规则吗?

谢谢, 彼得

2 个答案:

答案 0 :(得分:0)

如果有多个用户连接到数据库(可能使用不同版本的应用程序),则在架构更改时,您将让管理员“升级”数据库。备份和恢复也将是核心。在您的应用程序中,没有任何阻碍其他用户访问数据库的功能 - 它们都集中在数据库服务器上。

答案 1 :(得分:0)

您描述的多用户场景通常由真正的客户端 - 服务器数据库引擎处理,该引擎作为服务器上的进程运行并通过消息传递协议与客户端通信;消息告诉服务器它应该做什么,服务器进程完成任务;但是客户端没有直接控制服务器上的操作,也没有直接访问驻留在数据库服务器上的磁盘空间分配的数据。这样的引擎不仅提供强大的并发性,而且还提供维护实用程序,使数据库优雅地降低,就像汽车可以在车库中被抬起一样,因此机械师可以进入下面。你不希望司机或乘客,你不希望用户在这种条件下。 SQLite不是这样的数据库引擎:客户端能够通过O / S机制将锁直接放在磁盘驱动器上的数据上。 SQLite做得非常好。但它没有做你想做的事。