如果条件允许的情况下,可以使用传统冷备操作,步骤十分简单,停止数据库后,将需要备份的数据文件、控制文件、日志文件等拷贝一份即可。
前提开启归档模式
查询一下用户对应关系,我们用SCOTT测试,所在表空间为USERS
oracle 查看用户所在的表空间:
select username,default_tablespace from dba_users order by username;
如图所示:
然后执行
alter tablespace users begin backup;
进行文件拷贝操作,可以是脚本,也可以手动复制
alter tablespace users end backup;
最后一定要end backup,否则会出现问题
如此一来就完成了对users表空间的热备操作。
如果想完整备份,热备生成语句如下:
select 'alter tablespace '||tablespace_name||' begin backup;' from dba_tablespaces where logging='LOGGING';
以DBA语句执行后,生成如下语句
alter tablespace SYSTEM begin backup;
alter tablespace SYSAUX begin backup;
alter tablespace UNDOTBS1 begin backup;
alter tablespace USERS begin backup;
此时在任意地点新建一个文件夹,将热备对应的DBF文件复制一份,如图:
复制完毕后,进行end backup操作,语句如下:
alter tablespace SYSTEM end backup;
alter tablespace SYSAUX end backup;
alter tablespace UNDOTBS1 end backup;
alter tablespace USERS end backup;
查看log日志,可以看到相关操作已经完成了。
如此,便完成了一次完整的热备操作。
手动破坏相关dbf物理文件,用任何方式。
dba用户做全局检查点,发现已经无法访问表了。
alter system checkpoint;
恢复过程:
在offline immediate之后,我们从热备份中找到对应的文件还原。
然后进行recover。
恢复后将表空间设置为online。
经测试,表空间恢复成功,可以正常使用。
TIPS:实践过程中发现的ORA-32004警告
[[email protected] ~]$ oerr ora 32004
32004, 00000, "obsolete or deprecated parameter(s) specified for %s instance"
// *Cause: Obsolete or deprecated parameters for this instance type
// were specified in the SPFILE or the PFILE on the server side.
// *Action: See alert log for a list of parameters that are obsolete
// or deprecated. Remove them from the SPFILE or the server
// side PFILE.
---------------------
查看日志,发现一个不推荐的参数
在mount或open下重置该参数
alter system reset log_archive_start
重启问题即可消除
首先了解以下dbf种类
系统dbf文件:system01.dbf,sysaux01.dbf,undotbs01.dbf
数据dbf文件:users.dbf等
数据库关闭后,删除数据dbf文件,尝试启动数据库,发现以下问题:
将热备文件最新版复制一份过来,然后执行恢复,过程如下:
RMAN> shutdown immediate
database dismounted
Oracle instance shut down
RMAN> startup
connected to target database (not started)
Oracle instance started
database mounted
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 08/26/2019 11:21:44
ORA-01113: file 4 needs media recovery
ORA-01110: data file 4: '/U01/app/oracle/oradata/orcl/users01.dbf'
RMAN> recover tablespace users;
Starting recover at 2019-08-26 11:25:04
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=10 device type=DISK
starting media recovery
media recovery complete, elapsed time: 00:00:00
Finished recover at 2019-08-26 11:25:05
RMAN> alter database open;
database opened
RMAN>
RMAN是oracle非常强大的备份恢复工具,可以进行完全和增量备份/恢复等操作,这里只介绍最简单实用的全备份操作。
RMAN常用命令操作步骤
[[email protected] ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Tue Sep 10 17:20:12 2019
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: ORCL (DBID=1533443989)
RMAN> list backup
2> ;
using target database control file instead of recovery catalog
List of Backup Sets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
1 Full 1.05G DISK 00:00:28 2019-08-27 14:27:11
BP Key: 1 Status: AVAILABLE Compressed: NO Tag: TAG20190827T142643
Piece Name: /U01/app/oracle/flash_recovery_area/ORCL/backupset/2019_08_27/o1_mf_nnndf_TAG20190827T142643_gp9m93s1_.bkp
List of Datafiles in backup set 1
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ------------------- ----
1 Full 1283459 2019-08-27 14:26:43 /U01/app/oracle/oradata/orcl/system01.dbf
2 Full 1283459 2019-08-27 14:26:43 /U01/app/oracle/oradata/orcl/sysaux01.dbf
3 Full 1283459 2019-08-27 14:26:43 /U01/app/oracle/oradata/orcl/undotbs01.dbf
4 Full 1283459 2019-08-27 14:26:43 /U01/app/oracle/oradata/orcl/users01.dbf
5 Full 1283459 2019-08-27 14:26:43 /U01/app/oracle/oradata/orcl/example01.dbf
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ -------------------
2 Full 9.36M DISK 00:00:01 2019-08-27 14:27:19
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20190827T142643
Piece Name: /U01/app/oracle/flash_recovery_area/ORCL/backupset/2019_08_27/o1_mf_ncsnf_TAG20190827T142643_gp9mb7y7_.bkp
SPFILE Included: Modification time: 2019-08-26 15:49:31
SPFILE db_unique_name: ORCL
Control File Included: Ckp SCN: 1283481 Ckp time: 2019-08-27 14:27:18
删除备份集
delete backupset 1; --1代表备份集序号
恢复脚本:
run
{
set until time "to_date('2019-08-27 14:27:11','YYYY-MM-DD HH24:MI:SS')";
restore database;
recover database;
}
一个老项目,多年来无人运维,需要检查一下备份情况,以备不时之需。
查看列表,发现没有备份,尝试一次全备份,发现没有在归档模式
为了保险起见,先做一次物理文件全备份,冷备或热备均可。
查询一下归档模式状态,果然是非归档,由于更改模式需要在mount下,所以需要重启数据库,更改后,打开数据库。
接下来,进入RMAN尝试备份,这次备份成功。
关于备份文件的位置:
备份语句中指定的format > rman 中显现的configure channel device type disk format '/oracle/orclarch/%U_%d'的路径 > 闪回恢复区(如果开启闪回,则保存在$ORACLE_HOME /flash_recovery_area文件夹中>$ORACLE_HOME/dbs(如果都没有设置,则保存在这里)
JNI之路径初探---2上一篇博客写的是Java调用C、C++的例子,本篇就演示一下C、C++怎么调用Java的属性和方法。Java代码中提供一个静态方法给C、C++调用C、C++代码一些具体的操作细节在第一篇博客就写的比较详细了,这里就不再重复了,值得一提的是我们这里在Java层加载的...文章android_尋道2017-06-15686浏览量Java中使用JNI调用本地动态库的方法在Java...
需求:当flex布局中 设置了 justify-content: space-between; 时 。 最后一行如果数量不够,则左右对齐,如果想实现最一行左对齐。则代码;// 在父元素中设置&:after { content:""; width:100px; // 这里的宽度,更改为自己子元素的宽度}...
转自 https://blog.csdn.net/constantin_/article/details/79575638原文访问前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其优先级和运算优先级一样,所以...
关于图层的几个坐标系。对于ios来说,坐标系的(0,0)点在左上角,就是越往下,Y值越大。越往右,X值越大。一个图层的frame,它是position,bounds,anchorPoint和transform属性的一部分。设置一个新的frame将会相应的改变图层的position和bounds,但是frame本身并没有保存。position:是一个CGP
DI-sheep 深度强化学习+羊了个羊、Mjx 麻将AI研究框架、Azimutt 实体关系图(ERD)可视化工具、mp4grep 用于转录&搜索音视频的命令行工具、MuJoCo 物理引擎高质量模型级、技术面试资源列表、神经语音合成教程、深度网络规划资源列表、机器学习资源列表、前沿论文…点击获取全部资讯
char *arr = "What?"; int len_one = strlen(arr); int len_two = sizeof(arr); cout char arr[10] = "What?"; int len_one = strlen(arr); int len_two = size
程序中断(2)这一部分是基于基于ZYNQ-7000开发板的调试系列(4)继续展开的,主要的部分是需要两个定时器开启中断开始。这一部分主要是需要使用TTC,完成2组流水灯的同时工作,两组的频率也不一致。[参考自ZYNQ7000 TRM (Page.245-249)]TTC可以完成的工作比较多,其实TTC的使用是可以控制GPIO的占空比。这个的最简单的使用例程就是做一个呼吸灯。但是需要使用到PL...
结构体(structure)在C语言中,我们是用结构体来存放一组类型不一样的数据。例如一个模特有身高(int)、姓名(char)、性别(bool)等。这个时候就需要用到结构体了。1.结构体的声明struct 结构体名{ 结构体成员变量1; 结构体成员变量2; ······};示例:struct person{ int height; //身高 char name[20]; //姓名 char address[50]; //地址 bool gender; //性别,
创建名为main()的函数来包含要运行的代码现在,您可以编写作为脚本由从命令行执行并导入且没有副作用的Python代码。接下来,您将学习如何编写代码并使其他程序员能轻松地理解其含义。许多语言,如C,C++,Java以及其他的一些语言,都会定义一个叫做main()的函数,当编译程序时,操作系统会自动调用该函数。此函数通常被称为入口点(entry point),因为它是程序进入执行的起始位置。相比之下...
由于平时需要,我们经常会去获取文件的扩展名或者buda
来源:智东西(zhidxcom)数据猿官网 | www.datayuan.cn今日头条丨一点资讯丨腾讯丨搜狐丨网易丨凤凰丨阿里UC大鱼丨新浪微博丨新浪看点丨百度百家丨博客...
最近很多大学生找我来推荐笔记本,我发现这些学生们都有一定的共性,打游戏、要求轻薄、要求性价比高,要求做设计、所以这篇文章,我就为大家进行分类讲解,争取让大家不花冤枉钱,能够找到自己想要的那款笔记本。大学文科类专业笔记本电脑推荐:以轻巧为主文科(法学、哲学、哲学、经济学、教育学、文学、历史学)一般对性能要求不高,大部分情况主要做文件查阅和资料整理,一般普通笔记本即可。但是照顾到女生较多,所以轻薄好看...