裸设备是一个没有文件系统的磁盘或分区。一个裸设备只能包含一个文件。
备份裸设备上的文件会产生操作系统下的特定的问题。
在Linux或UNIX上的dd命令是备份到裸设备或从裸设备备份的最常用的工具。
高效地使用dd需要根据你的数据库指定正确的选项
表 STYLEREF 1 \s 28. SEQ 表 \* ARABIC \s 1 1 对于dd的使用重要的数据库的方面
|
数据 |
解释 |
|
块大小 |
可以指定dd用于拷贝数据的块的大小。例可以指定dd拷贝数据以8K或64K大小为单元。 dd需要的块的大小不需要对应于Oracle块大小或操作系统块大小。 |
|
Raw offset |
在一些系统上,在裸设备上的文件的开始被保留被操作系统使用。 这个存储空间被称为raw offset。Oralce不应该备份和还原这些字节。 |
|
Oracle数据库块0的大小 |
在每个Oracle数据库文件的开始,操作系统特定的代码占据一个Oracle块,称为block 0。 一般的Oracle代码不能识别这个块,但这个块是包含在操作系统的文件的大小中的。 尤其是这个块与文件中其它Oracle块的大小一致。 |
dd命令的选项
|
选项 |
说明 |
|
if |
输入文件,即你正在读的文件 |
|
of |
输出文件,即你写的文件 |
|
bs |
dd拷贝数据使用的缓冲区的大小 |
|
skip |
如果raw offset存在,则在输入裸设备上跳过的dd缓冲区的数量。例如备份裸设备上的文件,raw offset = 64K,dd缓冲区的大小为8K,则可以指定skip = 8,这样拷贝从偏移的64K处开始。 |
|
seek |
如果raw offset存在,则在输出裸设备上跳过的dd缓冲区的数量。 |
|
count |
在输入裸设备上dd拷贝的块的数量。当从裸设备拷贝到文件系统时最好指定准确的块的数量,否则在没有被Oracle数据文件裸volume末尾的额外空间也会被拷贝到文件系统中。 注意在输入文件的总大小中包含blcok 0。例,如果dd的块大小为8K,而且你正在备份30720KB大小的数据文件,则可以设备count = 3841。 这时会备份30728KB,多余的8KB为block 0。 |
因为裸设备可以是备份的输入设备或输出设备,所以对于备份可能有4种场景。
dd的选项是依赖于不同的场景的。
|
从哪备份 |
备份到哪 |
dd命令选项 |
|
裸设备 |
裸设备 |
if, of, bs, skip, seek, count |
|
裸设备 |
文件系统 |
if, of, bs, skip, count |
|
文件系统 |
裸设备 |
if, of, bs, seek |
|
文件系统 |
文件系统 |
if, of, bs |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1098322/ ,如需转载,请注明出处,否则将追究法律责任。