BUILD DATABASE用于在主备高可用部署环境中,在备库上创建standby数据库,有关主备高可用架构的详细操作描述请参考高可用。
在存在级联备的环境中,级联备库的上级备库对应为下文中的主库,级联备库对应为下文中的备库,具有与主备库相同的语法、功能及约束。
主库端BUILD命令仅SYS超级用户或拥有SYSDBA、SYSBACKUP权限的用户才可执行。
该功能不适用于分布式部署。
对备库成功执行本语句的前提是:
本语句涵盖了YashanDB需要进行BUILD操作的各种场景:
本语句执行过程中,可以通过V$BACKUP_PROGRESS视图查询某个BUILD操作的进度。若BUILD中断或失败,需注意:
build database::=

代码
syntax::= BUILD DATABASE [((INCREMENTAL TO ((STANDBY standby_name) | (REMOTE standby_address))) | (REPAIR STANDBY standby_name) | (TO ((STANDBY "(" (((standby_name) {"," (standby_name)})| "*")")") | (REMOTE "(" (standby_address) {"," (standby_address)}")")))) [DISCONNECT FROM SESSION]]该语句后面无任何选项时,表示本操作在备库上执行,将主库服务器文件在线传输到备库服务器。
示例(单机、共享集群部署)
--在某个备库上执行
BUILD DATABASE;Copied!
本操作一般在主库上执行,用于指定多个不同备库,将主库服务器文件同时在线传输到这些备库服务器。
在共享集群部署中执行本操作时,只能指定1个备集群。
standby_name
指定备库的DB_UNIQUE_NAME(通过V$ARCHIVE_DEST视图获得该值),在一个HA集群中,DB_UNIQUE_NAME唯一标识了一台备库服务器。
多个standby_name之间以 , 分隔,且不可以重复。
*
指定与该主库连接的所有的备库。
示例(单机部署)
-- 指定对应的备库DB_UNIQUE_NAME执行BUILD。
BUILD DATABASE TO STANDBY (standby1_name, standby2_name);
-- 指定 * 符号即为该主库的所有备库执行BUILD。
BUILD DATABASE TO STANDBY (*);Copied!
示例(共享集群部署)
-- 指定对应的备集群DB_UNIQUE_NAME执行BUILD。
BUILD DATABASE TO STANDBY (standby1_name);Copied!
本操作可以在主库或备库上执行,用于指定多个不同IP,将本机服务器文件同时在线传输到这些服务器。
当某个备库出现异常时,为避免影响主库的业务,可以在一个正常同步备库上执行本语句,通过指定IP地址在线传输服务器文件到异常备库进行修复。
在共享集群部署中执行本操作时,只能指定1个备集群。
standby_address
指定备库的IP地址,需为address:port格式的一个有效地址,例如127.0.0.1:1689。
多个standby_name之间以,指定,且不可以重复。
YashanDB支持指定一个未与主库建立复制链路的IP地址,此时主库仍可以连接该备库且执行BUILD操作(由于未建立链路,该备库只是创建standby库,而不会加入HA集群),但需遵循该主库所处HA集群环境的一切限制,例如指定的IP个数不能超过备库最大限制数量。
示例(单机部署)
BUILD DATABASE TO REMOTE ('127.0.0.1:2901', '127.0.0.1:2902');Copied!
示例(共享集群部署)
BUILD DATABASE TO REMOTE ('127.0.0.1:2901');Copied!
当备库与主库间存在较大gap时,在主库上通过standby_name指定备库执行本语句可以快速修复异常备库,缩小主备之间的差距。
本操作每次只能指定一个备库,且指定的备库必须是一个正常open状态的备库(通过V$REPLICATION_STATUS视图查看备库的状态)。
Caution:
示例(单机部署)
BUILD DATABASE INCREMENTAL TO STANDBY standby1_name;Copied!
当备库与主库间存在较大gap时,在主库上通过standby_address指定备库执行本语句可以快速修复异常备库,缩小主备之间的差距。
为了避免影响主库的业务,也可以在某个正常的同步备库或者主备差距较小的备库上执行本语句。
本操作每次只能指定一个IP地址(通过standby_address指定),且指定的备库必须是一个正常open状态的备库(通过V$REPLICATION_STATUS视图查看备库的状态)。
Caution:
示例(单机部署)
BUILD DATABASE INCREMENTAL TO REMOTE '127.0.0.1:1689';Copied!
当某个备库为need repair状态(通过V$REPLICATION_STATUS视图查看备库的状态)时,在主库上通过standby_name指定备库执行本语句可以快速修复异常备库。
本操作每次只能指定一个备库,且指定的备库必须是某些异常类型(通过V$REPLICATION_STATUS视图查看备库的异常类型)的need repair状态,例如主库归档被清理等,其他的异常只能通过全量BUILD修复,更详细的描述请查看高可用手册备库异常修复。
示例(单机部署)
BUILD DATABASE REPAIR STANDBY standby1_name;Copied!
本选项表示不需要等待BUILD操作完成之后再返回succeed,此时BUILD操作由后台线程完成,用户的会话线程不会阻塞。不指定本选项表示用户会话等待BUILD操作完成之后才返回succeed。
示例(单机部署)
BUILD DATABASE TO STANDBY (standby1_name, standby2_name) DISCONNECT FROM SESSION;Copied!
示例(共享集群部署)
--在主集群上执行
BUILD DATABASE TO STANDBY (standby1_name) DISCONNECT FROM SESSION;本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。