将 SAP IQ 和 SAP MaxDB 数据库从基于卷的备份映像恢复到新位置
这两种方法都需要您自定义并运行配置文件。
以下部分介绍了如何将 SAP IQ 或 SAP MaxDB 数据库基于卷的备份映像恢复到新位置。
如需将 IBM Db2、MariaDB、MySQL、PostgreSQL、SAP ASE、SAP IQ 或 SAP MaxDB 数据库的卷级备份映像恢复到新目标,您还可以使用将数据库即时挂载并迁移到新目标过程。
如需将 IBM Db2、PostgreSQL、SAP ASE、SAP IQ 和 SAP MaxDB 数据库的完整+增量备份映像恢复到新目标,请参阅将其他数据库的完整+增量备份映像恢复到新目标。
恢复流程
如需将卷级备份映像恢复到新目标,请按以下步骤操作:
在 App Manager Applications 列表中,右键点击受保护的数据库,然后选择 Access。您可以使用受管理的备份方案状态过滤条件,仅显示受保护的数据库。
选择要恢复的最新快照,然后选择装载。
在装载位置下提供目标装载点,例如
/dmpRstNew
。此值用作变量 TARGET_MNT_PNT。数据库备份挂载在 /dmpRstNew (TARGET_MNT_PNT) 下,日志备份挂载在 /dmpRstNew_archivelog (LOG_BKP_MNTPT) 下。
以 root 用户身份登录数据库服务器。将目录更改为
/act/custom_apps/<database type>/restore
。运行脚本。
SAP IQ
脚本名称:act_sybaseiq_lvm_customdb_recovery.sh
脚本位置:/act/custom_apps/sybaseiq/restore
脚本:
/act/custom_apps/sybaseiq/restore/act_sybaseiq_lvm_customdb_recovery.sh TARGET_MNT OSUSER CATALOG_DB_FILE SRC_DB_DBA_USER SRC_DB_DBA_PWD LOG_BKP_MNTPT RECOVERY_TIME JOBID INCR_BKP_LOC
脚本的变量:
- TARGET_MNT:第 3 步中的挂载作业期间提供的挂载点
- OSUSER:目标 SAP IQ 数据库的操作系统用户
- CATALOG_DB_FILE:源数据库文件的完整路径,例如
/lv3Data/lv3DB/data/lv3DB.db
- SRC_DB_DBA_USER:目标实用程序数据库用户
- SRC_DB_DBA_PWD:目标实用程序数据库密码
- LOG_BKP_MNTPT:从装载作业期间提供的装载点获取此值,后跟 _archivelog,例如
/SDBR_archivelog
- RECOVERY_TIME:(可选)上一个已知良好数据库的时间,并记录所需的恢复时间,格式为
"YYYY-MM-DD HH:MM:SS"
- JOBID:挂载作业 ID(在管理控制台中,依次选择“监控”>“作业”标签页),格式为
Job_1479897
- INCR_BKP_LOC:增量备份文件路径,例如
/act/tmpdata/Job_1479897/INC_BKP.1
始终为 /act/tmpdata//INC_BKP.1
脚本运行后,连接到 IQ 数据库,并确认数据库已恢复并处于联机状态。
dbisql -c "uid=<username>;pwd=<password>;eng=<engine name>;dbn=<database name>;" -nogui
SAP MaxDB
脚本名称:/var/act/scripts/ACT_MAXDB_lvmRestore_newTarget.conf
脚本位置:/act/custom_apps/maxdb/restore
脚本:
/act/custom_apps/maxdb/restore/ACT_MAXDB_lvmRestore_newTarget.sh OSUSER TARGET_SERVER_NAME TARGET_DB_USER TARGET_DBUSER_PASSWD SOURCE_DBSID MANIFEST_FILE_LOC SRC_DB_VERSION ACT_JOBNAME TARGET_MNT_PNT LOG_BKP_MNTPT UNTIL_TIME BEGIN_TIME
脚本的变量:
- OSUSER:目标 MaxDB 数据库的操作系统用户
- TARGET_SERVER_NAME:目标 MaxDB 数据库的 SID
- TARGET_DB_USER 和 TARGET_DBUSER_PASSWD:目标 MaxDB 数据库的 DBM 用户名和密码。这些值必须与源 DBM 用户名和密码相同。恢复操作完成后,您可以更改密码。
- SOURCE_DBSID:源 MaxDB 数据库的 SID
- MANIFEST_FILE_LOC:Manifest_File_SLD 的完整路径
- SRC_DB_VERSION:源 MaxDB 数据库的版本号
- ACT_JOBNAME:挂载作业 ID(从管理控制台的“监控”>“作业”标签页中获取),格式为
Job_1479897
- TARGET_MNT_PNT:挂载作业期间提供的挂载点(在管理控制台中,依次选择“监控”>“作业”标签页)
- LOG_BKP_MNTPT:从装载作业期间提供的装载点获取此值,后跟 _archivelog,例如
/SDBR_archivelog
- UNTIL_TIME:希望恢复完成的时间,格式为
"YYYY-MM-DD HH:MM:SS"
(来自管理控制台的已装载备份映像) - BEGIN_TIME:开始恢复的时间,格式为
"YYYY-MM-DD HH:MM:SS"
(来自管理控制台的已装载备份映像)
连接到 MaxDB 数据库,并确认数据库已恢复并处于在线状态:
dbmcli -d TARGET_SERVER_NAME -u TARGET_DB_USER,TARGET_DBUSER_PASSWD db_state
恢复数据库后,请创建虚构数据库备份或转储数据库备份,以便在 backup_history_list 中生成备份历史记录点,这是进行日志备份的必需条件。例如,以下方法:
dbmcli -d
>MAXDB_KEY -uUTL -c backup_start DATA AUTOIGNORE 如果不设置此参数,未来的卷级备份将会失败,并显示错误“fail to trigger autolog backup template”(未能触发自动日志备份模板)。
卸载已挂载的快照映像。
更改密码
在某些情况下,您可能需要更改数据库密码。
SAP IQ
登录目标数据库。对于名为
TARGET_SERVER_NAME
的数据库,数据库用户为 SRC_DB_DBA_USER,密码为 SRC_DB_DBA_PWD,登录命令如下所示。dbisql -nogui -onerror exit -c 'uid=SRC_DB_DBA_USER;pwd=SRC_DB_DBA_PWD;dbn=TARGET_SERVER_NAME;eng=TARGET_SERVER_NAME;'
运行以下命令更改密码。
ALTER USER actuser IDENTIFIED BY new_password
使用新密码重新登录以进行验证:
dbisql -nogui -onerror exit -c 'uid=actuser;pwd=new_password;dbn=TARGET_SERVER_NAME;eng=TARGET_SERVER_NAME;'
SAP MaxDB
如需更改密码,请以 DBM 用户身份登录目标数据库:
dbmcli -d TARGET_SERVER_NAME -u TARGET_DB_USER,TARGET_DBUSER_PASSWD user_changepwd dbm <new_password>
例如,对于将密码从 abcdef 更改为 fedcba 的 DBM 用户,请执行以下操作:
dbmcli -d glxn -u dbm,abcdef
运行以下命令:
user_changepwd dbm abcdef
使用新密码重新登录:
dbmcli -d glxn -u dbm,fedcba