已还原对象的所有权
对于完整还原,对象拥有备份数据库中的所有者。
执行还原时,Vertica 将数据插入现有数据库对象中。还原默认不会影响被还原对象的所有权或权限。但是,如果还原的对象尚不存在,Vertica 将重新创建该对象。这种情况下,被还原对象由执行还原的用户所有。Vertica 不会还原与被还原对象相关的授予、角色或客户端身份验证。
如果还原对象的存储策略无效,vbr
将应用默认存储策略。由于 HDFS 存储位置、表不兼容以及还原时最小-最大值不可用等原因,还原的存储策略可能会变得无效。
有时,Vertica 会遇到不需要还原的编录对象。当这种情况发生时,Vertica 会为该对象生成一条警告消息,然后继续还原。
示例
假设您具有归用户 Alice 所有的完全备份,包括 Schema1。Schema1 包含 Table1(归 Bob 所有),他最终会将所有权传递给 Chris。用户 dbadmin 会执行还原。以下场景可能会影响这些对象的所有权。
场景 1:
Schema1.Table1 已在自从创建备份后的某个点移除。dbadmin 执行还原时,Vertica 将重新创建 Schema1.Table1。作为执行还原的用户,dbadmin 将取得 Schema1.Table1 的所有权。由于 Schema1 仍存在,Alice 将保留该架构的所有权。
场景 2:
Schema1 及包含的所有对象已移除。当 dbadmin 执行还原时,Vertica 会重新创建架构和所有包含的对象。dbadmin 获得 Schema1 和 Schema1.Table1 的所有权。
场景 3:
Schema1 和 Schema1.Table1 都存在于当前数据库中。当 dbadmin 回退到较早的备份时,对象的所有权仍保持不变。Alice 拥有 Schema1,Bob 拥有 Schema1.Table1。
场景 4:
Schema1.Table1 存在,且 dbadmin 要回退到较早的版本。在执行备份之后,Schema1.Table1 的所有权已更改为 Chris。当 dbadmin 还原 Schema1.Table1 时,Alice 仍为 Schema1 的所有者,Chris 仍为 Schema1.Table1 的所有者。还原不会将 Schema1.Table1 的所有权从 Chris 还原为 Bob。