如何理解Oracle分布式系统中的全局数据库名称
在分布式系统中,每个数据库都有一个唯一的全局数据库名称。全局数据库名称唯一标识系统中的数据库。分布式系统中的一项主要任务是创建和管理全局数据库名称。
1.全局数据库名的组成
全局数据库名由两部分组成:数据库名和域名。数据库名称和域名在创建数据库时由以下参数确定。
数据库名称:db_name 小于或等于 30 个字符,例如 sales
域名:db_domain 必须符合标准 Internet 规则。域名中的级别必须用点和域的顺序分隔名字是从叶到根,从左到右。
db_domain参数只是创建数据库时使用的一个非常重要的参数。它与 db_name 参数一起使用来确定全局数据库名称。全局数据库名称存储在数据字典中。全局数据库名必须通过alterdatabase语句更改,不能通过修改参数文件中的db_domain参数来修改。
确定是否强制使用全局数据库名称
在本地数据库中创建指定名称的数据链接时,将根据是否强制使用全局数据库名称来生成链接名称。如果本地数据库强制使用全局数据库名称,则必须使用远程数据库全局数据库名称作为数据链接名称。例如,如果连接到本地数据库 hq 并希望创建到远程数据库 mfg 的数据链接,并且本地数据库强制使用全局数据库名称,则必须使用mfg 全局数据库名称作为链接名称。
创建数据链接时,您还可以使用服务名称作为数据库链接名称的一部分。例如,如果使用服务名称 sn1 和 sn2 连接数据库 hq.example.com,并且强制使用全局数据库名称,则可以为数据库 hq 创建以下链接名称:
hq.example .com@sn1 hq.example.com@sn2
为了判断数据库中是否启用了全局数据库名,可以查看数据库初始化参数文件或者查询v$参数视图。例如,为了检查数据库mfg是否强制使用全局数据库名称,可以执行以下语句进行查询:
SQL> col name format a12SQL>col value format a6SQL> select name, value from v$parameter where name = 'global_names' 2 /NAME VALUE-----------------global_names FALSE
查看全局数据库名称
可以查询视图global_name来查看全局数据库e 名称
SQL> select * from global_name;GLOBAL_NAME-------------------------------------------- ---- ---------------------------------------------------------- ---- --------JYPDB
修改全局数据库名中的域名
可以使用alter database语句来更改全局数据库名中的域名。数据库创建后,修改db_domain参数不会影响全局数据库名或数据库链接名。以下示例显示了重命名全局数据库名称的语句。 database为数据库名称,domain为网络域名:
alter database rename global_name to database.domain;
修改全局数据库名称操作如下:
1、判断当前全局数据库名:
SQL> select * from global_name;GLOBAL_NAME-------------------- ------ -------------------------------------------------------- ------ -----JY
2.执行alterdatabase语句修改全局数据库名称
SQL> 更改数据库将 global_name 重命名为 jy.jydba.net;数据库已更改。
3.查询视图global_name查看新的全局数据库
SQL> select * from global_name;GLOBAL_NAME-- -------------------------- --------------------------- ----------------------- -----JY.JYDBA.NET
4.修改全局数据库名中的域名使用alterdatabase语句修改完整数据库名中的域名。数据库创建后,修改初始化参数db_domain不会影响全局数据库名或数据库链接名的解析。以下示例显示了修改全局数据库名称的语法,其中database是数据库名称,domain是网络域名:
alter database rename global_name to database.domain;
使用以下步骤修改全局数据库名称中的域名:
1. 确定当前全局数据库名称。
SQL> 选择 * 来m 全局名称;GLOBAL_NAME-------------------------------------------------------- ---------------------------------JY.JYDBA.NET
2.使用alterdatabase语句修改全局数据库名称
SQL>alterdatabaserenameglobal_name to jy.changde.net;数据库更改
3.查询global_name表查看新的全局数据库名称
SQL> select * from global_name;GLOBAL_NAME------------------------ ----------------------- --------------------------- --------JY.CHANGDE.NET
下面介绍全局数据库名称场景的修改
此时可以修改全局数据库名称的域名部分本地数据库。您还可以使用全局名称创建数据链接来测试数据库如何解析链接名称。
1.连接jy.jydba.net,查询global_name数据字典视图,判断当前数据为全局名:
SQL> select * from global_name;GLOBAL_NAME---- ------ -------------------------------------------------------- -------------------- ------JY.JYDBA.NET
2.查询 v$parameter 视图以确定 db_domain 参数当前值
SQL> select name, value from v$parameter where name = 'db_domain';NAME VALUE------------ ----------- -------------------------db_domain
3.创建到数据库 sjjh 的数据链接,确保指定了全局名称 部分:
SQL> create database link dblink_test using 'sjjh';Database link created
数据库将将本地数据库的全局数据库名的域名部分添加到数据链路的全局名中
4.查询user_db_links确定数据链接域名
SQL> select db_link from user_db_links;DB_LINK---------------------------------------- ------- ------------------------------------------- -------DBLINK_TEST.JYDBA .NET
查询结果显示本地数据库全局名中的域名jydba.net作为数据l的域名墨水
5。由于需要将数据库jy移至常德.net域,所以执行以下操作
SQL> alter database rename global_name to jy.changde.net;Database alterSQL> select * from global_name;GLOBAL_NAME-- -------- ------------------------------------------ -------- -------------------JY.常德.NET
6.查询v$parameter,发现db_domain参数没有被修改
SQL> select name, value from v$parameter where name = 'db_domain';NAME VALUE---------- ----------------------------------------------------db_domain
这个也显示 db_domain 参数独立于 alter database rename global_name 语句。 alter database 语句确定全局数据库名称中的域名。
7.可以再创建一个数据链接来连接数据库sjjh,并查询user_db_links查看数据链接中的域名
SQL> create database link dblink_cs using 'sjjh';数据库链接已创建SQL> s从 user_db_links 中选择 db_link;DB_LINK---------------------------------------- ---- ------------------------------------------------DBLINK_CS.CHANGDE.NETDBLINK_TEST.JYDBA.NET< p>可以看到新创建的数据链接的域名,使用了当前本地数据库的全局数据库名中的域名。
看完上面的内容,你是不是对Oracle分布式系统中全局数据库名称如何理解有了更进一步的了解呢?如果您想了解更多知识或相关内容,请关注行业资讯频道。感谢您的支持。
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何理解Oracle分布式系统中的全局数据库名称