有没有可能锁定Oracle序列,以便任何试图在其上使用nextval的会话都会被阻塞,直到我完成脚本?
我将解释一下我的做法,以防有其他方法。 我正在准备一个模式,以使用流进行双向复制。 我想确保所有主键序列产生唯一值。 我通过将序列递增1直到最后一位为1,然后将增量更改为100来实现这一点。 在另一台服务器上,我做同样的事情,直到最后一位是2。 这样,服务器1始终生成主键XXXXX01,服务器2生成XXXXX02。
问题是这是一个24x7数据库,我无法在调整序列时停止所有活动。 如果我可以短时间获得独占锁,我可以可靠地完成它。
我将解释一下我的做法,以防有其他方法。 我正在准备一个模式,以使用流进行双向复制。 我想确保所有主键序列产生唯一值。 我通过将序列递增1直到最后一位为1,然后将增量更改为100来实现这一点。 在另一台服务器上,我做同样的事情,直到最后一位是2。 这样,服务器1始终生成主键XXXXX01,服务器2生成XXXXX02。
问题是这是一个24x7数据库,我无法在调整序列时停止所有活动。 如果我可以短时间获得独占锁,我可以可靠地完成它。