日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

六、配置Oracle数据库的网络环境

發布時間:2025/4/16 数据库 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 六、配置Oracle数据库的网络环境 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 連接建立的過程
場景:oracle默認監聽器1521,把數據庫服務注冊到監聽器中,客戶端才能通過監聽器登錄到數據庫上操作,
數據庫的名稱是orcl,注冊后,叫服務命名

[oracle@oracledemo ~]$ sqlplus scott/tiger@localhost:1521/orcl.example.com

建立連接
注意:監聽器只是在連接建立的過程中起作用,一旦連接建立,客戶端直接與serverprocess交互
描述:客戶端執行sqlplus的登錄連接,服務器端有一個1521的監聽器,要通過監聽器登錄到數據庫的服務上,需要把數據庫的服務注冊到監聽器上,如orcl.example.com叫服務命名


(1)執行sqlplus登錄語句時,發送登錄請求,監聽器接收到后就會解析請求
(2)解析出來的結果有兩種:第一就是請求信息不識別,也就是發出過來的請求是錯誤的請求,這時監聽器就會直接拒絕登錄的請求,這時客戶端就會出錯,第二種請求就是解析出來的信息是正確的,就可以讓客戶端進行登錄
(3) 請求信息正確的情況下監聽器會做兩件事情: 創建PGA和ServerProcess(服務器請求,處理客戶端請求)
(4) 執行sql語句,實際是直接發送給serverprocess

