注: 这里是使用rman方法把数据库全备 然后再另外台机器上面恢复 A B两台机器的系统全为centos5
第一部分:
安装 oracle数据库:
----------------------------------------------------------------------------------------------------------------
上传oracle的安装文件,然后是修改linux的内核参数:
主要是以下的文件
[root@rman ~]# vi /etc/sysctl.conf
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.wmem_default=262144
net.core.rmem_max=262144
net.core.wmem_max=262144
等
然后是安装些oracle必须的jar包。
[oracle@rman database]$yum install gcc-c++
[oracle@rman database]$yum install libXp ----这个是跟xmanganer 通信的jar
然后是修改oracle的环境变:
[oracle@rman ~]$ vi .bash_profile
export DISPLAY=192.168.105.234:0
还有把主数据库的环境变量都拷贝过来
最后是执行安装:
[oracle@rman database]$ ./r./runInstaller
如果一切正常的话会在 export 导入的机器上面出现oracle的安装界面:
(这里有2中安装模式:基本安装、高级安装
基本安装:快速安装Oracle软件跟并且创建个通用的数据库(可选)
高级安装:允许升级数据库到10G版本,自动存储管理,为system sys指定不同的密码,等高级选项。
)
这里是记录oracle软件的一些信息,包括所处的平台的信息
这里是选择oracle的安装类型
这里是指定 Oracle的主目录并且为Oracle主目录提供完整路径。
这里是检查oracle的安装环境
这里有三个选择:
创建一个数据库:
Asm,配置自动存储管理:
仅安装数据库软件:
这里是开始安装oracle软件
第二部分:
----------------------------------------------------------------------------------------------------------------------
1. 在B库创建ORACLE用户安装oracle软件(不装数据库)。安装完毕后,参照源库的初始化参数文件,
根据备用服务器情况修改init.ora为备数据库创建初始化参数文件。
init.ora 的位置:$ORACLE_HOME/dbs/
[oracle@rman dbs]$ ls
initdw.ora init.ora
[oracle@rman dbs]$ vi initmediadb.ora
mediadb.__db_cache_size=134217728
mediadb.__java_pool_size=4194304
--按照ora里面的配置建立相应的目录跟分配权限:
[root@rman admin]# mkdir -p /zhanggh/oracle/flash_recovery_area
[root@rman admin]# mkdir -p /u01/app/oracle/admin/mediadb/adump
[root@rman admin]# mkdir -p /u01/app/oracle/admin/mediadb/bdump
[root@rman admin]# mkdir -p /u01/app/oracle/oradata/mediadb
[root@rman admin]# mkdir -p /u02/oradata/
[root@rman admin]# mkdir -p /u03/databack/controlfile
[root@rman admin]# mkdir -p /u01/app/oracle/admin/mediadb/cdump
[root@rman admin]# mkdir -p /u01/app/oracle/admin/mediadb/udump
[root@rman admin]# chown -R oracle:oracle /u01
[root@rman admin]# chown -R oracle:oracle /u02
[root@rman admin]# chown -R oracle:oracle /u03
[root@rman admin]# chown -R 755 /u01
[root@rman admin]# chown -R 755 /u02
[root@rman admin]# chown -R 755 /u03
[root@rman admin]#
2.为了简单起见,在服务器B上建立与A相同的文件系统。如果因为空间或其他原因,可以考虑用软链接来实现目录结构的统一。
如果实在不能做到的话,可以用rman的set newname来实现数据的重定位。
3.用RMAN全备模式备份源库
run{
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/zhanggh/mediadbfullbak/%F';
allocate channel c1 type disk format '/ zhanggh/mediadbfullbak/full_%U';
backup database tag 'full_mediadb_data';
alter system switch logfile; # 这里可以去掉
release channel c1;
}
--
run {
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/zhanggh/mediadbfullbak/%F';
allocate channel c1 type disk format '/zhanggh/mediadbfullbak/full_%U';
backup database tag 'full_mediadb_data';
release channel c1;
}
------------------------------------------
4.将备份好的备份集和控制文件传到备库的相应文件夹下(SCP,FTP,RSYNC)
[root@localhost zhanggh]# rsync -av mediadbfullbak/ 172.16.21.88:/zhanggh/
5.修改备份集和控制权限至少为755,并且为用户ORACLE所有
6.PFILE模式启动备用数据库到nomount状态
[oracle@rman ~]$ sqlplus /nolog
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Dec 8 23:59:04 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
SQL> conn /as sysdba;
Connected to an idle instance.
SQL> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initmediadb.ora' nomount;
ORACLE instance started.
Total System Global Area 205520896 bytes
Fixed Size 1218532 bytes
Variable Size 67110940 bytes
Database Buffers 134217728 bytes
Redo Buffers 2973696 bytes
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@rman ~]$
7.用RMAN来恢复控制文件
[oracle@standby ~]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on 星期五 12月 4 14:40:07 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database (not started)
RMAN> set dbid=954190712;
executing command: SET DBID
(这里的设定的id 需要在备份的数据库哪里去获取:rman进入的时候就能看到)
9.恢复数据库(PS:这时候可能出现找不到数据文件,是因为相应归档没有拷过来,数据文件与控制文件内记录的SCN码不同,将相应归档放在相应目录就OK)
RMAN> recover database;(这里恢复完成后还会报错,不用理会,是因为没有redo log的原因)
RMAN> recover database;
Starting recover at 09-DEC-09
using channel ORA_DISK_1
starting media recovery
unable to find archive log
archive log thread=1 sequence=420
RMAN-00571: ===========================================
RMAN-00569: ===== ERROR MESSAGE STACK FOLLOWS =======
RMAN-00571: ==========================================
RMAN-03002: failure of recover command at 12/09/2009 00:16:31
RMAN-06054: media recovery requesting unknown log: thread 1 seq 420 lowscn 14415663
RMAN>
10.打开数据库
RMAN> alter database open resetlogs;(由于没有redo log所以用resetlogs模式打开)
database opened.
到这里 数据库就算是正常开启了:
11关于 oracle的密码文件:
直接将源服务器上面的密码文件拷贝过去就OK:
/u01/app/oracle/product/10.2.0/db_1/dbs/orapwmediadb
12:创建快速启动 spfile
SQL> conn /as sysdba;
Connected to an idle instance.
SQL>shutdown immediate;
SQL> startup pfile='/u01/app/oracle/product/10.2.0/db_1/dbs/initmediadb.ora' ;
SQL> alter database open;
SQL> create spfile from pfile; #这里为创建spfile文件
File created.
13.配置监听和TNS
14.做一次备库的全备份
Finish.
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15713890/viewspace-625552/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15713890/viewspace-625552/