How to access Oracle database over network? - database

I am trying to accessing my Oracle database over Network. I have Google a lot and found many solutions, but those doesn't work for me.
The problem is that, I want to access my Oracle Database from One Computer to another Computer over my Local Network.
What I did is....
I found a Solution to modify listener.ora file with
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=dbp.devProject.com)(PORT=1521)))
When I modify this file and tried to run and access the Database nothing will happens, and it throws an Error, the port number you have specified is used by another listener, so i have changed port Number but I am not able to access Database.
2. I have configure a new listener with the help of oracle's tool Net Manager, which made a Listener for me, but it does not make accessible database over Network.
Here Some required results.
lsnrctl status : Listener using listener name LISTENER has already been started.
Connection String : jdbc:oracle:thin:#dbp.devProject.com:4541:myDB
Database Version :
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE 11.2.0.1.0 Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
status shows me this.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
Alias : LISTENER
Version : TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Production
Start Date : 14-MAY-2015 11:58:05
Uptime : 0 days 2 hr. 29 min. 50 sec
Trace Level : off
Security : ON: Local OS Authentication
SNMP : OFF
Listener Parameter File : product\11.2.0\dbhome_1\network\admin\listener.ora
Listener Log File : \listener\alert\log.xml
Listening Endpoints Summary...
1. (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
2. (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Someone please Help me.
Thanks for your Help..

Whenever you encounter this kind of errors while creating remote access for you database, follow these steps beforehand.
Create a Listener using Net Manager tool of Oracle or create it Manually.
After generating Listener, check out "listener.ora"
[Located : ORACLE_INSTALLED_DIR\product\11.2.0\dbhome_1\NETWORK\ADMIN]
file, for your entry. (is there any Entry for the Listener which you have created just before. If you found your Entry than and than do next steps otherwise do it from FIRST step.)
If you found the Entry for your Listener, Open Command Prompt and fire command lsnrctl status. This will give you all currently running Listeners List, find out the one which you created just before.
Check out the Host Name and Port Number for your Listener.
Generate the Connection String as per the details you found in lsnrctl status
Connect with Database, and You can access the Database from anywhere in your Network.

If your host name and port number is listener then You could try this option by enabling port number in firewall settings.
Opening Ports in Windows Firewall
Open the Control Panel. ...
Open Windows Firewall. ...
Click the Advanced Settings link. ...
Select "Inbound Rules". ...
Create "New Rule" under "Inbound Rules". ...
Select "Port" from the first screen of the wizard. ...
Choose TCP or UDP. ...
Enter in the port range. ...
Finish the wizard.

Create an entry in TNSNAMES.ORA file on the system from which you are trying to connect to the database. (TNSNAMES.ORA is located in ORACLE_INSTALLATION_PATH/Network/Admin/ folder)
Sample entry:
DB_HOST_NAME =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DB_HOST_NAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XE)
)
)
If you have more than one Oracle clients installed, you might need to update this in all those TNSNAMES.ORA

Related

Problem connecting with Listener server in High Availability

Recently I set up AG and server X is Primary and Server Y is secondary and Z is listener server. Ag is running fine. If I do RDP to Primary Server I can connect to Listener but Can't connect through Secondary server and from my local SSMS,I can't connect to listener at all.
We have Azure environment and I set up load balancer, Front end ip and health probe.
I checked all configurations are correct or not. There are no firewall issues.
compared with other listeners also.
can someone please help me, what I am missing..
I found the Solution.DNS was not able to communicate with Listener server.So need to run this powershell script and It worked.I am attaching link for reference.
$ClusterNetworkName = "<MyClusterNetworkName>" # the cluster network name (Use Get-ClusterNetwork on Windows Server 2012 of higher to find the name)
$IPResourceName = "<IPResourceName>" # the IP Address resource name
$ListenerILBIP = "<n.n.n.n>" # the IP Address of the Internal Load Balancer (ILB). This is the static IP address for the load balancer you configured in the Azure portal.
[int]$ListenerProbePort = <nnnnn>
Import-Module FailoverClusters
Get-ClusterResource $IPResourceName | Set-ClusterParameter -Multiple #{"Address"="$ListenerILBIP";"ProbePort"=$ListenerProbePort;"SubnetMask"="255.255.255.255";"Network"="$ClusterNetworkName";"EnableDhcp"=0}
enter link description here

I Found This Error when i try to Connect to Oracle TNS:protocol adapter error [duplicate]

