温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

OpenHarmony数据库如何备份

发布时间:2026-11-02 06:51:39 来源:亿速云 阅读:102 作者:小樊 栏目:软件技术

在 OpenHarmony 中,“数据库”通常指 关系型数据库(RelationalStore) 或 轻量级数据库(Preferences),备份方式取决于你使用的存储能力和系统版本。下面按常见场景说明。


一、关系型数据库(RelationalStore)备份

1. 官方推荐方式:应用沙箱文件备份

OpenHarmony 的数据库文件存储在应用沙箱中:

/data/app/el2/<bundleName>/database/

备份思路:

  • 将数据库文件复制到:
    • 用户可访问目录(/storage/media/...)
    • 云空间
    • 外部存储(如有权限)

示例(ArkTS):

import fileio from '@ohos.fileio';
import featureAbility from '@ohos.ability.featureAbility';

let context = featureAbility.getContext();
let dbDir = context.databaseDir;
let backupDir = context.filesDir + "/backup";

// 复制数据库文件
fileio.copyFileSync(dbDir + "/my.db", backupDir + "/my.db.bak");

✅ 适合:应用自身备份、导出给用户


2. 使用分布式备份(系统级)

在 OpenHarmony 标准系统(3.2+):

  • 系统支持 分布式数据管理(DDM)
  • 可通过 分布式数据库(DistributedKvStore) 自动同步到其他设备

适合:

  • 多设备数据一致性
  • 系统级容灾

二、轻量级数据库(Preferences)备份

Preferences 本质是 XML / 二进制文件:

/data/app/el2/<bundleName>/preferences/

备份方式:

  • 直接复制 preferences 目录
  • 或导出为 JSON
let prefs = dataPreferences.getPreferencesSync(context, { name: "user" });
let obj = prefs.getAll();
// 写入文件

三、是否支持“系统级数据库备份”?

✅ 支持(有限)

  • 系统应用 / 特权应用 可使用:
    • Backup & Restore 框架
    • 系统备份目录 /data/backup

❌ 普通第三方应用

  • 不能直接访问其他应用数据库
  • 不能调用系统全局备份接口

四、最佳实践建议

场景 推荐方案
用户手动备份 导出 DB 文件到用户目录
多设备同步 DistributedKvStore
应用升级保护 启动时检测并迁移旧 DB
系统级容灾 系统备份框架(特权)

五、注意事项

  • 数据库备份时要注意 加密数据库密码
  • 避免热备份(数据库正在写入时)
  • 备份文件建议压缩 + 校验

如果你能告诉我:

  • OpenHarmony 版本(L0/L1/L2)
  • 使用的是 RelationalStore 还是 KvStore
  • 是用户级还是系统级应用

我可以直接给你可运行的备份/恢复代码示例。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手