为 Backup and DR Service 准备其他自行管理的数据库

您必须先将数据库服务器添加为 Backup and DR Service 的主机,然后才能备份以下自管理数据库实例和数据。为了实现这一点,大多数数据库都需要进行一些设置和其他准备步骤。本页中的步骤适用于大多数自行管理的数据库:

过滤角色: 审核 然后使用
IBM Db2 IBM Db2 的备份和灾难恢复 Db2 数据库前提条件
MariaDB MariaDB 备份和灾难恢复 MariaDB 数据库前提条件
MySQL MySQL 备份和灾难恢复 MySQL 数据库前提条件
PostgreSQL PostgreSQL 备份和灾难恢复 PostgreSQL 数据库前提条件
SAP ASE 适用于 SAP ASE 的备份和灾难恢复 SAP ASE 数据库前提条件
SAP IQ 适用于 SAP IQ 的备份和灾难恢复 SAP IQ 数据库前提条件
SAP MaxDB SAP MaxDB 的备份和灾难恢复 SAP MaxDB 数据库前提条件
SAP HANA 适用于 SAP HANA 的备份和灾难恢复 为备份 SAP HANA 数据库做准备
Microsoft SQL Server 适用于 SQL Server 的备份和灾难恢复 为 Backup and DR Service 准备 SQL Server 数据库
Oracle 适用于 Oracle 的备份和灾难恢复 备份 Oracle 数据库的前提条件及其后续页面

对于所有其他受备份和灾难恢复支持的数据库,请按以下步骤操作。

Db2 数据库前提条件

  • 每个数据库都必须使用自动存储模式,否则系统只会发现实例。

  • 每个数据库都必须处于归档日志模式,并且 LOGARCHMETH1 必须设置为本地磁盘。如需了解数据库是处于循环模式还是归档日志模式,请运行 db2 get db cfg for <database name>| grep LOGARCHMETH1 命令

  • 如果数据库处于循环模式,请先将日志记录更改为归档模式,然后再继续操作。如需设置 LOGARCHMETH1 参数,请使用以下命令:
    db2 update db cfg for <dbname> LOGARCHMETH1 using 'DISK:<location>'

  • 对于 HADR 备用数据库,必须启用在备用状态下执行读取选项,即必须将 DB2_HADR_ROS 参数设置为 ON

MariaDB 数据库的前提条件

  • MariaDB 数据库必须位于 LVM 下,且不得是启动卷。运行 mysql -e "select @@datadir" 以获取数据库数据路径。

  • 用于预配 MariaDB 卷的 LVM 卷应至少有 20% 的可用空间。

  • 在 MariaDB 服务器上安装 Backup and DR 代理。

  • 创建具有 ReloadSelectLock tablesSuperReplication client 权限的备用用户。必须使用主机配置配置备用用户名和密码。

    如需创建备用用户,请完成以下操作:

    create user actuser identified by 'actpasswd';
    GRANT SELECT on *.* TO actuser;
    GRANT RELOAD on *.* TO actuser;
    GRANT LOCK TABLES on *.* TO actuser;
    GRANT SUPER on *.* TO actuser;
    GRANT REPLICATION CLIENT on *.* to actuser;
    SHOW GRANTS FOR CURRENT_USER;
    
  • 必须启用 MariaDB 二进制日志记录 log_bin 才能进行日志备份。如需配置二进制日志选项,请关闭 MariaDB 服务器并修改配置文件 my.cnfmy.ini。在配置文件的 [mysqld] 部分中,添加 log-bin 选项。

    [mysqld]
    log_bin = /log1/mysql3306/mysql3306-bin.0000
    
  • 必须在 /etc/passwd 文件中将 mysql 用户设置为 /bin/bash

