Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

18

积分

1

好友

18

主题
1#
发表于 2013-8-17 11:10:35 | 查看: 1968| 回复: 0
Oracle数据库安装时支持文件系统、裸设备、ASM等存储方式。裸设备是指未创建文件系统的磁盘分区或逻辑卷,应用
程序直接通过字符设备驱动器对它进行访问。由于对裸设备的操作跳过了UNIX的缓存,数据在Oracle的data buffer
cache和磁盘之间直接传递,所以裸设备能提高I/O性能。另外在Oracle RAC等环境下,多个节点同时访问一个数据库,
所以控制文件、redo log、数据文件等必须搭建在裸设备之上。

UNIX下读写裸设备不适用cp、tar等文件系统的命令,而是适用dd,适用dd可以在linux、AIX等UNIX系统下实现数据文件
和裸设备的双向复制。

rawdb是我linux系统下的一个裸设备数据库,下面我把users表空间的裸设备数据文件复制为文件系统数据文件,然后用文件系统的数据文件
重新打开数据库.

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oracle/oradata/rawdb/system01.dbf
/oracle/oradata/rawdb/undo01.dbf
/oracle/oradata/rawdb/sysaux01.dbf
/oracle/oradata/rawdb/users01.dbf

SQL> ! ls -l /oracle/oradata/rawdb/
鎬荤敤閲?40
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 control01.ctl -> /dev/raw/raw2
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 control02.ctl -> /dev/raw/raw3
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 redo01.log -> /dev/raw/raw4
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 redo02.log -> /dev/raw/raw5
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 spfile -> /dev/raw/raw1
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 sysaux01.dbf -> /dev/raw/raw7
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 system01.dbf -> /dev/raw/raw6
lrwxrwxrwx  1 oracle oinstall 14  8鏈?16 10:58 temp01.dbf -> /dev/raw/raw10
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 undo01.dbf -> /dev/raw/raw9
lrwxrwxrwx  1 oracle oinstall 13  8鏈?16 10:58 users01.dbf -> /dev/raw/raw8

SQL>


然后我关闭数据库,进行拷贝user表空间对应的裸设备/dev/oradatavg/lv_users01。
dd if=/oracle/oradata/rawdb/users01.dbf of=/oracle/users01fs.dbf bs=8k

复制完成后:
[oracle@localhost raw]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri Aug 16 12:20:34 2013

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup mount
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size              88082000 bytes
Database Buffers          192937984 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> ALTER DATABASE RENAME FILE '/oracle/oradata/rawdb/users01.dbf' TO '/oracle/users01fs.dbf';

Database altered.

SQL> alter database open;

Database altered.

SQL>

SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/oracle/oradata/rawdb/system01.dbf
/oracle/oradata/rawdb/undo01.dbf
/oracle/oradata/rawdb/sysaux01.dbf
/oracle/users01fs.dbf

SQL>

裸设备到数据文件的移动成功。
您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2025-1-1 10:16 , Processed in 0.051303 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569