- 浏览: 4415089 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
近日,群里的朋友经常遇到数据文件需要删除或者改名的问题,这里,笔者进行了下总结,也算是抛砖引玉,希望大家拍砖。
删除数据文件
在10g中,如果是未被Oracle写入数据的数据文件则可以被直接删除,如果是已经被写入数据的数据文件,则无法被直接删除。请见下例
SQL> create tablespace test datafile '/home/oracle/test1.dbf' size 1m;
Tablespace created.
SQL> create table test tablespace test
2 as
3* select * from dba_objects where rownum <=8000
Table created.
SQL> select SEGMENT_NAME,BYTES/1024/1024 Mb from user_segments where SEGMENT_NAME='TEST';
SEGMENT_NAME MB
------------------ ------------
TEST .875
SQL> alter tablespace test add datafile '/home/oracle/test2.dbf' size 50m;
Tablespace altered.
SQL> insert into test select * from dba_objects ;
50323 rows created.
SQL> commit;
Commit complete.
SQL> select SEGMENT_NAME,BYTES/1024/1024 from dba_segments where SEGMENT_NAME='TEST'
SEGMENT_NAME BYTES/1024/1024
-------------------- ---------------
TEST 7
QL> alter tablespace test add datafile '/u01/app/test3.dbf' size 1m;
Tablespace altered.
SQL> alter tablespace test drop datafile '/u01/app/test3.dbf';
Tablespace altered.
SQL> alter tablespace test drop datafile '/u01/app/test2.dbf';
alter tablespace test drop datafile '/u01/app/test2.dbf'
*
ERROR at line 1:
ORA-03262: the file is non-empty
可以看到,只有非空的数据文件才能进行删除,已经写入数据的数据文件不能进行删除。
更改数据文件位置
更改数据文件位置,笔者认为有3种方法
1、利用rman的set newname来更改数据文件位置,对应用影响较小。
2、利用手工备份,然后拷贝数据到指定位置,原理和rman类似。
3、利用exp导出数据,重建表空间后再倒入数据,笔者认为该方法对应用影响较大,需结合实际情况考虑,这里不做详细介绍。
利用rman的set newname来更改数据文件位置
SQL> select file_name,status,file_id from dba_data_files;
FILE_NAME STATUS FILE_ID
------------------------------------- ---------------------------
---------------------------
/u01/app/oradata/orcl/users01.dbf AVAILABLE 5
/u01/app/oradata/orcl/sysaux01.dbf AVAILABLE 2
/u01/app/oradata/orcl/undotbs01.dbf AVAILABLE 3
/u01/app/oradata/orcl/system01.dbf AVAILABLE 1
/u01/app/oradata/orcl/example01.dbf AVAILABLE 4
/home/oracle/test1.dbf AVAILABLE 6
/home/oracle/test2.dbf AVAILABLE 7
通过使用rman的set newname命令更改数据文件位置,整个过程如下:
1、由于
set newname命令是更改rman repository的信息
,并根据
set newname的信息
restore备份数据到目标路径,故需
先对数据文件进行那个备份
RMAN> backup datafile 6,7;
Starting backup at 21-APR-12
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00007 name=/u01/app/test2.dbf
input datafile fno=00006 name=/u01/app/test1.dbf
channel ORA_DISK_1: starting piece 1 at 21-APR-12
channel ORA_DISK_1: finished piece 1 at 21-APR-12
piece handle=/u01/app/flash_recovery_area/ORCL/backupset/2012_04_21/o1_mf_nnndf_TAG20120421T150219_7s4pvvmt_.bkp tag=TAG20120421T150219 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 21-APR-12
2、
这一步
rman并不认为是将数据restore到新路径下,而是认为将数据文件以copy的方式备份到新路径下
,官方文档解释如下:
Sets the default name for all subsequent RESTORE or SWITCH commands that affect the specified datafile. If you do not issue this command before the datafile restore operation, then RMAN restores the file to its default location.
After you restore a datafile to a new location, then you can run SWITCH to rename the file in the control file to the NEWNAME. If you do not run SWITCH, then the restored file functions as a datafile copy and is recorded as such in the repository.
RMAN> run{
2>
set newname for datafile 6 to '/u01/app/test1.dbf';
3> set newname for datafile 7 to '/u01/app/test2.dbf';
4> restore datafile 6,7;
5> }
RMAN> list copy;
specification does not match any archive log in the recovery catalog
List of Datafile Copies
Key File S Completion Time Ckp SCN Ckp Time Name
------- ---- - --------------- ---------- --------------- ----
8 6 A 21-APR-12 832277 21-APR-12
/u01/app/test1.dbf
9 7 A 21-APR-12 832277 21-APR-12
/u01/app/test2.dbf
3、将表空间或者数据文件offline
RMAN> sql 'alter tablespace test offline';
sql statement: alter tablespace test offline
4、通过switch命令将数据文件信息写入到控制文件中
RMAN> run{
2> switch datafile all; #switch命令必须在run块里面
3> }
5、recover表空间或者数据文件
RMAN> recover datafile 6,7;
Starting recover at 21-APR-12
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:02
Finished recover at 21-APR-12
6、将表空间或者数据文件online
RMAN> sql 'alter tablespace test online';
sql statement: alter tablespace test online
查看数据文件信息,大功告成
SQL> select file_name,status,file_id from dba_data_files;
FILE_NAME STATUS FILE_ID
------------------------------------- ---------------------------
---------------------------
/u01/app/oradata/orcl/users01.dbf AVAILABLE 5
/u01/app/oradata/orcl/sysaux01.dbf AVAILABLE 2
/u01/app/oradata/orcl/undotbs01.dbf AVAILABLE 3
/u01/app/oradata/orcl/system01.dbf AVAILABLE 1
/u01/app/oradata/orcl/example01.dbf AVAILABLE 4
/u01/app/test1.dbf AVAILABLE 6
/u01/app/
test2.dbf AVAILABLE 7
利用手工备份,然后拷贝数据到指定位置
1、将表空间至于备份状态
SQL> alter tablespace test begin backup;
Tablespace altered.
2、拷贝数据文件到目标位置
$cp /home/oracle/test*.dbf /u01/app/test*
3、将表空间至于offline状态
SQL> alter tablespace test end backup;
Tablespace altered.
SQL> alter tablespace test offline;
Tablespace altered.
3、重命名数据文件
SQL> alter tablespace test rename datafile '/home/oracle/test1.dbf' to
'/u01/app/test1.dbf';
Tablespace altered.
SQL> alter tablespace test rename datafile '/home/oracle/test2.dbf' to
'/u01/app/test2.dbf';
Tablespace altered.
4、对test表空间应用日志
SQL> recover tablespace test;
Media recovery complete.
5、将test表空间至于online
SQL> alter tablespace test online;
Tablespace altered.
6、查看表空间状态
SQL> select file_name from dba_data_files;
FILE_NAME
-----------------------------------------------------------------
/u01/app/oradata/orcl/users01.dbf
/u01/app/oradata/orcl/sysaux01.dbf
/u01/app/oradata/orcl/undotbs01.dbf
/u01/app/oradata/orcl/system01.dbf
/u01/app/oradata/orcl/example01.dbf
/u01/app/test1.dbf
/u01/app/test2.dbf
7 rows selected.
总结:以上介绍了如何更改非空数据文件的路径,笔者认为,rman操作的方式相对复杂,但对系统影响最小。手工备份的方式比较简单,但会产生更多的redo,如果表空间不是特别大的话亦可考虑。至于imp/exp导出的方式,对系统影响最大,个人认为需要结合实际情况分析。
参考至:http://docs.oracle.com/cd/B10500_01/server.920/a96565/rcmsynta50.htm
http://docs.oracle.com/cd/B10500_01/server.920/a96565/rcmsynta56.htm
http://www.cnblogs.com/rootq/archive/2010/03/05/1678969.html
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
Oracle 11g、12c大量错误登陆尝试带来的数据库异常
2018-07-16 09:21 1539APPLIES TO: Oracle Database - ... -
如何定位那些SQL产生了大量的redo日志
2018-05-15 14:38 1811在ORACLE数据库的管理、 ... -
When Memory_target Is Set and Swap Size Is Not Big (Doc ID 2356025.1)
2018-03-16 18:13 1195Kkjcre1p: unable to sp ... -
Transparent Hugepage is not getting disabled (Doc ID 2279458.1)
2018-03-16 18:10 827Transparent Hugepage is ... -
Troubleshooting: "log file sync" Waits (文档 ID 1376916.1)
2017-03-09 14:32 1375What is a 'log file sync' wai ... -
log file sync总结
2017-03-09 14:36 3268log file sync等待时间发生在redo log从 ... -
Oracle Log File Sync Wait Event
2017-03-08 18:46 1175The Oracle “log file sync” wai ... -
Tuning ‘log file sync’ Event Waits
2017-03-08 18:41 865Tuning ‘log file sync’ Event ... -
Diagnosing buffer busy waits with the ash_wait_chains.sql script (v0.2)
2017-03-08 16:56 859Diagnosing buffer busy waits w ... -
Advanced Oracle Troubleshooting Guide – Part 11: Complex Wait Chain Signature An
2017-03-08 16:05 1109Here’s a treat for the hard-co ... -
Oracle 10046 SQL TRACE
2017-03-08 15:19 950为什么我们要使用10046 trace? 10046 ... -
Automatic Storage Management
2016-11-03 15:33 875SYSASM Role When Automatic ... -
ASM FAQ
2016-11-03 15:29 738ASM FAQ Oracle Automatic ... -
Oracle ALTER PROFILE语法
2016-10-10 11:36 3420ALTER PROFILE Purpose Use th ... -
Oracle FGA审计
2016-09-20 09:42 1394大家对trigger可能比较熟悉,但Oracle还有一个叫 ... -
Secret.txt
2016-09-14 17:20 0考试登录账号:YAMAC0043865 Chen1988协会网 ... -
Oracle Data Pump Internals
2016-09-13 16:38 793IntroductionOracle Data Pump w ... -
UDEV SCSI Rules Configuration for ASM in Oracle Linux 5, 6 and 7
2016-09-12 16:32 858UDEV SCSI Rules Configuration ... -
Cannot Allocate New Log
2016-02-21 12:28 5459故障报错 Thread 1 cannot allocat ... -
Oracle flashback dropped tablespace(原创)
2015-11-15 22:21 2022Oracle官方并不推荐在数据库物理结构发生改变的情况下进行 ...
相关推荐
- 数据导入语句,将预先准备好的数据文件导入到新创建的数据库中。 **制作带基础数据的模板:** - 制作数据库模板,以便在安装新数据库时可以直接应用这些配置,包括用户、表空间以及基础数据。 - 模板文件存储于`...
- **设置数据库实例**:根据实际需求设置数据库实例名、数据文件存储位置等。 - **完成安装**:按照屏幕提示完成安装过程。 #### 六、后续步骤 - **配置Enterprise Manager**:如果需要使用Oracle Enterprise ...
通过两个步骤的操作,可以有效地将AS400的数据导入到Oracle数据库中,并确保中文数据的正确显示。 #### 第一步:下载AS/400源文件至开放平台 1. **创建源文件的DataMap** - 在这一阶段,首先需要创建一个DataMap...
4. **修改Server.xml文件**:编辑`C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\server.xml`文件,确保监听端口正确无误,并配置其他高级选项。 通过以上步骤,可以完成Project.net环境的基本搭建...
1. **配置默认RPD文件**:为了便于每次启动BIServer时自动加载特定的RPD文件,需要修改`NQSConfig.INI`文件,设置默认RPD文件路径。 以上步骤概述了BIEE的基本配置流程,通过这一系列的操作,可以构建出一个功能...
数据库实施则包括创建数据库、定义表结构和编写针对管理员、考勤、会议记录、文件和职工表的数据操作,如插入、修改、删除和查询,确保系统的功能完整性和实用性。 整个课程设计过程中,学生不仅学习了数据库理论,...
在IT行业中,数据库设计是软件开发过程中的关键环节,PowerDesigner作为一款强大的数据库设计和建模工具,帮助企业或开发者高效地进行数据模型管理。本文将详细介绍如何使用PowerDesigner 16.5将数据库表结构导出为...
例如,如果Oracle占用了8080端口,那么你需要修改jBoss的配置文件`server.xml`,位于`deploy/jbossweb-tomcat50.sar/`目录下,将8080端口更改为其他未被占用的端口,比如9000。 - 同样,如果在同一台机器上运行多个...
这个文件将引导用户完成整个安装过程,包括但不限于选择安装路径、设置启动选项、配置数据库连接等。安装过程中,可能会提示用户输入必要的许可证信息或接受许可协议,这是免费版的特殊之处,因为通常免费软件不会...
从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
MyPhpServer(原创,有实现的主要代码) 如题。 microcai-ibus-t9-输入法源码 如题,主要源码就几个,详细见代码。 MzfHips主动防御 主要在MzfHipsDlg中,程序分析进程数据、驱动数据、注册表数据从而实现主动防御。 ...
从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
从fnMyDownload开始,程序首先解析输入的url,拆分为地址,路径,文件名等。然后获取文件头,得到文件大小,然后再下载。重点函数是ThreadDownLoad。下载完之后用FileCombine合并文件。Mydownload.cpp底端的...
2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序代码 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" ...