I Google[d] for this error ORA-12560: TNS:protocol adaptor error but not able to find the actual reason and how to solve this error ?
Can anyone tell me a perfect solution to solve login problem.
Go to the windows machine that hosts the Oracle database server
Go to Start -> Run -> Services.msc in Windows.
Locate OracleService < SID > (here OracleServiceORCL) and click on Start to start the oracle database service (if not already running)
Once it is up and running, from the command prompt run the following:
tnsping < tnsalias >
(tnsalias entry you can find it in tnsnames.ora file)
In my case I didn't have an OracleService (OracleServiceORCL) in Windows Services.msc as described in Bharathi's answer.
I executed this command:
C:\> ORADIM -NEW -SID ORCL
and then the OracleService called OracleServiceORCL just showed up and got started in Services.msc. Really nice.
Source: https://forums.oracle.com/forums/message.jspa?messageID=4044655#4044655
Seems like database is not up. It might be due to restarting machine and the instance is not set to autostart and it so not started munually after starting from services Screen.
Just goto Command prompt
Set Oracle SID
C:>set oracle_sid=ORCL
Now run Net start command.
C:>net start oracleserviceORCL
from command console, if you get this error you can avoid it by typing
c:\> sqlplus /nolog
then you can connect
SQL> conn user/pass #host:port/service
Add to the enviroment vars the following varibale and value to identify the place of the tnsnames.ora file:
TNS_ADMIN
C:\oracle\product\10.2.0\client_1\network\admin
In my case (for OracleExpress) the service was running, but I got this issue when trying to access the database via sqlplus without connection identifier:
sqlplus sys/mypassword as sysdba
To make it work I needed to add the connection identifier (XE for Oracle Express), so following command worked ok:
sqlplus sys/mypassword#XE as sysdba
If you still get ORA-12560, make sure you can ping the XE service. Use:
tnsping XE
And you should get OK message along with full connection string (tnsping command is located in oracle's installation dir: [oracle express installation dir]\app\oracle\product\11.2.0\server\bin). If you can not ping make sure your tnsnames.ora file is reachable for sqlplus. You might need to set TNS_ADMIN environment variable pointing to your ADMIN directory, where the file is located, for example:
TNS_ADMIN=[oracle express installation dir]\app\oracle\product\11.2.0\server\network\ADMIN
After searching alot got a simple way to solve it.
Just follow the steps.
Check status of your listener.
open command prompt and type lsnrctl status
You will get no listener.
Now open listener.ora file which is present in following directory: C:\oraclexe\app\oracle\product\11.2.0\server\network\ADMIN
Open that file and change the host parameter with you computer name
You can get your computer name by right click on My Computer and check you computer name, and replace host parameter with your computer name as follows:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = Electron-PC)(PORT = 1521)
)
)
)
So here you can observe HOST = Electron-PC, which is my computer name.
Save the listener.ora file and again return to cammand propt
3.Type the following in command prompt lsnrctl start
This will start the OracleTNSListner.
you can check it in the service by opening services tab of Task Manager. if not started automatically you can start it.
Just this much and you are ready to work again on oracle.
Best of Luck.
Quite often this means that the listener hasn't started. Check the Services panel.
On Windows (as you are) another common cause is that the ORACLE_SID is not defined in the registry. Either edit the registry or set the ORACLE_SID in a CMD box. (Because you want to run sqlplusw.exe I suggest you edit the registry.)
I have solved the problem the easy way. My oracle was running just fine in the past. After I installed MS SQL Server was when I noticed this problem. I just uninstalled MS SQL Server on my machine then the problem was gone. Make sure you restart your computer after that. Now I can connect to Oracle database through SQLPlus again. My guess is that there's some conflict between the two. Hope this helps.
Another possible solution that just worked for me...considering I was using my local login as the dba permissions.
Follow the steps to get to Services. Right click on the instance and go to 'Log On'? (might not be the name but it's one of the tabs containing permissions). Change the settings to use LOCAL.
If none the above work, then try this :
Modify the LISTENER.ora (mine is found in : oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora) ==> add a custom listener that points to your database(SID), example my SID is XZ0301, so :
## Base XZ03001
SID_LIST_LISTENER_XZ03001=(SID_LIST=(SID_DESC=(ORACLE_HOME =
E:\oracle\product\11.2.0\dbhome_1)(SID_NAME= XZ03001)))
LISTENER_XZ03001=(DESCRIPTION_LIST=(ADDRESS=(PROTOCOL =
TCP)(HOST=MyComputerName)(PORT= 1521)))
DIAG_ADR_ENABLED_LISTENER_XZ03001=ON
ADR_BASE_LISTENER_XZ03001=E:\oracle
Restart your machine
For Windows 7, use the following to modify the LISTENER.ora:
- Go to Start > All Programs > Accessories
- Right click Notepad and then click Run as Administrator .
- File>open and navigate to the tnsnames.ora file.
- Make the changes then it should allow you to save
It really has worked on my machine. But instead of OracleServiceORCL I found OracleServiceXE.
Flow the flowing steps :
Edit your listener.ora and tnsnames.ora file in
$Oracle_home\product\11.2.0\client_1\NETWORK\ADMIN location
a. add listener.ora file
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C: [here c is oralce home directory]
b. add in tnsnames.ora file
SCHEMADEV =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = dabase_ip)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = SCHEMADEV)
)
)
Open command prompt and type
sqlplus username/passowrd#oracle_connection_alias
Example : username : your_database_username
password : Your_database_password
oracle_connection_alias : SCHEMADEV for above example.
Just to add up, follow the screenshot and choose local account to start if not selected. Then start the service.
You need to tell SQLPlus which database you want to log on to. Host String needs to be either a connection string or an alias configured in your TNSNames.ora file.
ORA-12560: TNS:erro de adaptador de protocolo
set Environment Variables: ORACLE_BASE, ORACLE_HOME, ORACLE_SID
make sure your user is part of ORACLE_GROUP_NAME (Windows)
make sure the file ORACLE_HOME/network/admin/sqlnet.ora is:
SQLNET.AUTHENTICATION_SERVICES = (NTS)
(Windows) Be carefull when you add a new Oracle client: adding a new path to the PATH env. variable can mess things up. The first entry in this variable makes a difference: certify that the sqlplus executable in the ORACLE_HOME (ORACLE_HOME/bin) comes first in the PATH env. variable.
I try 2 option:
You change service OracleService in Service Tab -> Running
Login with cmd command: sqlplus user_name/pass_word#orcl12C
Note: orcle12c -> name of OracleService name run in you laptop
Below fixes can be applied to resolve TNS 12560 error
Get Latest patch for SQL*NET client software
Set $ORACLE_HOME and $PATH variable (should be accessible for System user)
Check permissions on PC client
Check $TNS_ADMIN variable
Check if network has firewall or antivirus issues
Check if windows services Run >> Services.msc has OracleXE or OracleORCL service running
Check below link in case of net tracing error:
http://dba-oracle.com/t_sql_net_tracing.htm
In my case, (ORA-12560: TNS protocol adapter error)Issue cause of database connection issue like database, user name and password.
Once you got the issue. Initially you have to check connection details, after check the oracle service and further more.
I missed some connection details, So only i got TNS protocol adapter error,
I will changed the connection details, It would be working fine.