[oracle@oracledemo ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUL-2018 04:55:50 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 09-JUL-2018 00:49:26 Uptime 0 days 4 hr. 6 min. 24 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora ###配置文件 Listener Log File /u01/app/oracle/diag/tnslsnr/oracledemo/listener/alert/log.xml Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledemo)(PORT=1521))) #######監聽端口 Services Summary... Service "orcl.example.com" has 1 instance(s). #######服務的名稱Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB.example.com" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully

  

2. 配置監聽器
描述:配置完數據庫后,有個默認監聽器1521,要操作必須要把數據庫(orcl.example.com)注冊到監聽器上,然后再使用不同的方法來配置監聽器


- netca


- netmgr


- OEM


- 修改配置文件: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

[oracle@oracledemo ~]$ cat /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora # Generated by Oracle configuration tools.LISTENER03 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracledemo)(PORT = 1523)))LISTENER02 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracledemo)(PORT = 1522)))ADR_BASE_LISTENER03 = /u01/app/oracleADR_BASE_LISTENER02 = /u01/app/oracleLISTENER =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracledemo)(PORT = 1521)))ADR_BASE_LISTENER = /u01/app/oracle

  

3. 注冊數據庫的服務
描述:把數據庫的服務注冊到監聽器上后,才能通過監聽器登錄,而且會有不同的名稱如my.example.com,就對應orcl這個名稱,
有了這種關聯就可能登錄到數據庫實例上
注冊方式
- 靜態注冊:通過修改配置文件實現
OEM操作描述: netservices管理 --> 選擇對應的lister --> 編輯 --> 靜態數據庫注冊 --> 添加 --> 填寫名稱、目錄(已經設置的目錄/u01/app/oracle/product/11.2.0/dbhome_1)、SID(數據庫名稱)

[oracle@oracledemo ~]$ vim /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora #描述中的操作相當于修改配置文件 (SID_LIST =(SID_DESC =(GLOBAL_DBNAME = myorcl.exmple.com)(SID_NAME = orcl)(ORACLE_HOME = u01/app/oracle/product/11.2.0/dbhome_1) ) ) [oracle@oracledemo ~]$ lsnrctl status listener02 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUL-2018 07:49:44 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1522))) STATUS of the LISTENER ------------------------ Alias LISTENER02 Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 09-JUL-2018 05:41:06 Uptime 0 days 2 hr. 8 min. 38 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/oracledemo/listener02/alert/log.xml Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledemo)(PORT=1522))) The listener supports no services #啟動的,沒有注冊任何服務 The command completed successfully

- 動態注冊:通過修改service_names參數
動態注冊問題:
(*)默認只能注冊到1521的端口上
(*)如果要注冊到不是默認的監聽端口上要修改參數,需要修改一個參數local_listener
(*)由PMON進程來實成

[oracle@oracledemo ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUL-2018 08:17:15 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) ### STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 09-JUL-2018 00:49:26 Uptime 0 days 7 hr. 27 min. 49 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File /u01/app/oracle/diag/tnslsnr/oracledemo/listener/alert/log.xml Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledemo)(PORT=1521))) ####默認 Services Summary... Service "orcl.example.com" has 1 instance(s).Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB.example.com" has 1 instance(s).Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully[oracle@oracledemo ~]$ . oraenv ORACLE_SID = [orcl] ? orcl The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle [oracle@oracledemo ~]$ sqlplus / as sysdba SQL> show parameter service_names NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string orcl.example.comSQL> show parameter listene NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ listener_networks string local_listener string remote_listener string

新開一個窗口

[oracle@oracledemo ~]$ . oraenv ORACLE_SID = [orcl] ? orcl The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1 is /u01/app/oracle [oracle@oracledemo ~]$ sqlplus / as sysdba SQL> show parameter service_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string orcl.example.com SQL> alter system set service_names='dev.exapmle.com'; System altered. SQL> show parameter service_name NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ service_names string dev.exapmle.com

另一個窗口查看

[oracle@oracledemo ~]$ lsnrctl status Service "dev.exapmle.com" has 1 instance(s).windows上測試: [c:\~]$ cd D:\oracleclient\oracle10g\instantclient_12_1 [D:\oracleclient\oracle10g\instantclient_12_1]$ sqlplus scott/tiger@192.168.56.90:1521/dev.exapmle.com SQL*Plus: Release 12.1.0.1.0 Production on Sat Jul 21 13:00:32 2018 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options

  

4. 客戶端的連接的方式
- 簡便命名法(easy connect)

eg: sqlplus scott/tiger@192.168.56.90:1521/orcl.example.comJDBC(JAVA來連接): jdbc:oracle:thin:@192.168.56.90:1521/orcl.example.com

- 服務命名法: service name
客戶端的配置:本地服務名稱 --> 包含服務器IP、端口、服務名稱(netmgr)

?

[oracle@oracledemo ~]$ ls /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/ listener1807095AM2956.bak listener.ora samples shrept.lst tnsnames1807095AM2956.bak tnsnames.ora -->配置完后新增的 [oracle@oracledemo ~]$ more /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora # Generated by Oracle configuration tools. MYDEMO =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.90)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl.example.com)))[oracle@oracledemo ~]$ sqlplus scott/tiger@mydemo ##直接使用mydemo來連接 SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 9 10:52:53 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL>

- 目錄命名法(使用LADP服務器作為連接的方式,少用)
- 外部命名法(external naming幾乎沒人使用)

?

5. 共享服務器模式
- 專有服務器模式(默認)
(*)有一個客戶端,就有一個PGA和服務器server process
描述:客戶端登錄時,監聽器如果信息正確,監聽器就會去創建PGA和server process,server process用來接受客戶端發送過來的sql語句并執行,
如果客戶端和PGA、server process是一對一的關系,這就是專有服務器模式

- 共享服務器模式(類似于數據庫的連接池)
描述:服務器端的服務器進程包括一定信息數量是一定的,可能被一些客戶端共享
注意:管理員登錄一定是專有有服務器模式,RMAN備份和恢復也是只是專有服務器模式
工作原理:有100個客戶端,在共享服務器模式下服務器進程是一定的,如在服務器端存在5個服務器進程,也就意味著在同一個時間,服務器端只能處理5個客戶端的請求,如果有更多的請求就需要排隊,也就是5個服務器的進程會被100個客戶端所共享的,需要有一個排隊的機制在服務器端有一個監聽器,要通過它才能登錄到oracle的數據庫上,在共享服務器的模式下需要有分發器,如有3個分發器,分發器主要作用是轉發請求,不會做具體的處理
如客戶端1連接到監聽器上需要連接登錄,監聽器會在所有的分發器中找一個最不Busy的分發器進行分配給客戶端,如找到分發器1,這時監聽器就會把分發器1分配給客戶端1,這時客戶端1就可以直接執行sql語句,最終還是由server process來執行sql語句,分發器接收到請求后,會把請求放入一個請求隊列中,如果有一個server process空閑了,它就會從請求隊列中取出一個請求來執行處理
當sql語句執行完后,server process把執行的結果放入響應隊列中,當分發器將sql放入請求隊列時,實際把分發器執行的信息也放入到請求隊列中,所以當服務器進程執行完成后,實際上服務器進程的響應隊列是知道返回給那個對應的分發器,分發器得到結果后就會返回給對應的客戶端
與專有服務器模式區別是:客戶端是直接發送給server process進程
summary: 服務器端的服務進程是一定的,如果存在過客戶端就需要有一種隊列的機制來共享服務器的進程


配置:服務器進程數、分發器個數

SQL> show parameter shared_servers NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ max_shared_servers integer shared_servers integer 1 #共享服務器進程個數,默認是一個表示專有服務器進程 修改配置: SQL> alter system set shared_servers=5; 配置分發器: SQL> show parameter dispatcher NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dispatchers string (PROTOCOL=TCP) (SERVICE=orclXDB) ###默認是沒配置 max_dispatchers integer SQL> alter system set dispatchers='(PROTOCOL=TCP) (dispatchers=3)';

  

6. 分布式數據庫基礎


- 數據物理上被存放在網絡的多個節點上,邏輯上是一個數據庫
- 特點:數據的獨立性,指的是用戶不必關心數據如何分割和存儲,只需要關心它需要什么數據,如下的訂票,用戶不會關心票的信息存在那里
例子描述:一個火車訂票的系統,網絡像是12306,可以訂全國各地的火車票,實際上北京的是存在北京的數據庫中,上海的是存在上海的數據庫中,它們在物理上就不在一個地方,但是可以通過邏輯上整合在一起

- 操作分布式數據庫:oracle支持分布式操作
描述:兩個數據庫如紅色在北京,綠色在上海,物理上不一起,可以從邏輯上看作一個數據庫,如在北京的數據為中保存部門表的信息dept,在上海的數據庫中保存上海表的信息emp,它們組成了一個分布式的環境,要在分布式的環境中操作,如要在紅色的數據庫中訪問綠色的數據庫中的數據,可以通過網絡來實現,這是數據庫的鏈路,它是有方向的.

- 定義數據庫的鏈路

CREATE DATABASE LINK [db_link_name] CONNECT TO [user_name] IDENTIFIED BY [password] USING '[tns_name]'; [db_link_name]: 是所要連接的數據庫的服務名,也就是該數據庫的真實名稱(通常就是SID) [user_name]: 是所要連接的用戶名稱 [password]: 是所要連接的用戶密碼,是遠程的數據庫 [tns_name]: 是所要連接數據庫的服務命名 如:create database link l2 conncet to scott identified by tiger using 'remoteorcl'; #不是12是l2

實際配置

node1: windows xp oracle10g 192.168.56.128 node2: oracle linux oracle11g 192.168.56.90

測試連接通性:

[root@oracledemo ~]# ping 192.168.56.128 PING 192.168.56.128 (192.168.56.128) 56(84) bytes of data. 64 bytes from 192.168.56.128: icmp_seq=1 ttl=128 time=1.75 ms

建立數據庫鏈路(linux上oracle訪問windows xp上的oracle)
創建服務命名:linux上oracle訪問windows xp上的oracle,所有在linux機器上建立服務命名,去代表遠端windows oracle數據庫上的信息
在vnc上操作:創建一個服務命名代表遠端

在vnc上操作:創建一個服務命名代表遠端 [oracle@oracledemo ~]$ ls /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/ #VNC配置過程保存在tnsnames.ora中 listener1807095AM2956.bak listener.ora samples shrept.lst tnsnames1807095AM2956.bak tnsnames.ora [oracle@oracledemo ~]$ more /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora REMOTEORCL =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.128)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))

創建數據庫的鏈路(建立通道)

[oracle@oracledemo ~]$ sqlplus scott/tiger SQL> create database link l2 connect to scott identified by tiger using 'remoteorcl'; create database link l2 connect to scott identified by tiger using 'remoteorcl' ERROR at line 1: ORA-01031: insufficient privileges #沒有創建的權限 SQL> conn / as sysdba #切換到管理員 Connected. SQL> grant create database link to scott; #授權 Grant succeeded. SQL> conn scott/tiger #切換到scott Connected. SQL> create database link l2 connect to scott identified by tiger using 'remoteorcl'; Database link created.

分布式數據庫查詢

SQL> select ename,dname #@l2是訪問windows上的oracle2 from dept,emp@l2 3 where dept.deptno=emp.deptno; ENAME DNAME ---------- -------------- SMITH RESEARCH ALLEN SALES WARD SALES JONES RESEARCH MARTIN SALES BLAKE SALES CLARK ACCOUNTING SCOTT RESEARCH KING ACCOUNTING ### TURNER SALES ADAMS RESEARCH ENAME DNAME ---------- -------------- JAMES SALES FORD RESEARCH MILLER ACCOUNTING

修改windows某個用戶的數據來測試

update emp set ename='KING123' where empno='7839'; commit

再查詢

SQL> / ENAME DNAME ---------- -------------- SMITH RESEARCH ALLEN SALES WARD SALES JONES RESEARCH MARTIN SALES BLAKE SALES CLARK ACCOUNTING SCOTT RESEARCH KING123 ACCOUNTING #######已經改變 TURNER SALES ADAMS RESEARCHENAME DNAME ---------- -------------- JAMES SALES FORD RESEARCH MILLER ACCOUNTING

其他操作

創建別名:create synonym emp1 for emp@L2; #創建同義詞來代表遠端數據庫的表 建立遠程表的視圖:create view emp as select * from emp1@L1 union select * from emp2@L2 插入操作:insert into emp select * from emp@L2; 數據復制: create table emp as select * from emp@L2; 操作: SQL> conn / as sysdba Connected. SQL> grant create synonym to scott; Grant succeeded. SQL> conn scott/tiger Connected. SQL> create synonym remoteemp for emp@l2; Synonym created. SQL> select ename,dname2 from dept , remoteemp3 where dept.deptno=remoteemp.deptno; ENAME DNAME ---------- -------------- SMITH RESEARCH ALLEN SALES WARD SALES JONES RESEARCH MARTIN SALES BLAKE SALES CLARK ACCOUNTING SCOTT RESEARCH KING123 ACCOUNTING TURNER SALES ADAMS RESEARCHENAME DNAME ---------- -------------- JAMES SALES FORD RESEARCH MILLER ACCOUNTING 14 rows selected.

分布式數據庫的跨節點更新
描述:分布式數據庫是物理上不在一起,邏輯上是整體,如北京是主數據庫,上海是從數據庫,如果在主上的數據發生更新,可以copy到從上進行備份
實現的方式
* 快照
* 定義快維護關系表的異步副本
* 指在主表修改后指定的時間內刷新副本,用于主表修改少,但頻繁查詢的表

* 觸發器
* 利用觸發器實現數據的同步,如北京的數據庫發生的更改,可以利用觸發器同步到上海

* 區別
* 觸發器是同步的,快照是異步的,使用觸發器時如果主發生更改馬上會copy到從不會有延時,這是同步,快照是過一段時間才會copy
* 觸發器是定義在主數據庫上,快照是定義在從數據庫上

觸發器的實現:當主數據庫的員工工資更改后,需要馬上同步到從數據庫的上,主是linux上的oracl,從是xp上的oracle
主數據庫上:

SQL> select ename,sal from emp; #在這例子中:漲工資前的工資,從數據庫上也是一樣 ENAME SAL ---------- ---------- SMITH 800 ALLEN 1600 WARD 1250 JONES 2975 MARTIN 1250 BLAKE 2850 CLARK 2450 SCOTT 3000 KING 5000 TURNER 1500 ADAMS 1100ENAME SAL ---------- ---------- JAMES 950 FORD 3000 MILLER 1300

定義觸發器

create or replace trigger syncSalary after update on emp for each row beginupdate remoteemp set sal=:new.sal where empno=:new.empno; end; / # 觸發器的名稱為syncSalary,針對是更新后的操作update,定義在主數據庫的emp上,漲工資是要把每個員工的數據都更新到從數據庫上,所以這是一個針對行的觸發器,觸發器不需要使用變量就直接使用begin和end,這個觸發器就會在主數據庫update操作執行后去更新從數據庫,從數據為上的表同義詞remoteemp,SQL> create or replace trigger syncSalary after update on emp for each row beginupdate remoteemp set sal=:new.sal where empno=:new.empno; end; Trigger created. SQL> select ename,sal from emp where empno=7839; ENAME SAL ---------- ---------- KING 5000從數據庫上的king的工資 SQL> select ename,sal from emp where empno=7839; ENAME SAL ---------- ---------- KING123 5000主數據庫上更新: SQL> update emp set sal=6000 where empno=7839; SQL> commit; SQL> select ename,sal from emp where empno=7839; ENAME SAL ---------- ---------- KING 6000從數據庫上檢查: SQL> select ename,sal from emp where empno=7839; ENAME SAL ---------- ---------- KING123 6000

  

7. 使用跟蹤文件診斷監聽器
* 跟蹤文件
后綴為trc文件 --》 跟蹤會話的信息、監聽器的信息
如在會話中打開會話的跟蹤,它就會把當前會話的信息,包括執行的sql語句,以及統計信息記錄到trc文件中,通過格式化文件就可以分析當前會話中的內容
位置:

SQL> show parameter dumpNAME TYPE VALUE ------------------------------------ ----------- ------------------------------ background_core_dump string partial background_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace ##跟蹤文件的位置 core_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/cdump max_dump_file_size string unlimited shadow_core_dump string partial user_dump_dest string /u01/app/oracle/diag/rdbms/orcl/orcl/trace [oracle@oracledemo ~]$ cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace/ [oracle@oracledemo trace]$ ls orcl_ora_20258.trc 跟蹤文件 orcl_ora_28025.trm 跟蹤文件的元信息文件

確定當前會話的跟蹤文件
(1) 授權scott用戶dba權限方便操作

SQL> grant dba to scott; SQL> conn scott/tiger 這是一個新的會話連接

(2)確定當前會話的ID

SQL> select sid from v$mystat where rownum=1; #v$是一個數據字典SID ----------37

(3) 根據會話的ID來確定內存中的地址信息

SQL> select PADDR from v$session where SID=37; ##PADDR == address of process PADDR -------- 7745FC94

(4) 根據地址信息確定跟蹤的會話ID,也就是操作系統的進程ID

SQL> select SPID from V$PROCESS where ADDR='7745FC94'; SPID ------------------------ 18691

(5) 開啟會話跟蹤

SQL> alter session set sql_trace=true; #關閉是false,不關閉會話文件會變得很大 Session altered. [oracle@oracledemo trace]$ ls *18691* #產生了對應的文件 orcl_ora_18691.trc orcl_ora_18691.trm

(*) oracle的SQL優化: 以下的是重復的SQL,可以通過這樣的跟蹤信息找到問題,不用生成多個執行計劃

注意:解決重復SQL的方法:使用綁定變量或游標共享 select count(*) from scott.emp where deptno=10; select count(*) from scott.emp where deptno=20; select count(*) from scott.emp where deptno=30; select count(*) from scott.emp where deptno=40; select count(*) from scott.emp where deptno=50; SQL> alter session set sql_trace=false;

(*)使用tkprof工具對跟蹤文件進行格式化,方便人閱讀

[oracle@oracledemo trace]$ tkprof orcl_ora_18691.trc ~/a.txt sys=no sort=fchela # sys=no使用管理員產生的信息就不要進行格式化 sort=fchela根據sql的時間排序 [oracle@oracledemo trace]$ vim ~/a.txt SQL ID: 8xkd0hm6ys0p0 Plan Hash: 2083865914 會生成sql的執行計劃,這個是ID號,通過分析得到它們的執行計劃的ID號都是一樣的,會影響SQL的性能 select count(*) fromscott.emp where deptno=10 call count cpu elapsed disk query current rows ------- ------ -------- ---------- ---------- ---------- ---------- ---------- Parse 1 0.00 0.00 0 1 0 0 Execute 1 0.00 0.00 0 0 0 0 Fetch 2 0.00 0.00 0 7 0 1 ------- ------ -------- ---------- ---------- ---------- ---------- ---------- total 4 0.00 0.00 0 8 0 1

  

8. 使用監聽器的跟蹤信息
(*) 監聽器參數配置

[oracle@oracledemo ~]$ lsnrctl statusLSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUL-2018 15:15:55Copyright (c) 1991, 2009, Oracle. All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 09-JUL-2018 00:49:26 Uptime 0 days 14 hr. 26 min. 29 sec Trace Level off 表示監聽器跟蹤是關閉狀態,如果打開的話會產生另一個文件trc文件來跟蹤 Security ON: Local OS Authentication SNMP OFF Listener Parameter File /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 監聽器的配置文件 Listener Log File /u01/app/oracle/diag/tnslsnr/oracledemo/listener/alert/log.xml 監聽器的日志文件,不記錄跟蹤信息 Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledemo)(PORT=1521))) Services Summary... Service "orcl.example.com" has 1 instance(s).Instance "orcl", status READY, has 4 handler(s) for this service... Service "orclXDB.example.com" has 1 instance(s).Instance "orcl", status READY, has 0 handler(s) for this service... The command completed successfully

