oracle数据库文件(控制文件、数据文件、日志文件)移动位置实验.pdf
- 格式:pdf
- 大小:4.91 KB
- 文档页数:2
--表空间(数据文件)的迁移--【在线的操作方法-移动表空间的数据文件的路径(更改表空间数据文件的路径)】1.首先确定数据文件的状态要为OFFLINESQL> select tablespace_name,status,contents from dba_tablespaces;2.将该表空间修改为OFFLINE 【以users表空间为例】SQL> alter tablespace USERS offline;SQL> select tablespace_name,status,contents from dba_tablespaces; --查看表空间状态确定修改成功3.移动数据文件到新的路径[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf/oracle/oradata/itpuxdb/itpux02.dbf;4.重新命名该表空间的新路径和名称(告诉数据库)SQL> alter tablespace users rename datafile'/oracle/oradata/itpuxdb/itpux01.dbf'to '/oracle/oradata/itpuxdb/itpux001.dbf';5.修改表空间的状态为ONLINE状态SQL> alter tablespace users online;---------------------------------------------------------------------------------------【离线的操作方法-移动数据文件-到其它目录】1.关闭数据库启动到模式下SQL> shutdown immediate;SQL> startup mount;2. 移动数据文件[oracle@xxx ~]$ host copy /oracle/oradata/itpuxdb/itpux01.dbf/oracle/oradata/itpuxdb/itpux02.dbf3. 重新命名(这里写更改数据库因为数据库没有起来就没有表空间)SQL> alter database rename file'/oracle/oradata/itpuxdb/itpux01.dbf'to'/oracle/oradata/itpuxdb/itpux001.dbf'4. 打开数据库SQL> alter database open5. 检查状态SQL> select * from dba_data_files where tablespace_name='ITPUX01';----------------------------------------------------------------------------------1.copy数据文件到其它目录【因为根目录撑爆,在数据库挂掉的情况下】2.启动startup mount;3.在mount模式下执行这两条命令alter database rename file'/oracle/app/oracle/oradata/ywxt1/undotbs01.dbf'to'/oradata/undotbs01.dbf';alter database rename file'/oracle/app/oracle/oradata/ywxt1/temp01.dbf'to'/oradata/temp01.dbf';4.启动数据库startup---------------------------------------------------------------------------------------把表和索引迁移其它的表空间1.查询该对象存放在哪个表空间select segment_name,tablespace_name,extents,blocks from dba_segments whereowner='SCUSER'2.查询该对象是索引,还是表select object_id,object_name,object_type,status,created from dba_objects whereowner='SCUSER'3.查询索引或者表存放在哪个表空间select index_name,table_name,tablespace_name,status from dba_indexes whereowner='SCUSER'4.移动表到另一个表空间alter table scuser.table01 move tablespace scdata025.查询该表是否移动到该表空间select segment_name,tablespace_name,extents,blocks from dba_segments whereowner='SCUSER'6.检查表是否有效(状态为 VALID 是有效)select object_id,object_name,object_type,status,created from dba_objects whereowner='SCUSER'7.重建索引并且将索引移动到另一个表空间alter index scuser.idx_table01_id rebuild tablespace scdata028.查询索引对应的表空间select index_name,table_name,tablespace_name,status from dba_indexes whereowner='SCUSER'9.如果表空间里面表有大字段?alter table USER.RESUME move lob(INTRO) store as(tablespace USER);。
linux系统下oracle数据库文件移动ORACLE数据库文件移动位置--ORACLE数据库由数据文件,控制文件和联机日志文件三种文件组成。
--由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等, --我們可能会考虑移动数据库文件。
--下面以LUNIX平台为例,分别讨论三种数据库文件的移动方法。
一.移动数据文件:-- 可以用ALTER DATABASE,ALTER TABLESPACE两种方法移动数据文件。
1. ALTER DATABASE方法;-- 用此方法,可以移动任何表空间的数据文件。
STEP 1. 下数据库:$ sqlplus /nologSQL> CONNECT INTERNAL;SQL> SHUTDOWN;SQL> EXIT;STEP 2.用操作系统命令移动数据文件:-- 将数据文件 'test.ora' 从/ora/oracle/data1目录移动到/ora/oracle/data2目录下:$ mv /ora/oracle/data1/test.ora /ora/oracle/data2STEP 3. Mount数据库,用ALTER DATABASE命令将数据文件改名: $ sqlplus /nologSQL> CONNECT INTERNAL;SQL> STARTUP MOUNT;SQL> ALTER DATABASE RENAME FILE '/ora/oracle/data1/test.ora' TO '/ora/oracle/data2/test.ora';STEP 4. 打开数据库:.SQL> ALTER DATABASE OPEN;SQL>SELECT NAME,STATUS FROM V$DATAFILE;2. ALTER TABLESPACE方法:-- 用此方法,要求此数据文件既不属于SYSTEM表空间,也不属于含有ACTIVE 回滚段或临时段的表空间。
Oracle数据库实验报告目录实验一安装和使用Oracle数据库.................................................. - 2 - 实验二体系结构、存储结构与各类参数..................................... - 13 - 实验三Oracle数据库的创建和管理............................................. - 22 - 实验四SQL语言 ............................................................................ - 33 - 实验五PL/SQL编程 ....................................................................... - 41 - 实验六模式对象管理与安全管理 ................................................ - 50 -实验一安装和使用Oracle数据库【实验目的】1.掌握Oracle软件安装过程,选择安装组件2.掌握建立Oracle数据库,配置网络连接3.掌握Oracle企业管理器的基本操作4.使用SQL*Plus,登录到实例和数据库5.掌握命令方式的关闭和启动实例及数据库【实验内容】1.查看已安装的Oracle组件2.查看服务,记录下和数据库有关的服务名,将他们设为手动方式,启动相关服务。
3.配置监听器,查看是否在服务中有LISTENER,是否能启动。
4.配置本地net服务,提示:设置正确的服务器地址和端口号。
5.打开SQL*Plus,用SYS和SYSTEM用户名和密码登录。
6.思考题:有几种打开SQL*Plus的方法?分别是什么?7.用命令关闭实例和数据库,记录命令8.用命令以NOMOUNT的方式启动实例,再加载数据库,打开数据库。
Oracle数据库迁移的⼏种⽅式⾯试:⼀、exp/imp逻辑备份与恢复:⼆、Storage存储迁移:将数据⽂件、控制⽂件、⽇志⽂件、spfile挂到新机器上,然后在新机器上启动数据库。
三、利⽤data guard迁移:四、⽤rman做迁移:我们常常需要对数据进⾏迁移,迁移到更性能配置更⾼级的主机OS上、迁移到远程的机房、迁移到不同的平台下,以下介绍ORACLE的⼏种数据库迁移⽅案: ⼀、exp/imp逻辑备份与恢复: 它是最常⽤最简单的⽅法,⼀般是基于应⽤的owner级做导出导⼊。
操作⽅法为:在新库建⽴好owner和表空间,停⽼库的应⽤,在⽼库执⾏:$ exp user/pwd owner=XXX file=exp_xxx.dmp log=exp_xxx.log buffer=6000000,导⼊dmp⽂件到新库,在新库执⾏如下命令:$ imp user/pwd fromuser=XXX touser=XXX file=exp_xxx.dmp log=imp_xxx.log ignore=y. 优缺点:优点是可以跨平台使⽤;缺点是停机时间长,停机时间为从exp到⽹络传输到新库,再加上imp的时间。
⼆、Storage存储迁移: 这种情况下,数据⽂件、控制⽂件、⽇志⽂件、spfile都在存储上(⼀般情况下是裸设备),我们可以直接把存储挂到新机器上,然后在新机器上启动数据库。
操作⽅法:将⽼库的pfile(因为⾥⾯有指向裸设备的spfile链接),tnsnames.ora,listener.ora,密码⽂件传到新库的对应位置。
将存储切⾄新机,或者⽤⽂件拷贝或dd的⽅式复制数据⽂件,启动数据库。
优缺点:优点是该迁移⽅式⾮常简单,主要的⼯作是主机⼯程师的⼯作,dba只需配合即可,停机时间为停库、切存储、起库的时间;缺点是要求新⽼库都是同⼀平台,是相同的数据库版本。
三、利⽤data guard迁移: ⽤dg我们不仅可以⽤来做容灾,物理的dg我们还可以作为迁移的⽅式。
Oracle 更改数据文件、控制文件、redo位置实验一、实验环境操作系统:虚拟机solaris 10数据库:10g R2数据库环境:.bash_profileORACLE_SID=orclORACLE_BASE=/u01ORACLE_HOME=$ORACLE_BASE/oraclePATH=$ORACLE_HOME/bin:$PATH原数据文件位置:/u02/orcldata/orcl 包括:control01.ctl control03.ctl redo02.log sysaux01.dbf temp01.dbf users01.dbf control02.ctl redo01.log redo03.log system01.dbf undotbs01.dbf二、实验目标创建新文件夹/u03/orcldata将数据文件从原位置/u02/orcldata/orcl ,迁移到新位置/u03/orcldata将控制文件以及redo 更改到新位置三、实验步骤1、-bash-3.00# mkdir -p /u03/orcldata2、-bash-3.00# su - oracleSun Microsystems Inc. SunOS 5.10 Generic January 2005-bash-3.00$ sqlplus / as sysdbaSQL> alter database backup controlfile to trace;Database altered.SQL> select group#,status from v$log;GROUP# STATUS---------- ----------------1 INACTIVE2 CURRENT3 INACTIVESQL> select * from v$ logfile;GROUP# STATUS TYPE---------- ------- -------MEMBER--------------------------------------------------------------------------------IS_---1 ONLINE/u02/orcldata/orcl/redo01.logNO2 ONLINE/u02/orcldata/orcl/redo02.logNOGROUP# STATUS TYPE---------- ------- -------MEMBER--------------------------------------------------------------------------------IS_---3 ONLINE/u02/orcldata/orcl/redo03.logNOSQL> alter system switch logfile;System altered.SQL> create pfile='$ORACLE_HOME/dbs/initorcl.ora' from spfile; File created.SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.bash-3.00$ cd $ORACLE_HOME/dbsbash-3.00$ vi initorcl.ora将控制文件路径从/u02/orcldata/orcl 更改为新路径:*.control_files='/u03/orcldata/control01.ctl','/u03/orcldata/control02.ctl','/u03/orcldata/contro l03.ctl'Move 数据文件、控制文件到新位置/u03/orcldata修改权限为oracle:dba-bash-3.00# chown -R oracle:dba /u03-bash-3.00$ sqlplus / as sysdbaSQL*Plus: Release 10.2.0.2.0 - Production on Mon Oct 25 12:50:22 2010Copyright (c) 1982, 2005, Oracle. All Rights Reserved.Connected to an idle instance.SQL> startup mount pfile='$ORACLE_HOME/dbs/initorcl.ora';ORACLE instance started.SQL> alter database rename file '/u02/orcldata/orcl/sysaux01.dbf' to'/u03/orcldata/sysaux01.dbf';Database altered.SQL> alter database rename file '/u02/orcldata/orcl/undotbs01.dbf' to'/u03/orcldata/undotbs01.dbf';Database altered.SQL> alter database rename file '/u02/orcldata/orcl/system01.dbf' to'/u03/orcldata/system01.dbf';Database altered.SQL> alter database rename file '/u02/orcldata/orcl/users01.dbf' to '/u03/orcldata/users01.dbf'; Database altered.SQL> alter database rename file '/u02/orcldata/orcl/temp01.dbf' to '/u03/orcldata/temp01.dbf'; Database altered.SQL> alter database open;Database altered.SQL> alter database add logfile member '/u03/orcldata/redo01_b.log' to group 1;Database altered.SQL> alter database add logfile member '/u03/orcldata/redo02_b.log' to group 2;Database altered.SQL> alter database add logfile member '/u03/orcldata/redo03_b.log' to group 3;Database altered.SQL> alter system switch logfile;System altered.SQL> /System altered.SQL> select group#,status from v$Logfile;GROUP# STATUS---------- -------123123SQL> alter database drop logfile member '/u02/orcldata/orcl/redo01.log'; Database altered.SQL> alter database drop logfile member '/u02/orcldata/orcl/redo02.log'; Database altered.SQL> alter database drop logfile member '/u02/orcldata/orcl/redo03.log'; alter database drop logfile member '/u02/orcldata/orcl/redo03.log'*ERROR at line 1:ORA-01609: log 3 is the current log for thread 1 - cannot drop members ORA-00312: online log 3 thread 1: '/u02/orcldata/orcl/redo03.log'ORA-00312: online log 3 thread 1: '/u03/orcldata/redo03_b.log'SQL> alter system switch logfile;System altered.SQL> alter database drop logfile member '/u02/orcldata/orcl/redo03.log'; Database altered.SQL> select group#,status from v$Logfile;GROUP# STATUS---------- -------123SQL> select * from v$logfile;GROUP# STATUS TYPE---------- ------- -------MEMBER-------------------------------------------------------------------------------- IS_---1 ONLINE/u03/orcldata/redo01_b.logNO2 ONLINE/u03/orcldata/redo02_b.logNOGROUP# STATUS TYPE---------- ------- -------MEMBER-------------------------------------------------------------------------------- IS_---3 ONLINE/u03/orcldata/redo03_b.logNOSQL> select open_mode from v$database;OPEN_MODE----------READ WRITE至此实验完成,数据文件、控制文件、redo成功迁移到新位置。
ORCLE文件迁移方法汇总一、数据文件迁移:SQL> select name,file# from v$datafile;NAME FILE#--------------------------------------------------------------------------------D:\ORACLE\10G\ORCL\SYSTEM01.DBF 1D:\ORACLE\10G\ORCL\UNDOTBS01.DBF 2D:\ORACLE\10G\ORCL\SYSAUX01.DBF 3D:\ORACLE\10G\ORCL\USERS01.DBF 4SQL> shutdown immediate数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> $move d:\oracle\10g\orcl\system01.dbf d:\oracle\database\orcl\system01.dbf SQL> $move d:\oracle\10g\orcl\undotbs01.dbf d:\oracle\database\orcl\undotbs01.dbf SQL> $move d:\oracle\10g\orcl\sysaux01.dbf d:\oracle\database\orcl\sysaux01.dbf SQL> $move d:\oracle\10g\orcl\users01.dbf d:\oracle\database\orcl\users01.dbfSQL> startup mountORACLE 例程已经启动。
Total System Global Area 167772160 bytesFixed Size 1247900 bytesVariable Size 92276068 bytesDatabase Buffers 71303168 bytesRedo Buffers 2945024 bytes数据库装载完毕。
Oracle数据库在使用过程中,随着数据的增加数据库文件也逐渐增加,在达到一定大小后有可能会造成硬盘空间不足;那么这时我们可以把数据库文件移动到另一个大的硬盘分区中。
下面我就以Oracle for Windows版本中把C盘的数据库文件移动到D盘为例介绍Oracle 数据库文件移动的方法和步骤。
注:Svrmgrl 就是Server Manager, 在Oracle 8i 以前,是用作数据库管理,比如启动数据库,关闭数据库,都要用到svrmgrl,到了oracle8i以后,开始用统一的界面sqlplus 来完成这个功能,但考虑到向前兼容,仍保留了svrmgrl,但到了oracle9i以后,就没有svrmgrl了。
现数据库版本为Oracle9i,故可直接使用sqlplus!1.在sqlplus中连接到要移动文件的Oracle数据库,然后执行如下SQL语句查看Oracle 数据库文件位置:SQL> select file_name from sys.dba_data_files;FILE_NAME -------------------------------------------------------------- C:\ORA8\ORADATA\ORACLE\USERS01.DBFC:\ORA8\ORADATA\ORACLE\DR01.DBFC:\ORA8\ORADATA\ORACLE\TOOLS01.DBFC:\ORA8\ORADATA\ORACLE\INDX01.DBFC:\ORA8\ORADATA\ORACLE\RBS01.DBFC:\ORA8\ORADATA\ORACLE\TEMP01.DBFC:\ORA8\ORADATA\ORACLE\SYSTEM01.DBF查询到7记录.记录要移动的文件的位置和名称。
2.下面我们以把文件“C:\ORA8\ORADATA\ORACLE\USERS01.DBF”移动到“D:\ORADATA\USERS01.DBF”为例介绍,要移动其它文件,请安相同的方法(根据实际情况修改文件路径和名称)操作即可。
Oracle数据库⽂件路径变更环境:RHEL 6.4 + Oracle 11.2.0.3情景⼀:只是部分普通数据⽂件迁移,可以在线操作。
1.将对应表空间offline,移动数据⽂件到新路径2.数据⽂件alter database rename file '' to '';3.再将表空间online情景⼆:所有数据⽂件迁移。
本⽂是针对情景⼆的实验,需求:主机/oradata挂节点变更为/usr2.在/usr2建⽴oradata⽂件夹来存放之前/oradata的所有⽂件。
操作步骤:1.查看当前数据库的数据⽂件,临时⽂件,⽇志⽂件,控制⽂件,参数⽂件等信息。
2.根据当前spfile创建pfile⽂件,正常关闭数据库,移动源数据库⽂件到新的存储路径。
3.修改数据库参数⽂件,更改控制⽂件路径为新的存储路径,⽤改好的pfile⽂件启动数据库到mount状态。
4.重定向数据库的所有数据⽂件、⽇志⽂件路径,然后正常打开数据库。
5.核查各⽂件路径没有问题,根据当前pfile创建spfile,重启数据库实例。
1.查看当前数据库的数据⽂件,临时⽂件,⽇志⽂件,控制⽂件,参数⽂件等信息。
SQL>select name from v$datafile;NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/system01.dbf/oradata/sysdata/jingyu/sysaux01.dbf/oradata/sysdata/jingyu/undotbs01.dbf/oradata/sysdata/jingyu/users01.dbfSQL>select name from v$tempfile;NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/temp01.dbfSQL>select member from v$logfile;MEMBER--------------------------------------------------------------------------------/oradata/sysdata/jingyu/redo03.log/oradata/sysdata/jingyu/redo02.log/oradata/sysdata/jingyu/redo01.logSQL>select name from v$controlfile;NAME--------------------------------------------------------------------------------/oradata/sysdata/jingyu/control01.ctl/opt/app/oracle/fast_recovery_area/jingyu/control02.ctlSQL> show parameter pfileNAME TYPE VALUE------------------------------------ ----------- ------------------------------spfile string /opt/app/oracle/product/11.2.0/dbhome_1/dbs/spfilejingyu.ora2.根据当前spfile创建pfile⽂件,正常关闭数据库,移动源数据库⽂件到新的存储路径。
Oracle表空间数据⽂件移动的⽅法实现把⽤户表空间中的数据⽂件从某⼀个路径移动到另⼀个路径⼀、针对可offline的⾮系统表空间本例移动oracle的案例表空间(EXAMPLE表空间),将其从D:\ORADATA\ORCL\ 移动到 D:\ORACLE\ORADATA\1.查看要改变的表空间的数据⽂件信息SQL> select tablespace_name,file_name,online_statusfrom dba_data_fileswhere tablespace_name='EXAMPLE';TABLESPACE_NAME FILE_NAME ONLINE_--------------- ----------------------------------- -------EXAMPLE D:\ORADATA\ORCL\EXAMPLE01.DBF ONLINE2.将⽬标表空间设置为脱机状态SQL> alter tablespace EXAMPLE offline;3.再次查看⽬标表空间的状态,确保其已经是脱机状态SQL> select tablespace_name,file_name,online_statusfrom dba_data_fileswhere tablespace_name='EXAMPLE';TABLESPACE_NAME FILE_NAME ONLINE_--------------- ----------------------------------- -------EXAMPLE D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE4.将原来的数据⽂件移动(或复制)到新的路径SQL> host move D:\ORADATA\ORCL\EXAMPLE01.DBF D:\ORACLE\ORADATA\5.修改该表空间的数据⽂件路径SQL> alter tablespace EXAMPLErename datafile 'D:\ORADATA\ORCL\EXAMPLE01.DBF'to 'D:\ORACLE\ORADATA\EXAMPLE01.DBF';6.查看该表空间修改后的信息,确保信息⽆误SQL> select tablespace_name,file_name,online_statusfrom dba_data_fileswhere tablespace_name='EXAMPLE';TABLESPACE_NAME FILE_NAME ONLINE_--------------- ----------------------------------- -------EXAMPLE D:\ORACLE\ORADATA\EXAMPLE01.DBF OFFLINE7.修改该表空间为在线状态SQL> alter tablespace EXAMPLE online;8.查看该表空间最后结果SQL> select tablespace_name,file_name,online_statusfrom dba_data_fileswhere tablespace_name='EXAMPLE';TABLESPACE_NAME FILE_NAME ONLINE_--------------- ----------------------------------- -------EXAMPLE D:\ORACLE\ORADATA\EXAMPLE01.DBF ONLINE备注:本⽅法对SYSAUX、USERS表空间也适⽤⼆、系统表空间移动该⽅法需要数据库处于mount状态1.关闭运⾏中的数据库SQL> shutdown immediate2.启动数据库到mount状态SQL> startup mount3.移动系统表空间(SYSTEM表空间)的数据⽂件SQL> host move D:\ORADATA\ORCL\SYSTEM01.DBF D:\ORACLE\ORADATA\4.修改该表空间的数据⽂件路径SQL> alter database rename file 'D:\ORADATA\ORCL\SYSTEM01.DBF' to 'D:\ORACLE\ORA DATA\SYSTEM01.DBF';5.启动数据库,打开实例SQL> alter database open;6.查看表空间修改结果SQL> select tablespace_name,file_name,online_status from dba_data_files where tablespace_name='SYSTEM';TABLESPACE_NAME FILE_NAME ONLINE_--------------- ----------------------------------- -------SYSTEM D:\ORACLE\ORADATA\SYSTEM01.DBF SYSTEM备注:本⽅法对UNDOTBS1、TEMP表空间也适⽤。
26、数据库文件移动实验
数据库文件移动一般发生在软件硬件升级或者优化I/O性能的时候。
数据库文件包括控制文件、数据文件和日志文件
一、控制文件移动
1、查看控制文件位置
SQL>select name from v$controlfile;
2、 Alter system 命令修改控制文件位置
SQL>alter system set control_files=’c:control01.ctl’,‘d:\ control02.ctl’,
:\ control03.ctl’
‘e
Scope=spfile;
3、关闭数据库
4、在操作系统中将控制文件拷贝到指定的位置
SQL>host copy c:\oracle\product\10.2.0\oradata\orcl\control02.ctl ,d:\ control02.ctl
SQL>host copy c:\oracle\product\10.2.0\oradata\orcl\control03.ctl ,e:\ control03.ctl
5、启动数据库
6、查询控制文件位置
SQL>select name from v$controlfile;
7、删除没有用的控制文件
二、数据文件移动
1、查看数据文件位置
SQL>select name from v$datafile;
2、关闭数据库
3、在操作系统中将数据文件移动到指定的位置
SQL>host copy c:\oracle\product\10.2.0\oradata\user01.dbf,
e:\user01.dbf
4、以mount模式启动数据库
5、用alter database rename file命令更改数据文件位置
SQL>alter databas e rename file ’ c:user01.dbf’to ‘e:user01.dbf’;
6、打开数据库
7、查看数据文件位置
SQL>select name from v$datafile;
三、日志文件移动
1、查看日志文件的位置
SQL>select member from v$logfile;
2、关闭数据库
3、在操作系统中移动日志文件位置
SQL>host copy c:\oracle\product\10.2.0\oradata\redo02.log,e:\redo02.log
SQL>host copy c:\oracle\product\10.2.0\oradata\redo03.log,f:\redo03.log
4、关闭数据库
5、以mount模式启动
6、用alter database rename file改变Oracle数据字典中日志文件的位置
\oracle\product\10.2.0\
SQL>alter database rename file ‘c:
redo02.log’;
redo01.log’ to ‘e:
7、打开数据库
8、查看日志文件的位置
SQL>select member from v$logfile;
移动完成。