Unable to connect to oracle database 11g R2

Till yesterday everything was working perfectly. There was an automatic windows update and after that I have been getting the error while trying to connect to my database from sqlplus:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Process ID: 0
Session ID: 0 Serial number: 0
I tried using the EM and there i got this:
Database Instance
Host
abc-PC
Port
1521
SID
mydb
Oracle Home
D:\app\abc\product\11.2.0\dbhome_1
Listener
Status
Down
Host
abc-PC
Port
1521
Name
LISTENER
Oracle Home
D:\app\abc\product\11.2.0\dbhome_1
Location
D:\app\kaos\product\11.2.0\dbhome_1\NETWORK\ADMIN
Details Although a Listener with name "LISTENER", is running on this host at port: "1521", it was not started using this target's "LISTENER.ORA" file.
CORRECTIVE ACTION: To monitor this "EM Listener Target" with its present configuration, you must stop the currently running listener process, and start it again using the Listener Parameter file: D:\app\kaos\product\11.2.0\dbhome_1\NETWORK\ADMIN/listener.ora .
Alternatively, you can update this target's "LISTENER.ORA Location" parameter with the location of the currently running Listener, which was started using: D:\app\abc\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
What am I supposed to do to fix this?
Maybe update somehow remove ORACLE_SID environment variable. Check My Computer -> Properties -> Environment variables -> ORACLE_SID

R/3 installation sapinst giving database connection error

