真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

OracleStudy--RAWDevice在Oracle下的應(yīng)用

Oracle Study--RAW Device在Oracle下的應(yīng)用

10年積累的成都做網(wǎng)站、網(wǎng)站建設(shè)經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問(wèn)題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有麒麟免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

1、 什么是裸設(shè)備(RAW DEVICE) 
       裸設(shè)備是指未創(chuàng)建文件系統(tǒng)的磁盤(pán)分區(qū)(raw partition)或邏輯卷(raw logical volume),應(yīng)用程序直接通過(guò)一 
個(gè)字符設(shè)備驅(qū)動(dòng)程序?qū)λM(jìn)行訪問(wèn)。如何對(duì)設(shè)備上的數(shù)據(jù)讀寫(xiě)決定于使用它的應(yīng)用程序。由于對(duì)裸設(shè)備的操作不通過(guò)UNIX的緩沖區(qū),數(shù)據(jù)在ORACLE的數(shù)據(jù)緩沖區(qū)(BUFFER CACHE)和磁盤(pán)之間直接傳遞,所以使用裸設(shè)備在一定程度上能夠提高I/O性能,適合I/O量大的系統(tǒng)。另外OPS/RAC (Oracle Parallel Server/Real Application Cluster)環(huán)境下,多個(gè)節(jié)點(diǎn)同時(shí)訪問(wèn)同一個(gè)數(shù)據(jù)庫(kù),所以CONTROL FILE、DATA FILE、REDO LOG都必須建在RAW DEVICE上。 
2、裸設(shè)備的可用空間
      不同的UNIX對(duì)裸設(shè)備的管理不完全相同,特別要注意的是某些UNIX在每個(gè)裸設(shè)備的頭部要保留一定的空間,應(yīng)用程序在使用裸設(shè)備時(shí)不可以覆蓋這一部分,否則會(huì)對(duì)裸設(shè)備造成損壞。所以一個(gè)裸設(shè)備的實(shí)際可用空間是分配給裸設(shè)備的空間再減去這部分操作系統(tǒng)保留空間。下面是常用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上讀寫(xiě)裸設(shè)備不能使用cp, cpio, tar等命令,必須用dd,下面是幾個(gè)dd常用參數(shù)的簡(jiǎn)單說(shuō)明,更詳細(xì)的信息請(qǐng)參考UNIX使用手冊(cè)或用命令man dd。 
dd [ operand=value ... ] 
if=file 指定輸入文件,缺省值是標(biāo)準(zhǔn)輸入 
of=file 指定輸出文件,缺省值是標(biāo)準(zhǔn)輸出 
bs=n 設(shè)置輸入和輸出的塊大小為n字節(jié),也可以用“k”作單位 
skip=n 在拷貝之前跳過(guò)n個(gè)輸入塊,缺省值是0 
seek=n 在拷貝之前從輸出文件首部跳過(guò)n塊,缺省值是0 
count=n 指定拷貝的塊數(shù),缺省拷貝到輸入文件結(jié)束 

4、在raw上創(chuàng)建數(shù)據(jù)文件可用空間

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

這個(gè)最大值的計(jì)算方法如下: 
8192k(RAW DEVICE SIZE) - 4k (OS_RESERVED_SIZE) - 8k (DB_BLOCK_SIZE) = 8180k 
為什么還要減去一個(gè)DB_BLOCK_SIZE呢?這是因?yàn)镺RACLE建立DATAFILE時(shí),在命令中SIZE指定的大小之外,還要在文件頭另加一個(gè)BLOCK,叫作“Oracle OS Header Block”,里面保存有這個(gè)文件的邏輯塊大小和文件塊數(shù)等信息。這一點(diǎn)并不是在RAW DEVICE上建DATAFILE特有的,如果你在文件系統(tǒng)上建一個(gè)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 

創(chuàng)建lv大小為128M(2個(gè)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

修改設(shè)備屬性
[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

創(chuàng)建表空間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,不能全部用來(lái)創(chuàng)建表空間(最少要留有2X8k)

分享標(biāo)題:OracleStudy--RAWDevice在Oracle下的應(yīng)用
URL標(biāo)題:http://weahome.cn/article/ihpchj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部