| 以下是引用片段: SQL> show parameter global_names NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ global_names boolean TRUE SQL> select count(*) from t_emp@dbl; select count(*) from t_emp@dbl |
第 1 行出现错误:
ORA-02085: 数据库链接 DBL 连接到 ORCL
| SQL> col db_link format a10 SQL> col host format a10 SQL> col owner format a10 SQL> col username format a10 SQL> select * from dba_db_links; OWNER DB_LINK USERNAME HOST CREATED ---------- ---------- ---------- ---------- -------------- SYS DBL TEST orcl 01-12月-07 SYS ORCL TEST orcl 01-12月-07 SQL> select count(*) from t_emp@orcl; COUNT(*) ---------- 4 SQL> |
8、在通过netmanager配置静态监听注册时,需要输入的全局数据库名(GLOBAL_DBNAME )到底应该输入什么?而通过netmanager配置网络服务命名(tns)是需要输入的服务名(SERVICE_NAME )又是什么?
listener.ora内容如下:
| SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = test) (ORACLE_HOME = E:\oracle\product\10.2.0\db_1) (SID_NAME = tsid) ) ) LISTENER = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xys)(PORT = 1521)) ) |
tnsnames.ora内容如下:
| TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xys)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) |
这里明确的告诉大家,配置静态监听注册时,需要输入的全局数据库名(GLOBAL_DBNAME )输入什么都可以,只要保证listerner.ora中的GLOBAL_DBNAME和tnsnames.ora中的SERVICE_NAME保持一致就可以,下面通过试验看看效果:
值得主要的是GLOBAL_DBNAME = test,而此时数据库的db_name和global_name以及service_names分别如下显示:
SQL> show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string test1
SQL> select *from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
test1
SQL> alter database rename global_name to abcd.yu;
数据库已更改。
SQL> select *from global_name;
GLOBAL_NAME
--------------------------------------------------------------------------------
ABCD.YU
SQL>
SQL> show parameter service_names
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string TEST2, TEST3
SQL>
而我在配置listener和tnsnames时提供的test和db_name,globla_name,service_name没有任何关系,然后看看tnsping的效果:
C:\>tnsping test
已使用 TNSNAMES 适配器来解析别名
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
(HOST = xys)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = test)))
OK (30 毫秒)
C:\>
9、db_unique_name
DB_UNIQUE_NAME是10g的参数,在配置dataguard环境时必须为处于dg环境中每个db设置一个唯一值,在没有DB_UNIQUE_NAME参数之前,在同一台机器上搭建dg时必须使用参数LOCK_NAME_SPACE在standby参数文件中,10g
有了参数db_unique_name,LOCK_NAME_SPACE已经被废弃!
