91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle連接問題實例分析

發布時間:2022-01-18 15:12:15 來源:億速云 閱讀:129 作者:iii 欄目:關系型數據庫

今天小編給大家分享一下Oracle連接問題實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

   我們知道Oracle在啟動的時,fork進程會根據ORACLE_SID來創建相關后臺進程,而在Unix和Linux系統中,ORACLE SID和ORACLE_HOME在一起哈希后會得到一個唯一的值作為SGA的key。

   所以我拋出一個蠻有意思的問題,在同一臺服務器上,存在10g,11g多個ORACLE_HOME,是可以創建多個同名的Oracle實例,而如果在同一個用戶下(比如操作系統用戶是oracle),是否可能創建出兩個同名的實例來?

   我想你的腦海中已經有了答案。我換一個角度來說明是否可以。通過一個蠻有意思的DG配置問題。

  我在使用RMAN的duplicate搭建備庫的時候拋出了下面的一個錯誤。

RMAN> duplicate target database for standby from active database nofilenamecheck;
Starting Duplicate Db at 2017-08-03 10:40:42
RMAN-03002: failure of Duplicate Db command at 08/03/2017 10:40:42
RMAN-05501: aborting duplication of target database
RMAN-06403: could not obtain a fully authorized session
RMAN-04006: error from auxiliary database: ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory

看錯誤很明顯,備庫是被啟動,找不到內存結構了。

但是實際上查看數據庫進程,是沒有問題的。

而我根據服務名嘗試連接,下面的結果讓我大跌眼鏡。

sqlplus sys@s2Queuedb as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 3 10:41:53 2017
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Enter password:
Connected to an idle instance.

這是哪里的問題呢,是不是實例名有大小寫的拆吧呢,在我的印象中似乎沒有。那我索性就在這個窗口下嘗試啟動,沒想到還真起來了一個新的實例。

SQL> startup nomount
ORACLE instance started.
Total System Global Area 9620525056 bytes
Fixed Size                  2261368 bytes
Variable Size            2248150664 bytes
Database Buffers         7348420608 bytes
Redo Buffers               21692416 bytes

你看這下同一個用戶下有兩個同名的實例了。

$ ps -ef|grep smon|grep -v grep
oracle    43259      1  0 10:39 ?        00:00:00 ora_smon_Queuedb
oracle    43337      1  0 10:44 ?        00:00:00 ora_smon_Queuedb

到了這里,不要以為是bug,也不要認為以前的這些基礎知識都不奏效了。我們梳理一下思路。

首先ORACLE_SID是統一的,是同一個,而不同之處就是ORACLE_HOME了。而這個數據庫環境我只安裝了一個版本的數據庫環境,所以不存在多個ORACLE_HOME,所以這個問題讓我很糾結,我們繼續來看看ORACLE_HOME的情況,可以查看環境變量的值。

$ cat /proc/43259/environ |xargs -0 -n1 |grep ORACLE_HOME
ORACLE_HOME=/U01/app/oracle/product/11.2.0.4

查看另外一個實例的ORACLE_HOME變量的值。

$ cat /proc/43337/environ |xargs -0 -n1 |grep ORACLE_HOME
ORACLE_HOME=/home/U01/app/oracle/product/11.2.0.4

到了這里,似乎有了眉目,原來是ORACLE_HOME不一樣。

而問題到了這里還是有些奇怪,因為/home/U01和/U01是指向的同一個目錄。他們代表的含義是一樣的。

lrwxrwxrwx    1 root root     9 Aug  1 17:53 U01 -> /home/U0

這個問題到了這里該這么解釋呢,我們繼續理一下思路。我們在RMAN使用duplicate的時候是使用TNS連接方式的,那么TNS連接在連接本地實例的時候指向了另外一個實例(盡管剛開始這個實例不存在),那么本地的連接配置其實還是在listener.ora里面。

打開靜態注冊的內容,這樣一看就很清楚了。

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (GLOBAL_DBNAME = Queuedb)
      (ORACLE_HOME = /home/U01/app/oracle/product/11.2.0.4)
      (SID_NAME = Queuedb)
    )
  )

所以了解了這個問題,我們可以換個思路想想有什么場景可以把這個特點發揚光大,在一些特定的場景中起到神助攻的作用。

至少在之前的數據遷移中,我是使用多個版本的ORACLE_HOME來達到同服務器多實例的切換,能夠極大的提高數據遷移的效率。

以上就是“Oracle連接問題實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙泉市| 西峡县| 高雄市| 宜宾县| 永和县| 泸定县| 富宁县| 天等县| 九江市| 莎车县| 淮滨县| 姚安县| 延寿县| 汾西县| 通江县| 客服| 新密市| 铁力市| 凯里市| 新河县| 肥城市| 湘潭市| 夹江县| 黄陵县| 游戏| 南昌市| 周宁县| 潍坊市| 雷山县| 彭州市| 荔浦县| 若尔盖县| 上蔡县| 武宁县| 凉山| 瑞丽市| 泰和县| 五台县| 凤凰县| 正蓝旗| 凤冈县|