DD备份复制裸设备上的数据库Word文档下载推荐.docx

上传人:b****3 文档编号:18472952 上传时间:2022-12-17 格式:DOCX 页数:10 大小:23.94KB
下载 相关 举报
DD备份复制裸设备上的数据库Word文档下载推荐.docx_第1页
第1页 / 共10页
DD备份复制裸设备上的数据库Word文档下载推荐.docx_第2页
第2页 / 共10页
DD备份复制裸设备上的数据库Word文档下载推荐.docx_第3页
第3页 / 共10页
DD备份复制裸设备上的数据库Word文档下载推荐.docx_第4页
第4页 / 共10页
DD备份复制裸设备上的数据库Word文档下载推荐.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

DD备份复制裸设备上的数据库Word文档下载推荐.docx

《DD备份复制裸设备上的数据库Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《DD备份复制裸设备上的数据库Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。

DD备份复制裸设备上的数据库Word文档下载推荐.docx

SUNSolaris       0

HP-UX          0

IBMAIX         4k#如果是ScalableVG或带-TO参数的bigVG测为0

Tru64UNIX       64k

Linux          0

1.3dd命令

UNIX上读写裸设备不能使用cp,cpio,tar等命令,必须用dd,下面是几个dd常用参数的简单说明,更详细的信息请参考UNIX使用手册或用命令mandd。

dd[perand=value...]

if=file指定输入文件,缺省值是标准输入

of=file指定输出文件,缺省值是标准输出

bs=n设置输入和输出的块大小为n字节,也可以用“k”作单位

skip=n在拷贝之前跳过n个输入块,缺省值是0

seek=n在拷贝之前从输出文件首部跳过n块,缺省值是0

count=n指定拷贝的块数,缺省拷贝到输入文件结束

1.4对本文中示例的说明

a.所有例子中ORACLE的DB_BLOCK_SIZE都是8k

b./oradata是一文件系统目录

c./dev/rlv_data,/dev/rlv_redo和/dev/rlv_ctrl是三个RAWDEVICE,大小均为8MB(8192k)

d.在未提到操作系统时,默认是AIX,OS_RESERVED_SIZE=4K

二、移动数据文件(DATAFILE)

2.1在裸设备上建立数据文件

用以下命令建立表空间:

CREATETABLESPACEts_testDATAFILE'

SIZE8180k;

SIZE指定的数值必须小于或等于8180k,否则语句将会失败:

ORA-01119:

errorincreatingdatabasefile'

ORA-27042:

notenoughspaceonrawpartitiontofullfillrequest

这个最大值的计算方法如下:

8192k(RAWDEVICESIZE)-4k(OS_RESERVED_SIZE)-8k(DB_BLOCK_SIZE)=8180k

为什么还要减去一个DB_BLOCK_SIZE呢?

这是因为ORACLE建立DATAFILE时,在命令中SIZE指定的大小之外,还要在文件头另加一个BLOCK,叫作“OracleOSHeaderBlock”,里面保存有这个文件的逻辑块大小和文件块数等信息。

这一点并不是在RAWDEVICE上建DATAFILE特有的,如果你在文件系统上建一个DATAFILE,指定SIZE1000k的话,你用ls-l或dir命令看到的文件大小将是1008k(DB_BLOCK_SIZE=8K)。

2.2在文件系统和裸设备之间移动数据文件

2.2.1从文件系统到裸设备

a.在文件系统上建一个4M的DATAFILE

CREATETABLESPACEtestDATAFILE'

SIZE4M;

b.查看一下这个新建的DATAFILE的大小(注:

4202496=4M+8K)

$ls-l/oradata/test.dbf

-rw-r-----1oracledba4202496Aug2915:

01/oradata/test.dbf

c.按下表公式确定dd的参数

d.在数据库没有OPEN的状态下,用dd进行拷贝,下面给出命令及输出

AIX

ddif=/oradata/test.dbfof=/dev/rlv_databs=4kseek=1

1026+0recordsin

1026+0recordsout

Tru64

ddif=/oradata/test.dbfof=/dev/rlv_databs=64kseek=1

64+1recordsin

64+1recordsout

Other

$ddif=/oradata/test.dbfof=/dev/rlv_databs=1024k

4+1recordsin

4+1recordsout

2.2.2从裸设备到文件系统

从裸设备dd到文件系统时一定要指定count。

a.确定数据文件实际大小file_size,用于下一步计算dd的参数count。

如果count计算不对,拷贝出的数据文件无效,数据库无法打开。

SELECTbytes,blocks,bytes/blocksdb_block_size,bytes+bytes/blocksfile_size

FROMdba_data_filesWHEREfile_name='

BYTES   BLOCKS  DB_BLOCK_SIZE FILE_SIZE

---------------------------------------

4194304  512    8192     4202496

b.按下表公式确定dd的参数,min表示二者之中取较小的

c.在数据库没有OPEN的状态下,用dd进行拷贝,下面给出命令及输出

