如何将ORACLE数据库数据文件迁移到其它目录

如何将ORACLE数据库数据文件迁移到其它目录,第1张

您好,很高兴为您解答。

数据库数据文件位置:/u01/oradata/orcl

实验中想把数据文件迁移到的位置:/u01/oradata/orcl_test

源数据库数据文件位置:

sys@ORCL>select file_name from dba_data_files

FILE_NAME

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

/u01/oradata/orcl/system01.dbf

/u01/oradata/orcl/undotbs01.dbf

/u01/oradata/orcl/sysaux01.dbf

/u01/oradata/orcl/users01.dbf

sys@ORCL>select file_name from dba_temp_files

FILE_NAME

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

/u01/oradata/orcl/temp01.dbf

sys@ORCL>col member for a30

sys@ORCL>select member from v$logfile

MEMBER

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

/u01/oradata/orcl/redo01.log

/u01/oradata/orcl/redo02.log

/u01/oradata/orcl/redo03.log

需要移动所有的数据文件,采用alter database 方法

1、关闭数据库

sys@ORCL>shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

2、移动数据文件到/u01/oradata/orcl_test目录

[oracle@ora10gserv orcl]$ pwd

/u01/oradata/orcl

[oracle@ora10gserv orcl]$ mv * /u01/oradata/orcl_test/

[oracle@ora10gserv orcl]$ ls

[oracle@ora10gserv orcl]$ cd /u01/oradata/orcl_test/

[oracle@ora10gserv orcl_test]$ ls

control01.ctl control03.ctl redo02.log sysaux01.dbf temp01.dbf users01.dbf

control02.ctl redo01.log redo03.log system01.dbf undotbs01.dbf

3、修改控制文件位置

[oracle@ora10gserv /]$ sqlplus /nolog

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Aug 2 00:05:27 2011

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

SQL>conn /as sysdba

Connected to an idle instance.

SQL>startup nomount

ORACLE instance started.

Total System Global Area 465567744 bytes

Fixed Size 1220024 bytes

Variable Size 146801224 bytes

Database Buffers 314572800 bytes

Redo Buffers2973696 bytes

SQL>create pfile='/u01/initorcl.ora' from spfile

File created.

SQL>host vi /u01/initorcl.ora

orcl.__db_cache_size=314572800

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=138412032

orcl.__streams_pool_size=0

*.audit_file_dest='/dba/admin/orcl/adump'

*.background_dump_dest='/dba/admin/orcl/bdump'

*.compatible='10.2.0.1.0'

*.control_file_record_keep_time=14

*.control_files='/u01/oradata/orcl_test/control01.ctl','/u01/oradata/orcl_test/control02.ctl','/u01/oradata/orcl_test/control03.ctl'

*.core_dump_dest='/dba/admin/orcl/cdump'

*.db_block_size=8192

*.db_domain='lsf.com.cn'

*.db_file_multiblock_read_count=16

*.db_name='orcl'

*.db_recovery_file_dest='/dba/flash_recovery_area'

*.db_recovery_file_dest_size=2147483648

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='location=/u01/arch_orcl'

*.open_cursors=300

*.pga_aggregate_target=154140672

*.processes=1000

*.remote_login_passwordfile='EXCLUSIVE'

*.sessions=2000

*.sga_target=463470592

*.undo_management='AUTO'

*.undo_retention=10800

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/dba/admin/orcl/udump'

SQL>shutdown immediate

ORA-01507: database not mounted

ORACLE instance shut down.

SQL>create spfile from pfile='/u01/initorcl.ora'

File created.

4、启动数据库到mount状态,更改数据文件位置

idle>startup mount

ORACLE instance started.

Total System Global Area 465567744 bytes

Fixed Size 1220024 bytes

Variable Size 146801224 bytes

Database Buffers 314572800 bytes

Redo Buffers2973696 bytes

Database mounted.

idle>alter database rename file '/u01/oradata/orcl/system01.dbf' to '/u01/oradata/orcl_test/system01.dbf'

Database altered.

idle>alter database rename file '/u01/oradata/orcl/undotbs01.dbf' to '/u01/oradata/orcl_test/undotbs01.dbf'

Database altered.

idle>alter database rename file '/u01/oradata/orcl/sysaux01.dbf' to '/u01/oradata/orcl_test/sysaux01.dbf'

Database altered.

idle>alter database rename file '/u01/oradata/orcl/users01.dbf' to '/u01/oradata/orcl_test/users01.dbf'

Database altered.

5、继续接着第4步,更改联机日志文件位置

idle>alter database rename file '/u01/oradata/orcl/redo01.log' to '/u01/oradata/orcl_test/redo01.log'

Database altered.

idle>alter database rename file '/u01/oradata/orcl/redo02.log' to '/u01/oradata/orcl_test/redo02.log'

