Oracle 数据库的克隆方法

更新时间:2024-03-20 02:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Oracle数据库克隆的实现方法

作者:朱晓凯 版本:1.0

本文档适用的操作系统:SUSE Linux 、HP-UX 、AIX、RedHat Linux (redhat本人并没有实践过)

一、概述

由于备份恢复的需要,或是进行同一平台下oracle 的移植的需要,我们可能要搭建和源数据库同样的环境。如果采用手工的安装方法,不但需要安装各种补丁包,而且需要进行大量的配置工作,才能达到与源环境的相似或相同。本文介绍通过对oracle 相关的文件进行复制的方法,来进行相同数据库环境的搭建。

二、具体操作步骤 (以suse linux 为例)

说明:本文中的斜体字部分为相关命令的参考,并非必须的操作步骤

1、在异机上先建立对应的DBA、Oinstall组、对应的Oracle用户(注意:所有的组、用户的ID都需要与原机器的ID号一致)。 创建用户组: # groupadd oinstall # groupadd dba

#groupadd –g 105 (创建指定id 的组) 创建用户

例:创建相应ID的用户:useradd –u 104 –g oinstall –G dba –d /opt/oracle –m oracle (设定oracle用户为oinstall、dba用户组的成员,其中oinstall 为主组) # passwd oracle (设定oracle用户的密码) 如何更改用户ID:

usermod -u number -o user 如:

usermod -u 1001 -o oracle

更改组id:

groupmod [-g gid [-o]] [-n group_name ] group 注:AiX:chgroup –g gid group

查询用户相关信息:

Grep oracle /etc/passwd /etc/shadow /etc/group

更改权限:

# chown -R oracle.oinstall /oracle (设定目录所属的用户组和用户) Or chown -R oracle:oinstall /oracle

# chmod -R 775 /oracle (设定目录的读写权限)

2、在源端将Oracle的环境打包。利用tar 进行打包(由于tar可以将权限进行保留,一般不用复制进行操作)。

例如用户环境为/oracle目录,因此可以用tar -cf /tmp/oracle.tar /oracle,将环境打包。

Tar –zcvf --exclude=oracle/oradata/ –exclude=oracle/ /flash_recovery_area/ oracle.tgz oracle (打包过程中排除oracle 的相应目录)

3、将打包好的环境传输到异机,建立好/oracle目录,进行解包。(主要异机的/oracle权限要与原有的/oracle一样)。

tar解压tar包中指定文件夹

如果是要解压缩xxl/date文件夹,我们则可以使用如下命令:

tar -zxvf xxl.tar.gz ./ xxl/date 后面直接跟压缩包里面的文件夹路径就可以了。

这时候在当前目录下面产生一个文件夹/xxl/date,里面就会有我想要的文件test.sql了,这样我就不需要对整个tar包来解包了

另外,还可以解压指定的文件到指定的文件夹 tar -zxvf xxl.tar.gz -C /home/xxl1/ /xxl/date/test.sql

这是我们要的文件test.sql就会在/home/xxl1文件夹下面

4、将原机的/etc/oratab和/etc/ oraInst.loc复制到异机,注意权限和所属跟源机一致。

注:Hp-ux 上的oralnst.loc 位于 /var/opt/oracle/oraInst.loc

5、/home/oracle(oracle的默认工作路径)下的.profile(注意:Linux下可能是.bash_profile),从源机复制到目标机。

如果没有,要自己设置 # vi /home/oracle/.bash_profile (suse用户下是.profile)

(此图为suse 11 下的oracle 设置)

6、修改监听配置文件等涉及到主机名或IP地址的配置文件( listener.ora、tnsnames.ora)。

7、重新连接oracle相关文件 在 $ORACLE_HOME/bin/relink all

8、服务器内核参数及数据库初始化参数配置 按照oracle 安装文档修改内核相关参数(特别是SHMMAX 参数,建议为物理内存的一半) 修改oracle spfile参数文件中关于.db_cache_size sga_max_size= shared_pool_size .large_pool_size= .java_pool_size .pga_aggregate_target 等的值,对于内存小的机器,一定要进行此部操作,不然有可能在startup nomount 的时候,出现假死现象

注1:由于spfile 不能直接修改,可以先把spfile 导出为pfile,命令如下: 1,SQL>create pfile from

spfile='/u01/app/oracle/product/9.2.0/dbs/spfile$ORACLE_SID.ora';

注2:SGA 建议为物理内存的一半 PGA建议为SGA的10%或20%

三、数据库测试

1、可以进行nomount测试。 Sqlplus /nomount

四、数据库数据文件的恢复

把oracle 相关的数据文件、日志文件、归档日志等复制到异机。我们可以利用rman 的方式进行数据文件的恢复,当然也可以利用数据库的有效数据文件拷贝直接复制到异机。

五、如何获取oracle 相关数据、日志文件的位置

1、查询数据文件的位置-- datafiles;

select name from v$datafile;

也可以用下面的语句,能够得到更详细信息

SQL语句:

SQL> col file_name format a50

SQL> select tablespace_name,file_id,bytes/1024/1024,file_name from dba_data_files order by file_id;

TABLESPACE_NAME FILE_ID BYTES/1024/1024 FILE_NAME

---------------------- --------- --------------- ------------------------------ SYSTEM 1 200 C:\\ORANT\\DATABASE\\SYS1ORCL.ORA USER_DATA 2 138 C:\\ORANT\\DATABASE\\USR1ORCL.ORA ROLLBACK_DATA 3 10 C:\\ORANT\\DATABASE\\RBS1ORCL.ORA TEMPORARY_DATA 4 2 C:\\ORANT\\DATABASE\\TMP1ORCL.ORA

2、查询控制文件的位置- controlfiles;

select name from v$controlfile;

3、查询重做日志文件的位置- redo logs;

select member from v$logfile;

4、查询dump文件的位置- dump directories;

show parameter _dump; 5、查询spfile文件的位置- spfile:

show parameter spfile 6、查询归档日志文件的位置-archive log

Show parameter LOG_ARCHIVE_DEST_ Or

Archive log list; Or

Select destination, binding, target, status from v$archive_dest_

本文来源:https://www.bwwdw.com/article/8858.html

Top