ddif=/dev/rlv_dataof=/oradata/test2.dbfbs=4kskip=1count=1026

ddif=/dev/rlv_dataof=/oradata/test2.dbfbs=8kskip=8count=513

513+0recordsin

513+0recordsout

ddif=/dev/rlv_dataof=/oradata/test2.dbfbs=8kcount=513

2.2.3重命名数据文件,必须进行RENAME操作

oldfilename'

newfilename'

三、移动联机重作日志(ONLINEREDOLOG)

3.1在裸设备上建ONLINEREDOLOG

用以下命令增加一组ONLINEREDOLOG:

ALTERDATABASEADDLOGFILEGROUP4'

/dev/rlv_redo'

SIZExxxxk;

在裸设备上建REDOLOG时也要计算SIZE子句可使用的最大值,方法类似于在2.1中建DATAFILE时的计算方法,唯一不同的是要把公式中的DB_BLOCK_SIZE换成REDO_BLOCK_SIZE(即REDOLOG的逻辑块大小)。

这个REDO_BLOCK_SIZE在不同操作系统上取值不同,用以下两种方法均可得到这个值,同时还可计算出REDOLOG的实际文件大小file_size):

方法1:

dump现有的REDOLOGFILE

ALTERSYSTEMDUMPLOGFILE'

/oradata/redo01.log'

SHOWPARAMETERuser_dump_dest

查看user_dump_dest目录下刚产生的trc文件:

FILEHEADER:

Softwarevsn=135294976=0x8107000,CompatibilityVsn=135290880=0x8106000

DbId=3227187598=0xc05af98e,DbName='

V817'

ControlSeq=12474=0x30ba,Filesize=8192=0x2000

FileNumber=5,Blksiz=512,FileType=2LOG

方法2:

用ORACLE提供的工具dbfsize,对文件系统和RAWDEVICE上的文件都适用

$dbfsize/oradata/redo01.log

Databasefile:

/oradata/redo01.log

Databasefiletype:

filesystem

Databasefilesize:

8192512byteblocks

从以上两个输出都可得知REDO_BLOCK_SIZE=512,blocks=8192

file_size=(blocks+1)*REDO_BLOCK_SIZE=(8192+1)*512=4194816

如果已知所在平台的REDO_BLOCK_SIZE,也可以通过查询数据字典来计算file_size:

SELECTb.member,b.bytes,b.bytes+512file_sizeFROMv$logfilea,v$logb

WHEREa.group#=b.group#anda.member='

/oradata/redo01.log'

MEMBER        BYTES   FILE_SIZE

-------------------- --------  ---------

/oradata/redo01.log  4194304  4194816

下表列出了常用OS上的ORACLEREDO_BLOCK_SIZE:

OS        REDO_BLOCK_SIZE

--------------------------------

Windows      512

SUNSolaris    512

HP-UX       1024

IBMAIX      512

CompaqTru64UNIX 1024

Linux       512

3.2在文件系统和裸设备之间移动ONLINEREDOLOG

参见2.2拷贝DATAFILE的过程,唯一不同是要把DB_BLOCK_SIZE换成REDO_BLOCK_SIZE。

另外,REDOLOG也可以不用dd进行拷贝,而采用删除重建的方法:

SELECT*FROMv$log;

--besureit'

snotcurrentandarchived

ALTERSYSTEMSWITCHLOGFILE;

--ifit'

scurrent,forceswitch

ALTERDATABASEDROPLOGFILEGROUPn;

ALTERDATABASEADDLOGFILEGROUPn'

newlogfilename'

SIZExxxxM;

 

四、移动控制文件(CONTROLFILE)

4.1在裸设备上建控制文件

ORACLE的控制文件是执行CREATEDATABASE或CREATECONTROLFILE语句时生成的,其名字是由初始化参数文件init$ORACLE_SID.ora中的control_files参数指定。

CONTROLFILE的大小不能显式指定,而且随着数据库的运行,它还会自动增长,所以为控制文件划分裸设备时要根据经验,留好足够的余量,以免不必要的麻烦。

CONTROLFILE的逻辑块大小和DB_BLOCK_SIZE相同,而且文件头部也和DATAFILE一样有一块“OracleOSHeaderBlock”。

4.2在文件系统和裸设备之间移动控制文件

4.2.1使用dd复制

拷贝CONTROLFILE的方法基本与2.2中拷贝DATAFILE相同,唯一不同是当由裸设备向文件系统拷贝时,如何确定CONTROLFILE的实际大小file_size(ORACLE数据字典里没有CONTROLFILE大小的数据)。

下面介绍两个方法:

执行完下面的SQL语句,再到user_dump_dest目录查看刚产生的trc文件

ALTERSESSIONSETEVENTS'

IMMEDIATETRACENAMECONTROLFLEVEL10'

Softwarevsn=135266304=0x8100000,CompatibilityVsn=134217728=0x8000000

DbId=1937054535=0x73751b47,DbName='

