برگزیده های پرشین تولز

مشکل اتصال به oracle با local computer

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
سلام
من اين مشكلم رو در forumهای مختلفی عنوان کردم ولی متاسفانه مثل این که هیچ کدام از دوستان تا به حال با oracle کار نکرده اند. فکر کردم که حتما در اینجا کسی هست که به داد من برسه... پس من رو ببخشید اگه این سوال آنچنان به شبکه ربط نداره...

من دارم با php پروژه ای رو می نویسم که در بخشی از اون باید به oracle وصل بشم و داده هایی رو وارد اون کنم. نوشتن script مربوطه کاری نداره ...مشکل من خود oracle هست. :rolleyes:
...
من روی سیستم خودم(local هست) . Oracle 8i Enterprise edition رو نصب کردم. و از طریق
ََِِDatabase Configuration Assistant یک Database جدید ساختم. حالا می خوام براش username و password تعریف کنم. ولی نمی دونم این کار رو در کدام قسمت انجام بدم.
در ضمن تا اونجایی که من متوجه شدم با username:scott و password:tiger که پیش فرض خود oracle هست میشه connect شد که من حتی از این طریق هم نتونستم.
...


واقعا ممنون میشم که کمکم کنید.
 

knowhow

مدیران قدیمی
تاریخ عضویت
25 دسامبر 2002
نوشته‌ها
3,478
لایک‌ها
22
اگه ارور خاصي بهت مي ده حتما بنويس.
من كه اراكل كار نكردم ولي دوستان حتما هستند كه كمك كنند.
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
کاربر Scott با کلمه عبور Tiger يک کاربر نمونه و با حق دسترسی محدود است.
از طريق Enterprise manager (نميدونم تو نسخه شما اسمش چيه!) و با کاربر system و کلمه عبور manager ميتونيد به Oracle وصل بشيد. در نسخه 8i به بعد ابزارهای مديريتی Visual در Oracle بسيار قوی و کامل شده اند و براحتی ميتونيد بانک مورد نظر را ساخته و کاربر مربوطه را تعريف کنيد.

از طريق SQL Plus هم ميتونيد با همون کاربر system/manager به بانک اطلاعاتی متصل شويد و با دستور زير کاربر مورد نظر را ايجاد کنيد:

[code:1]
Syntax:

CREATE USER username
IDENTIFIED {BY password | EXTERNALLY | GLOBALLY AS external_name}
options

options:

DEFAULT TABLESPACE tablespace_name
TEMPORARY TABLESPACE tablespace_name
QUOTA int {K | M} ON tablespace_name
QUOTA UNLIMITED ON tablespace_name
PROFILE profile_name
PASSWORD EXPIRE
ACCOUNT {LOCK|UNLOCK}
[/code:1]

پس از ايجاد کاربر ميتوانيد Permission ها و Role ها را Grant بدين و يا يک Role رو بصورت پيش فرض تعيين کنيد.

اگر مشکلی بود تا جاييکه معلوماتم اجازه بده در خدمتم.
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
واقعا از اين كه لطف كرديد و به من جواب داديد ممنونم...
خب تا اونجايي كه فهميدم در oracle به غیر از username و password باید کلمه ای به عنوان service هم تعریف بشه که در صورتی که net8 رو set نکرده باشم باید به این صورت نوشته بشه:
host:port:sid
در حالتی که کامپیوتر من local باشه من باید این service رو چطوری بنوسیم؟...
مثلا این به من error داد:
p-600:1252:Global
فکر کنم مشکل از پورت باشه


ممنونم
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
من الان سعي كردم كه با user:system و pass:manager به sqlplus متصل بشم ..باز هم همون خطای قبلی:
oracle not Available
:rolleyes:
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
شما برای اتصال به يک سرويس نياز داريد. سرويس در حقيقت مشخصات شبکه و بانک اطلاعاتی است که در فايلی متنی به نام tnsnames.ora ذخيره ميشود. (يه چيزی شبيه همون ODBC !!!)
مجموعه ابزارهای شبکه ای اوراکل، با نام net8 شناخته ميشوند. يکی از اين ابزارها net8 configuration assistant ميباشد که ميتوان به راحتی با کمک آن يک سرويس ايجاد کرد.
برای اتصال از پروتکل TCP/IP يا NamedPipe استفاده کنيد و شماره Port يا شماره Pipe را همان شماره پيش فرض قرار دهيد.
حال در SQL Plus ، برای اتصال وارد کنيد:

[code:1]
Connect [username]/[password]@[service name]
such as:
connect system/manager@ora
[/code:1]

ايشاللا که درست گفته باشم، راستش دارم تو ذهنم شبيه سازی ميکنم و مينويسم، شايد اشتباه کنم. چون خيلی وقته با Oracle کار نکردم.
 

sghweb

کاربر تازه وارد
تاریخ عضویت
11 ژانویه 2003
نوشته‌ها
15
لایک‌ها
0
محل سکونت
USA
براي اتصال به بانك اوراكل اگر در حالت محلي (local) هستيد احتياجي به
وارد كردن نام سرويس نداريد، خود اوراكل سيستم جاري رو بصورت پيش فرض
به عنوان سرويس انتخاب ميكنه
در هر حال من يك كپي از فايل tnsnames.ora رو براي شما ميفرستم :



