返回顶部
首页 > 资讯 > 数据库 >ASM与File System数据文件转移方法有哪些
  • 248
分享到

ASM与File System数据文件转移方法有哪些

2024-04-02 19:04:59 248人浏览 安东尼
摘要

这篇文章主要介绍ASM与File System数据文件转移方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、环境介绍实验使用oracle linux环境,对应底层Oracl

这篇文章主要介绍ASM与File System数据文件转移方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

1、环境介绍

实验使用oracle linux环境,对应底层Oracle 11g单实例+ASM存储方案。

[root@SimpleLinux ~]# uname -r

2.6.18-128.el5

[root@SimpleLinux ~]# ps -ef | grep pmon

grid      3214     1  0 13:53 ?        00:00:00 asm_pmon_+ASM

oracle    3294     1  0 13:53 ?        00:00:00 ora_pmon_ora11g

root      3376  3107  0 13:53 pts/0    00:00:00 grep pmon

数据库使用11gR2版本。

sql> select * from v$version;

BANNER

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

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production

PL/SQL Release 11.2.0.3.0 - Production

CORE  11.2.0.3.0 Production

TNS for Linux: Version 11.2.0.3.0 - Production

NLSRTL Version 11.2.0.3.0 – Production

建立一个数据文件目录。

[oracle@SimpleLinux oracle]$ cd $ORACLE_HOME

[oracle@SimpleLinux db_1]$ mkdir oradata

[oracle@SimpleLinux db_1]$ ls -l | grep oradata

drwxr-xr-x  2 oracle oinstall  4096 Dec 27 13:56 oradata

数据库采用归档模式,注意:下述实验要求在归档模式才能实现。

SQL> arcHive log list;

Database log mode              Archive Mode

Automatic archival             Enabled

Archive destination            USE_DB_RECOVERY_FILE_DEST

Oldest online log sequence     25

Next log sequence to archive   27

Current log sequence           27

创建一个实验文件表空间。

SQL> create tablespace test datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' size 100m

  2  extent management local unifORM size 1m

  3  segment space management auto;

Tablespace created

SQL> select file_name, tablespace_name from dba_data_files;

FILE_NAME                                          TABLESPACE_NAME

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

+DATA/ora11g/datafile/users.259.825944329          USERS

+DATA/ora11g/datafile/undotbs1.258.825944329       UNDOTBS1

+DATA/ora11g/datafile/sysaux.257.825944327         SYSAUX

+DATA/ora11g/datafile/system.256.825944325         SYSTEM

+DATA/ora11g/datafile/example.265.825944513        EXAMPLE

/u01/app/oracle/product/11.2.0/db_1/oradata/testtb TEST

l.dbf                                              

6 rows selected

2ASMCMD命令

ASMCMD是Oracle提供的管理ASM的命令行工具。进入11g之后,ASMCMD提供了cp命令,仿照Linux平台的cp命令。ASMCMD是我们事先拷贝的一种选择。

我们实验是将文件系统的TEST文件,转移到+DATA ASM DiskGroup中。

首先切换一下logfile。

SQL> alter system switch logfile;

System altered

--我们事先online移动,是进行offline之后才行;

SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' offline;

Database altered

SQL> select file_name, online_status from dba_data_files where file_id=6;

FILE_NAME                                          ONLINE_STATUS

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

/u01/app/oracle/product/11.2.0/db_1/oradata/testtb RECOVER

l.dbf                                             

进入ASMCMD命令行进行处理。

--使用grid用户,注意这个过程是伴随着登录ASM实例过程的。

[oracle@SimpleLinux oradata]$ su - grid

PassWord:

[grid@SimpleLinux ~]$ asmcmd

ASMCMD> cp /u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf +DATA/ora11g/datafile/testtbl.dbf

copying /u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf -> +DATA/ora11g/datafile/testtbl.dbf

在ASM中,查看到文件的确保存在目录了。

ASMCMD> ls -l

Type      Redund  Striped  Time             Sys  Name

DATAFILE  UNPROT  COARSE   DEC 27 13:00:00  Y    EXAMPLE.265.825944513

DATAFILE  UNPROT  COARSE   DEC 27 13:00:00  Y    SYSAUX.257.825944327

DATAFILE  UNPROT  COARSE   DEC 27 13:00:00  Y    SYSTEM.256.825944325

DATAFILE  UNPROT  COARSE   DEC 27 13:00:00  Y    UNDOTBS1.258.825944329

DATAFILE  UNPROT  COARSE   DEC 27 13:00:00  Y    USERS.259.825944329

                                            N    testtbl.dbf => +DATA/ASM/DATAFILE/testtbl.dbf.268.835279797

另外在Oracle的控制文件体系中,修改文件名称。

SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+DATA/ora11g/datafile/testtbl.dbf';

Database altered

SQL> select file_name, file_id from dba_data_files;

FILE_NAME                                             FILE_ID

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

(篇幅原因,有省略……)

+DATA/ora11g/datafile/example.265.825944513                 5

+DATA/ora11g/datafile/testtbl.dbf                           6

6 rows selected

由于进行online操作,对数据文件6进行恢复、上线。

SQL> alter database recover datafile 6;

Database altered

SQL> alter database datafile 6 online;

Database altered

SQL> select file_name, file_id, online_status from dba_data_files;

FILE_NAME                                             FILE_ID ONLINE_STATUS

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

(篇幅原因,有省略……)

+DATA/ora11g/datafile/example.265.825944513                 5 ONLINE

+DATA/ora11g/datafile/testtbl.dbf                           6 ONLINE

6 rows selected

原来的数据文件,删掉就好了。

[oracle@SimpleLinux oradata]$ ls -l

total 102512

-rw-r----- 1 oracle asmadmin 104865792 Dec 27 14:02 testtbl.dbf

[oracle@SimpleLinux oradata]$ rm testtbl.dbf

试验成功。

3DBMS_FILE_TRANSFER包方法

Oracle PL/SQL中包dbms_file_transfer也可以实现传输。其中的copy_file过程,可以实现将文件传输跨越ASM和文件系统。

使用dbms_file_transfer包前提需要指定文件目录,在Oracle中是通过directory对象实现的。

SQL> create directory souredir as '+DATA/ora11g/datafile/';

Directory created

SQL> create directory destdir as '/u01/app/oracle/product/11.2.0/db_1/oradata';

Directory created

本方法我们将上节中的ASM文件传输到File System中。

SQL> select file_name, file_id, online_status from dba_data_files;

FILE_NAME                                             FILE_ID ONLINE_STATUS

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

(篇幅原因,有省略……)

+DATA/ora11g/datafile/example.265.825944513                 5 ONLINE

+DATA/ora11g/datafile/testtbl.dbf                           6 RECOVER –已经被offline状态的数据文件

6 rows selected

SQL> begin

  2    dbms_file_transfer.copy_file(source_directory_object => 'souredir',

  3                                 source_file_name => 'testtbl.dbf',

  4                                 destination_directory_object => 'destdir',

  5                                 destination_file_name => 'testtbl.dbf');

  6  end;

  7  /

PL/SQL procedure successfully completed

文件系统中查看到文件testtbl.dbf。

[oracle@SimpleLinux oradata]$ ls -l

total 102512

-rw-r----- 1 oracle asmadmin 104865792 Dec 27 14:34 testtbl.dbf

SQL> alter database rename file '+DATA/ora11g/datafile/testtbl.dbf' to '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf';

Database altered

SQL> alter database recover datafile 6;

Database altered

对数据文件online操作。

SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' online;

Database altered

SQL> select file_name, file_id, online_status from dba_data_files;

FILE_NAME                                             FILE_ID ONLINE_STATUS

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

(篇幅原因,有省略……)

+DATA/ora11g/datafile/example.265.825944513                 5 ONLINE

/u01/app/oracle/product/11.2.0/db_1/oradata/testtb          6 ONLINE

l.dbf                                                       

6 rows selected

试验成功。

4RMAN方法

在没有cp命令之前,RMAN是一种比较常用的方法。我们先将文件offline。

SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' offline;

Database altered

启动RMAN copy过程。

RMAN> connect target /

connected to target database: ORA11G (DBID=4222144573)

using target database control file instead of recovery catalog

RMAN> copy datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+RECO'

2> ;

Starting backup at 27-DEC-13

allocated channel: ORA_DISK_1

channel ORA_DISK_1: SID=41 device type=DISK

channel ORA_DISK_1: starting datafile copy

input datafile file number=00006 name=/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf

output file name=+RECO/ora11g/datafile/test.282.835281667 tag=TAG20131227T144106 RECID=2 STAMP=835281676

channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15

Finished backup at 27-DEC-13

更改文件名,进行数据文件online操作。

SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+RECO/ora11g/datafile/test.282.835281667';

Database altered

SQL> alter database recover datafile 6;

Database altered

SQL> alter database datafile 6 online;

Database altered

试验成功。

以上是“ASM与File System数据文件转移方法有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: ASM与File System数据文件转移方法有哪些