O817'

ControlSeq=5838=0x16ce,Filesize=476=0x1dc

FileNumber=0,Blksiz=8192,FileType=1CONTROL

用ORACLE提供的工具dbfsize

$dbfsize/oradata/control01.ctl

/oradata/control01.ctl

4768192byteblocks

从以上两个方法的输出结果都可得到file_size=(476+1)*8192=3907584

4.2.2使用SQL命令复制

相对于4.2.1介绍的用dd拷贝CONTROLFILE,下面用SQL语句进行复制的方法更为简洁:

STARTUPMOUNT

ALTERDATABASEBACKUPCONTROLFILETO'

newcontrolfile'

语句中newcontrolfile既可以是文件系统文件,也可以是RAWDEVICE,所以在MOUNT状态下运行这个命令就可以生成一个与现有CONTROLFILE完全相同CONTROLFILE复件。

4.2.3修改初始化参数文件(init$ORACLE_SID.ora)

无论用4.2.1还是4.2.2的方法产生了新的CONTROLFILE,为了让数据库使用新的CONTROLFILE,只要修改init$ORACLE_SID.ora里的control_files参数即可。

第二篇

试了一下DD备份复制裸设备上的数据库,并重命名重建库:

以下为步骤:

1.在原库上createpfile及生成dd命今

sql>

createpfile='

/app/oracle/product/10.2.0/db_1/dbs/inittestbk.ora'

fromspfile;

select'

ddif='

||file_name||'

f=/backup/testbk/'

||substr(file_name,20,30)||'

bs=8k'

fromdba_data_files;

selectmemberfromv$logfile;

||member||'

||substr(member,20,30)||'

fromv$logfile;

selectnamefromv$controlfile;

||name||'

||'

control0.dbf 

fromv$controlfile;

shutdownimmediate;

2.在原库上备份目标数据库控制文件

alterdatabasebackupcontrolfiletotrace;

3.dd出来裸设备上的数据文件

ddif=/app/oracle/testdb/system01.dbfof=/backup/testbk/system01.dbfbs=8k

ddif=/app/oracle/testdb/undotbs01.dbfof=/backup/testbk/undotbs01.dbfbs=8k

ddif=/app/oracle/testdb/sysaux01.dbfof=/backup/testbk/sysaux01.dbfbs=8k

ddif=/app/oracle/testdb/redo01.dbfof=/backup/testbk/redo01.dbfbs=8k

ddif=/app/oracle/testdb/redo02.dbfof=/backup/testbk/redo02.dbfbs=8k

ddif=/dev/raw/raw6of=/backup/testbk/control01.dbf 

bs=8k

ddif=/dev/raw/raw7of=/backup/testbk/control02.dbf 

4.修改inittestbk.ora

testbk.__db_cache_size=88080384

testbk.__java_pool_size=4194304

testbk.__large_pool_size=4194304

testbk.__shared_pool_size=67108864

testbk.__streams_pool_size=0

*.audit_file_dest='

/app/oracle/admin/testbk/adump'

*.background_dump_dest='

/app/oracle/admin/testbk/bdump'

*.compatible='

10.2.0.1.0'

*.control_files='

/backup/testbk/control01.dbf'

'

/backup/testbk/control02.dbf'

*.core_dump_dest='

/app/oracle/admin/testbk/cdump'

*.cursor_sharing='

EXACT'

*.db_block_size=8192

*.db_domain='

'

*.db_file_multiblock_read_count=16

*.db_name='

testbk'

*.job_queue_processes=10

*.log_archive_dest_1='

LOCATION=/arch'

*.nls_language='

SIMPLIFIEDCHINESE'

*.nls_territory='

CHINA'

*.open_cursors=300

*.pga_aggregate_target=16777216

*.processes=150

*.remote_login_passwordfile='

EXCLUSIVE'

*.sga_target=167772160

*.undo_management='

AUTO'

*.undo_tablespace='

UNDOTBS1'

*.user_dump_dest='

/app/oracle/admin/testbk/udump'

5.建密码文件:

$orapwdfile=/app/oracle/product/10.2.0/db_1/dbs/orapwtestbkpassword=oracleentries=10

6.从原库的udump拿出trace的controlfile修改以作新库重建controlfile

$exportNLS_LANG=AMERICAN_AMERICA.ZHS16GBK

$exportORACLE_SID=testbk

$sqlplus"

/assysdba"

startupnomount

ORACLEinstancestarted.

TotalSystemGlobalArea 

167772160bytes

FixedSize 

1218316bytes

VariableSize 

75499764bytes

DatabaseBuffers 

88080384bytes

RedoBuffers 

2973696bytes

CREATECONTROLFILEREUSEsetDATABASE"

TESTBK"

RESETLOGS 

ARCHIVELOG

MAXLOGFILES16

MAXLOGMEMBERS3

MAXDATAFILES100

MAXINSTANCES8

M

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 节日庆典

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1