ORACLE9i =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = w2k-srv1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = o9i)
)
)

توجه داشته باشيد كه نام سرور w2k-srv1 و o9i نام سرويس (همون SID)
مورد نظر هستش كه در هنگام ساخت DataBase وارد كرديد
اين فايل رو ميتونيد در drive:\oracle_home\SID\network\admin پيدا كنيد

بعد توسط SQL*Plus بصورت زير connect كنيد :

User name : system
Password : manager
Service : oracle9i

اميد وارم كه تونسته باشم كمكي كرده باشم
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
ممنون از تذکر بجای sghweb

از مطالب اين وبلاگ هم ميتونيد استفاده کنيد که خيلی کامل به مباحث اوراکل پرداخته اند. (آقای رجبی)
http://myoracle.blogspot.com/
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
ممنون از كمك دوستان گرامي

من امروز روی یک سیستم دیگه که win2000 professenol داشت تونستم با net8 Assistant یک service name جدید بسازم که با کمک اون و user:scott و pass:tiger مثلا به sql plus متصل بشم. ولی روی سیستم خودم که winxp دارم باز در هنگام ساختن service name با خطا مواجه شدم. این مشکل به نوع win مربوط نمیشه؟!!...

فکر کردم که برای اطمینان بهتره oracle رو دوباره نصب کنم.
1- برای uninstall کردن علاوه بر پوشه oracle در registery باید دقیقا چه متغییرهایی رو del کنم؟...(یک بار هرچی متغییر که نام oracle توش بود ریختم دور. و تا دوباره Win نریختم نتونستم روش oracle نصب کنم!! :D )

2-اصلا این کار تاثیری داره؟!!!


شاد و پیروز باشید.
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
راستی آقای آرش این فایلtnsnames.ora که فرمودید باید توسط خودم نوشته بشه و یا به صورت پیش فرض وجود داره و من فقط باید از اون اطلاعات مورد نیازم رو بخونم؟

من به آدرسی که شما فرمودید رفتم.یعنی:
drive:\oracle_home\SID\network\admin
ولی این فایل رو پیدا نکردم :shock: ...

یک فایل در این ادرس بود :
E:\Oracle\Ora81\network\ADMIN
که کاملا خالی بود.آیا من باید خودم درونش اطلاعات بنویسم؟.
در ضمن من از oracle8i enterprice edition استفاده می کنم. آیا تغییری در کپی فایلی که شما فرستادید صورت می گیرد؟


ممنون ار لطفتون
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
در هنگام ساخت سرويس با چه مشکلی برخورد ميکنيد؟
برای حذف Oracle از سيستمتون، از Oracle Universal Installer استفاده کنيد.

شايد در حين ايجاد Database به مشکل برخورده و بانک ايجاد نشده و صرفا Oracle نصب شده. ببينيد چه پيغام خطايی ميده تا بتونيم بريم جلوتر.

با اجازه sghweb
اون فايل رو هم ميشه بصورت دستی درست کرد، و هم وقتی از net8 assistant استفاده ميکنيد در حقيقت داريد اين فايل رو ايجاد ميکنيد.
 

sghweb

کاربر تازه وارد
تاریخ عضویت
11 ژانویه 2003
نوشته‌ها
15
لایک‌ها
0
محل سکونت
USA
با اجازه دوستان گرامی بخصوص آقا کورش
در مورد اون آدرس فايل خيلی خيلی ببخشيد بصورت زير هستش

drive:\oracle\ora80\network\admin
drive:\oracle\ora90\network\admin
که اوليش در اوراکل 8i و دومی در اوراکل 9i هستش
و به همون صورت که آقا کورش فرمودند اگه خالی هست ميتونيد اونو بصورت
دستی وارد کنيد و يا با oracle net manager و در قسمت
Service Naming اقدام به ايجاد يک سرويس نماييد
در ضمن در نسخه های 8i به بالا فايل tnsnames.ora به همين صورت هستش
ولي در نسخه هاي قديميتر يكم فرق ميكنه

در مورد خطائی که در ويندوز اکس پی گفتيد
در اين ويندوز بدليل پشتيبانی نکردن مايکروسافت از جاوا و استفاده
کردن اوراکل از جاوا برای نمايش منوها و ... کمی مشکلات پيش مياد
که من بعد از نصب patch جاوا برای ويندوز اکس پی
فعلا" با اين مشکلات مواجه نشدم

با اجازه آقا کورش عزيز
فقط يه نکته در مورد حذف اوراکل خدمت دوستان عرض کنم :
وقتی از Oracle Universal Installer برای
حذف اوراکل استفاده ميکنيد بعد از uninstall کردن بايد متغيير های زير از
registry ويندوز حذف بشن :

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
HKEY_CURRENT_USER\SOFTWARE\ORACLE
توجه : تو بعضی از سيستمها دومين خط تو رجيستری وجود نداره
سپس يک بار ويندوز رو ريست ميکنيد و بعد از بوت شدن سيستم فولدرهای
زير رو پيدا و پاک می کنيد :