MySQL 数据库的前提条件

  • MySQL 数据库必须位于 LVM 下,且不得是启动卷。运行 mysql -e "select @@datadir" 以获取数据库数据路径。

  • 为了获得最佳效果,用于预配 MySQL 卷的 LVM 卷应至少有 20% 的可用空间。

  • 在 MySQL 服务器主机上安装备份和灾难恢复代理

  • 确保 MySQL 实例已启动并正在运行

  • MySQL 数据库的所有者(操作系统用户)必须能够登录,例如,数据库操作系统用户应具有 /bin/bash 等可用的 shell。

    用于启用操作系统用户的命令:usermod -s /bin/bash mysql

  • MySQL 实例应具有可从 localhost 连接的数据库备份用户。示例:create user actuser'@'localhost identified by 'mypassword';

  • 在卷级快照备份和恢复的情况下,数据库备份用户需要具备的权限:

    GRANT SELECT on *.* TO actuser;
    GRANT RELOAD on *.* TO actuser;
    GRANT LOCK TABLES on *.* TO actuser;
    GRANT SUPER on *.* TO actuser;
    GRANT REPLICATION CLIENT on *.* to actuser;
    SHOW GRANTS FOR CURRENT_USER;
    
  • 在使用完整+增量(基于文件的传统)备份和恢复时,数据库备份用户需要具备以下权限:

    GRANT ALL ON *.* TO 'actuser'@'localhost';
    SHOW GRANTS FOR CURRENT_USER;
    
  • 除了系统数据库(information_schemamysqlperformance_schemasys)之外,必须存在一个用户定义的数据库。

  • 必须启用 MySQL 二进制日志记录(log_bin)才能进行日志备份。如需配置二进制日志选项,请关闭 MySQL 服务器并修改配置文件 my.cnfmy.ini。在配置文件的 [mysqld] 部分中,添加 log-bin 选项。

    [mysqld]
    log_bin = /log1/mysql3306/mysql3306-bin.0000
    

PostgreSQL 数据库的前提条件

本部分包含有关 PostgreSQL 数据库前提条件的信息。

从主节点保护 PostgreSQL

  1. 创建备用用户:

    create user actuser;

  2. 为备份提供权限:

    alter user actuser with superuser;
    alter user actuser with Replication;
    
  3. 必须将 PostgreSQL 归档模式(archive_mode)设为 ON,才能进行日志备份。如需配置归档日志模式选项,请更新实例数据目录中的 postgresql.conf 文件,然后重新加载 PostgreSQL。

    archive_mode = on
     // Command to reload PostgreSQL
     pg_ctl reload -D <Postgres_datadir_path>
    ``
    

示例:pg_ctl reload -D /pgdata

通过备用节点保护 PostgreSQL

  1. 创建备用用户:

    create user actuser;

  2. 为备份提供权限:

    alter user actuser with superuser;
    alter user actuser with Replication;
    
  3. 在备用节点上设置 PostgreSQL 归档模式 - WAL:

    创建要存放 WAL 的目录。
    示例假设 /pglog 是目录。以 root 用户身份运行以下步骤。

    mkdir /pglog
    chown -R postgres:postgres /pglog
    

    配置归档参数。
    示例假设 $PGDATA/pgdata/11/data。以 postgres 用户身份运行以下步骤。
    在文件 /pgdata/11/data/postgresql.conf 中添加或更新参数

     wal_level = replica
     archive_mode = always
     archive_command = 'test ! -f /pglog/%f && cp %p /pglog/%f'
    

    重启 PostgreSQL:

     /usr/pgsql-11/bin/pg_ctl stop -D /pgdata/11/data
     /usr/pgsql-11/bin/pg_ctl start -D /pgdata/11/data
    

    在主服务器上添加或更新 pg_hba.conf 中的条目,以接受来自备用服务器的数据库连接。

    host postgres <db-user> <standby-ip/32> <connection method>
    

    示例:host postgres postgres 10.128.0.29/32 trust

    测试归档生成(以 postgres 用户身份):

    ls -l /pglog/
    

    运行以下日志切换命令:

     /usr/pgsql-11/bin/psql -h 10.128.0.28 -p5432 -c "select pg_switch_wal();"
     sleep 5 # log shipping may take some time depending on network
     ls -l /pglog/
    