(*) 開啟跟蹤

[oracle@oracledemo ~]$ lsnrctl LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 09-JUL-2018 15:18:45 Copyright (c) 1991, 2009, Oracle. All rights reserved. Welcome to LSNRCTL, type "help" for information. LSNRCTL> show The following operations are available after show An asterisk (*) denotes a modifier or extended command: rawmode displaymode rules trc_file 使用trace文件來記錄跟蹤信息 trc_directory trc_level 跟蹤的級別 log_file log_directory 跟蹤文件保存的目錄 log_status current_listener inbound_connect_timeout startup_waittime snmp_visible save_config_on_stop dynamic_registration enable_global_dynamic_endpoint oracle_home pid

使用show命令查看每個參數

LSNRCTL> show trc_file Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) LISTENER parameter "trc_file" set to ora_8267_3086763712.trc ####對應的文件 The command completed successfullyLSNRCTL> show trc_level Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) LISTENER parameter "trc_level" set to off ##級別 The command completed successfullyLSNRCTL> show log_directory Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) LISTENER parameter "log_directory" set to /u01/app/oracle/diag/tnslsnr/oracledemo/listener/alert ###保存的目錄 The command completed successfully [oracle@oracledemo ~]$ cd /u01/app/oracle/diag/tnslsnr/oracledemo/listener/alert [oracle@oracledemo alert]$ ls log.xml