本文链接: https://lsjlt.com/news/64602.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASM与File System数据文件转移方法有哪些
    这篇文章主要介绍ASM与File System数据文件转移方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1、环境介绍实验使用Oracle Linux环境,对应底层Oracl...
    99+
    2024-04-02
  • Oracle数据文件迁移的方法有哪些
    这篇文章主要讲解了“Oracle数据文件迁移的方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Oracle数据文件迁移的方法有哪些”吧!(一) 方法...
    99+
    2024-04-02
  • Pytorch数据类型与转换的方法有哪些
    本篇内容介绍了“Pytorch数据类型与转换的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Pytorch数据类型与转换(torc...
    99+
    2023-07-05
  • golang有哪些数据转换方法
    golang数据转换方法:1、类型转换操作符;2、类型断言;3、字符串和数字之间的转换;4、JSON序列化和反序列化;5、使用标准库进行数据转换;6、使用第三方库进行数据转换;7、自定义数据转换函数。详细介绍:1、类型转换操作符,Go语言提...
    99+
    2023-12-22
    Golang 数据转换
  • SQLServer数据库的移动方法有哪些
    本篇内容主要讲解“SQLServer数据库的移动方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQLServer数据库的移动方法有哪些”吧!  SQL...
    99+
    2024-04-02
  • oracle数据文件移动方法
    oracle数据库数据文件移动方法小结 ...
    99+
    2024-04-02
  • 云服务器数据迁移方法有哪些
    1. 介绍 随着云计算技术的发展,越来越多的企业选择将自己的业务迁移到云服务器上。但是,在迁移过程中,数据迁移是一个非常重要的环节。本文将介绍云服务器数据迁移的方法。 2. 云服务器数据迁移方法 2.1. 传统数据迁移方法 传统的数据迁移...
    99+
    2023-10-27
    服务器 方法 数据
  • php有哪些数据类型转换函数方法
    这篇文章主要介绍“php有哪些数据类型转换函数方法”,在日常操作中,相信很多人在php有哪些数据类型转换函数方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php有哪些数据类型转换函数方法”的疑惑有所帮助!...
    99+
    2023-06-20
  • php数据类型转换的方法有哪些
    这篇文章主要介绍php数据类型转换的方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!数据一共有三种转换类型,分别是强制转换,永久转换,以及转换函数转换。第一种、强制转换通过强制转换的数据,不影响数据原本的类型...
    99+
    2023-06-14
  • numpy转换数据类型的方法有哪些
    numpy转换数据类型的方法有:1、astype()方法,用于将数组转换为指定的数据类型,接受一个参数,即要转换为的数据类型;2、view()方法,创建一个新的数组对象,该对象与原始数组共享相同的数据;3、asarray()函数,可以将数组...
    99+
    2023-11-22
    numpy python
  • Java File类提供的方法与操作有哪些
    这篇“Java File类提供的方法与操作有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Java ...
    99+
    2023-07-05
  • offline数据文件和表空间操作方法有哪些
    这篇文章主要介绍“offline数据文件和表空间操作方法有哪些”,在日常操作中,相信很多人在offline数据文件和表空间操作方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • mysql数据库有哪些文件
    本篇内容介绍了“mysql数据库有哪些文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.1. ...
    99+
    2024-04-02
  • Redis数据导入导出以及数据迁移的方法有哪些
    这篇文章主要介绍了Redis数据导入导出以及数据迁移的方法有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1、aof 导入方式。因为这种...
    99+
    2024-04-02
  • bat文件与Vbs文件间的常用操作方法有哪些
    这篇“bat文件与Vbs文件间的常用操作方法有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“bat文件与Vbs文件间的常...
    99+
    2023-07-04
  • numpy转置函数方法有哪些
    numpy转置函数方法有:1、transpose函数,可以接受一个表示维度顺序的整数元组作为参数,或者使用默认参数将数组的所有维度进行交换;2、T属性,可以直接进行转置操作;3、swapaxes函数,接受两个表示轴的整数作为参数,并返回交换...
    99+
    2023-11-21
    numpy 转置函数
  • php与数据库交互的方法有哪些
    PHP与数据库交互的方法有以下几种:1. 使用原生的MySQLi扩展:PHP提供了MySQLi扩展,可以使用该扩展连接MySQL数据...
    99+
    2023-08-24
    php 数据库
  • 数据库日志文件过大清理的方法有哪些
    这篇文章主要介绍“数据库日志文件过大清理的方法有哪些”,在日常操作中,相信很多人在数据库日志文件过大清理的方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”数据库日志文...
    99+
    2024-04-02
  • linux查看文件行数的方法有哪些
    在Linux系统中,可以使用以下方法查看文件的行数: 使用wc命令:`wc -l 文件名`。这个命令会统计文件的行数并显示出来。...
    99+
    2023-10-27
    linux
  • 大数据量与海量数据的处理方法有哪些
    这篇文章主要讲解了“大数据量与海量数据的处理方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“大数据量与海量数据的处理方法有哪些”吧!1.Bloom ...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作