SAP ASE 数据库前提条件

在开始之前,请在 SAP ASE 服务器上完成以下操作:

  • 必须创建具有备份权限(oper_rolesa_role)的备份用户账号。必须使用主机配置配置备用用户名和密码。创建具有或不具有密码的用户,以便使用 sa_role 角色/或具有 quiesce 权限对源代码运行 quiesce 命令。如需使用密码创建用户,请运行以下命令:

    isql -Usa -P<password> -S<SAP ASE_Server_Name>
    1>sp_addlogin actuser, '<password>'
    2>go
    1>grant role sa_role to actuser
    2>go
    

    如需配置无密码要求的用户登录,请将密码设置为 null,然后运行以下命令:

    1>sp_configure "minimum password length", 0
    2>go
    1> sp_modifylogin actuser, "min passwd length",
    "0"
    2> go
    3> exit
    isql -Uactuser -P'<password>' -S<server_name>
    > sp_password '<password>', NULL
    >go
    >sp_configure "minimum password length", 8
    >go
    
  • 在 SAP ASE 服务器上安装备份和灾难恢复代理。

  • 如需启用事务日志备份,必须在 SAP ASE 实例的每个数据库级别设置 Truncate on chkpt false

  • 对于卷级备份,以下为真:

    • SAP ASE 实例必须位于 LVM 下,并且不得是启动卷。

    • 用于预配 SAP ASE 卷的 LVM 卷应至少有 20% 的可用空间。

SAP IQ 数据库前提条件

在开始之前,请在 SAP IQ 服务器上查看以下内容:

  • 必须开启 SAP IQ PITR 日志记录才能进行日志备份。如需配置 PITR 日志选项,您需要以下 SAP IQ API:

    • ALTER DBSPACE IQ_SYSTEM_LOG RENAME /<pitr_log_location>

    • SET OPTION PUBLIC.IQ_POINT_IN_TIME_RECOVERY_LOGGING = ON`

    启用 PITR 日志记录后,需要进行数据库完整备份。

  • 实用程序数据库需要先指定用户名和密码,并且 dbname 应为 utility_db。例如 start_iq -n utility_db -su act,passwd

  • 数据库备份用户名和密码应与 utility_db 用户名和密码相同,并且必须具有 DBA 权限。如需创建备用用户,请执行以下操作:

    create user actuser identified by 'mypassword';
    grant dba to actuser;
    
    • 在 SAP IQ 服务器主机上安装备份和灾难恢复代理。

SAP MaxDB 数据库前提条件

开始之前,请在 SAP MaxDB 服务器上执行以下操作:

  • 如果服务器上有多个 MaxDB 实例在运行,则数据库用户名和密码必须对该服务器上运行的所有 MaxDB 实例通用。

  • 必须启用自动日志备份。使用以下命令启用自动日志备份:

    dbmcli -d <DBSID> -u <DBM_USERNAME>,<DBM_PASSWD> autolog_on
    <autolog_backup_template_name>
    
  • 如需启用自动日志备份,您需要一个自动日志备份模板。

如需创建备份模板,请使用以下命令。

    dbmcli -d <DBSID> -u <DBM_USERNAME>,<DBM_PASSWD> backup_template_create
    <BACKUP_TEMPLATE_NAME> to file  <FULL_PATH_WITH_FILE_NAME> content log
  • 必须停用日志覆盖区域,才能启用自动日志备份。

如需停用日志覆盖功能,请使用以下命令:

    dbmcli -d <DBSID> -u <DBM_USERNAME>,<DBM_PASSWD> db_execute SET LOG AUTO
    OVERWRITE OFF.
  • 在 SAP MaxDB 服务器主机上安装备份和灾难恢复代理。

后续步骤

为数据库做好备份和灾难恢复准备后,您可以添加主机并发现数据库