使用trace命令來開啟監聽器的跟蹤

LSNRCTL> help trace trace OFF | USER | ADMIN | SUPPORT [<listener_name>] : set tracing to the specified level 參數: off: 關閉監聽器的跟蹤,對應數字0 USER: 開啟用戶級別的跟蹤,對應數字4 ADMIN: 開啟管理級別的跟蹤,對應數字10 SUPPORT: 開啟ORACLE監聽器所支持的跟蹤信息,對應數字16 一般:設置成support(或者16),記錄所有的支持的跟蹤信息 LSNRCTL> trace support Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledemo)(PORT=1521))) Opened trace file: /u01/app/oracle/diag/tnslsnr/oracledemo/listener/trace/ora_8267_3086763712.trc 生成一個跟蹤文件 The command completed successfully [oracle@oracledemo ~]$ ls /u01/app/oracle/diag/tnslsnr/oracledemo/listener/trace listener.log ora_8267_3086763712.trc ora_8267_3086763712.trm

使用tracasst命令格式化監聽器的跟蹤文件

Usage : trcasst [options] <filename> #還可以加轉向輸出符> [oracle@oracledemo trace]$ trcasst -la ora_8267_3086763712.trc > ~/b.txt 參數:-s Statistics 顯示監聽器的統計信息 [oracle@oracledemo trace]$ trcasst -s ora_8267_3086763712.trc 比較常用的參數Trace Assistant Utility: Version 11.2.0.1.0 Production on July 9, 2018 3:49:12 PMCopyright (c) 2001, 2009, Oracle. All rights reserved.************************************************************************** Trace Assistant **************************************************************************---------------------- Trace File Statistics: ---------------------- Start Timestamp : 018-07-09 15:43:27.055475 End Timestamp : 018-07-09 15:48:57.022934 Total number of Sessions: 2DATABASE:Operation Count: 0 OPENS, 0 PARSES, 0 EXECUTES, 0 FETCHESORACLE NET SERVICES:Total Calls : 12 sent, 11 received, 0 ociTotal Bytes : 2059 sent, 3602 receivedAverage Bytes: 171 sent per packet, 327 received per packetMaximum Bytes: 178 sent, 350 receivedGrand Total Packets: 12 sent, 11 received************************************************************************** Trace Assistant has completed **************************************************************************-e[0|1|2] Error information, default is 0 監聽器中的錯誤信息[oracle@oracledemo trace]$ trcasst -e1 ora_8267_3086763712.trc 顯示所有錯誤信息-l[a|i <connection_id>] Connection information 列出所有的連接[oracle@oracledemo trace]$ trcasst -la ora_8267_3086763712.trc Connection ID: 2 每個代表數據庫的連接Socket Id: 12Operation: ReceiveMultiplex: OFFConnect Data: Connection ID: 1Operation: ReceiveMultiplex: OFFConnect Data:

  