I am trying to install SAP R/3 ABAP, where databse instance is on one machine and central instance on different machine.
Database instance installation is finished but when trying to install central instance when sapinst tries to connect from Central Instance to database instance following error comes up
WARNING 2009-05-02 07:53:08.490
CJSlibModule::writeWarning_impl() Execution of the command "/usr/sap/E64/SYS/exe/run/startsap all DVEBMGS00 hpvm-202" finished
with return code 6.
Output: Database B11 must be started on remote
server Log on to remote server and start database
So, I went to database server and verified and database was indeed running (mounted and open).
ghoul3:e64adm 3> lsnrctl start
LSNRCTL for HPUX: Version 10.2.0.4.0 - Production on 02-MAY-2009 07:18:11
Copyright (c) 1991, 2007, Oracle. All rights reserved.
TNS-01106: Listener using listener name LISTENER has already been started
ghoul3:e64adm 4> /oracle/B11/startdb
Trying to start B11 database ...
Log file: /home/e64adm/startdb.log
B11 database started
R3trans –d from adm user runs perfectly
ghoul3:e64adm 8> R3trans -d
This is R3trans version 6.14 (release 701 - 26.01.09 - 12:46:00).
unicode enabled version
R3trans finished (0000).
I tried with shutdown database, restarting both systems but to no avail.
I don’t want to initiate a re-install as its consumes long time and chances are that same error crops up again, so better tackle it the first time itself.
Kindly advise how could we troubleshoot further or resolve this issue.
Just in case anyone faces the same issue, the problem lies with profile files, in profile files- Check for parameter named "SAPDBHOST" in DEFAULT.PFL.
Entry should be as
SAPDBHOST =
if it doesn't exit add hostname of the database instance.
Also, do check DEFAULT.PFL if the file name is "DEFAULT" only then rename it to DEFAULT.PFL.

Connecting to Remote DB2 Database (JSP)

Let me preface this by saying I am completely new at this kind of thing. Anyways..
I am trying to connect to a DB2 Database.
The server is running Ubuntu 12.04 and Apache Tomcat 7. The driver db2jcc.jar is included in the build path.
Here is my JSP code:
<%# page import="java.sql.*" %>
<% Class.forName("com.ibm.db2.jcc.DB2Driver");%>
<HTML>
<HEAD>
<TITLE>db2 connection</TITLE>
</HEAD>
<BODY>
<%
String url =
"jdbc:db2://IP_ADDR:60000/INST1" +
":user=USERNAME;password=PASSWORD;" +
"traceLevel=" +
(com.ibm.db2.jcc.DB2BaseDataSource.TRACE_ALL) + ";";
Connection con = java.sql.DriverManager.getConnection(url);
%>
</BODY>
</HTML>
The error message I am getting:
The application server rejected establishment of the connection.
An attempt was made to access a database, INST1, which was either not found or does not support transactions. ERRORCODE=-4499, SQLSTATE=08004
I checked out the IBM Support page on the issue here:
http://www-01.ibm.com/support/docview.wss?uid=swg21443723
It mentions using the target directory name, found by issuing the db2 list dcs directory command.
On the server, mine was initially blank, but I created an entry using the db2 catalog dcs database DB2INST1 as INST1 command.
Now my output for using db2 list dcs directory` is as follows:
Database Connection Services (DCS) Directory
Number of entries in the directory = 1
DCS 1 entry:
Local database name = DB2INST1
Target database name = INST1
Application requestor name =
DCS parameters =
Comment =
DCS directory release level = 0x0100
I reset the database by doing db2stop and db2start
Finally, I ran netstat -tulpn and saw the database was listening on port 60000. Output below:
tcp 0 0 0.0.0.0:60000 0.0.0.0:* LISTEN
2949/db2sysc
This is as far as I got. From what I can tell I am using the target database name and trying to connect to the correct port number.
Am I barking up the right tree here? Any help is greatly appreciated.
** Edit: Formatted answer to mustaccio's response **
On the server, I go down a level after I ssh on. I get 4 directories named <USERNAME>, dasusr1, db2fenc1, db2inst1
From there I did sudo su db2inst1 then ran the db2 list dcs directory command to get:
Database Connection Services (DCS) Directory
Number of entries in the directory = 1
DCS 1 entry:
Local database name = DB2INST1
Target database name = INST1
Application requestor name =
DCS parameters =
Comment =
DCS directory release level = 0x0100
It's been a while but for other people looking for a solution to this db2 connectivity problem. If people want to test physical connectivity of their development machine to the db2 server use CLPPlus that comes with the DB2 driver and manually put in the connection parameters to make sure you have physical connectivity. My environment is quite different than Garret's above but I want to offer one more clue that might help people connect. I was using VS 2015 enterprise with SSIS. I used CLPPlus to confirm physical connectivity then started trying to connect and ADO.Net source to db2. I had to override the port for my server credential db2server.mydomain.com:523 to override the port to 523. Then something funny happened. SSIS was fussing about the connection and I started looking at the parameters. One of the parameters was Authentication, which you could probably code in jdbc. I put in DB2 (as opposed to ldap or some other wallet) as the value for Authentication and it worked.

Resources