Oracle11g R2学习系列 之六数据库链接,快照及序列

时间:2022-11-10 03:35:25

Create public database link link_name

  Connect to user identified by password

  using 'DBName'

为'DBName'创建一个公用链接,该链接以用户user和密码password登入。这里这个DBName是不能随意指定的,必须跟C:\oracle11gr2\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora里面的一致,我看过有些书说用后面完整的字串也是可以的。就象我在那篇文档里解决"ORA-12154: TNS: 无法解析指定的连接标识符"一样。至于我本机的这个文档内容在这里可以找到。所以不再贴出。下面是我应该使用的命令:

Oracle11g R2学习系列 之六数据库链接,快照及序列

如果经常使用某个链接的表,还可以为link_name创建一个同义词,象下面这样子:

Create pubic synonym my_synonym for user.table_name@link_name;然后就可以象本地表一样使用select * from my_synonym来查询了。

Oracle11g R2学习系列 之六数据库链接,快照及序列

删除数据库链接使用:drop public database link orcl_link即可,我这里还要使用,所以不演示这个的结果。

建立了数据库链接之后,我们还可以使用快照,而且使用快照是一定要先建链接的。快照的作用主要是能够进行在线数据恢复,当存储设备发生应用故障或者文件损坏时可以进行及时数据恢复,将数据恢复成快照产生时间点的状态。快照的另一个作用是为存储用户提供了另外一个数据访问通道,当原数据进行在线应用处理时,用户可以访问快照数据,还可以利用快照进行测试等工作。

CREATE SNAPSHOT [schema.]snapshot_name        /*将要创建的快照名称*/
[PCTFEE integer]
[PCTUSED integer]
[INITRANS integer]
[MAXTRANS integer]
[STORAGE storage_clasue] /*快照的存储特征*/
[TABLESPACE tablespace] /*指定表空间*/
[USING INDEX [PCTFEE integer] /*使用索引*/
[PCTUSED integer]
[INITRANS integer]
[MAXTRANS integer] ]
[REFRESH [FAST | COMPLETE | FORCE] [START WITH date] [NEXT date] ]
/*指定快照的刷新特性的信息*/
[FOR UPDATE] AS subquery /*用于置入快照的 SQL 查询*/

序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。其主要的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值

CREATE SEQUENCE [schema.] sequence_name/*将要创建的序列名称*/
[INCREMENT BY integer] /*递增或递减值*/
[START WITH integer] /*初始值*/
[MAXVALUE integer | NOMAXVALUE] /*最大值*/
[MINVALUE integer | NOMINVALUE] /*最小值*/
[CYCLE | NOCYCLE] /*是否循环*/
[CACHE integer | NOCACHE] /*高速缓冲区设置*/
[ORDER | NOORDER] /*序列号是序列否,按照顺序生成*/