آژانس هواپیمایی
pop up

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

شروع موضوع توسط shiva_mov ‏9 دسامبر 2003 در انجمن شبکه

  1. shiva_mov

    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 شد که من حتی از این طریق هم نتونستم.
    ...


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

    knowhow مدیران قدیمی

    تاریخ عضویت:
    ‏25 دسامبر 2002
    نوشته ها:
    3,480
    تشکر شده:
    19
    اگه ارور خاصي بهت مي ده حتما بنويس.
    من كه اراكل كار نكردم ولي دوستان حتما هستند كه كمك كنند.
     
  3. koorosh

    koorosh Registered User

    تاریخ عضویت:
    ‏12 دسامبر 2002
    نوشته ها:
    1,525
    تشکر شده:
    10
    محل سکونت:
    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 رو بصورت پيش فرض تعيين کنيد.

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

    shiva_mov کاربر تازه وارد

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


    ممنونم
     
  5. shiva_mov

    shiva_mov کاربر تازه وارد

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

    koorosh Registered User

    تاریخ عضویت:
    ‏12 دسامبر 2002
    نوشته ها:
    1,525
    تشکر شده:
    10
    محل سکونت:
    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/[email protected]
    [/code:1]

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

    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

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

    koorosh Registered User

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

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

    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-اصلا این کار تاثیری داره؟!!!


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

    shiva_mov کاربر تازه وارد

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

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

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


    ممنون ار لطفتون
     
  12. koorosh

    koorosh Registered User

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

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

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

    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
    رو بفرست تا بتونيم به شما كمك كنيم.
     
  14. avajang.com .leftavajang.com.right
  15. shiva_mov

    shiva_mov کاربر تازه وارد

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

    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)
    )
    )

     
  17. shiva_mov

    shiva_mov کاربر تازه وارد

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

    koorosh Registered User

    تاریخ عضویت:
    ‏12 دسامبر 2002
    نوشته ها:
    1,525
    تشکر شده:
    10
    محل سکونت:
    Iran - Tehran
    شما يه چک کنين ببيينن سرويس LSNRCTL روی سيستمتون استارت هست يا نه.
     
  19. shiva_mov

    shiva_mov کاربر تازه وارد

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

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

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

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

    koorosh Registered User

    تاریخ عضویت:
    ‏12 دسامبر 2002
    نوشته ها:
    1,525
    تشکر شده:
    10
    محل سکونت:
    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]
     
  21. shiva_mov

    shiva_mov کاربر تازه وارد

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

    یعنی چی؟!! :rolleyes:
     
  22. shiva_mov

    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