写点什么

【YashanDB 知识库】YashanDB 备份恢复的两种渠道

作者:YashanDB
  • 2025-01-17
    广东
  • 本文字数:2556 字

    阅读完需:约 8 分钟

本文内容来自 YashanDB 官网,原文内容请见 https://www.yashandb.com/newsinfo/7106884.html?templateId=1718516


背景:通过备份恢复完成 yasdb 到 yasdb 的数据迁移,环境分为 A 环境(ip:127.0.0.1)与 B 环境(ip:127.0.0.2),数据从 A 环境迁移到 B 环境。


方式有两种,一是 yasql 命令行,二是通过 yasrman 工具

yasql 命令行备份恢复

A 环境备份


1、进入 A 环境并登录 yashanA 用户


su yashanA
复制代码


2、检查数据库是否处于归档模式


yasql / as sysdba
select log\_mode from V$database; (ARCHIVELOG表示为归档模式,NOARCHIVELOG表示非归档模式)
复制代码


● 若数据库未处于归档模式则按下面步骤打开数据库归档(打开数据库归档需要停库,请在无运行业务时完成切换)


shutdown immediate;
exit;
yasboot cluster start -c yashandb -m mount
yasql / as sysdba
alter database archivelog;(将数据库设置为归档模式)
select log\_mode from V$database;(检查是否归档模式是否设置成功)
alter database open;(设置成功后打开数据库)
复制代码


3、登录 yasdb 数据库,并执行数据库备份命令(备份路径根据可根据实际情况自定义,TAG 参数不能与之前其它备份的 TAG 重复)


BACKUP DATABASE FULL FORMAT '/data/yashan/backup/full\_20240118' TAG 'FULL\_20240118' PARALLELISM 4;
复制代码


4、将备份好的数据文件放置到 B 环境所在机器上

恢复

1、进入 B 环境并登录 yashanB 用户


su yashanB
复制代码


2、登录生产环境数据库并执行停库操作(执行数据库恢复需要停库并移除数据库文件,请在无运行业务时完成切换)


yasql / as sysdba
shutdown immediate;
exit;
复制代码


3、移除 B 环境 $YASDB_DATA/dbfiles 目录下的文件到其他目录(迁移路径可自行定义)


cd $YASDB\_DATA
mv ./dbfiles /home/yashanB/dbfiles1
mkdir dbfiles
复制代码


4、以 nomount 模式启动 yasdb,并登录数据库



yasboot cluster start -c yashandb -m nomount
yasql / as sysdba
复制代码


5、若 yasdb 在 A 环境与 B 环境的安装路径不一致,在 B 环境上恢复数据库时,需要在数据库配置文件 yasdb.ini 中添加参数来修改数据库恢复路径(如果恢复路径一致可忽略步骤 5)


vi $YASDB\_DATA/config/yasdb.ini
复制代码


● 在文件末尾添加以下参数:(前面为 A 环境的YASDB_DATA 路径)



DB\_FILE\_NAME\_CONVERT='/home/yashanA/yasdb\_data/db-1-1','/home/yashanB/yasdb\_data/db-1-1'
REDO\_FILE\_NAME\_CONVERT='/home/yashanA/yasdb\_data/db-1-1','/home/yashanB/yasdb\_data/db-1-1'
DB\_BUCKET\_NAME\_CONVERT='/home/yashanA/yasdb\_data/db-1-1','/home/yashanB/yasdb\_data/db-1-1'
复制代码


6、执行数据库恢复命令(路径为 B 环境上存放的备份数据路径)



RESTORE DATABASE FROM '/home/yashanB/backup\_from\_test/full\_20240118';
recover database;
复制代码


7、B 环境数据库恢复完成后,将 yasdb 从 nomount 模式启动到 open 状态


alter database open;
复制代码


8、检查 B 环境恢复的数据库,没问题后删除步骤 3 中 B 环境旧的 dbfiles 目录


rm -rf /home/yashanB/dbfiles1
复制代码


yasrman 工具备份恢复


yasrman 主要功能:


