oracle在Windows,linux备份恢复(tina)

备份
修改归档操作
archive log list 查看归档状态,数据库日志模式非归档模式
shutdown immediate; 关闭数据库
startup mount 开启挂载
alter database archivelog; 开启归档模式
在oracle用户下,创建归档日志目录
更改归档日志路径
alter system set log_archive_dest_1=‘location=/data/arch’;

查找ORACLE_HOME确认安装路径
查找TINA_HOME确认安装路径
新建rman用户
设置rman用户访问权限
设置归档配置

全备份脚本
rmanfull
举例如下

connect target /
run
{
#sql ‘alter session set optimizer_mode=rule’;
#CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+data/snapcf_rac.f’;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 14;
configure default device type to sbt;
configure device type sbt parallelism 2;
allocate channel c1 type sbt parms=“SBT_LIBRARY=C:\Programdata\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra~1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
allocate channel c2 type sbt parms=“SBT_LIBRARY=C:\Programdata\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra~1\ATP\Tina\atp,TINA_SERVICE_NAME**=atp**,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
#** full backup database**;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
backup incremental level 0 database;
#** backup archive log**;
crosscheck archivelog all;
delete expired archivelog all;
sql ‘alter system archive log current’;
backup archivelog all format ‘arch_%d_%T_%s_%p’;
#backup archivelog all delete all input;
#delete noprompt force archivelog all completed before ‘sysdate-3’;
backup spfile format ‘spfile_%U_%T’;
backup current controlfile format ‘ctl_%d_%T_%s_%p’;
release channel c1;
release channel c2;

增量备份脚本
rmanincre
举例如下

connect target /
run
{
#sql ‘alter session set optimizer_mode=rule’;
#CONFIGURE SNAPSHOT CONTROLFILE NAME TO ‘+data/snapcf_rac.f’;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE RETENTION POLICY TO REDUNDANCY 14;
configure default device type to sbt;
configure device type sbt parallelism 2;
allocate channel c1 type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
allocate channel c2 type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
#full backup database;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
backup incremental level 1 database;
#backup archive log;
crosscheck archivelog all;
delete expired archivelog all;
sql ‘alter system archive log current’;
backup archivelog all format ‘arch_%d_%T_%s_%p’;
#backup archivelog all delete all input;
#delete noprompt force archivelog all completed before ‘sysdate-3’;
backup spfile format ‘spfile_%U_%T’;
backup current controlfile format ‘ctl_%d_%T_%s_%p’;
release channel c1;
release channel c2;

windows

在C盘创建一个rman文件夹,在文件夹内创建scripts和log两个文件夹。
在C:\rman\scripts内创建名为startfull的文本文档,并修改后缀名为bat。
内容如下:
set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1
set ORACLE_SID=orcl
set datetime=%date:0,4%%date:5,2%%date:8,2%%time:0,2%%time:3,2%%time:6,2%
rman target / cmdfile=‘C:\rman\scripts\rman_full.txt’ log=‘C:\rman\log%datetime%local_rman_full_backup.log’
在C:\rman\scripts内创建名为rman_full的文本文档。加入完全备份脚本。

Linux

(1)在根目录下创建一个rman文件夹,在文件夹内创建scripts和log两个文件夹。
[root@loracle01 ~]# mkdir /rman
[root@loracle01 ~]# chown -R oracle:oinstall /rman/
[root@loracle01 ~]# cd /rman/
[root@loracle01 rman]# mkdir scripts
[root@loracle01 rman]# mkdir log
[root@loracle01 ~]# chown -R oracle:oinstall /rman/scripts
[root@loracle01 ~]# chown -R oracle:oinstall /rman/log
(2)在/rman/scripts下创建名为startfull.sh的文件,并赋予777的权限。
内容如下:
#!/bin/bash
su - oracle -c “/rman/scripts/rman_full.sh”
(3)在/rman/scripts下创建名为rman_full.sh的文件,并赋予777的权限。添加以下内容
#!/bin/bash
rq=date +%y%m%d%H%M
export ORACLE_SID=orcl
rman target / <>/rman/log/rmanfull${rq}.log
再加上脚本

创建备份策略,设置备份选项

恢复

完全恢复
数据库启动到mount状态

进入rman命令行模式
先粘贴rman还原数据脚本,回车执行
之后粘贴rman恢复数据库脚本,回车执行
Rman还原数据脚本
connect target /
run
{
allocate channel c1 type sbt
parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
allocate channel c2 type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
restore database;
release channel c1;
release channel c2;
}
Rman恢复数据库脚本
connect target /
run{
allocate channel c1 type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
allocate channel c2 type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
recover database;
release channel c1;
release channel c2;
}
开启数据库

**

不完全恢复(异机恢复)

**
查看原数据库的DBID
使用sqlplus登陆数据库,查询数据库的DBID,如下图所示

数据库启动到 nomount状态(startup nomount)

恢复spfile
在rman模式下粘贴恢复spfile rman
set DBID=1505955560;
run
{
allocate channel c1 device type sbt
parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
restore spfile to pfile ‘C:\app\Administrator\product\11.2.0\dbhome_1\dbs\init.ora’ from autobackup;
release channel c1;
}

还原控制文件(restore controlfile from autobackup)
进入rman模式

脚本
set DBID=1505955560;
run
{
allocate channel c1 device type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
restore controlfile from autobackup;
release channel c1;
}
数据库启动到mount状态

还原数据(restore database)
还原数据脚本

run
{
allocate channel c1 device type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
restore database;
release channel c1;
}

恢复数据库(recover database)
恢复数据库脚本
run
{
allocate channel c1 device type sbt parms=“SBT_LIBRARY=C:\Progra1\ATP\Tina\atp\Bin\orasbt.dll,ENV=(TINA=atp,TINA_HOME=C:\Progra1\ATP\Tina\atp,TINA_SERVICE_NAME=atp,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=rman,TINA_RMAN_USER=rman,TINA_RMAN_BCK_TIMEOUT=14400 ,TINA_SERVICE_TCP_NUM=2525)”;
set until time “to_date(‘2018-07-18 15:46:54’,‘YYYY-MM-DD HH24:MI:SS’)”;
recover database;
release channel c1;
}
恢复数据库方法二
在命令行输入rman target /,登陆RMAN恢复管理器,执行下列命令:
list backup of archivelog all;

在命令行输入rman target /,登陆RMAN恢复管理器,执行下列命令:
run {
allocate channel c1 type sbt
parms=“SBT_LIBRARY=/usr/Backup/Tina/tina/Lib/libtina_rman.so,ENV=(TINA=tina,TINA_HOME=/usr/Backup/Tina/tina,TINA_SERVICE_NAME=tina,TINA_SERVICE_TCP_NUM=2525,TINA_SERVICE_UDP_NUM=2526,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=loracle01,TINA_RMAN_USER=macrosan,TINA_RMAN_BCK_TIMEOUT=14400)”;
set until scn=1026239;
recover database;
release channel c1;
}
使用open resetlogs开启数据库
重置异机数据库的日志
Alter database open resetlogs;

重建临时表空间检查数据

使用sqlplus登陆数据库,执行下列命令:
查看当前表空间位置、大小、是否自动扩展
SQL > select tablespace_name,file_name,bytes/1024/1024 file_size,autoextensible from dba_temp_files;

直接修改查看oradata目录下的temp01.dbf大小

创建中转临时表空间
SQL> create temporary tablespace TEMP1 TEMPFILE
‘/db/oracle/oradata/orcl/temp02.dbf’ SIZE 30M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
改变缺省临时表空间 为刚刚创建的新临时表空间temp1
SQL > alter database default temporary tablespace temp1;
删除原来临时表空间
SQL > drop tablespace temp including contents and datafiles;
重新创建临时表空间
SQL > create temporary tablespace TEMP TEMPFILE
‘/db/oracle/oradata/orcl/temp01.dbf’ SIZE 30M REUSE AUTOEXTEND ON NEXT 1M MAXSIZE UNLIMITED;
重置缺省临时表空间为新建的temp表空间
SQL > alter database default temporary tablespace temp;
删除中转用临时表空间
SQL > drop tablespace temp1 including contents and datafiles;

不完全恢复(原机恢复)

修改数据库状态
因为需要进行全库的恢复操作,首先shutdown数据库,并启动到MOUNT模式。
使用sqlplus登陆数据库,执行下列命令:

还原数据文件
在命令行输入rman target /,登陆RMAN恢复管理器,执行下列命令:
run {
allocate channel c1 type sbt
parms=“SBT_LIBRARY=/usr/Backup/Tina/tina/Lib/libtina_rman.so,ENV=(TINA=tina,TINA_HOME=/usr/Backup/Tina/tina,TINA_SERVICE_NAME=tina,TINA_SERVICE_TCP_NUM=2525,TINA_SERVICE_UDP_NUM=2526,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=loracle01,TINA_RMAN_USER=macrosan,TINA_RMAN_BCK_TIMEOUT=14400)”;
restore database;
release channel c1;
}
恢复数据库
在命令行输入rman target /,登陆RMAN恢复管理器,执行下列命令:
list backup of archivelog all;

在命令行输入rman target /,登陆RMAN恢复管理器,执行下列命令:
run {
allocate channel c1 type sbt
parms=“SBT_LIBRARY=/usr/Backup/Tina/tina/Lib/libtina_rman.so,ENV=(TINA=tina,TINA_HOME=/usr/Backup/Tina/tina,TINA_SERVICE_NAME=tina,TINA_SERVICE_TCP_NUM=2525,TINA_SERVICE_UDP_NUM=2526,TINA_RMAN_CATALOG=catalog,TINA_RMAN_FOLDER=linux-oracle,TINA_RMAN_USER=linux-oracle,TINA_RMAN_BCK_TIMEOUT=14400)”;
set until scn=2099150;
recover database;
release channel c1;
}
重做日志文件
使用sqlplus登陆数据库,执行下列命令:
SQL > alter database open resetlogs;

检查数据
检查数据库状态以及查看删除表情况。

异机还原
在异机恢复的时候,第一步还原参数文件,先在异机上相应目录E:\app\Administrator\product\11.2.0\dbhome_1\database下新建一个initorcl.ora文件,(新建不成,复制里面一个.ora文件到本地,清空里面内容,重命名为initorcl.ora文件移到异机里面),再进行后续操作。
否则会出现下面这个问题。

其他几种备份方式
https://www.jianshu.com/p/779e8f7cd1a2
https://blog.csdn.net/kepa520/article/details/78958029

oracle在Windows,linux备份恢复(tina)相关推荐

  1. oracle日志备份少数据库,oracle 账号锁定日志Oracle数据库全量备份恢复和部分备份恢复...

    Oracle数据库全量备份恢复和部分备份恢复 今天又遇到了Oracle数据库序列的问题,索性来个全库的备份和恢复.如下 imp/exp 方式 表模式备份: ­ oracle@sencloudServe ...

  2. Oracle备份standby,Oracle 11g 利用泠备份恢复standby库

    Oracle 11g 利用泠备份恢复standby库 1 开始在备库上进行泠备份 先查好控制文件.redo.undo文件.数据文件的路径 1.1 先关闭主库的归档日志传输 SQL> ALTER ...

  3. oracle 还原dmp时_报错的值太大,基于oracle数据库的CLOUD备份恢复测试

    CLOUD oracle数据库备份恢复测试 强烈建议使用expdp/impdp,因为: 在expdp的时候Oracle不会再依赖和参考NLS_LANG的设置,而是完全按照数据库本身的字符集导出数据,i ...

  4. c++ 操作oracle 最佳方式_oracle备份恢复基础详解

    一.Oracle备份方式分类: Oracle有两类备份方式: (1)物理备份:是将实际组成数据库的操作系统文件从一处拷贝到另一处的备份过程,通常是从磁盘到磁带. 物理备份又分为冷备份.热备份: (2) ...

  5. 怎么全量备份oracle数据库,Oracle 数据库全量备份恢复和部分备份恢复 | 学步园...

    今天又遇到了Oracle数据库序列的问题,索性来个全库的备份和恢复.如下 imp/exp 方式 表模式备份: ­ oracle@sencloudServer: exp dhoffice/dhoffic ...

  6. windows封装/备份恢复/双系统安装

    封装是装系统的逆过程,由工具安装的系统亦可由工具来进行封装. 问题:为什么要使用别人的工具来进行这些工作 答:既然已经有人走过这条路了,剩下的只需要把前辈们的经验Copy到自身就好了. 封装分两阶段: ...

  7. shell脚本导出oracle数据库,Shell脚本备份恢复Oracle数据库简单示例

    exp_p.sh #!/bin/sh #$1生成dmp文件保存路径 if [ -d $1 ]; then echo $1 exist #用户名/密码 生成文件名称根据当天 exp_p.sh #!/bi ...

  8. 远程linux还原本地bak文件,Linux -- 服务器数据备份恢复策略

    一.Linux 备份恢复基础 1.什么是备份 最简单的讲,备份数据的过程就是拷贝重要的数据到其他的介质之上(通常是可移动的),以保证在原始数据丢失的情况下可以恢复数据.一次备份可能是简单的 cp命令, ...

  9. Oracle 知识篇+RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要

    说明:本文为Oracle RMAN带库备份恢复/带库全备恢复/带库0级备份恢复操作概要 温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化 ①带库备份 rman targ ...

最新文章

  1. 使用正则表达式进行高效的测试
  2. SQL语句的执行过程
  3. 访问图像中每个像素的值
  4. json转java对象_json转java对象
  5. mysql远程一会不用卡住_连接远程MySQL数据库项目启动时,不报错但是卡住不继续启动的,...
  6. python里面的工厂模式
  7. 利用Javascrip实现web窗体的打开和关闭后的刷新
  8. 新手进阶:巧用 macOS 帮助菜单?
  9. 16进制发送 mqtt客户端调试工具_MQTT客户端调试工具(MQTT Simulate Device)
  10. 解决react antd design pro 二级图标不显示问题(v4版本)
  11. matlab怎么对比音频文件,音频文件导入matlab
  12. 浅谈python运算符运算法则
  13. python:实现abbreviation缩写算法(附完整源码)
  14. 深圳java程序员培训班哪里最好,深圳java程序员培训学费(学习Java要不要报班)
  15. [ubuntu] 解决ubuntu中skype不能调用输入法的问题
  16. CRM项目(idea)-1-环境搭建.
  17. 项目名前有个红色感叹号的解决办法
  18. 学习数据分析,数据分析必备的技能有哪些
  19. failed to connect to /172.20.100.117 (port 18899): isConnected failed: ECONNREFUSED (Connection refu
  20. 欢迎报名广东省教育厅2022年科技劳动教育实践活动

热门文章

  1. 互联网晚报 | 10月14日 星期四 | 钉钉宣布用户数破5亿;顺丰王卫将出任嘉里物流董事会主席;字节跳动巨量引擎进军职业教育...
  2. 微信小程序 --长按复制、点击复制实现
  3. oracle spool设置字符集,spool出来的文件格式一个是UTF8一个是ASCII ??
  4. uniapp——解决checkBox组件无法全选无法选中的bug
  5. HCSR04超声波传感器驱动
  6. 树莓派初次配置C++环境以及进行简单的hcsr04驱动
  7. 函数调用计算最高分及对应的学生学号
  8. C语言无符号数赋值为负数时的%d%u输出问题解释
  9. 2022施工员-市政方向-通用基础(施工员)题库及答案
  10. Leetcode- 岛屿数量