Database altered.

idle>alter database rename file '/u01/oradata/orcl/redo03.log' to '/u01/oradata/orcl_test/redo03.log'

Database altered.

6、打开数据库

idle>alter database open

Database altered.

idle>conn /as sysdba

Connected.

sys@ORCL>select file_name from dba_data_files

FILE_NAME

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

/u01/oradata/orcl_test/system01.dbf

/u01/oradata/orcl_test/undotbs01.dbf

/u01/oradata/orcl_test/sysaux01.dbf

/u01/oradata/orcl_test/users01.dbf

sys@ORCL>select file_name from dba_temp_files

FILE_NAME

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

/u01/oradata/orcl/temp01.dbf

sys@ORCL>col member for a40

sys@ORCL>select member from v$logfile

MEMBER

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

/u01/oradata/orcl_test/redo01.log

/u01/oradata/orcl_test/redo02.log

/u01/oradata/orcl_test/redo03.log

sys@ORCL>col name for a50

sys@ORCL>select name from v$controlfile

NAME

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

/u01/oradata/orcl_test/control01.ctl

/u01/oradata/orcl_test/control02.ctl

/u01/oradata/orcl_test/control03.ctl

7、临时文件的处理

由于控制文件不记录临时文件的信息,所以不能使用alter database rename file 命令完成,只能删除掉原来的再创建一个

sys@ORCL>create temporary tablespace temp02 tempfile '/u01/oradata/orcl_test/temp02.dbf' size 200m autoextend on extent management local uniform size 1m

Tablespace created.

sys@ORCL>alter database default temporary tablespace temp02

Database altered.

sys@ORCL>drop tablespace temp including contents and datafiles

Tablespace dropped.

sys@ORCL>select file_name from dba_temp_files

FILE_NAME

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

/u01/oradata/orcl_test/temp02.dbf

[oracle@ora10gserv orcl_test]$ ls -l

total 1427572

-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control01.ctl

-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control02.ctl

-rw-r----- 1 oracle oinstall 7061504 Aug 2 00:20 control03.ctl

-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:20 redo01.log

-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:15 redo02.log

-rw-r----- 1 oracle oinstall 52429312 Aug 2 00:15 redo03.log

-rw-r----- 1 oracle oinstall 251666432 Aug 2 00:20 sysaux01.dbf

-rw-r----- 1 oracle oinstall 503324672 Aug 2 00:20 system01.dbf

-rw-r----- 1 oracle oinstall 209723392 Jul 21 22:00 temp01.dbf

-rw-r----- 1 oracle oinstall 209723392 Aug 2 00:20 temp02.dbf

-rw-r----- 1 oracle oinstall 419438592 Aug 2 00:20 undotbs01.dbf

-rw-r----- 1 oracle oinstall 104865792 Aug 2 00:15 users01.dbf

[oracle@ora10gserv orcl_test]$ rm -rf temp01.dbf

sys@ORCL>select username,temporary_tablespace from dba_users

USERNAME TEMPORARY_TABLESPACE

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

MGMT_VIEW TEMP02

SYSTEMP02

SYSTEM TEMP02

DBSNMP TEMP02

SYSMAN TEMP02

OUTLN TEMP02

MDSYS TEMP02

ORDSYS TEMP02

CTXSYS TEMP02

ANONYMOUS TEMP02

EXFSYS TEMP02

DMSYS TEMP02

WMSYS TEMP02

XDBTEMP02

ORDPLUGINS TEMP02

SI_INFORMTN_SCHEMA TEMP02

OLAPSYSTEMP02

MDDATA TEMP02

DIPTEMP02

TSMSYS TEMP02

20 rows selected.

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

~ O(∩_∩)O~

1、关闭数据库

SQL

shutdown

immediate

2、回到solaris状态,将要移youtablespace.dbf到目的文件目录,切记用cp,不能mv,以防止出错SQL!

#

cp

youtablespace.dbf

/u01/dev1/

3、以mount方式打开数据库

(Oracle系统读取控制文件中关于数据文件和重作日志文件的内容,但并不打开该文件。这种打开方式常在数据库维护 *** 作中使用,如对数据文件的更名、改变重作日志以及打开归档方式等。)

SQL

startup

mount

4、alter

database命令来改变数据库中的文件名SQL

alterdatabase

rename

file

'/u02/dev1/youtablespace.dbf'

to

'/u01/dev1/youtablespace.dbf'

5、查看列名

SQL

desc

dba_data_files

6、查看各数据库文件是否正常

SQL

select

file_name

from

dba_data_files

7、启动实例.

SQL

alter

database

open8、确认无错以后,删除原数据文件

方法一:

将\Microsoft SQL Server\MSSQL\DATA文件夹中的syntt_data.mdf和syntt_log.ldf文件复制到安装有数据库服务器的机器的文件夹中(可以是本机的\Microsoft SQL Server\MSSQL\DATA\文件夹),然后进入企业管理器。右键点击“数据库”,在浮动菜单中选择“所有任务”中的“附加数据库”。

在随后的提示页面中选择刚才复制过来的.MDF文件,如果想指定数据库的所有者,在“指定数据库所有者”选择框中选择你认为合适的用户。如果想修改数据库的名字,可在“附加为”框中输入新的数据库名字(对本数据库,不建议这么做,因为这样的话,整个程序中所有涉及数据库连接的代码都要随之修改,那将是不必要的劳动)。

在进行完上述的工作之后,直接点击“确定”就可进行数据的SQL Server 数据转移转移。

方法二:

(方法一)是针对数据库中没有本数据库的服务器,如果数据库中已经建有与该数据库名称相同的数据库,则直接按照备份数据库的恢复 *** 作就可完成数据的SQL Server 数据转移转移。

方法如下所述:

这种方法首先要在本机上建立一个备份文件,具体 *** 作介绍如下:

1、 在企业管理器中打开服务器组以及指定的服务器。然后右键点击需要备份的数据库在这里是syntt,在浮动菜单中选择“所有任务”菜单下的“备份数据库”,打开数据备份对话框。

2、 选择“常规”选项卡,在名称对话框中输入本分集合名称,在“描述”文本框中输入备份集描述文本信息。在“备份”组下选择备份 *** 作类型,共有以下几种:

数据库—完全:完整备份数据库。

数据库—差异:增量备份数据库。

事务日志:事务日志备份。

文件和文件组:数据库文件和文件组备份。

在“目的”组中指定备份设备或者备份文件名称,选择“添加”按钮添加备份设备或者文件;“删除”按钮用来删除备份设备和备份文件;选择“内容”按钮,则可查看已经存储在备份设备或文件中的备份信息。

在“重写”组中有两种选项:

追加到媒体:选择该选项,表示需要保存备份设备或文件中以前的备份数据。

重写现有媒体:要求本次被分数据覆盖以前的备份数据,从而节省存储空间。

在“调度”组中,安排数据备份的时间。用来指定数据库备份在将来的某个时间执行

3、 “选项”选项卡,设置数据库备份 *** 作选项。其中的内容主要有以下几项:

完成后验证备份:要求在备份结束时对备份数据进行校验。

备份后d出磁带:只对磁带备份设备有效,他要求在备份结束时自动卸带。

删除事务日志中不活动的条目:要求在事务日志备份结束时删除事务日志中的已经完成的事务日志条目。

检查媒体集名称和备份集到期时间:要求在备份前检查介质集名称和原备份集中备份SQL Server 数据转移的有效期,以防止意外重写破坏原来的备份数据。

备份集到期时间:设置备份集的有效期。

初始化并标识媒体:只对磁带设备有效。选择该选项后,SQL Server在备份时将Microsoft定义的磁带格式信息写入介质的开始部分。此时,可以在“媒体集名称”和“媒体集描述”文本框中定义介质集名称和介质描述信息。

4、 在进行完上述的 *** 作之后,剩下的任务就是点击“确定”,使系统开始进行数据库的备份 *** 作。

到目前为止,我们已经有了一个数据库的备份文件,剩下的任务就是怎么将这个文件还原至另外的数据库服务器中了。

1、因为使用企业管理器进行数据库的恢复只能是在本机进行,所以在进行数据还原之前,必须将刚才所作的备份文件复制到本机,然后在本机选择“syntt”数据库,右键点击它,在显示出来的浮动菜单中选择“所有任务”下的“还原数据库”。

2、在还原数据库对话框中,在“常规”选项卡中的选择“从设备”的数据恢复方法,通过“选择设备”按钮选择刚才复制过来的文件。

“常规”选项卡与“选项”选项卡中的具体内容如下所示:

“常规”选项卡:

数据库恢复方法:包括“数据库”、“文件组或文件”、“从设备”三种恢复方式。

“数据库”方式:选择该项时,从“显示数据库备份”列表中选择需要显示的指定数据库备份集合,从“要还原的第一个备份”列表框中选择首先使用哪一个备份集恢复数据库;“文件组或文件”:选择它时,数据库恢复部件列出指定数据库备份集合中备份的数据库文件或文件组,管理员可从这些备份文件中选择恢复那个数据库文件或文件组;“从设备”:选择它时,管理员选择恢复数据库或其日志所使用的备份设备,之后再从该备份设备中选择使用哪一次备份中的数据恢复数据库或其日志。

3、点击“确定”,完成恢复 *** 作。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6792942.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存