● 支持本地备份恢复,yasrman 可代替基于 SQL 的备份恢复命令,连接数据库并在数据库侧生成备份集,或恢复数据库侧的备份集。备份集默认存储在 $YASDB_DATA/backup 文件夹下


● 支持远程备份恢复,yasrman 可以远程连接数据库,在工具侧生成备份集,或者恢复工具侧的备份集到远程数据库。备份集默认存储在 catalog/backup 文件夹下


● 支持分布式集群的本地备份恢复,yasrman 可以连接分布式集群里的所有节点,同时进行备份和恢复,并保证分布式事务的一致性。


● 支持备份集查询,删除,参数配置。


● 支持 XBSA 协议流式备份恢复接口,可对接第三方备份软件。

异地备份

(需使yasrman 远程备份功能,A 环境数据远程备份B 环境。)


1、进入 A 环境并登录 yashanA 用户


su yashanA
复制代码


2、检查数据库是否处于归档模式


yasql / as sysdba
select log\_mode from V$database; (ARCHIVELOG表示为归档模式,NOARCHIVELOG表示非归档模式)
复制代码


● 若数据库未处于归档模式则按下面步骤打开数据库归档(打开数据库归档需要停库,请在无运行业务时完成切换)


shutdown immediate;
exit;
yasboot cluster start -c yashandb -m mount
yasql / as sysdba
alter database archivelog;(将数据库设置为归档模式)
select log\_mode from V$database;(检查是否归档模式是否设置成功)
alter database open;(设置成功后打开数据库)
复制代码


3、进入 B 环境并登录 yashanB 用户


su yashanB
复制代码


4、用 yasrman 创建 catalog 目录



yasrman sys/yasdb\_123@127.0.0.2:1688 -c "create catalog" -D /home/yashanB/catalog
复制代码


5、执行远程 A 库数据全量备份(此处的 ip 地址为 A 库 ip,TAG 参数不能与之前其它备份的 TAG 重复,远程备份集默认放在 catalog/backup 文件夹下)


yasrman sys/sys@127.0.0.1:1688 -c "backup database tag 'full\_1' dest client format 'full\_bak\_1'" -D /home/yashanB/catalog
复制代码


6、查看备份集


yasrman sys/sys@127.0.0.2:1688 -c "list backup" -D /home/yashanB/catalog
复制代码


恢复


1、进入 B 环境并登录 yashanB 用户


su yashanB
复制代码


2、登录 B 环境数据库并执行停库操作(执行数据库恢复需要停库并移除数据库文件,请在无运行业务时完成切换)


yasql / as sysdba
shutdown immediate;
exit;
复制代码


3、移除 B 环境 $YASDB_DATA/dbfiles 目录下的文件到其他目录(迁移路径可自行定义)


cd $YASDB\_DATA
mv ./dbfiles /home/yashanB/dbfiles1
mkdir dbfiles
复制代码


4、以 nomount 模式启动 yasdb


yasboot cluster start -c yashandb -m nomount
复制代码


5、查看备份集


yasrman sys/yasdb\_123@127.0.0.2:1688 -c "list backup" -D /home/yashanB/catalog
复制代码


6、执行数据库恢复命令


yasrman sys/yasdb\_123@127.0.0.2:1688 -c "restore database from tag 'full\_1'" -D /home/yashanB/catalog
复制代码


7、检查 B 环境恢复的数据库,没问题后删除步骤 3 中 B 环境旧的 dbfiles 目录


rm -rf /home/yashanB/dbfiles1
复制代码


常见问题:


●  若 $YASDB_DATA/dbfiles 目录下存在数据库文件,执行备份恢复将出发 YAS-00311 错误


●  恢复任务的并行度值必须在 1-8,否则将触发 YAS-04204 错误


●  恢复时指定的 catalog 文件,必须和备份时指定的为同一个文件,否则会触发 YAS-02519 错误


●  备份恢复之前要清理归档日志,否则可能会报 YAS-02305 的问题,解决方法是把报错给出路径下的归档日志清理

发布于: 刚刚阅读数: 5
用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
【YashanDB知识库】YashanDB备份恢复的两种渠道_数据库_YashanDB_InfoQ写作社区