drive:\Program Files\Oracle
drive:\Oracle

اگر دوباره مشکلی با سرويس داشتی متن فايلهای tnsnames.ora و listener.ora
رو بفرست تا بتونيم به شما كمك كنيم.
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
يك دنيا ممنون...
من در اولين فرصت موارد ذكر شده رو امتحان مي كنم و نتيجه رو مي نويسم.
....
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
سلام
من با هر سختي كه بود يك بار ديگه oracle رو نصب کردم و بلافاصله بعد از اون(قبل از reset کردن). با استفاده از user:scott و pass:tiger و همچنین user:system و pass:manager تونستم به Sql plus وارد بشم...
ولی:

وقتی 1 بار reset کردم. دوباره همون مشکل قبل: ORACLE NOT AVAILABLE
!!!!!! :shock:

به خدا دیگه دارم دیوونه می شم...
وقتی از طریق net 8 Assistant می خوام service name ای رو که ساختم test کنم این پیغام رو می ده:

Initializing first test to use userid: scott, password: tiger
Attempting to connect using userid: scott
The test did not succeed.
ORA-12541: TNS:no listener

There may be an error in the fields entered,
or the server may not be ready for a connection.

این هم محتوای tnsnames.ora


# TNSNAMES.ORA Network Configuration File: E:\Oracle\Oracle_Home\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

GORACLE =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p-600)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = GOracle)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
[left/]


و این هم محتوی listener.ora


# LISTENER.ORA Network Configuration File: E:\Oracle\Oracle_Home\network\admin\listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = p-600)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = p-600)(PORT = 2481))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\Oracle\Oracle_Home)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = GOracle)
(ORACLE_HOME = E:\Oracle\Oracle_Home)
(SID_NAME = GOracle)
)
)

 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
يكي به دادم برسه واويلا...
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
شما يه چک کنين ببيينن سرويس LSNRCTL روی سيستمتون استارت هست يا نه.
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
نه.. من اصلا همچين نامي رو در services ندیدم . تا بفهمم که start هست یا stop
:shock:

راستی: من از apache برای local کردن استفاده می کنم. ولی برای استفاده از oracle هیچ چیزی رو در اون set نکردم...

اصلا این مسأله ربطی داره؟!!
این service ای فرمودید اصلا چی هست؟. من که اصلا ندارمش :rolleyes:

در ضمن خیلی ممنون که کمکم می کنید.
:D
 

koorosh

Registered User
تاریخ عضویت
12 دسامبر 2002
نوشته‌ها
1,525
لایک‌ها
10
سن
41
محل سکونت
Iran - Tehran
برويد به:
[code:1]Start > Run[/code:1]
و وارد کنيد:
[code:1]c:\> LSNRCTL80.EXE [/code:1]
و Enter کنيد.

سپس وارد کنيد:
[code:1]LSNRCTL>STATUS [listener_name][/code:1]

اسم Listener رو ميتونيد در فايل LISTENER.ORA با مشخصه LISTENER پيدا کنيد.
بصورت پيش فرض اسمش بايد LISTENER باشه.

با اين دستور ميتونين وضعيت Listener رو ببينيد.
اگر نوشته باشه listener is running يعنی Start است.
و بهتره يکبار Stop و مجددا Start کنيد. برای اين کار از دستور زير استفاده کنيد:
[code:1]LSNRCTL>STOP [listener_name][/code:1]
اگر برای Listener در فايل Listener.ORA کلمه عبور تعريف شده باشه، قبل از Stop کردن بايد وارد کنيد:
[code:1]LSNRCTL>SET PASSWORD [password][/code:1]
Password بصورت پيش فرض "ORACLE" است.

و Listener را با دستور زير Start کنيد:
[code:1]LSNRCTL>START [listener_name][/code:1]

و با دستور زير از برنامه Listener Control خارج شويد:
[code:1]LSNRCTL>EXIT [/code:1]
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
من به Run رفتم و تایپ کردم c:\> LSNRCTL80.EXE ... به من Error داد که پیداش نمی کنه..
زدم LSNRCTL80.EXE این رو هم پیدا نکرد...

یعنی چی؟!! :rolleyes:
 

shiva_mov

کاربر تازه وارد
تاریخ عضویت
22 سپتامبر 2003
نوشته‌ها
35
لایک‌ها
0
خب من LSNRCTL.EXE رو پیدا کردم...
ببینید error های مربوطه به این صورت است:
در مورد Status LISTENER :

LSNRCTL>status
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC0)))
TNS-01103:protocol specific component of the address is incorrectly specified
TNS-12541: TNS:no listener
TNS-12560: TNS:protocol adaptor error
TNS-00511:No listener
32-bit window Error:2: No such file or directory


خواستم Start اش بکنم این error رو می ده:


LSNRCTL>start listener
Starting tnslsnr:please wait...

Failed to start service,error 3.
TNS-12536:TNS:eek:peration would block
TNS-12560:TNS:protocol adapter error
TNS-00506:Operation would block
32-bit windows error:997:Unknown error
 
بالا