我成功地从我的外部主库中导出了数据,并在Cloud SQL上创建了一个副本。到目前为止,我对此过程感到非常满意,但在导出过程中,我不得不忽略视图、触发器等。
既然我已经成功创建了一个从库,那么如何重新添加视图等,以便我可以像往常一样运行所有的脚本而不需要更改呢?还是这些只读副本不支持视图、触发器等功能?我的印象是只有导出/导入过程不支持这个功能。
我成功地从我的外部主库中导出了数据,并在Cloud SQL上创建了一个副本。到目前为止,我对此过程感到非常满意,但在导出过程中,我不得不忽略视图、触发器等。
既然我已经成功创建了一个从库,那么如何重新添加视图等,以便我可以像往常一样运行所有的脚本而不需要更改呢?还是这些只读副本不支持视图、触发器等功能?我的印象是只有导出/导入过程不支持这个功能。
打开Google Cloud控制台中的Cloud SQL Instances页面。 找到您想要创建副本的实例,并在其列表的最右侧打开“更多操作”菜单。 选择“创建只读副本”。 如果您没有看到该选项,则该实例是一个副本;您不能创建副本的副本。
如果该实例已启用备份和二进制日志记录,请继续执行第6步。否则,选择“自动化备份”和“启用二进制日志记录”,点击“继续”,然后点击“保存并重启”以重新启动该实例。 启用二进制日志记录会导致该实例重新启动。
在“创建只读副本”页面上,根据需要更新实例ID和任何其他所需的配置选项,包括名称、区域和区域。 点击“创建”。 Cloud SQL会创建必要的备份,并创建副本。 您将返回到主实例的实例页面。
DROP VIEW IF EXISTS v1;
然后CREATE VIEW v1 AS SELECT ...
。我犹豫是否将其发布为答案,因为它似乎非常奇怪和不必要,但您可以尝试一下看看它是否可行。 - Michael - sqlbotDROP VIEW IF EXISTS
?为什么不只是CREATE VIEW
?这将在主服务器上失败,但应该可以在从服务器上成功运行,对吗? - blueetherROW
时,作为安全有效结果几乎肯定需要这样设置,触发器/存储过程/函数/事件在复制品上是不必要的,因为主服务器只会为存储程序修改的行编写复制事件,而不是为实际调用它们编写。 - Michael - sqlbot