在DB数据库中编目(catalog)这个单词很难理解我自己当初在学习DB的时候也常常被这个编目搞的很不明白直到现在我个人也感觉到DB中编目(catalog)这个术语用的不是很好具体来说编目有编目节点编目数据库等
如果要理解编目我先简单讲一下DB数据库的体系结构在DB数据库中最大的概念是系统(节点)也就是主机下面是实例实例下面是数据库然后是表空间然后是数据库对象现在假设你有一个数据库服务器在p的机器上你有一个客户端在windowslinux或任何平台上你现在想建立一个客户端到服务器端的连接具体步骤是什么呢?
第一步
你必须要在客户端的机器上能够把远程的服务器能够识别出来这个具体如何来做呢?在DB使用的编目(catalog)方式具体来说就是通过编目把远程的服务器写在本地客户端的一个文件中
db
catalog tcpip node p
remote
server
在上面的这条命令中p是一个节点名(在一个机器上必须是唯一的)remote后面是服务器的IP地址server是远程服务器上实例对应的端口号DB通过这种方式在本地的SQLNODIR文件中把远程服务器的信息记录下来所以编目节点其实就是把远程服务器映射到本地通过SQLNODIR中的记录能够找到远程服务器和实例类似指向远程服务器和实例的地址指针
第二步
当把远程的服务器IP地址实例编目下来后第二步应该把该实例下的数据库编目到本地
db
catalog db REMOTEDB at node p
在这条命令中REMOTEDB是远程实例下的数据库p是我们在第一步中编目的节点名
这条命令执行后会在本地SQLDBDIR文件中记录远程数据库的信息这这里编目数据库可以理解为把远程服务器实例下的数据库映射到本地为一个别名
上面是客户端和服务器不在同一台机器上是通过编目节点编目数据库来实现客户端连接到服务器上数据库的目的如果是连接在同一台机器上那么这时候不要显示的编目节点但是在服务器上当我们创建一个实例的时候有一个隐含的把实例在本地编目的过程假设在p上创建一个实例名为dbinst其实有一个隐含的
db catalog local node dbinst instance dbinst system p ostype aix的步骤 同样当你在dbinst下创建一个数据库MYDB的时候有一个隐含的编目(catalog)数据库的步骤
db catalog db mydb at node dbinst的步骤
至此你可以这样理解编目(catalog)编目就是在本地或远程建立客户端到服务器的数据库连接的目的