最新消息:把Logo换了一下,虽然丑了点,但至少完全是自己的设计

Oracle序列(Sequence)的备份与恢复

Oracle 宇托 1312浏览 暂无评论

在对Oralce进行备份和恢复时,一般情况下,序列(Sequence)是不在备份内容里的。那么如何进行备份呢。

我们可以用删除原序列(Sequence),然后再新建序列(Sequence)的方法来备份和恢复。

删除序列(Sequence)SQL的生成

我们可以用以下SQL来生成删除序列(Sequence)SQL

SQL
SELECT
    'DROP SEQUENCE ' || SEQUENCE_NAME || ';' AS SQLTEXT
FROM
    ALL_SEQUENCES
WHERE
    SEQUENCE_OWNER <> 'SYS'

比如它的结果如下,把它保存在一个文件(例:dropSequence.sql)。

SQL
DROP SEQUENCE S_XXXXX;
DROP SEQUENCE S_YYYYY;

新建序列(Sequence)SQL的生成

我们可以用以下SQL来生成新建序列(Sequence)SQL。注意:你应该根据自己的需要来修改下面的SQL。

SQL
SELECT
    'CREATE SEQUENCE ' || SEQUENCE_NAME || ' MINVALUE 1 MAXVALUE ' || MAX_VALUE || ' START WITH ' || LAST_NUMBER || ' INCREMENT BY 1 CACHE 20 NOORDER CYCLE;' AS SQLTEXT
FROM
    ALL_SEQUENCES
WHERE
    SEQUENCE_OWNER <> 'SYS'

比如它的结果如下,把它保存在一个文件(例:createSequence.sql)。

SQL
CREATE SEQUENCE S_XXXXX MINVALUE 1 MAXVALUE 9999999999 START WITH 21 INCREMENT BY 1 CACHE 20 NOORDER CYCLE;
CREATE SEQUENCE S_YYYYY MINVALUE 1 MAXVALUE 9999999999 START WITH 21 INCREMENT BY 1 CACHE 20 NOORDER CYCLE;

恢复序列(Sequence)

用IMP恢复完数据之后,我们先用刚才生成的dropSequence.sql来删除序列(Sequence),然后再用createSequence.sql来生成新的序列(Sequence)。

用以上方法,就可以实现Oracle序列(Sequence)的备份与恢复了。

转载请注明:宇托的狗窝 » Oracle序列(Sequence)的备份与恢复

发表我的评论
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址