1.数据库连接可以有三种模式:
(1)、私有数据库连接,也就是在某个方案(schemas)下去创建;
(2)、公有的数据库连接,关键字是public
(3)、共享的数据库连接,关键字是shared
创建的时候创建什么类型的数据库连接就需要增加什么样的关键字;
如,create (public|shared) database link xxx connect to xxx identified by xxx using 'xxx';
同样的,删除普通的数据库连接不用加关键字,如果删除后两种则需要加上关键字,要不然会报出找不到数据库连接的错误。
如:drop public database link xxx.
如果是要用数据库连接去做数据迁移时,必须使用public类型。
查看所有的数据库连接:
select * from dba_db_links;
2.连接串可以有三种方式:
(1)、常见的tnsname的方式,只要在$ORACLE_HOME/network/admin下的tnsname.ora里进行配置,之后如果用tnsping可以测试通过就可以。
(2)、连接窜模式,如,
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = xx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = xx)
)
)
还可以使用多个VIP的模式来写。
(3)、PLSQL连接串模式如xxx/xxx@xxx:1521/xxx
3.当源端使用了global_names参数时,数据库连接的名字必须和目标段的SID一致,否则则报出不能连接的错误。可通过如下命令关闭:
alter syetem set gloabl_name=false;
4.数据库连接虽然方便,但是如果滥用,会造成耦合性太高的问题,最后导致整个数据库系统称为一个网状结构,对于数据迁移和系统迁移带来极大的困难。
而且还会带来SCN传染问题,如果源的SCN很大,在进行数据交互后,oracle为了保持源端和目标端的SCN一致,会把目标端的值也取和源端一致的值,所以有好多数据库刚刚搭建,查其SCN值则很大,问题由此导致。SCN值是有限的、如果SCN的值用完了,那么数据库也就不能再使用了。