轉載于:https://www.cnblogs.com/reid21/articles/9814798.html

總結

以上是生活随笔為你收集整理的六、配置Oracle数据库的网络环境的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 超碰成人97 | 黄色录像a级片 | 成人网在线播放 | 成人综合站 | 五十路在线 | 黑人欧美一区二区三区 | 操碰av| a级黄色片免费看 | 欧美在线视频网 | 中文字幕精品一区二 | 欧美污视频在线观看 | 长篇乱肉合集乱500小说日本 | 国产精品精东影业 | 奶水喷溅虐奶乳奴h文 | 亚洲精品在线免费播放 | 邻家有女4完整版电影观看 欧美偷拍另类 | 黄色一级免费片 | 亚洲欧美另类综合 | 色女人网 | 成人综合一区二区 | 日韩精美视频 | 国模吧一区二区 | 丁香六月色婷婷 | 亚欧视频在线观看 | 国产精品毛片久久久久久久 | 国产99在线 | 亚洲 | 亚洲二区在线播放视频 | 麻豆精品免费视频 | 香蕉视频免费在线看 | 色中文网| 亚洲爱爱视频 | 一级全黄裸体免费观看视频 | h视频网站在线观看 | 男女男精品视频网站 | 欧美中文字幕一区二区 | 国产精品嫩草影院精东 | 黄色动漫在线观看 | 人妖ts福利视频一二三区 | 奇米影视播放器 | 日批视频免费播放 | 中文字幕最新在线 | 超碰婷婷 | 91娇羞白丝 | 欧美一级性生活 | 国产一区色 | 天堂伊人网 | 欧美xxxx喷水 | 99热免费精品 | 亚洲精品久久久蜜桃网尤妮丝 | 欧美日韩精品在线播放 | 一级bbbbbbbbb毛片 | 夜间福利在线 | 亚洲av电影一区 | 精品乱子伦一区二区三区 | 国产乱淫av片杨贵妃 | 激情小说视频在线 | 成人黄色小视频在线观看 | 先锋成人 | 蕾丝视频污| 婷婷色一区二区三区 | 图片区偷拍区小说区 | 黄色小视频免费在线观看 | 99成人在线视频 | av片免费在线 | 欧美第一页在线观看 | 亚洲在线播放 | 日本一级吃奶淫片免费 | 色婷网| 国产传媒专区 | 免费人成自慰网站 | 自拍 偷拍 欧美 | 久久精品超碰 | 亚洲精品一二区 | 国产熟女一区二区 | 天堂视频在线观看免费 | 麻豆传媒网站入口 | jizzjizz国产 | 偷偷操不一样 | 成人短视频在线免费观看 | 久久香蕉精品 | 亚洲欧美国产精品久久久久久久 | aa视频在线 | 国产在线操 | 亚洲av无码不卡 | 91精品国产91久久久久久久久久久久 | 亚洲一二区在线 | 欧美成人精品激情在线视频 | 尤物综合网| 懂色一区二区二区av免费观看 | 日韩黄色免费网站 | 日韩毛片中文字幕 | 91片黄在线观看 | 国产网红女主播精品视频 | 乌克兰做爰xxxⅹ性视频 | 亚洲AV无码成人精品区明星换面 | 欧美日韩黄色网 | 国产人免费人成免费视频 | 国产八区 | 日韩精品免费一区二区夜夜嗨 |