1. oracle 中asm用法
正好剛整理了一個這方面的資料,先貼給你吧.
准備ASM環境
ASM使用一個名叫「+ASM」的資料庫實例來管理ASM磁碟,因此在配置ASM磁碟之前,需要先啟動ASM實例。另外還需要注意,ASM 實例必須要先於資料庫實例啟動,和資料庫實例同步運行,遲於資料庫實例關閉。ASM 實例的創建和刪除可以用DBCA 工具來操作。在DBCA的第一個界面選擇配置自動存儲管理就可以進入ASM配置的界面。
根據提示運行腳本就可以配置和啟動CSS(Cluster Synchronization Service)了,注意要以root的身份運行這個腳本,運行情況如下:
# /u01/app/oracle/proct/10.2.0/db_1/bin/localconfig add
/etc/oracle does not exist. Creating it now.
Successfully accumulated necessary OCR keys.
Creating OCR keys for user 'root', privgrp 'root'..
Operation successful.
Configuration for local CSS has been initialized
Adding to inittab
Startup will be queued to init within 90 seconds.
Checking the status of new Oracle init process...
Expecting the CRS daemons to be up within 600 seconds.
CSS is active on these nodes.
s1
CSS is active on all nodes.
Oracle CSS service is installed and running under init(1M)
ASM可以使用裸設備或者ASMLib方式, 因為裸設備的維護更羅嗦一些,本文只討論ASMLib方式。為了在linux系統中使用ASMLib方式准備ASM磁碟,需要安裝相關的軟體,下載鏈接如下:
下載時注意選擇自己的操作系統和內核的版本,我下載到的是以下三個軟體:
oracleasm-2.6.18-164.el5-2.0.5-1.el5.i686.rpm
oracleasmlib-2.0.4-1.el5.i386.rpm
oracleasm-support-2.1.4-1.el5.i386.rpm
這里特別需要注意第一個軟體要和你的Linux內核的版本一致。(其實我的內核版本是2.6.18-155.el5,但是在官方網站找不到完全對應的版本,只好使用這個2.6.18-164.el5的版本了,後面會講怎麼解決這個問題。)接下來進行軟體的安裝,只需要使用rpm命令即可。
# rpm -ivh oracleasm*
現在安裝oracleasm模塊可能會報錯,像我因為沒有找到對應我的內核版本的oracleasm軟體就遇到了這個問題。經過一番查找,發現軟體將oracleasm的模塊文件oracleasm.ko安裝到了目錄/lib/moles/2.6.18-164.el5/kernel/drivers/addon/oracleasm中,而我的默認的模塊文件路徑應該是/lib/moles/2.6.18-155.el5,因此決定手工建立相關的目錄和文件。
# mkdir -p /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
# cp oracleasm.ko /lib/moles/2.6.18-155.el5/kernel/drivers/addon/oracleasm
然後再安裝oracleasm的模塊文件就可以通過了:
# depmod -a
# modprobe oracleasm
最後進行oracleasm服務的初始配置
# service oracleasm configure
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded on boot and what permissions it will have. The current values
will be shown in brackets ('[]'). Hitting <ENTER> without typing an
answer will keep that current value. Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]:
Writing Oracle ASM library driver configuration: done
Initializing the Oracle ASMLib driver: [ OK ]
Scanning the system for Oracle ASMLib disks: [ OK ]
好了,現在已經有了初步的ASM配置環境,接下來就可以准備磁碟了。
添加ASM磁碟組
為了實現ASM的磁碟負載均衡和冗餘能力,我准備使用四個磁碟建立ASM的磁碟組,因此需要為Linux系統添加四個磁碟。為了搭建這個環境,我使用的是VMware環境,因此添加磁碟就非常容易了。只需要在VMware的設置中選擇添加硬體即可,而且現在的VMware版本是可以支持磁碟的熱插拔的。無需關閉Linux系統,直接添加磁碟即可。添加完四個磁碟之後,為了讓Linux系統馬上識別這幾個磁碟,可以運行如下命令:
# echo 'scsi add-single-device 0 0 1 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 2 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 3 0' > /proc/scsi/scsi
# echo 'scsi add-single-device 0 0 4 0' > /proc/scsi/scsi
運行fdisk -l命令可以看到系統中增加了/dev/sdb、/dev/sdc、/dev/sdd、/dev/sde四個磁碟。使用fdisk工具在這個四個磁碟上各建立一個分區(具體步驟略,不熟悉的可以查閱Linux的fdisk命令用法)。
然後運行oracleasm createdisk命令添加ASM磁碟:
# oracleasm createdisk VOL1 /dev/sdb1
Writing disk header: done
Instantiating disk: done
依次添加/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1四個磁碟分區,完成後檢查如下:
# oracleasm listdisks
VOL1
VOL2
VOL3
VOL4
這時運行DBCA工具的ASM配置向導就可以建立ASM磁碟組了。進入DBCA向導後,選擇「Configure Automatic Storage Management」,然後單擊「Create New」按鈕,可以看到ASM磁碟組的配置界面。輸入磁碟組的名稱,如「dg1」,關於冗餘級別,我選擇了Norma,並且將VOL1和VOL2設置為一個Failure Group,而VOL3和VOL4設置為一個Failure Group。
以上操作也可以使用sqlplus連接到ASM實例上,使用命令完成。
為了連接到ASM實例上,首先需要設置ORACLE_SID環境變數,然後再使用sqlplus進行連接:
# ORACLE_SID=+ASM
# sqlplus / as sysdba
創建Disk Group的語句如下:
SQL> create diskgroup dg1 normal rendancy
failgroup fg1 disk 'ORCL:VOL1','ORCL:VOL2'
failgroup fg2 disk 'ORCL:VOL3','ORCL:VOL4';
至此,ASM磁碟組的准備已經完成,終於可以在ASM上建立資料庫了。還是使用DBCA工具,選擇「Create Database」進入創建資料庫的向導。按照向導操作,只是在選擇存儲機制時,選擇ASM類型。
2. 怎麼打開asm文件
右鍵匯編文件,選擇打開方式,然後用合適的應用打開,比如記事本,比如你說的那個。
3. linux 中 ASM命令作用
oracle 10R2推出了asmcmd這個工具,可以用來管理asm存儲上的文件。
1.使用asmcmd命令必須先啟動asm實例,不然會有以下報錯:rac2-> asmcmd -p
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)2.使用asmcmd必須先指定ORACLE_HOME和ORACLE_SID,注意此處ORACLE_SID是asm的sid,不然會報錯:rac2-> asmcmd -p
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory (DBD ERROR: OCISessionBegin)3.asmcmd命令帶p參數和不帶p參數的作用:
帶p,使用asmcmd將顯示當前路徑:rac2-> asmcmd -p
ASMCMD [+] > ls
DG1/
RECOVERDEST/
ASMCMD [+] > cd DG1
ASMCMD [+DG1] > ls
DEVDB/
ASMCMD [+DG1] > cd DEVDB
ASMCMD [+DG1/DEVDB] >不帶p,不顯示當前路徑:rac2-> asmcmd
ASMCMD> ls
DG1/
RECOVERDEST/
ASMCMD> cd DG1
ASMCMD> ls
DEVDB/
ASMCMD> cd DEVDB
ASMCMD>4.其他相關參數,可使用help查看ASMCMD [+] > help
asmcmd [-p] [command]
The environment variables ORACLE_HOME and ORACLE_SID determine the
instance to which the program connects, and ASMCMD establishes a
bequeath connection to it, in the same manner as a SQLPLUS / AS
SYSDBA. The user must be a member of the SYSDBA group.
Specifying the -p option allows the current directory to be displayed
in the command prompt, like so:
ASMCMD [+DATAFILE/ORCL/CONTROLFILE] >
[command] specifies one of the following commands, along with its
parameters.
Type "help [command]" to get help on a specific ASMCMD command.
commands:
--------
cd
find
help
ls
lsct
lsdg
mkalias
mkdir
pwd
rm
rmalias
4. 如何使用普通文件創建ASM
假如.asm文件和masm程序都放在了C:\masm\路徑下,並且文件名為my.asm 打開命令提示符,敲入 cd c:\回車 cd masm\回車 masm my.asm回車 (此時會提示生成obj文件名和生成lst文件,默認的話直接敲三個回車過去。
5. 如何用操作系統命令打開關閉ASM服務
ASM 實例的SGA包括Buffer Cache, Share Pool, Large Pool等。 需要注意的是Share Pool, 因為Extent Map 要放在這部分的內存中,需要更具數據量來估計Extent Map 的大小做相應的調整。
Extent Map 的大小可以根據所有文件大小的和來估算,使用下面的語句來計算所有文件和:
Select sum(bytes)/(1024*1024*1024) from v$datafile;
Select sum(bytes)/(1024*1024*1024) from v$logfile a, v$log b where a.Group#=b.Group#;
Select sum(bytes)/(1024*1024*1024) from v$tempfile where status='ONLINE';
這3個sum
的總和對應著資料庫存放ASM中所有文件大小總和, 對於使用External Rendancy 的磁碟組, 每100G 需要1MB
的Extent Map, 根據這個比例計算Extent Map 所需要的空間,在加上額外的2MB就可以了。 在實際工作中一般不需要考慮ASM
SGA的配置, 使用Oracle 提供的預設值就可以了。
6. pascal中有個asm命令是干什麼用的
可以在 Pascal 里使用匯編語言就需要用 asm
例如
asm
begin
jmp xxxxxx
......
end;
之類的。
7. 用dos命令如何正確打開asm文件並調試
如果是要在dos窗口顯示文件內容:
c:tasm5>type 001
如果是要用記事本打開文件:
c:tasm5>notepad 001
8. #asm("sei") ,在AVR中是什麼意思呢
表示在C語言中直接調用AVR單片機的匯編指令sei(該匯編指令的功能是置位SREG狀態寄存器中的全局中斷允許標志I,即打開全局中斷允許標志)。
我們知道現在的單片機程序開發都支持使用C語言進行設計,大大提高了程序員開發程序的效率和速度。但有時候直接在C語言中調用或者嵌入匯編指令,可以使代碼的運行效率大為提高。比如在AVR開發平台CVAVR中,就可以使用以下代碼在C語言中直接調用匯編指令sei
#asm("sei")
9. 如何查看asm磁碟下的文件內容
你是在 ASM 上用於存放Oracle 的東西吧, 10g 直接 asmcmd 命令,就可以進入到 ASM 磁碟組里,使用 ls 命令來查看。
11g RAC 需要切到 grid 帳號,然後命令 asmcmd 命令,進入到 ASM 磁碟組里,使用 ls 命令來查看。