中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Oracle Study--RAW Device在Oracle下的應用

發布時間:2020-09-19 09:19:28 來源:網絡 閱讀:711 作者:客居天涯 欄目:關系型數據庫

Oracle Study--RAW Device在Oracle下的應用

1、 什么是裸設備(RAW DEVICE) 
       裸設備是指未創建文件系統的磁盤分區(raw partition)或邏輯卷(raw logical volume),應用程序直接通過一 
個字符設備驅動程序對它進行訪問。如何對設備上的數據讀寫決定于使用它的應用程序。由于對裸設備的操作不通過UNIX的緩沖區,數據在ORACLE的數據緩沖區(BUFFER CACHE)和磁盤之間直接傳遞,所以使用裸設備在一定程度上能夠提高I/O性能,適合I/O量大的系統。另外OPS/RAC (Oracle Parallel Server/Real Application Cluster)環境下,多個節點同時訪問同一個數據庫,所以CONTROL FILE、DATA FILE、REDO LOG都必須建在RAW DEVICE上。 
2、裸設備的可用空間
      不同的UNIX對裸設備的管理不完全相同,特別要注意的是某些UNIX在每個裸設備的頭部要保留一定的空間,應用程序在使用裸設備時不可以覆蓋這一部分,否則會對裸設備造成損壞。所以一個裸設備的實際可用空間是分配給裸設備的空間再減去這部分操作系統保留空間。下面是常用UNIX的OS Reserved Size列表: 

UNIX     OS Reserved Size 
------------            - --------------- 
SUN Solaris          0 
HP-UX          0 
IBM AIX         4k 
Tru64 UNIX       64k 
Linux          0

Oracle下redo block size:

SQL> SELECT b.member, b.bytes, b.bytes+512 file_size FROM v$logfile a, v$log b 
WHERE a.group#=b.group# and a.member='/oradata/redo01.log '; 
MEMBER        BYTES    FILE_SIZE 
-------------------- --------  --------- 
/oradata/redo01.log  4194304  4194816 

下表列出了常用OS上的ORACLE REDO_BLOCK_SIZE: 
OS        REDO_BLOCK_SIZE 
----------------- --------------- 
Windows      512 
SUN Solaris    512 
HP-UX       1024 
IBM AIX      512 
Compaq Tru64 UNIX 1024 
Linux       512

 3、dd命令
    UNIX上讀寫裸設備不能使用cp, cpio, tar等命令,必須用dd,下面是幾個dd常用參數的簡單說明,更詳細的信息請參考UNIX使用手冊或用命令man dd。 
dd [ operand=value ... ] 
if=file 指定輸入文件,缺省值是標準輸入 
of=file 指定輸出文件,缺省值是標準輸出 
bs=n 設置輸入和輸出的塊大小為n字節,也可以用“k”作單位 
skip=n 在拷貝之前跳過n個輸入塊,缺省值是0 
seek=n 在拷貝之前從輸出文件首部跳過n塊,缺省值是0 
count=n 指定拷貝的塊數,缺省拷貝到輸入文件結束 

4、在raw上創建數據文件可用空間

SQL> CREATE TABLESPACE ts_test DATAFILE '/dev/rlv_data' SIZE 8180k; 
SIZE指定的數值必須小于或等于8180k,否則語句將會失敗: 
ORA-01119: error in creating database file '/dev/rlv_data' 
ORA-27042: not enough space on raw partition to fullfill request

這個最大值的計算方法如下: 
8192k(RAW DEVICE SIZE) - 4k (OS_RESERVED_SIZE) - 8k (DB_BLOCK_SIZE) = 8180k 
為什么還要減去一個DB_BLOCK_SIZE呢?這是因為ORACLE建立DATAFILE時,在命令中SIZE指定的大小之外,還要在文件頭另加一個BLOCK,叫作“Oracle OS Header Block”,里面保存有這個文件的邏輯塊大小和文件塊數等信息。這一點并不是在RAW DEVICE上建DATAFILE特有的,如果你在文件系統上建一個DATAFILE,指定SIZE 1000k的話,你用ls -l或dir命令看到的文件大小將是1008k (DB_BLOCK_SIZE=8K)。 

案例分析:

查看vg信息:
[oracle@aix211 ~]$lsvg datavg
VOLUME GROUP:       datavg                   VG IDENTIFIER:  00040f8a00004c000000014862af71b0
VG STATE:           active                   PP SIZE:        64 megabyte(s)
VG PERMISSION:      read/write               TOTAL PPs:      480 (30720 megabytes)
MAX LVs:            256                      FREE PPs:       372 (23808 megabytes)
LVs:                19                       USED PPs:       108 (6912 megabytes)
OPEN LVs:           14                       QUORUM:         2 (Enabled)
TOTAL PVs:          1                        VG DESCRIPTORS: 2
STALE PVs:          0                        STALE PPs:      0
ACTIVE PVs:         1                        AUTO ON:        no
Concurrent:         Enhanced-Capable         Auto-Concurrent: Disabled
VG Mode:            Concurrent                               
Node ID:            -                        Active Nodes:    
MAX PPs per VG:     32512                                     
MAX PPs per PV:     1016                     MAX PVs:        32
LTG size (Dynamic): 256 kilobyte(s)          AUTO SYNC:      no
HOT SPARE:          no                       BB POLICY:      relocatable 

創建lv大小為128M(2個pp)
[root@aix211 /]#mklv -y 'tbs1'  -t  'raw' datavg 2 
tbs1
[root@aix211 /]#lsvg -l datavg
datavg:
LV NAME             TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
tbs1                raw        2       2       1    closed/syncd  N/A

修改設備屬性
[root@aix211 /]#chown  oracle:dba  /dev/tbs1 
[root@aix211 /]#chown  oracle:dba  /dev/rtbs1
[root@aix211 /]#chmod 660 /dev/tbs1
[root@aix211 /]#chmod 660 /dev/rtbs1
[root@aix211 /]#ls -l /dev |grep tbs1
crw-rw----    1 oracle   dba          88, 19 Sep 15 16:55 rtbs1
brw-rw----    1 oracle   dba          88, 19 Sep 15 16:55 tbs1

創建表空間tbs1
[oracle@aix211 ~]$ln -s /dev/rtbs1 /u01/app/oracle/oradata/prod/tbs1.dbf

[oracle@aix212@ ~]$sqlplus '/as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Sep 15 17:44:10 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options

SQL> create tablespace tbs1
  2  datafile '/u01/app/oracle/oradata/prod/tbs1.dbf' size 128m;
create tablespace tbs1
*
ERROR at line 1:
ORA-01119: error in creating database file
'/u01/app/oracle/oradata/prod/tbs1.dbf'
ORA-27042: not enough space on raw partition to fullfill request
IBM AIX RISC System/6000 Error: 6: No such device or address
Additional information: 1
Additional information: 1
Additional information: -1

由于/dev/rtbs1大小為128m,不能全部用來創建表空間(最少要留有2X8k)


向AI問一下細節

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

AI

阿拉善左旗| 简阳市| 海林市| 佛山市| 姚安县| 石河子市| 河北区| 高台县| 呼和浩特市| 泰顺县| 汽车| 涟源市| 玉树县| 郎溪县| 成都市| 大渡口区| 呼伦贝尔市| 电白县| 景泰县| 泰安市| 连城县| 安阳市| 克山县| 黔西| 竹北市| 陇川县| 扎囊县| 孝昌县| 安陆市| 玉山县| 凤台县| 呼图壁县| 丹寨县| 九江市| 晋州市| 罗定市| 广平县| 射洪县| 任丘市| 汨罗市| 县级市|