对了,oracle版本11g,centos 64位系统。
解决方案 »
- 为什么要把数据字典信息放在共享池中,有什么好处吗
- 如何用imp在原来的数据中追加数据?
- 菜鸟级提问,一条SQL语句,不知道如何修改才能满足需求[请高手看看]
- 关于索引的疑惑
- peter'question
- ORA-01653
- 基本问题:我现在在oracle客户端的scott用户下,想访问服务器上的表emp,(服务已建好,连接没问题),表的全路径应该怎么写?
- 请问ORACLE中有查询自关联表的递归查询语句吗? 如何使用?
- 从高版本的Oracle的导出的备份文件(*.DMP)怎样导入到低版本的oracle中?
- oracle 随机查询的问题
- You are attempting to install 64-bit Oracle on a 32-bit operating system. This
- oracle dataguard搭建的问题,斑竹请指点
实例已经打开啦,谢谢你啊。
我问题已经解决了,知道问题在哪里了,我的db_unique_name 不是powerdes是pstxe,所以才报错。我把tnsnames.ora里面的service_name换成了pstxe就好了。
方便加你qq吗?有oracle备份的事情请教下你。
我以为备份的是powerdes,结果恢复的时候,db_unique_name变成了pstxe,这是为什么呢?
把具体的日志错误什么的贴出来
为什么启动的时候
SQL> show parameter name; NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_file_name_convert string /home/oradata/powerdes, /home/
oradata/pwerdes
db_name string powerdes
db_unique_name string pdunq
global_names boolean FALSE
instance_name string powerdes
lock_name_space string
log_file_name_convert string /home/oradata/powerdes, /home/
oradata/powerdes
service_names string pdunq
SQL> 为什么我的db_name和db_unique_name不一样呢?
db_name string powerdes
db_unique_name string pdunq
same DB_NAME within the same DB_DOMAIN (for example, copies of a database created
for reporting or a physical standby) must have a unique DB_UNIQUE_NAME. Every
database's DB_UNIQUE_NAME must be unique within the enterprise.
DB_NAME specifies a database identifier of up to 8 characters. This parameter must be
specified and must correspond to the name specified in the CREATE DATABASE
statement.
If you have multiple databases, the value of this parameter should match the Oracle
instance identifier of each one to avoid confusion with other databases running on the
system. The value of DB_NAME should be the same in both the standby and production
initialization parameter files.
另外,db_name和db_unique_name和你上面的问题都没有关系,service_name只是给监听用的。上面是service_name指定错误
SERVICE_NAMES specifies one or more names by which clients can connect to the
instance. The instance registers its service names with the listener. When a client
requests a service, the listener determines which instances offer the requested service
and routes the client to the appropriate instance.
那service_name要指定成什么样的呢,是否要和db_unquie_name保持一致?
服务端上可以自己设置service_names,客户端连接服务端,使用service_name的时候要配置成服务端中指定的名称,如果服务端指定了多个,那么客户端用其中一个即可
就是说客户端的tnsnames.ora里面的service_name只要保持与 服务器端的tnsname.ora的多个中的一个服务名一样就可以连上oracle服务器了,对吧?
我这里oracle服务器端tnsnames.ora里面有2个server_name,一个是用客户端连接好使,一个不好使报ORA-·12514:TNS:listener does not currently know of service erquested in connect descriptor
唉,同一个问题诶,理解一下试试看就知道了
我进去sql界面只有一个:
SQL> show parameter service_names;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
service_names string pdunq
SQL>
可是为什么我的tnsnames.ora里面却有2个,一个powdes,一个是pdunq呢?
S1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.2xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = powdes)
)
)S2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.2xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pdunq)
)
)oracle服务器端,sqlplus登录 sqlplus user/pwd@S1可以登录成功, sqlplus user/pwd@S2也可以成功。
客户端的tnsname.ora:
C1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.2xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = powdes)
)
)C2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.121.2xx)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pdunq)
)
)客户端用plsql连接,C2连接成功,C1连接失败,报错:ORA-·12514:TNS:listener does not currently know of service erquested in connect descriptor斑竹,我这个问题 是什么问题啊?
C1和C2,差别就是在于service_name不一样,其它的一样啊。我的疑惑是,oracle服务器上面,service_name有2个一个是powdes一个是pdunq,两个都好使。
为什么客户端,我用了2个service_name一个是powdes一个是pdunq,一个powdes好使一个pdunq不好使报错ORA-·12514:TNS:listener does not currently know of service erquested in connect descriptor。我想弄明白这里面的区别啊斑竹。如果按照你说的show paramter name为基准,多个以逗号连接,可我oracle服务器上只有一个powdes服务名,如下所示:SQL> show parameter instance_name;NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
instance_name string powdes
SQL> 按照道理,不管服务器端用sqlplus登录也好还是客户端用plsql登录也好,都应该只认唯一的service_name powdes才对,可是现在问题是,服务器端认powdes和pdunq,而客户端只认pdunq不认powdes,斑竹,这是为什么啊?