Home >Database >Mysql Tutorial >Oracle 12c 数据库内归档

Oracle 12c 数据库内归档

WBOY
WBOYOriginal
2016-06-07 17:35:12986browse

Oracle 12c有一个新特性,能够在数据库内归档,将不常访问的数据对应用隐藏起来,设置为inactive状态。当然也可以在会话级别进行

Oracle 12c有一个新特性,能够在数据库内归档,将不常访问的数据对应用隐藏起来,,设置为inactive状态。当然也可以在会话级别进行显示。这是通过参数ROW ARCHIVAL VISIBILITY来实现的,该参数可以设置为两个值,active或all。active为显示活动的数据,all为显示所有数据,包括inactive的数据。

  现举例说明:

 SQL> create table test(id int,name varchar2(10));
Table created.
SQL> alter table test ROW ARCHIVAL;
Table altered.
SQL> insert into test values(1,'col1');
1 row created.
SQL> insert into test values(2,'col2');
1 row created.
SQL> commit;


SQL> COL DATA_TYPE FOR A10
SQL> COL COLUMN_NAME FOR A20

SQL> SELECT COLUMN_NAME, DATA_TYPE,  HIDDEN_COLUMN, CHAR_LENGTH  FROM USER_TAB_COLS WHERE TABLE_NAME='TEST';

COLUMN_NAME            DATA_TYPE  HID  CHAR_LENGTH
--------------------                      ----------    ---              -----------
ORA_ARCHIVE_STATE    VARCHAR2  YES        4000
NAME                                VARCHAR2  NO          10
ID                                        NUMBER    NO            0

SQL> col ora_archive_state for a20

SQL> select id,name,ora_archive_state from test;

 

        ID NAME      ORA_ARCHIVE_STATE
---------- ---------- --------------------
        1 col1              0
        2 col2              0

 


默认情况下,ora_archive_state列的值为0,其意味着没有在数据库归档。

SQL> update test set ora_archive_state='1' where id=1;

1 row updated.

SQL> commit;

Commit complete.

SQL> select * from test;

        ID NAME
---------- ----------
        2 col2
可以看到,修改的那上数据已经看不到了。

SQL> ALTER SESSION SET ROW ARCHIVAL VISIBILITY = ALL;

Session altered.

SQL> select * from test;

        ID NAME
---------- ----------
        1 col1
        2 col2
SQL> ALTER SESSION SET ROW ARCHIVAL VISIBILITY=active;

Session altered.

SQL> select * from test;

        ID NAME
---------- ----------
        2 col2

可以看到,不同的会话参数,显示结果不同。

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn