www.2527.com_澳门新葡8455手机版_新京葡娱乐场网址_
做最好的网站

下的dd命令使用详解,Linux下哪些采用文件来模拟

2019-08-02 02:40 来源:未知

在拓展ASM的尝试中,若无多余的硬盘来做测量试验。则足以在Linux下使用文件来效仿磁盘,以供测验目标。

接纳dd命令克隆整个系统------

 

其模拟进程如下所示,摘录自《Oracle数据库主题手艺与实际事务详解-教你怎么样产生Oracle 10g OCP》一书。

原文:

###############################################

1)以root用户创立五个ASM磁盘所在的目录。

一、dd命令的解说

在cs6.5,cs7.2上设置grid11.2.0.1 和database11.2.0.1如故有标题

[root@book u01]# mkdir –p /u01/asmdisks

dd:用钦点大小的块拷贝二个文件,并在拷贝的还要开始展览点名的调换。

1.i386与i686的问题

2)通过dd命令创造6个400M轻重的文书,各个文件表示一块磁盘。

瞩目:钦命数字的地点若以下列字符结尾,则成倍相应的数字:b=512;c=1;k=1024;w=2

2.cs7.第22中学的semmni内核参数难点  已经安装了kernel.sem = 250 33000 100 128那多个值,但安装分界面不认得,只认知semmni参数名

QUOTE:
[root@book u01]# cd asmdisks
[root@book asmdisks]# dd if=/dev/zero f=asm_disk1 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk2 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk3 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk4 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk5 bs=1024k count=400
[root@book asmdisks]# dd if=/dev/zero f=asm_disk6 bs=1024k count=400

参数注释:

 

3)将这个文件与裸设备关联。

  1. if=文件名:输入文件名,缺省为标准输入。即钦赐源文件。< if=input file >

  2. of=文件名:输出文件名,缺省为正规输出。即钦命目标文件。< of=output file >

  3. ibs=bytes:一遍读入bytes个字节,即钦赐二个块大小为bytes个字节。

所以选拔cs5.5老版本

QUOTE:
[root@book asmdisks]# chmod 777 asm_disk*
[root@book asmdisks]# losetup /dev/loop1 asm_disk1
[root@book asmdisks]# losetup /dev/loop2 asm_disk2
[root@book asmdisks]# losetup /dev/loop3 asm_disk3
[root@book asmdisks]# losetup /dev/loop4 asm_disk4
[root@book asmdisks]# losetup /dev/loop5 asm_disk5
[root@book asmdisks]# losetup /dev/loop6 asm_disk6
[root@book asmdisks]# raw /dev/raw/raw1 /dev/loop1
[root@book asmdisks]# raw /dev/raw/raw2 /dev/loop2
[root@book asmdisks]# raw /dev/raw/raw3 /dev/loop3
[root@book asmdisks]# raw /dev/raw/raw4 /dev/loop4
[root@book asmdisks]# raw /dev/raw/raw5 /dev/loop5
[root@book asmdisks]# raw /dev/raw/raw6 /dev/loop6
[root@book asmdisks]# chown oracle:dba /dev/raw/raw1
[root@book asmdisks]# chown oracle:dba /dev/raw/raw2
[root@book asmdisks]# chown oracle:dba /dev/raw/raw3
[root@book asmdisks]# chown oracle:dba /dev/raw/raw4
[root@book asmdisks]# chown oracle:dba /dev/raw/raw5
[root@book asmdisks]# chown oracle:dba /dev/raw/raw6

    obs=bytes:贰次输出bytes个字节,即钦命一个块大小为bytes个字节。

CRS-4664: Node oracle successfully pinned.
Adding daemon to inittab
CRS-4123: Oracle High Availability Services has been started.
ohasd is starting
ADVM/ACFS is not supported on centos-release-7-2.1511.el7.centos.2.10.x86_64

瞩目:假若要刨除通过dd模拟出的杜撰磁盘文件的话,直接删除模拟出的磁盘文件(也正是asm_disk1、asm_disk2…asm_disk6)还远远不够,还必须实行losetup -d /dev/loopN,在此间N从1到6。不然,磁盘文件所占用的磁盘空间不能够释放。

    bs=bytes:同期设置读入/输出的块大小为bytes个字节。

   ADVM/ACFS is not supported on centos-release-5-8.el5.centos

新京葡娱乐场网址 1

  1. cbs=bytes:一遍转换bytes个字节,即钦命调换缓冲区大小。

  2. skip=blocks:从输入文件开端跳过blocks个块后再开头复制。

  3. seek=blocks:从出口文件开头跳过blocks个块后再初阶复制。

从Oracle11.2初步,ASM不唯有是二个磁盘组,他还提供了然二个卷管理器,称为ADVM(asm dynamic volume manager)。ADVM向用户提供卷管理服务,并提供标准的磁盘设备驱动程序。利用ADVM,能够在卷组中创建叁个或三个卷,种种卷对应操作系统中的 贰个设施文件,这么些卷是足以动态扩张的,就好像操作系统中的卷恐怕利用第三方软件创造的卷同样,应用程序也足以对ADVM卷中的数据实行读写操作。
在 ADVM卷中能够制造ACFS文件系统,ACFS是一种跨平台的、可扩充的集群众文化艺术件系统,七个节点能够并且做客asfs中的文件。ACFS不仅能够作为 oracle数据库软件的设置路线,还足以用来积存数据库中的警告文件和追踪文件,还足以积攒诸如录像、声音、图像、文本等品种的文本。

在意:经常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才使得。

而是在CentOS5.8方面安装rac的时候,却开采ADVM/ACFS is not supported on centos-release-5-8.el5.centos(一样适用于单机景况的asm安装,在设置grid的结尾推行root.sh的时候出现的。)

  1. count=blocks:仅拷贝blocks个块,块大小相等ibs钦定的字节数。

  2. conv=conversion:用钦点的参数转变文件。

 

    ascii:转换ebcdic为ascii

 ADVM/ACFS is not supported on centos-release-5-5.el5.centos 消除格局

     ebcdic:转换ascii为ebcdic

centOS 5.5 安装 ORACLE 11G RAC 难点汇总

 

########################################################

oracle grid infrastrucure    GI

提供了机动重启作用和asm成效

1、下载linux.x64_11gR2_grid.zip

2、上传到指标机上的独自目录
mkdir /mnt
chmod -R 777 oracle
cd /mnt;ls
cksum linux.x64_11gR2_grid.zip

unzip linux.x64_11gR2_grid.zip

3、在设想机里加多两块20g硬盘做asm,centos5.8,2G内部存款和储蓄器

 

4、情状计划

vi  /etc/security/limits.conf
#for oracle
oracle          soft    nproc  2048
oracle          hard    nproc  16384
oracle          soft    nofile 2048
oracle          hard    nofile 65536
oracle          soft    stack  10240
oracle          hard    stack  32768
#for grid
grid            soft    nproc  2048
grid            hard    nproc  16384
grid            soft    nofile 2048
grid            hard    nofile 65536
grid            soft    stack  10240
grid            hard    stack  32768

 

vi /etc/security/limits.d/90-nproc.conf
*          soft    nproc     1024
将地方改为
*          -    nproc     16384

vi /etc/hosts

#public ip
192.168.30.31   rac01
192.168.30.41    rac02

#private ip
10.10.10.31    rac01prv
10.10.10.32    rac02prv

#vip
192.168.30.32    rac01vip
192.168.30.42    rac01vip

#scanip
192.168.30.50    scanip

vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

下边五个参数暗中同意是一些,在cs6.8desktop中,所以不须求设置了

kernel.shmall = 2097152
kernel.shmmax = 4294967295

sysctl -p

创制用户和组
oracle
grid

oracle restart oracle asm
(grid软件的多少个职能1 ASM 2 restart)
grid软件便是一定于贰个单机版的集结,当你的系统重启的时候数据库会自行跟着运营。那个软件在oracle里面要求求装。

首先做2个用户:oracle和grid
建立5个组:
1数据库软件组dba(管理数据库)和oper
2grid软件组asmadmin(管理ASM),asmdba(能够访问ASM)和asmoper
在oracle组中的用户所负有的权力各区别样,何况极度严谨。

用户及组管理
groupadd -g 501 oinstall
groupadd -g 502 dba
groupadd -g 503 oper
groupadd -g 504 asmadmin
groupadd -g 505 asmdba
groupadd -g 506 asmoper
useradd -g oinstall -G asmadmin,asmdba,asmoper,oper,dba grid
useradd -g oinstall -G dba,asmdba,oper oracle

usermod -g oinstall -G dba,asmdba,oper oracle
passwd oracle
passwd grid
id oracle
id grid 

创设安装目录
mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01
mkdir -p /u01/app/oracle/product/11.2.0/grid
chown -R grid:oinstall /u01/app/oracle/product/11.2.0/grid
chmod -R 775 /u01

 

上边包车型客车这种拍卖措施

mkdir -p /oracle/app/grid
mkdir -p /oracle/app/11.2.0/grid
chown -R grid:oinstall /oracle

mkdir -p /oracle/app/oraInventory
chown -R grid:oinstall /oracle/app/oraInventory

mkdir -p /oracle/app/oracle
mkdir -p /oracle/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /oracle/app/oracle/

chmod -R 775 /oracle/

 

目录管理

此处需表达有个别,比较多时候,Grid Infrastructure安装中冒出难题,都和 grid与oracle的目录以及用户组混乱产生。
为了制止混乱,对grid用户的ORACLE_BASE目录,设置为/u02/app/grid

mkdir -p /u02/app/oracle/product/11.2.0/grid
chown -R grid:oinstall /u02
chmod -R 775 /u02

mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
chown -R oracle:oinstall /u01
chmod -R 775 /u01

设置用户情况变量
oracle 和grid 四个用户都要配备。
vi /home/oracle/.bash_profile
加入:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID=orcl  (数据库实例的名字)
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1  (oracle软件的安装目录)
export PATH=$PATH:$ORACLE_HOME/bin

vi /home/grid/.bash_profile
加入:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_SID= ASM  (asm实例名)
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/grid  (grid安装目录)
export PATH=$PATH:$ORACLE_HOME/bin

 

5、安装asm
下载包并设置:本来有七个包,在cs6下官方网站唯有八个包,其余一个包叫kmod-oracleasm

yum install kmod-oracleasm

rpm -ivh oracleasm*

 

=====================================
rpm -ivh http://mirror.symnds.com/distributions/CentOS-vault/6.7/os/x86_64/Packages/compat-libcap1-1.10-1.x86_64.rpm
yum install kmod-oracleasm -y
rpm -ivh oracleasm*
fdisk /dev/sdb
n,p,1,w
/etc/init.d/oracleasm configure
grid,asmadmin,y,y
/etc/init.d/oracleasm createdisk crs /dev/sdb1
/etc/init.d/oracleasm createdisk data1 /dev/sdc1
/etc/init.d/oracleasm createdisk data2 /dev/sdd1
/etc/init.d/oracleasm createdisk fra /dev/sde1
oracleasm listdisks

mkfs.ext4 /dev/sdd1
===================================

 

 

分区以前增加的两块盘,然后初步化
/etc/init.d/oracleasm configure
grid
oinstall
y
y

 

oracle user login

unzip p13390677_112040_Linux-x86-64_1of7.zip
unzip p13390677_112040_Linux-x86-64_2of7.zip
cd database/
./runInstaller

 

su -

2g到16g内部存款和储蓄器的话,swap空间卓殊内存大小,16G以上,等于内部存款和储蓄器大小

grep SwapTotal /proc/meminfo

dd if=/dev/zero of=swapfile bs=1M count=1024
mkswap swapfile
swapon swapfile
free

vi /etc/fstab

/root/swapfile swap swap defaults 0 0
yum install gcc
yum install libaio-devel
yum install elfutils-libelf-devel
yum install gcc-c
yum install compat-libstdc -33
rpm -qa|grep ksh
rpm -ivh

 

rpm -ivh

yum install rlwrap

rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install rlwrap
有时会报下面这个错,
[Errno -1] repomd.xml does not match metalink for epel Trying other mirror.
这时有两个解决办法,
一是直接下载下面的文件,但有可能在linux下用wget与curl报404错误,这时,在图形界面下的浏览器直接可以下载,然后传到服务器上,再rpm -ivh 就可以了
http://mirrors.sohu.com/fedora-epel/6Server/x86_64/rlwrap-0.42-1.el6.x86_64.rpm
二是修改epel.repo文件,将mirrors行注释,启用baseurl行,也能下
2016年10月29日 星期六 18时45分45秒 才解决,花了大约一个小时解决这个小问题,唉,太坑了

新京葡娱乐场网址, 

grid need to install follow packages,and oracle might not need to install it.

rpm -ivh

 

 

yum install kmod-oracleasm
rpm -ivh oracleasm*
mount /dev/sr0 /media
rpm -ivh /media/Packages/compat-libcap1-1.10-1.x86_64.rpm
rpm -ivh
yum install gcc
yum install libaio-devel
yum install elfutils-libelf-devel
yum install gcc-c
yum install compat-libstdc -33
要么上边一条命令
yum install gcc libaio-devel elfutils-libelf-devel gcc-c compat-libstdc -33

 

 

 

 编辑文件 vi /etc/pam.d/login,添加如下行(11gR1有要求,R2没有要求):

session required pam_limits.so

 编辑 vi /etc/profile 文件,添加如下行(11gR1有要求,R2没有要求):


if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi


该配置在用户oracle登录时会立即生效,如果当前 oracle 用户已经登录可退出后重新登录使之生效。

 

/etc/init.d/oracleasm configure
grid
asmadmin
y
y

只在八个节点上创培养能够了,另贰个围观一下就足以了
/etc/init.d/oracleasm createdisk rac /dev/mapper/mpathbp1
/etc/init.d/oracleasm deletedisk rac
oracleasm scandisks
oracleasm listdisks 

6、用grid用户设置
用grid登录
./runInstaller
出现分界面选第二个,单机
大概不出新asm磁盘,首先前边的情形设置先做好,其次能够更动路径/dev/oracleasm/disks.
high 有三份一样的数额
normal 有两份一样的多寡
external 未有冗余

硬盘30G,swap10G,不然这里检查评定标准时会出标题。

设置正视包,上边这一个包绝对要安装,假如不提前装好,会油可是生上面包车型地铁难点

[root@oracle Packages]# rpm -ivh compat-libcap1-1.10-1.x86_64.rpm
Preparing... ########################################### [100%]
1:compat-libcap1 ########################################### [100%]
[root@oracle Packages]# pwd
/media/cdrom/Packages

经过为,之前并未有装包---》报错后基于报错安装这几个包---》再一次运营脚本会报下面包车型客车错---》依据提示依然报错(加-deconfig -force参数)---》所以最棒提前装好

 

[root@rac1 11.2.0]# /g01/oraInventory/orainstRoot.sh
Changing permissions of /g01/oraInventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.

Changing groupname of /g01/oraInventory to oinstall.
The execution of the script is complete.


[root@rac1 11.2.0]# /g01/app/11.2.0/grid/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /g01/app/11.2.0/grid


Enter the full pathname of the local bin directory: [/usr/local/bin]: 
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2013-10-10 03:41:35: Parsing the host name
2013-10-10 03:41:35: Checking for super user privileges
2013-10-10 03:41:35: User has super user privileges
Using configuration parameter file: /g01/app/11.2.0/grid/crs/install/crsconfig_params
Creating trace directory
/g01/app/11.2.0/grid/bin/clscfg.bin: error while loading shared libraries: libcap.so.1: cannot open shared object file: No such file or directory
Failed to create keys in the OLR, rc = 127, 32512
OLR configuration failed

 

其次次实施root.sh时,出现下边包车型地铁报错。

/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose

[root@oracle Packages]# /u02/app/grid/product/11.2.0/grid/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= grid
    ORACLE_HOME=  /u02/app/grid/product/11.2.0/grid

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying dbhome to /usr/local/bin ...
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying oraenv to /usr/local/bin ...
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: y
   Copying coraenv to /usr/local/bin ...

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
2016-09-02 11:39:34: Checking for super user privileges
2016-09-02 11:39:34: User has super user privileges
2016-09-02 11:39:34: Parsing the host name
Using configuration parameter file: /u02/app/grid/product/11.2.0/grid/crs/install/crsconfig_params
Improper Oracle Clusterware configuration found on this host
Deconfigure the existing cluster configuration before starting
to configure a new Clusterware
run '/u02/app/grid/product/11.2.0/grid/crs/install/rootcrs.pl -deconfig'
to configure existing failed configuration and then rerun root.sh
[root@oracle Packages]#

 

 

能够忽略i386的包

  root用户下
  1、以文件系统扩充(以下是以追加512M的文件系统为例)
  dd if=/dev/zero of=/home/oracle/myswaps/swapfile1 bs=1M count=512
  注:of前边的渠道绝不但是/dev下,否则在激活swap文件时报参数无效
  2、创建swap文件
  mkswap /home/oracle/myswaps/swapfile1
  3、激活swap文件
  swapon /home/oracle/myswaps/swapfile1
  4、此时用free -m就足以看出swap空间已经增添了,不过重启后就不会设有了
  5、增添重启后还只怕会立见功能,vi /etc/fstab增多如下内容:
  /home/oracle/myswaps/swapfile1 swap swap defaults 0 0 

 

 

实践三个剧本,并设置到位后

留神:如果在此以前安装过gi,在实施root.sh的时候要求删除此前的配置音信:命令如下:
/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose

CRS-4124: Oracle High Availability Services startup failed.
CRS-4000: Command Start failed, or completed with errors.
ohasd failed to start: Inappropriate ioctl for device
ohasd failed to start at/u01/app/11.2.0/grid/crs/install/rootcrs.pl line

  1. 第贰次安装11gENCORE2 RAC的时候就碰见了那些11.0.2.1的精彩难点,上网一查才驾驭这是个oracle bug,

实际能够仿效:

化解办法也很简短,
固然在奉行root.sh之前实行以下命令
/bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
若是出现
/bin/dd: opening`/var/tmp/.oracle/npohasd': No such file or directory
的时候文件还没生成就继续推行,直到能举办达成,一般出现Adding daemon to inittab那条音讯的时候实行dd命令。
除此以外还有一种缓慢解决方法就是改换文件权限
chown root:oinstall /var/tmp/.oracle/npohasd
重复奉行root.sh在此之前别忘了删除配置:/u01/app/11.2.0/grid/crs/install/roothas.pl -deconfig -force -verbose

 

接下去验证一下

ps -ef|grep asm
su - grid
sqlplus / as sysasm
select status from v$instance

 

 

由于在设置GI的时候只好创造一个磁盘组,即使急需充实磁盘组的话,在GI安装实现后,使用ASMCA命令增添磁盘组。

 

grid安装到位后,重启操作系统,运转ASM实例报错如下:

[grid@oragrid ~]$ sqlplus / as sysasm
SQL*Plus: Release 11.2.0.4.0 Production on Sun Jun 7 16:21:31 2015
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-01078: failure in processing system parameters
ORA-29701: unable to connect to Cluster Synchronization Service
[grid@oragrid ~]$ crsctl check css
CRS-4639: Could not contact Oracle High Availability Services
CRS-4000: Command Check failed, or completed with errors.
[grid@oragrid ~]$ crsctl check has
CRS-4639: Could not contact Oracle High Availability Services



第一种方法:

切换到root用户执行启动init.ohasd
[root@oragrid ~]# /etc/init.d/init.ohasd run &

再切换到grid用户check,可能有点慢,等一会就会online
[grid@oragrid ~]$ crsctl check has
CRS-4638: Oracle High Availability Services is online
[grid@oragrid ~]$ crsctl check css
CRS-4529: Cluster Synchronization Services is online
[grid@oragrid ~]$ crsctl stat resource -t -init
--------------------------------------------------------------------------------
NAME           TARGET  STATE        SERVER                   STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  OFFLINE      oragrid
ora.LISTENER.lsnr
               ONLINE  OFFLINE      oragrid                  STARTING
ora.asm
               ONLINE  OFFLINE      oragrid                  Instance Shutdown
ora.ons
               OFFLINE OFFLINE      oragrid
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  OFFLINE
ora.diskmon
      1        OFFLINE OFFLINE
ora.evmd
      1        ONLINE  OFFLINE                               STARTING

原来是开机启动的init.ohasd没有起作用,重新启动一次就好了。



直接杀掉该进程,会自动重新生成一个。 
[root@oragrid ~]# ps -ef | grep init.ohasd
root       972     1  0 22:01 ?        00:00:00 /bin/sh /etc/init.d/init.ohasd run
root      2474  2450  0 22:04 pts/0    00:00:00 grep init.ohasd
[root@oragrid ~]# kill -9 972
[root@oragrid ~]# ps -ef | grep init.ohasd
root      2538     1  0 22:05 ?        00:00:00 /bin/sh /etc/init.d/init.ohasd run
root      2638  2450  0 22:05 pts/0    00:00:00 grep init.ohasd


[root@oragrid ~]# su - grid
[grid@oragrid ~]$ crsctl check has
CRS-4638: Oracle High Availability Services is online
[grid@oragrid ~]$  crsctl check css
CRS-4529: Cluster Synchronization Services is online
[grid@oragrid ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    oragrid
ora....ER.lsnr ora....er.type ONLINE    ONLINE    oragrid
ora.asm        ora.asm.type   ONLINE    ONLINE    oragrid
ora.cssd       ora.cssd.type  ONLINE    ONLINE    oragrid
ora.diskmon    ora....on.type OFFLINE   OFFLINE
ora.evmd       ora.evm.type   ONLINE    ONLINE    oragrid
ora.ons        ora.ons.type   OFFLINE   OFFLINE

再进入sqlplus就可以看到ASM实例已经启动了。但是每次操作系统重启都会出现这个问题,上述方法治标不治本,且没有找到最终的原因,请教高手解决。





第二种方法:

在网上找到这篇文章,http://blog.csdn.net/tianlesoftware/article/details/8207629,说这个问题是11.2.0.1的bug,但是我现在安装的版本是11.2.0.4,使用这篇文章的解决办法,在root用户下执行下面的命令:
[root@oragrid ~]# /bin/dd if=/var/tmp/.oracle/npohasd of=/dev/null bs=1024 count=1
^C0 0 records in
0 0 records out
0 bytes (0 B) copied, 13.6369 s, 0.0 kB/s
然后在grid用户下查看has和css状态,可以看到已经启动了
[grid@oragrid ~]$ crsctl check has
CRS-4638: Oracle High Availability Services is online
[grid@oragrid ~]$ crsctl check css
CRS-4529: Cluster Synchronization Services is online
[grid@oragrid ~]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    oragrid
ora.FRA.dg     ora....up.type ONLINE    ONLINE    oragrid
ora....ER.lsnr ora....er.type ONLINE    ONLINE    oragrid
ora.asm        ora.asm.type   ONLINE    ONLINE    oragrid
ora.cssd       ora.cssd.type  ONLINE    ONLINE    oragrid
ora.diskmon    ora....on.type OFFLINE   OFFLINE
ora.evmd       ora.evm.type   ONLINE    ONLINE    oragrid
ora.ons        ora.ons.type   OFFLINE   OFFLINE
ora.stone.db   ora....se.type OFFLINE   OFFLINE
居然这个方法管用,但是系统重启后问题依旧,难道这个bug在11.2.0.4还存在吗?

 

 

以grid用户安装grid完毕后。
接下去,以oracle用户的身份,安装oracle数据库。

    ibm:转换ascii为alternate ebcdic

    block:把每一行调换为长度为cbs,不足部分用空格填充

    unblock:使每一行的长短都为cbs,不足部分用空格填充

    lcase:把大写字符调换为小写字符

    ucase:把小写字符转变为大写字符

    swab:交流输入的每对字节

     noerror:出错开上下班时间不甘休

     notrunc:不截短输出文件

    sync:将各类输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

二、dd应用实例

1.将地点的/dev/hdb整盘备份到/dev/hdd

#dd if=/dev/hdb of=/dev/hdd

2.将/dev/hdb截然数据备份到钦赐路径的image文件

#dd if=/dev/hdb of=/root/image

3.将备份文件恢复生机到钦点盘

#dd if=/root/image of=/dev/hdb

4.备份/dev/hdb全盘数据,并行使gzip工具举行削减,保存到钦点路径

#dd if=/dev/hdb | gzip > /root/image.gz

5.将精减的备份文件苏醒到钦赐盘

#gzip -dc /root/image.gz | dd of=/dev/hdb

6.备份与还原MB本田UR-V

备份磁盘开首的5拾一个字节大小的MB昂科威音信到钦定文件:

#dd if=/dev/hda of=/root/image count=1 bs=512

   count=1指仅拷贝贰个块;bs=512指块大小为511个字节。

恢复:

#dd if=/root/image of=/dev/had

将备份的MBLacrosse音信写到磁盘初阶某个

7.备份软盘

#dd if=/dev/fd0 of=disk.img count=1 bs=1440k (即块大小为1.44M)

8.拷贝内部存款和储蓄器内容到硬盘

#dd if=/dev/mem of=/root/mem.bin bs=1024 (钦点块大小为1k)  

9.拷贝光盘内容到钦点文件夹,并保留为cd.iso文件

#dd if=/dev/cdrom(hdc) of=/root/cd.iso

10.扩张swap分区文件大小

先是步:创造一个轻重缓急为256M的公文:

#dd if=/dev/zero of=/swapfile bs=1024 count=262144

其次步:把那几个文件变成swap文件:

#mkswap /swapfile

其三步:启用那些swap文件:

#swapon /swapfile

第四步:编辑/etc/fstab文件,使在历次开机时自动加载swap文件:

/swapfile    swap    swap    default   0 0

11.销毁磁盘数据

#dd if=/dev/urandom of=/dev/hda1

注意:利用放肆的多少填充硬盘,在一些须求的地方能够用来销毁数据。

12.测量检验硬盘的读写速度

#dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

#dd if=/root/1Gb.file bs=64k | dd of=/dev/null

透过上述七个指令输出的授命推行时间,能够总括出硬盘的读、写速度。

13.规定硬盘的最好块大小:

#dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

#dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

#dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

#dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

经过相比较以上命令输出中所展现的授命实行时间,就可以显明系统最棒的块大小。

14.修复硬盘:

#dd if=/dev/sda of=/dev/sda 或dd if=/dev/hda of=/dev/hda

当硬盘较长时间(一年以上)放置不行使后,磁盘上会发生magnetic flux point,当磁头读到这么些区域时会境遇困难,并大概导致I/O错误。当这种情形影响到硬盘的率先个扇区时,可能形成硬盘报销。上边包车型地铁指令有希望使那么些数 据起死回生。而且那一个进度是平安、高效的。

15.选用netcat远程备份

#dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234

在源主机上实行此命令备份/dev/hda

#netcat -l -p 1234 | dd of=/dev/hdc bs=16065b

在目标主机上进行此命令来接收数据并写入/dev/hdc

#netcat -l -p 1234 | bzip2 > partition.img

#netcat -l -p 1234 | gzip > partition.img

以上两条指令是目标主机指令的变型分别选拔bzip2、gzip对数据开始展览削减,并将备份文件保存在当前目录。

16.将贰个大摄像文件的第i个字节的值改成0x41(大写字母A的ASCII值)

#echo A | dd of=bigfile seek=$i bs=1 count=1 conv=notrunc

17.起家linux虚构盘,用文件模拟磁盘

在进展linux的推行中,若无剩余的硬盘来做测验。则能够在linux下利用文件来模拟磁盘,以供测量检验目标。

其模拟进程如下所示,摘录自《Oracle数据库焦点本领与实务详解-教你什么样成为Oracle 10g OCP》一书。

1)以root用户成立二个ASM磁盘所在的目录。

# mkdir –p /u01/asmdisks

2)通过dd命令创造6个400M大大小小的文书,每一种文件表示一块磁盘。

[root@book u01]# cd asmdisks

[root@book asmdisks]# dd if=/dev/zero of=asm_disk1 bs=1024k count=400

[root@book asmdisks]# dd if=/dev/zero of=asm_disk2 bs=1024k count=400

[root@book asmdisks]# dd if=/dev/zero of=asm_disk3 bs=1024k count=400

[root@book asmdisks]# dd if=/dev/zero of=asm_disk4 bs=1024k count=400

[root@book asmdisks]# dd if=/dev/zero of=asm_disk5 bs=1024k count=400

[root@book asmdisks]# dd if=/dev/zero of=asm_disk6 bs=1024k count=400

3)将这几个文件与裸设备关联。

[root@book asmdisks]# chmod 777 asm_disk*

[root@book asmdisks]# losetup /dev/loop1 asm_disk1

[root@book asmdisks]# losetup /dev/loop2 asm_disk2

[root@book asmdisks]# losetup /dev/loop3 asm_disk3

[root@book asmdisks]# losetup /dev/loop4 asm_disk4

[root@book asmdisks]# losetup /dev/loop5 asm_disk5

[root@book asmdisks]# losetup /dev/loop6 asm_disk6

只顾:固然要删减通过dd模拟出的虚拟磁盘文件的话,直接删除模拟出的磁盘文件

(也就是asm_disk1、asm_disk2…asm_disk6)还缺乏,还必须进行losetup -d /dev/loopN,在那边N从1到6。不然,磁盘文件所占用的磁盘空间不可能自由

三、/dev/null和/dev/zero的区别

/dev/null,小名字为无底洞,你可以向它输出任何数据,它通吃,何况不会撑着!

/dev/zero,是三个输入设备,你可您用它来开端化文件。该设施无穷尽地提供0,能够使用别的你必要的数码——设备提供的要多的多。他得以用于向设备或文件写入字符串0。

/dev/null------它是空设备,也称之为位桶(bit bucket)。任何写入它的出口都会被屏弃。假如不想让消息以标准输出展现或写入文件,那么可以将音信重定向到位桶。

#if=/dev/zero of=./test.txt bs=1k count=1
#ls –l

total 4
-rw-r--r--    1 oracle   dba          1024 Jul 15 16:56 test.txt

#find / -name access_log  2>/dev/null

3.1使用/dev/null 

把/dev/null看作"黑洞", 它等价于一个只写文件,全数写入它的剧情都团体带头人久错过.,而品尝从它那儿读取内容则什么也读不到。然则, /dev/null对命令行松阳衡阳花鼓戏本都特其他卓有成效

明令禁止标准输出

#cat $filename >/dev/null

文本内容不见,而不会输出到专门的工作输出.

不准规范错误

#rm $badname 2>/dev/null

这么错误音讯[标准错误]就被丢到印度洋去了

禁止标准输出和正规错误的出口

#cat $filename 2>/dev/null >/dev/null

假诺"filename"一纸空文,将不会有其余错误音讯提醒;即便"filename"不设有,将不会有别的错误音讯提醒;假使"filename"存在, 文件的剧情不会打字与印刷到专门的学业输出。

就此,上面的代码根本不会输出任何音讯。当只想测量试验命令的退出码而不想有任何输出时非常实用。

#cat $filename &>/dev/null

如此那般其实也得以, 由 Baris Cicek 提出

自动清空日志文件的内容

Deleting contents of a file, but preserving the file itself, with all attendant permissions (from Example 2-1 and Example 2-3): 

#cat /dev/null > /var/log/messages
#  : > /var/log/messages   有一样的意义, 但不会发出新的进度.(因为:是内建的)
#cat /dev/null > /var/log/wtmp

特意符合管理这个由买卖Web站点发送的不喜欢的"cookies"

掩盖cookie而不再动用

#if [ -f ~/.netscape/cookies ]  # 要是存在则删除.
#then
#rm -f ~/.netscape/cookies
#fi
#ln -s /dev/null ~/.netscape/cookies

近期有着的cookies都会丢入黑洞而不会保留在磁盘上了.

3.2使用/dev/zero

像/dev/null同样, /dev/zero也是一个伪文件, 但它实际发生接二连三不停的null的流(二进制的零流,并不是ASCII型的)。 写入它的输出会抛弃不见, 而从/dev/zero读出成千上万的null也正如勤奋, 即使那也能透过od或叁个十六进制编辑器来成功。 /dev/zero首要的用途是用来创立三个点名长度用于开首化的空文件,就疑似最近沟通文件

用/dev/zero创设二个沟通不经常文件

#!/bin/bash

  # 创制一个换到文件.

  ROOT_UID=0 # Root 用户的 $UID 是 0.

  E_WRONG_USER=65 # 不是 root?

  FILE=/swap

  BLOCKSIZE=1024

  MINBLOCKS=40

  SUCCESS=0

  # 那么些剧本必须用root来运转.

  if [ "UID"−ne"UID"−ne"ROOT_UID" ]

   then

   echo; echo "You must be root to run this script."; echo

   exit $E_WRONG_USER

  fi

  blocks={1:-{1:-MINBLOCKS} # 假设命令行未有一点点名,

  # 则设置为暗中同意的40块.

  # 上面那句等同如:

  # --------------------------------------------------

  # if [ -n "$1" ]

  # then

  # blocks=$1

  # else

  # blocks=$MINBLOCKS

  # fi

  # --------------------------------------------------

 if [ "blocks"−ltblocks"−ltMINBLOCKS ]

 then

 blocks=$MINBLOCKS # 最少要有 40 个块长.

 fi

 echo "Creating swap file of size $blocks blocks (KB)."

 dd if=/dev/zero of=FILEbs=FILEbs=BLOCKSIZE count=$blocks # 把零写入文件.

 mkswap FILEFILEblocks # 将此文件建为调换文件(或称沟通分区).

 swapon $FILE # 激活交换文件.

 echo "Swap file created and activated."

 exit $SUCCESS 

关于 /dev/zero 的另二个施用是为特定的目标而用零去填充贰个钦命大小的公文, 如挂载叁个文件系统到环回设备 (loopback device)或"安全地" 删除贰个文书

事例创制ramdisk

#!/bin/bash

 # ramdisk.sh

 # "ramdisk"是系统RAM内部存款和储蓄器的一段,

 # 它能够被当成是贰个文件系统来操作.

 # 它的亮点是存取速度十分的快 (饱含读和写).

 # 短处: 易失性, 当计算机重启或关机时会吐弃数据.

 # 会减弱系统可用的RAM.

 # 10 # 那么ramdisk有怎么着作用呢?

 # 保存三个异常的大的数目集在ramdisk, 比方一张表或字典,

 # 那样能够加速数据查询, 因为在内部存款和储蓄器里查找比在磁盘里找找快得多.

  E_NON_ROOT_USER=70 # 必须用root来运行.

  ROOTUSER_NAME=root

  MOUNTPT=/mnt/ramdisk

  SIZE=2000 # 2K 个块 (能够适合的数量的做修改)

  BLOCKSIZE=1024 # 每块有1K (1024 byte) 的大小

  DEVICE=/dev/ram0 # 第一个 ram 设备

  username=`id -nu`

  if [ "username"!="username"!="ROOTUSER_NAME" ]

  then

    echo "Must be root to run "`basename $0`"."

    exit $E_NON_ROOT_USER

  fi

   if [ ! -d "$MOUNTPT" ] # 测量检验挂载点是还是不是已经存在了,

  then # 如若那么些脚本早就运维了几许次了就不会再建那些目录了

    mkdir $MOUNTPT # 因为后边已经济建设立了.

  fi

  dd if=/dev/zero of=DEVICEcount=DEVICEcount=SIZE bs=$BLOCKSIZE

   # 把RAM设备的源委用零填充.                                              

   # 为啥要求如此做?

  mke2fs $DEVICE # 在RAM设备上成立贰个ext2文件系统.

  mount DEVICEDEVICEMOUNTPT # 挂载设备.

  chmod 777 $MOUNTPT # 使普通用户也足以存取那些ramdisk.

  # 不过, 只可以由root来缷载它.

  echo ""$MOUNTPT" now available for use."

 # 将来 ramdisk 纵然普通用户也得以用来存取文件了.

 # 注意, ramdisk是易失的, 所以当Computer连串重启或关机时ramdisk里的原委会消失.

 # 拷贝全数你想保留文件到三个例行的磁盘目录下.

 # 重启之后, 运营那么些本子再度成立起一个 ramdisk.

 # 仅重新加载 /mnt/ramdisk 而未有其余的步调将不会不错职业.

 # 假设加以勘误, 那一个剧本能够投身 /etc/rc.d/rc.local,

 # 以使系统运行时能自动设立叁个ramdisk.

 # 那样很贴切速度须要高的数据库服务器.

 exit 0

TAG标签:
版权声明:本文由澳门新葡8455手机版发布于新京葡娱乐场网址,转载请注明出处:下的dd命令使用详解,Linux下哪些采用文件来模拟