Oracle Rac备份恢复
概述
RAC 技术这两年热度不断提升,随着ORACLE推广力度不断加大以及时间的推移,RAC特性也在逐步被人所熟悉。做为重要的数据库维护操作–备份恢复,本文将通过实际操作,演示RAC数据库环境中,MBA实现RMAN备份与恢复。
首先要明确一点,通过RMAN创建备份集时,必须保证连接到的实例能够访问所有节点所生成的归档日志,否则会导致备份失败。所以针对rac备份,MBA有一下2种情况。
∙ 各节点生成的归档文件放到共享存储上,这样自然可以确保每个节点都能够访问到,比如将归档存放到ORACLE的ASM或其它集文件系统。
∙ 各节点生成的归档文件放在本地,创建共享目录作为MBA备份时使用的临时目录。
针对以上2种情况都需要开启数据库的归档模式,建立备份用户,并授予dba,sysdba的权限。
∙ 开启数据库归档模式(仅供参考)
1) 关闭所有节点数据库实例
[grid@node1 ~]$ srvctl stop database -d racdb
2) 修改服务器配置参数
SQL> startup mount
SQL> alter system set cluster_database=false scope=spfile;
注:cluster_database是用来确定数据库是否在rac环境的集中。如果cluster_database=true,那么对于rac数据库来说,无法在一个节点上mount exclusive数据库,也就无法更改archivelog模式。
SQL> shutdown immediate
3) 开启归档模式
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;
4) 恢复服务器配置参数
SQL> alter system set cluster_database=true scope=spfile;
SQL> shutdown immediate;
5) 打开所有节点数据库实例
[grid@node1 ~]$ srvctl start database -d racdb
6) 检查归档日志是否已启用
SQL> archive log list;
数据库日志模式存档模式
自动存档启用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 98
下一个存档日志序列 99
当前日志序列 99
∙ 创建备份使用的用户以及授权
SQL> create user backup identified by backup;
SQL> grant dba,sysdba to backup;
1. 归档文件放到共享存储上
1.1备份
1.1.1编辑l
修改每个Oracle Agent端l文件
以下为l文件内容
<?xml version=”1.0″ encoding=”GB2312″?>
<MBA>
<ServerParameter>
<ServerName>192.168.50.106</ServerName>
<ServerPort>41001</ServerPort>
<LocalIP>192.168.50.158</LocalIP> <!–使用的是虚拟ip–>
<Log>6</Log>
<TemporaryPath></TemporaryPath>
<BindLocalIP>0</BindLocalIP>
<Encoding>GB18030</Encoding>
</ServerParameter>
<MarsOracleAgent>
<racdb>
<!– 1. 虚拟IP以及端口号,Host=,PORT=,这里例子是192.168.50.158,192.168.50.159,端口号是1521 –>
<!– 2. 数据库名,SERVICE_NAME = ,这里的例子是racdb–>
<JdbcUrl>(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.158)(PORT = 1521))(ADDRESS = (PROTOCOL =TCP)(HOST = 192.168.50.159)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = racdb)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))</JdbcUrl>
<!–当前OracleAgent所在机器上的实例名,根据实际情况修改 –>
<NodeInstanceName>racdb1</NodeInstanceName>
<!–其他机器上的实例名,可能是多个 –>
<OtherNodeInstance>
<!–某一个具体的实例名 –>
<NodeInstanceName>racdb2</NodeInstanceName>
</OtherNodeInstance>
</racdb>
<BlockSize>262144</BlockSize>
</MarsOracleAgent>
</MBA>
注:汉字部分,为解释,配置文件不需要出现
重启各个节点Oracle Agent服务
#/usr/local/mba/scripts/MBAOracleAgent.sh restart
1.1.2发送备份任务
1)添加实例
Racdb为公共实例名
192.168.50.158 是虚IP
2)以backup用户连接实例,发备份任务
RMAN备份方式必须备份控制、日志和所有的表空间
选择RMAN备份方式,勾选RAC选项
备份成功
1.2恢复
1.2.1准备
使用sqlplus工具连接数据库执行shutdown immediate命令。
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate;
使用备份用户连接,连接成功之后才能够进行恢复。
SQL> conn backup/backup@racdb
已连接。
1.2.2发送恢复任务
恢复成功
2.归档日志放在本地
2.1备份
2.1.1备份准备
使用备份用户在任何节点上测试连接,连接成功之后才能够进行备份
jdbc连接oracleSQL> conn backup/backup@racdb1;
SQL> conn backup/backup@racdb2;
2.1.2挂载共享目录
以下使用nfs方式(建议使用nfs方式),挂载共享目录,作为备份时,使用的临时目录,而临时目录的大小要求是一个备份周期数据量总和的1.5倍-2倍之间
注意:使用共享目录时,MBA不支持流方式备份
各个节点挂载nfs目录
#vi /etc/fstab
192.168.50.105:/ractmp /ractmp nfs rw,bg,hard,nointr,rsize=32768,wsize=32768,tcp,actimeo=0,vers=3,timeo=600 0 0
#mount –a
挂载时,需加以上挂载参数
挂载成功后,修改目录权限,确保Oracle用户有权限读写
#chmod –R 777 /ractmp
2.1.3编辑&l
修改Oracle Agent端主配置文件l
以下为l文件内容
<?xml version=”1.0″ encoding=”GB2312″?>
<MBA>
<ServerParameter>
<ServerName>192.168.50.106</ServerName>
<ServerPort>41001</ServerPort>
<LocalIP>192.168.50.158</LocalIP> <!–使用的是虚拟ip–>
<Log>6</Log>
<TemporaryPath></TemporaryPath>
<BindLocalIP>0</BindLocalIP>
<Encoding>GB18030</Encoding>
</ServerParameter>
<MarsOracleAgent>
<racdb>
<!– 1. 虚拟IP以及端口号,Host=,PORT=,这里例子是192.168.50.158,192.168.50.159,端口号是1521 –>
<!– 2. 数据库名,SERVICE_NAME = ,这里的例子是racdb–>
<JdbcUrl>(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.50.158)(PORT = 1521))(ADDRESS = (PROTOCOL =TCP)(HOST = 192.168.50.159)(PORT = 1521))(LOAD_BALANCE = yes)(FAILOVER = ON)(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = racdb)(FAILOVER_MODE=(TYPE = SELECT)(METHOD = BASIC)(RETIRES = 20)(DELAY = 15))))</JdbcUrl>
<!–当前OracleAgent所在机器上的实例名,根据实际情况修改 –>
<NodeInstanceName>racdb1</NodeInstanceName>
<!–其他机器上的实例名,可能是多个 –>
<OtherNodeInstance>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论